texlive[43842] trunk: sync,doc

commits+karl at tug.org commits+karl at tug.org
Sun Apr 16 19:26:58 CEST 2017


Revision: 43842
          http://tug.org/svn/texlive?view=revision&revision=43842
Author:   karl
Date:     2017-04-16 19:26:57 +0200 (Sun, 16 Apr 2017)
Log Message:
-----------
sync,doc

Modified Paths:
--------------
    trunk/Build/source/texk/tests/TeXLive/TLConfig.pm
    trunk/Build/source/texk/tests/TeXLive/TLUtils.pm
    trunk/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
    trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
    trunk/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
    trunk/Master/texmf-dist/bibtex/bib/beebe/typeset.bib
    trunk/Master/tlpkg/doc/releng.txt

Modified: trunk/Build/source/texk/tests/TeXLive/TLConfig.pm
===================================================================
--- trunk/Build/source/texk/tests/TeXLive/TLConfig.pm	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Build/source/texk/tests/TeXLive/TLConfig.pm	2017-04-16 17:26:57 UTC (rev 43842)
@@ -1,11 +1,11 @@
 # TeXLive::TLConfig.pm - module exporting configuration values
-# Copyright 2007-2016 Norbert Preining
+# Copyright 2007-2017 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
 # or any later version.
 
 package TeXLive::TLConfig;
 
-my $svnrev = '$Revision: 41437 $';
+my $svnrev = '$Revision: 43775 $';
 my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
 sub module_revision { return $_modulerevision; }
 
@@ -51,7 +51,7 @@
 
 # the year of our release, will be used in the location of the
 # network packages, and in menu names, and other places.
-$ReleaseYear = 2016;
+$ReleaseYear = 2017;
 
 # users can upgrade from this year to the current year; might be the
 # same as the release year, or any number of releases earlier.

Modified: trunk/Build/source/texk/tests/TeXLive/TLUtils.pm
===================================================================
--- trunk/Build/source/texk/tests/TeXLive/TLUtils.pm	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Build/source/texk/tests/TeXLive/TLUtils.pm	2017-04-16 17:26:57 UTC (rev 43842)
@@ -5,7 +5,7 @@
 
 package TeXLive::TLUtils;
 
-my $svnrev = '$Revision: 42254 $';
+my $svnrev = '$Revision: 43793 $';
 my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
 sub module_revision { return $_modulerevision; }
 
@@ -96,6 +96,7 @@
   TeXLive::TLUtils::report_tlpdb_differences(\%ret);
   TeXLive::TLUtils::tlnet_disabled_packages($root);
   TeXLive::TLUtils::mktexupd();
+  TeXLive::TLUtils::setup_sys_user_mode($optsref,$tmfc, $tmfsc, $tmfv, $tmfsv);
 
 =head1 DESCRIPTION
 
@@ -179,6 +180,7 @@
     &report_tlpdb_differences
     &setup_persistent_downloads
     &mktexupd
+    &setup_sys_user_mode
     &nulldev
     &get_full_line
     &sort_archs
@@ -3979,6 +3981,56 @@
   return $hash;
 }
 
+
+=item C<check_sys_user_mode($user,$sys,$tmfc, $tmfsc, $tmfv, $tmfsv)>
+
+=cut
+
+sub setup_sys_user_mode {
+  my ($prg, $optsref, $TEXMFCONFIG, $TEXMFSYSCONFIG, 
+      $TEXMFVAR, $TEXMFSYSVAR) = @_;
+  
+  if ($optsref->{'user'} && $optsref->{'sys'}) {
+    print STDERR "$prg [ERROR]: only one of -user and -sys can be used.\n";
+    exit(1);
+  }
+
+  # check if we are in *hidden* sys mode, in which case we switch
+  # to sys mode
+  # Nowdays we use -sys switch instead of simply overriding TEXMFVAR
+  # and TEXMFCONFIG
+  # This is used to warn users when they run updmap in usermode the first time.
+  # But it might happen that this script is called via another wrapper that
+  # sets TEXMFCONFIG and TEXMFVAR, and does not pass on the -sys option.
+  # for this case we check whether the SYS and non-SYS variants agree,
+  # and if, then switch to sys mode (with a warning)
+  if (($TEXMFSYSCONFIG eq $TEXMFCONFIG) && ($TEXMFSYSVAR eq $TEXMFVAR)) {
+    if ($optsref->{'user'}) {
+      print STDERR "$prg [ERROR]: -user mode but path setup is -sys type, bailing out.\n";
+      exit(1);
+    }
+    if (!$optsref->{'sys'}) {
+      print STDERR "$prg [WARNING]: hidden sys mode found, switching to sys mode.\n" if (!$optsref->{'quiet'});
+      $optsref->{'sys'} = 1;
+    }
+  }
+
+  my ($texmfconfig, $texmfvar);
+  if ($optsref->{'sys'}) {
+    # we are running as updmap-sys, make sure that the right tree is used
+    $texmfconfig = $TEXMFSYSCONFIG;
+    $texmfvar    = $TEXMFSYSVAR;
+  } elsif ($optsref->{'user'}) {
+    $texmfconfig = $TEXMFCONFIG;
+    $texmfvar    = $TEXMFVAR;
+  } else {
+    print STDERR "$prg [ERROR]: Either -user or -sys mode is required.\n" .
+      "See $TeXLive::TLConfig::SYSUSERURL for details!\n";
+    exit(1);
+  }
+  return ($texmfconfig, $texmfvar);
+}
+
 =back
 =cut
 1;

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl	2017-04-16 17:26:57 UTC (rev 43842)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: fmtutil.pl 43628 2017-03-28 17:55:13Z karl $
+# $Id: fmtutil.pl 43794 2017-04-15 00:12:54Z preining $
 # fmtutil - utility to maintain format files.
 # (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
 # 
@@ -24,11 +24,11 @@
   TeX::Update->import();
 }
 
-my $svnid = '$Id: fmtutil.pl 43628 2017-03-28 17:55:13Z karl $';
-my $lastchdate = '$Date: 2017-03-28 19:55:13 +0200 (Tue, 28 Mar 2017) $';
+my $svnid = '$Id: fmtutil.pl 43794 2017-04-15 00:12:54Z preining $';
+my $lastchdate = '$Date: 2017-04-15 02:12:54 +0200 (Sat, 15 Apr 2017) $';
 $lastchdate =~ s/^\$Date:\s*//;
 $lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 43628 $';
+my $svnrev = '$Revision: 43794 $';
 $svnrev =~ s/^\$Revision:\s*//;
 $svnrev =~ s/\s*\$$//;
 my $version = "r$svnrev ($lastchdate)";
@@ -112,6 +112,7 @@
 
 our @cmdline_options = (  # in same order as help message
   "sys",
+  "user",
   "cnffile=s@", 
   "fmtdir=s",
   "no-engine-subdir",
@@ -151,6 +152,12 @@
     # first generated filename after successful generation to stdout then
     # (and nothing else), since kpathsea can only deal with one.
     $mktexfmtMode = 1;
+
+    # TODO TODO
+    # which mode are we running in?
+    # what happens if root runs mktexfmt?
+    $opts{'user'} = 1;
+
     GetOptions ( "help" => \$opts{'help'}, "version" => \$opts{'version'} )
         or die "Unknown option in mktexfmt command line arguments\n";
     if ($ARGV[0]) {
@@ -198,7 +205,10 @@
   }
   
   # these two functions should go to TLUtils (for use in updmap)
-  check_hidden_sysmode();
+  ($texmfconfig, $texmfvar) = 
+    TeXLive::TLUtils::setup_sys_user_mode($prg, \%opts,
+      $TEXMFCONFIG, $TEXMFSYSCONFIG, $TEXMFVAR, $TEXMFSYSVAR);
+
   determine_config_files("fmtutil.cnf");
   my $changes_config_file = $alldata->{'changes_config'};
   # we do changes always in the used config file with the highest priority
@@ -964,32 +974,6 @@
 # and also be reused in updmap.pl!!!
 
 
-sub check_hidden_sysmode {
-  #
-  # check if we are in *hidden* sys mode, in which case we switch
-  # to sys mode
-  # Nowdays we use -sys switch instead of simply overriding TEXMFVAR
-  # and TEXMFCONFIG
-  # This is used to warn users when they run updmap in usermode the first time.
-  # But it might happen that this script is called via another wrapper that
-  # sets TEXMFCONFIG and TEXMFVAR, and does not pass on the -sys option.
-  # for this case we check whether the SYS and non-SYS variants agree,
-  # and if, then switch to sys mode (with a warning)
-  if (($TEXMFSYSCONFIG eq $TEXMFCONFIG) && ($TEXMFSYSVAR eq $TEXMFVAR)) {
-    if (!$opts{'sys'}) {
-      print_warning("hidden sys mode found, switching to sys mode.\n");
-      $opts{'sys'} = 1;
-    }
-  }
-
-  if ($opts{'sys'}) {
-    # we are running as updmap-sys, make sure that the right tree is used
-    $texmfconfig = $TEXMFSYSCONFIG;
-    $texmfvar    = $TEXMFSYSVAR;
-  }
-}
-
-
 # sets global $alldata->{'changes_config'} to the config file to be
 # changed if requested.
 #
@@ -1264,9 +1248,10 @@
 
 sub help {
   my $usage = <<"EOF";
-Usage: $prg     [OPTION] ... [COMMAND]
-   or: $prg-sys [OPTION] ... [COMMAND]
-   or: mktexfmt FORMAT.fmt|BASE.base|FMTNAME.EXT
+Usage: $prg      [-user|-sys] [OPTION] ... [COMMAND]
+   or: $prg-sys  [OPTION] ... [COMMAND]
+   or: $prg-user [OPTION] ... [COMMAND]
+   or: mktexfmt  FORMAT.fmt|BASE.base|FMTNAME.EXT
 
 Rebuild and manage TeX fmts and Metafont bases, collectively called
 "formats" here. (MetaPost no longer uses the past-equivalent "mems".)
@@ -1285,7 +1270,8 @@
 successfully built, else nonzero.
 
 Options:
-  --sys                   use TEXMFSYS{VAR,CONFIG} instead of TEXMF{VAR,CONFIG}
+  --sys                   use TEXMFSYS{VAR,CONFIG}
+  --user                  use TEXMF{VAR,CONFIG}
   --cnffile FILE          read FILE instead of fmtutil.cnf
                            (can be given multiple times, in which case
                            all the files are used)
@@ -1341,7 +1327,7 @@
   TEXMFLOCAL     \$TEXLIVE/texmf-local/web2c/fmtutil.cnf
   TEXMFDIST      \$TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf
 
-  For fmtutil:
+  For fmtutil-user:
   TEXMFCONFIG    \$HOME/.texliveYYYY/texmf-config/web2c/fmtutil.cnf
   TEXMFVAR       \$HOME/.texliveYYYY/texmf-var/web2c/fmtutil.cnf
   TEXMFHOME      \$HOME/texmf/web2c/fmtutil.cnf
@@ -1409,13 +1395,15 @@
   --no-error-if-no-engine option exists, since luajittex cannot be
   compiled on all platforms.)
 
-fmtutil vs. fmtutil-sys (fmtutil --sys):
+fmtutil-user (fmtutil -user) vs. fmtutil-sys (fmtutil -sys):
 
-  When fmtutil-sys is run or the command line option --sys is used, 
+  When fmtutil-sys is run or the command line option -sys is used, 
   TEXMFSYSCONFIG and TEXMFSYSVAR are used instead of TEXMFCONFIG and 
   TEXMFVAR, respectively.  This is the primary difference between 
-  fmtutil-sys and fmtutil.
+  fmtutil-sys and fmtutil-user.
 
+  See http://tug.org/texlive/scripts-sys-user.html for details.
+
   Other locations may be used if you give them on the command line, or
   these trees don't exist, or you are not using the original TeX Live.
 

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-04-16 17:26:57 UTC (rev 43842)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: tlmgr.pl 43566 2017-03-21 17:08:03Z karl $
+# $Id: tlmgr.pl 43803 2017-04-15 00:15:00Z preining $
 #
 # Copyright 2008-2017 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
@@ -6,8 +6,8 @@
 # or any later version.
 #
 
-my $svnrev = '$Revision: 43566 $';
-my $datrev = '$Date: 2017-03-21 18:08:03 +0100 (Tue, 21 Mar 2017) $';
+my $svnrev = '$Revision: 43803 $';
+my $datrev = '$Date: 2017-04-15 02:15:00 +0200 (Sat, 15 Apr 2017) $';
 my $tlmgrrevision;
 my $prg;
 if ($svnrev =~ m/: ([0-9]+) /) {
@@ -307,6 +307,9 @@
     "run-post" => 1,
     "function" => \&action_search
   },
+  "shell" => {
+    "function" => \&action_shell
+  },
   "uninstall" => {
     "options"  => { "force" => 1 },
     "run-post" => 0,
@@ -592,8 +595,8 @@
   #
   # Try to open the packagelog file, but do NOT die when that does not work
   if (!open(PACKAGELOG, ">>$packagelogfile")) {
-    debug("Cannot open package log file $packagelogfile for appending\n");
-    debug("Will not log package installation/removal/update for that run\n");
+    tlwarn("Cannot open package log file $packagelogfile for appending\n");
+    tlwarn("Will not log package installation/removal/update for that run\n");
     $packagelogfile = "";
   }
 
@@ -627,6 +630,12 @@
 
   my $ret = execute_action($action, @ARGV);
 
+  # close the special log file
+  if ($packagelogfile && !$::gui_mode) {
+    info("$prg: package log updated: $packagelogfile\n") if $packagelogged;
+    close(PACKAGELOG);
+  }
+
   # F_ERROR stops processing immediately, and prevents postactions from
   # being run (e.g., untar fails).  F_WARNING continues on, including
   # postactions (e.g., user tries to install 10 packages and the
@@ -715,12 +724,6 @@
     $run_post = 0;
   }
 
-  # close the special log file
-  if ($packagelogfile && !$::gui_mode) {
-    info("$prg: package log updated: $packagelogfile\n") if $packagelogged;
-    close(PACKAGELOG);
-  }
-
   return ($ret) if (!$run_post);
 
   # run external programs.
@@ -6495,7 +6498,208 @@
   }
   return 1;
 }
-    
+
+
+###########
+# tlmgr shell code
+sub action_shell {
+  my $protocol = 1;
+  our $promptfunc;
+
+  eval { 
+    require IO::Prompter;
+  };
+  if ($@) {
+    printf STDERR "Cannot find IO::Prompter module, reduced interactive functionality!\n";
+    $promptfunc =  sub {
+      my $default_prompt = "tlmgr>";
+      my $prompt = "";
+      my @options;
+      my @guarantee;
+      my @savedargs = @_;
+      while (defined(my $arg = shift @_)) {
+        if ($arg =~ m/^-prompt$/) {
+          $prompt .= shift @_;
+        } elsif ($arg =~ m/^-style$/) {
+          # ignore style here
+          shift @_;
+        } elsif ($arg =~ m/^-menu$/) {
+          my $options = shift @_;
+          @options = @$options;
+        } elsif ($arg =~ m/^-guarantee$/) {
+          my $guarantee = shift @_;
+          @guarantee = @$guarantee;
+        } elsif ($arg =~ m/^-/) {
+          print "ERROR unsupported prompt command, please report: $arg!\n";
+        } else {
+          $prompt .= $arg;
+        }
+      }
+      $prompt = ($prompt ? $prompt : $default_prompt );
+      print "$prompt ";
+      if (@options) {
+        print "(", join(",", @options), ") ";
+      }
+      my $ans = <STDIN>;
+      if (!defined($ans)) {
+        # we got Ctrl-D, just break out
+        return;
+      }
+      chomp($ans);
+      if (@guarantee) {
+        my $isok = 0;
+        for my $g (@guarantee) {
+          if ($ans eq $g) {
+            $isok = 1;
+            last;
+          }
+        }
+        if (!$isok) {
+          print("Please answer one of @guarantee!\n");
+          return($promptfunc->(@savedargs));
+        }
+      }
+      return($ans);
+    }
+  } else {
+    $promptfunc = \&IO::Prompter::prompt;
+  }
+  sub do_prompt {
+    our $promptfunc;
+    my $foo = $promptfunc->(@_);
+    return($foo);
+  }
+
+  print "protocol $protocol\n";
+  while (1) {
+    # print $prompt;
+    # my $ans = <STDIN>;
+    my $ans = do_prompt('tlmgr>');
+    # chomp $ans;
+    next if (!defined($ans));
+    my ($cmd, @args) = TeXLive::TLUtils::quotewords('\s+', 0, $ans);
+    next if (!defined($cmd));
+    if ($cmd eq "protocol") {
+      print "protocol $protocol\n";
+    } elsif ($cmd eq "version") {
+      print give_version(), "\n";
+    } elsif ($cmd =~ m/^(quit|end|byebye)$/i) {
+      return $F_OK;
+    } elsif ($cmd eq "setup-location") {
+      my $dest = shift @args;
+      print "ERROR not implemented: $cmd\n";
+    } elsif ($cmd =~ m/^(set|get)$/) {
+      my @valid_keys = qw/repository debug-translation machine-readable no-execute-actions require-verification verify-downloads/;
+      my $key = shift @args;
+      my $val = shift @args;
+      if (!$key) {
+        $key = do_prompt('Choose...', -menu => \@valid_keys, '>');
+      }
+      if (!$key) {
+        print("ERROR missing argument for get\n");
+        next;
+      }
+      if ($cmd eq "get" && defined($val)) {
+        print("ERROR no argument allowed for get\n");
+        next;
+      }
+      if ($cmd eq "set" && !defined($val)) {
+        if ($key eq "repository") {
+          $val = do_prompt('Enter repository:');
+        } else {
+          $val = do_prompt('Enter 1 for on, 0 for off:', -guarantee => [0,1]);
+        }
+        # deal with Ctrl-D
+        if (!defined($val)) {
+          print('ERROR Missing value for set.\n');
+          next;
+        }
+      }
+
+      if ($key eq "repository") {
+        if ($cmd eq "set") {
+          $location = scalar($val);
+        } else {
+          if (defined($location)) {
+            print "repository = $location\n";
+          } else {
+            print "repository = <UNDEFINED>\n";
+          }
+        }
+        print "OK\n";
+      } elsif ($key =~ m/^(debug-translation|machine-readable|no-execute-actions|require-verification|verify-downloads)$/i) {
+        if ($cmd eq "set") {
+          $opts{$key} = ($val eq "1" ? 1 : 0); ### THIS DOES NOT WORK??? TODO TODO
+          # special cases
+          $::debug_translation = $opts{"debug-translation"};
+          $::machinereadable = $opts{"machine-readable"};
+          $::no_execute_actions = $opts{'no-execute-actions'};
+        } else {
+          print "$key = ", ($opts{$key} ? 1 : 0), "\n";
+        }
+        print "OK\n";
+      } else {
+        print "ERROR unknown key $key\n";
+      }
+    } elsif ($cmd eq "load") {
+      my $what = shift @args;
+      if (!defined($what)) {
+        $what = do_prompt("Choose...", -menu => ['local', 'remote'], '>');
+      }
+      if ($what eq "local") {
+        init_local_db();
+        print "OK\n";
+      } elsif ($what eq "remote") {
+        init_tlmedia_or_die();
+        print "OK\n";
+      } else {
+        print "ERROR can only load 'local' or 'remote'\n";
+      }
+    } elsif ($cmd eq "save") {
+      $localtlpdb->save;
+      print "OK\n";
+    } elsif (defined($action_specification{$cmd})) {
+      # an action
+      if (!defined($action_specification{$cmd}{"function"})) {
+        print "ERROR action function not defined\n";
+        next;
+      }
+      # redo the option parsing
+      my %optarg;
+      if (defined($action_specification{$cmd}{'options'})) {
+        my %actopts = %{$action_specification{$cmd}{'options'}};
+        for my $k (keys %actopts) {
+          if ($actopts{$k} eq "1") {
+            $optarg{$k} = 1;
+          } else {
+            $optarg{"$k" . $actopts{$k}} = 1;
+          }
+        }
+      }
+      # save command line options for later restart, if necessary
+      @ARGV = @args;
+      my %savedopts = %opts;
+      %opts = ();
+      if (!GetOptions(\%opts, keys(%optarg))) {
+        print "ERROR unsupported arguments\n";
+        next;
+      }
+      my $ret = execute_action($cmd, @ARGV);
+      if ($ret & $F_ERROR) {
+        print "ERROR\n";
+      } elsif ($ret & $F_WARNING) {
+        print "OK\n";
+      } else {
+        print "OK\n";
+      }
+      %opts = %savedopts;
+    } else {
+      print "ERROR unknown command\n";
+    }
+  }
+}
+
+
 1;
 __END__
 

@@ -7545,6 +7749,11 @@
 
 =back
 
+=head2 shell
+
+Starts the TeX Live Manager Shell. 
+
+
 =head2 uninstall
 
 Uninstalls the entire TeX Live installation.  Options:

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl	2017-04-16 17:26:57 UTC (rev 43842)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: updmap.pl 43628 2017-03-28 17:55:13Z karl $
+# $Id: updmap.pl 43794 2017-04-15 00:12:54Z preining $
 # updmap - maintain map files for outline fonts.
 # (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
 # 
@@ -14,7 +14,7 @@
 # the original versions were licensed under the following agreement:
 # Anyone may freely use, modify, and/or distribute this file, without
 
-my $svnid = '$Id: updmap.pl 43628 2017-03-28 17:55:13Z karl $';
+my $svnid = '$Id: updmap.pl 43794 2017-04-15 00:12:54Z preining $';
 
 my $TEXMFROOT;
 BEGIN {
@@ -27,10 +27,10 @@
   unshift(@INC, "$TEXMFROOT/tlpkg");
 }
 
-my $lastchdate = '$Date: 2017-03-28 19:55:13 +0200 (Tue, 28 Mar 2017) $';
+my $lastchdate = '$Date: 2017-04-15 02:12:54 +0200 (Sat, 15 Apr 2017) $';
 $lastchdate =~ s/^\$Date:\s*//;
 $lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 43628 $';
+my $svnrev = '$Revision: 43794 $';
 $svnrev =~ s/^\$Revision:\s*//;
 $svnrev =~ s/\s*\$$//;
 my $version = "r$svnrev ($lastchdate)";
@@ -73,6 +73,7 @@
 
 my @cmdline_options = (
   "sys",
+  "user",
   "listfiles",
   "cnffile=s@", 
   "copy", 
@@ -172,28 +173,10 @@
     exit (0);
   }
 
-  # check if we are in *hidden* sys mode, in which case we switch
-  # to sys mode
-  # Nowdays we use -sys switch instead of simply overriding TEXMFVAR
-  # and TEXMFCONFIG
-  # This is used to warn users when they run updmap in usermode the first time.
-  # But it might happen that this script is called via another wrapper that
-  # sets TEXMFCONFIG and TEXMFVAR, and does not pass on the -sys option.
-  # for this case we check whether the SYS and non-SYS variants agree,
-  # and if, then switch to sys mode (with a warning)
-  if (($TEXMFSYSCONFIG eq $TEXMFCONFIG) && ($TEXMFSYSVAR eq $TEXMFVAR)) {
-    if (!$opts{'sys'}) {
-      print_warning("hidden sys mode found, switching to sys mode.\n");
-      $opts{'sys'} = 1;
-    }
-  }
+  ($texmfconfig, $texmfvar) = 
+    TeXLive::TLUtils::setup_sys_user_mode($prg, \%opts,
+      $TEXMFCONFIG, $TEXMFSYSCONFIG, $TEXMFVAR, $TEXMFSYSVAR);
 
-  if ($opts{'sys'}) {
-    # we are running as updmap-sys, make sure that the right tree is used
-    $texmfconfig = $TEXMFSYSCONFIG;
-    $texmfvar    = $TEXMFSYSVAR;
-  }
-
   if ($opts{'dvipdfmoutputdir'} && !defined($opts{'dvipdfmxoutputdir'})) {
     $opts{'dvipdfmxoutputdir'} = $opts{'dvipdfmoutputdir'};
     print_warning("Using --dvipdfmoutputdir options for dvipdfmx,"
@@ -1342,15 +1325,17 @@
     print_and_log("
 WARNING: you are switching to updmap's per-user mappings.
 
-You have run updmap (as opposed to updmap-sys) for the first time; this
+You have run updmap-user (as opposed to updmap-sys) for the first time; this
 has created configuration files which are local to your personal account.
 
 Any changes in system map files will *not* be automatically reflected in
 your files; furthermore, running updmap-sys will no longer have any
-effect for you.  As a consequence, you have to rerun updmap yourself
+effect for you.  As a consequence, you have to rerun updmap-user yourself
 after any change in the system directories; for example, if a new font
 package is added.
 
+See http://tug.org/texlive/scripts-sys-user.html for details.
+
 If you want to undo this, remove the files mentioned above.
 
 (Run $prg --help for full documentation of updmap.)
@@ -2240,8 +2225,9 @@
 
 sub help {
   my $usage = <<"EOF";
-Usage: $prg     [OPTION] ... [COMMAND]
-   or: $prg-sys [OPTION] ... [COMMAND]
+Usage: $prg [-user|-sys] [OPTION] ... [COMMAND]
+   or: $prg-user [OPTION] ... [COMMAND]
+   or: $prg-sys  [OPTION] ... [COMMAND]
 
 Update the default font map files used by pdftex (pdftex.map), dvips
 (psfonts.map), and dvipdfm(x), and optionally pxdvi, as determined by
@@ -2252,12 +2238,15 @@
 should be used as bitmaps and which as outlines, and to determine which
 font files are included, typically subsetted, in the PDF or PostScript output.
 
-updmap-sys is intended to affect the system-wide configuration, while
-updmap affects personal configuration files only, overriding the system
-files.  As a consequence, once updmap has been run, even a single time,
+updmap-sys (or updmap -sys) is intended to affect the system-wide 
+configuration, while updmap-user (or updmap -user) affects personal
+configuration files only, overriding the system files.  
+As a consequence, once updmap-user has been run, even a single time,
 running updmap-sys no longer has any effect.  (updmap-sys issues a
 warning in this situation.)
 
+See http://tug.org/texlive/scripts-sys-user.html for details.
+
 By default, the TeX filename database (ls-R) is also updated.
 
 The updmap system is regrettably complicated, for both inherent and
@@ -2289,6 +2278,7 @@
   --nomkmap                 do not recreate map files
   --nohash                  do not run texhash
   --sys                     affect system-wide files (equivalent to updmap-sys)
+  --user                    affect personal files (equivalent to updmap-user)
   -n, --dry-run             only show the configuration, no output
   --quiet, --silent         reduce verbosity
 
@@ -2323,7 +2313,7 @@
   only and are not like other map files.  dvipdfmx reads pdftex.map for
   the map entries for non-Kanji fonts.
   
-  If no option is given, so the invocation is just "updmap" or
+  If no option is given, so the invocation is just "updmap-user" or
   "updmap-sys", these output files are always recreated.
 
   Otherwise, if an option such as --enable or --disable is given, the
@@ -2402,7 +2392,7 @@
   TEXMFLOCAL     \$TEXLIVE/texmf-local/web2c/updmap.cfg
   TEXMFDIST      \$TEXLIVE/YYYY/texmf-dist/web2c/updmap.cfg
 
-  For updmap:
+  For updmap-user:
   TEXMFCONFIG    \$HOME/.texliveYYYY/texmf-config/web2c/updmap.cfg
   TEXMFVAR       \$HOME/.texliveYYYY/texmf-var/web2c/updmap.cfg
   TEXMFHOME      \$HOME/texmf/web2c/updmap.cfg
@@ -2484,11 +2474,11 @@
   (again separated by tab) containing '(not available)' for those
   map files that cannot be found.
  
-updmap vs. updmap-sys:
+updmap-user vs. updmap-sys:
 
   When updmap-sys is run, TEXMFSYSCONFIG and TEXMFSYSVAR are used
   instead of TEXMFCONFIG and TEXMFVAR, respectively.  This is the
-  primary difference between updmap-sys and updmap.
+  primary difference between updmap-sys and updmap-user.
 
   Other locations may be used if you give them on the command line, or
   these trees don't exist, or you are not using the original TeX Live.

Modified: trunk/Master/texmf-dist/bibtex/bib/beebe/typeset.bib
===================================================================
--- trunk/Master/texmf-dist/bibtex/bib/beebe/typeset.bib	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Master/texmf-dist/bibtex/bib/beebe/typeset.bib	2017-04-16 17:26:57 UTC (rev 43842)
@@ -2,9 +2,9 @@
 %%% ====================================================================
 %%%  BibTeX-file{
 %%%     author          = "Nelson H. F. Beebe",
-%%%     version         = "2.40",
-%%%     date            = "25 March 2017",
-%%%     time            = "14:33:04 MST",
+%%%     version         = "2.41",
+%%%     date            = "13 April 2017",
+%%%     time            = "17:16:13 MST",
 %%%     filename        = "typeset.bib",
 %%%     address         = "University of Utah
 %%%                        Department of Mathematics, 110 LCB
@@ -14,7 +14,7 @@
 %%%     telephone       = "+1 801 581 5254",
 %%%     FAX             = "+1 801 581 4148",
 %%%     URL             = "http://www.math.utah.edu/~beebe",
-%%%     checksum        = "23612 22456 105660 998354",
+%%%     checksum        = "31906 22719 107203 1010745",
 %%%     email           = "beebe at math.utah.edu, beebe at acm.org,
 %%%                        beebe at computer.org (Internet)",
 %%%     codetable       = "ISO/ASCII",
@@ -39,7 +39,7 @@
 %%%                        and PDF (Portable Document Format), and
 %%%                        sgml.bib covers SGML and HTML.
 %%%
-%%%                        At version 2.40, the year coverage looked
+%%%                        At version 2.41, the year coverage looked
 %%%                        like this:
 %%%
 %%%                             1881 (   1)    1927 (   0)    1973 (  10)
@@ -56,7 +56,7 @@
 %%%                             1892 (   0)    1938 (   0)    1984 (  40)
 %%%                             1893 (   0)    1939 (   1)    1985 (  33)
 %%%                             1894 (   0)    1940 (   1)    1986 (  59)
-%%%                             1895 (   0)    1941 (   1)    1987 (  54)
+%%%                             1895 (   0)    1941 (   1)    1987 (  55)
 %%%                             1896 (   0)    1942 (   0)    1988 (  40)
 %%%                             1897 (   0)    1943 (   0)    1989 (  30)
 %%%                             1898 (   1)    1944 (   0)    1990 (  33)
@@ -92,7 +92,7 @@
 %%%                             20xx (   2)
 %%%
 %%%                             Article:        320
-%%%                             Book:           301
+%%%                             Book:           302
 %%%                             InCollection:     5
 %%%                             InProceedings:   54
 %%%                             Manual:          42
@@ -103,7 +103,7 @@
 %%%                             Proceedings:     33
 %%%                             TechReport:      31
 %%%
-%%%                             Total entries:  836
+%%%                             Total entries:  837
 %%%
 %%%                        This bibliography has been collected from
 %%%                        bibliographies in the author's personal
@@ -507,6 +507,10 @@
 @String{pub-HARVARD-INFO-TECH:adr = "Cambridge, MA, USA"}
 @String{pub-HARVARD:adr         = "Cambridge, MA, USA"}
 
+ at String{pub-HAYDEN              = "Hayden Books"}
+ at String{pub-HAYDEN:adr          = "4300 West 62nd Street, Indianapolis, IN
+                                    46268, USA"}
+
 @String{pub-HYPHEN              = "Hyphen Press"}
 @String{pub-HYPHEN:adr          = "London, UK"}
 
@@ -10894,6 +10898,265 @@
                  Miscellaneous",
 }
 
+ at Book{Dougherty:1987:UTP,
+  editor =       "Dale Dougherty and Tim O'Reilly",
+  title =        "{UNIX} Text Processing",
+  publisher =    pub-HAYDEN,
+  address =      pub-HAYDEN:adr,
+  pages =        "xiv + 665",
+  year =         "1987",
+  ISBN =         "0-672-46291-5 (paperback)",
+  ISBN-13 =      "978-0-672-46291-7 (paperback)",
+  LCCN =         "Z286.D47 D68 1987",
+  bibdate =      "Thu Apr 13 17:06:28 MDT 2017",
+  bibsource =    "http://www.math.utah.edu/pub/tex/bib/typeset.bib;
+                 http://www.math.utah.edu/pub/tex/bib/unix.bib;
+                 z3950.loc.gov:7090/Voyager",
+  price =        "US\$26.95",
+  series =       "Hayden Books UNIX library system",
+  URL =          "ftp://ftp.ffii.org/pub/groff/contrib/documentation/utp/;
+                 http://books.google.com/books?id=H148AQAAIAAJ;
+                 http://catalog.hathitrust.org/api/volumes/oclc/15722288.html;
+                 http://proquest.safaribooksonline.com/?fpi=9780810462915;
+                 http://www.oreilly.com/openbook/utp/UnixTextProcessing.pdf
+                 http://proquest.tech.safaribooksonline.de/9780810462915",
+  acknowledgement = ack-nhfb,
+  keywords =     "awk; eqn; ex; format; make; mm; ms; pic; sed; tbl;
+                 troff; vi",
+  remark =       "Consulting editors: Stephen G. Kochan and Patrick H.
+                 Wood.",
+  subject =      "Desktop publishing; UNIX (Computer file)",
+  tableofcontents = "1 From Typewriters to Word Processors / 1 \\
+                 A Workspace / 2 \\
+                 Tools for Editing / 3 \\
+                 Document Formatting / 4 \\
+                 Printing / 6 \\
+                 Other UNIX Text-Processing Tools / 7 \\
+                 2 UNIX Fundamentals / 9 \\
+                 The UNIX Shell / 9 \\
+                 Output Redirection / 10 \\
+                 Special Characters / 14 \\
+                 Environment Variables / 15 \\
+                 Pipes and Filters / 16 \\
+                 Shell Scripts / 17 \\
+                 3 Learning vi / 19 \\
+                 Session 1: Basic Commands / 19 \\
+                 Opening a File / 20 \\
+                 Moving the Cursor / 22 \\
+                 Simple Edits / 25 \\
+                 Session 2: Moving Around in a Hurry / 32 \\
+                 Movement by Screens / 32 \\
+                 Movement by Text Blocks / 34 \\
+                 Movement by Searches / 35 \\
+                 Movement by Line Numbers / 37 \\
+                 Session 3: Beyond the Basics / 38 \\
+                 Command-Line Options / 38 \\
+                 Customizing vi / 40 \\
+                 Edits and Movement / 42 \\
+                 More Ways to Insert Text / 43 \\
+                 Using Buffers / 43 \\
+                 Marking Your Place / 45 \\
+                 Other Advanced Edits / 46 \\
+                 4 nroff and troff / 47 \\
+                 What the Formatter Does / 48 \\
+                 Using nroff / 51 \\
+                 Using troff / 51 \\
+                 The Markup Language / 54 \\
+                 Turning Filling On and Off / 55 \\
+                 Controlling Justification / 57 \\
+                 Hyphenation / 59 \\
+                 Page Layout / 60 \\
+                 Page Transitions / 70 \\
+                 Changing Fonts / 74 \\
+                 A First Look at Macros / 81 \\
+                 5 The ms Macros / 85 \\
+                 Formatting a Text File with ms / 86 \\
+                 Page Layout / 86 \\
+                 Paragraphs / 87 \\
+                 Changing Font and Point Size / 93 \\
+                 Displays / 97 \\
+                 Headings / 99 \\
+                 Cover Sheet Macros / 100 \\
+                 Miscellaneous Features / 102 \\
+                 Page Headers and Footers / 104 \\
+                 Problems on the First Page / 105 \\
+                 Extensions to ms / 105 \\
+                 6 The mm Macros / 107 \\
+                 Formatting a Text File / 107 \\
+                 Page Layout / 110 \\
+                 Justification / 114 \\
+                 Word Hyphenation / 115 \\
+                 Displays / 115 \\
+                 Changing Font and Point Size / 116 \\
+                 More about Displays / 121 \\
+                 Forcing a Page Break / 125 \\
+                 Formatting Lists / 126 \\
+                 Headings / 136 \\
+                 Table of Contents / 141 \\
+                 Footnotes and References / 142 \\
+                 Extensions to mm / 145 \\
+                 7 Advanced Editing / 149 \\
+                 The ex Editor / 149 \\
+                 Using ex Commands in vi / 151 \\
+                 Write Locally, Edit Globally / 151 \\
+                 Pattern Matching / 154 \\
+                 Writing and Quitting Files / 159 \\
+                 Reading In a File / 160 \\
+                 Executing UNIX Commands / 160 \\
+                 Editing Multiple Files / 163 \\
+                 Word Abbreviation / 165 \\
+                 Saving Commands with map / 166 \\
+                 8 Formatting with tbl / 169 \\
+                 Using tbl / 170 \\
+                 Specifying Tables / 170 \\
+                 A Simple Table Example / 171 \\
+                 Laying Out a Table / 172 \\
+                 Describing Column Formats / 173 \\
+                 Changing the Format within a Table / 181 \\
+                 Putting Text Blocks in a Column / 182 \\
+                 Breaking Up Long Tables / 184 \\
+                 Putting Titles on Tables / 185 \\
+                 A tbl Checklist / 186 \\
+                 Some Complex Tables / 186 \\
+                 9 Typesetting Equations with eqn / 191 \\
+                 A Simple eqn Example / 191 \\
+                 Using eqn / 192 \\
+                 Specifying Equations / 192 \\
+                 Spaces in Equations / 194 \\
+                 Using Braces for Grouping / 196 \\
+                 Special Character Names / 196 \\
+                 Special Symbols / 197 \\
+                 Other Positional Notation / 200 \\
+                 Diacritical Marks / 201 \\
+                 Defining Terms / 202 \\
+                 Quoted Text / 202 \\
+                 Fine-Tuning the Document / 203 \\
+                 Keywords and Precedence / 205 \\
+                 Problem Checklist / 205 \\
+                 10 Drawing Pictures / 207 \\
+                 The pic Preprocessor / 207 \\
+                 From Describing to Programming Drawings / 228 \\
+                 pic Enhancements / 236 \\
+                 11 A Miscellany of UNIX Commands / 239 \\
+                 Managing Your Files / 239 \\
+                 Viewing the Contents of a File / 243 \\
+                 Searching for Information in a File / 244 \\
+                 Proofing Documents / 247 \\
+                 Comparing Versions of the Same Document / 253 \\
+                 Manipulating Data / 260 \\
+                 Cleaning Up and Backing Up / 270 \\
+                 Compressing Files / 272 \\
+                 Communications / 272 \\
+                 Scripts of UNIX Sessions / 274 \\
+                 12 Let the Computer Do the Dirty Work / 275 \\
+                 Shell Programming / 275 \\
+                 ex Scripts / 284 \\
+                 Stream Editing / 288 \\
+                 A Proofreading Tool You Can Build / 303 \\
+                 13 The awk Programming Language / 309 \\
+                 Invoking awk / 310 \\
+                 Records and Fields / 310 \\
+                 Testing Fields / 311 \\
+                 Passing Parameters from a Shell Script / 311 \\
+                 Changing the Field Separator / 312 \\
+                 System Variables / 313 \\
+                 Looping / 313 \\
+                 awk Applications / 319 \\
+                 Testing Programs / 327 \\
+                 14 Writing nroff and troff Macros / 329 \\
+                 Comments / 329 \\
+                 Defining Macros / 330 \\
+                 Macro Names / 330 \\
+                 Macro Arguments / 332 \\
+                 Nested Macro Definitions / 333 \\
+                 Conditional Execution / 334 \\
+                 Interrupted Lines / 337 \\
+                 Number Registers / 338 \\
+                 Defining Strings / 342 \\
+                 Diversions / 343 \\
+                 Environment Switching / 345 \\
+                 Redefining Control and Escape Characters / 346 \\
+                 Debugging Your Macros / 347 \\
+                 Error Handling / 349 \\
+                 Macro Style / 350 \\
+                 15 Figures and Special Effects / 353 \\
+                 Formatter Escape Sequences / 353 \\
+                 Local Vertical Motions / 353 \\
+                 Local Horizontal Motions / 356 \\
+                 Absolute Motions / 357 \\
+                 Line Drawing / 358 \\
+                 Talking Directly to the Printer / 366 \\
+                 Marking a Vertical Position / 367 \\
+                 Overstriking Words or Characters / 368 \\
+                 Tabs, Leaders, and Fields / 372 \\
+                 Constant Spacing / 375 \\
+                 Pseudo-Fonts / 376 \\
+                 Character Output Translations / 377 \\
+                 Output Line Numbering / 378 \\
+                 Change Bars / 379 \\
+                 Form Letters / 380 \\
+                 Reading in Other Files or Program Output / 381 \\
+                 16 What's in a Macro Package? / 383 \\
+                 Just What Is a Macro Package, Revisited / 383 \\
+                 Building a Consistent Framework / 385 \\
+                 Page Transitions / 389 \\
+                 Page Transitions in ms / 390 \\
+                 Some Extensions to the Basic Package / 394 \\
+                 Other Exercises in Page Transition / 397 \\
+                 17 An Extended ms Macro Package / 405 \\
+                 Creating a Custom Macro Package / 405 \\
+                 Structured Technical Documents / 407 \\
+                 Figure and Table Headings / 415 \\
+                 Lists, Lists, and More Lists / 416 \\
+                 Source Code and Other Examples / 419 \\
+                 Notes, Cautions, and Warnings / 420 \\
+                 Table of Contents, Index, and Other End Lists / 422 \\
+                 18 Putting It All Together / 429 \\
+                 Saving an External Table of Contents / 430 \\
+                 Index Processing / 433 \\
+                 Let make Remember the Details / 444 \\
+                 Where to Go from Here / 447 \\
+                 A Editor Command Summary / 449 \\
+                 Pattern-Matching Syntax / 449 \\
+                 The vi Editor / 450 \\
+                 The ex Editor / 455 \\
+                 The sed Editor / 460 \\
+                 awk / 462 \\
+                 B Formatter Command Summary / 467 \\
+                 nroff/troff Command-Line Syntax / 467 \\
+                 nroff/troff Requests / 469 \\
+                 Escape sequences / 472 \\
+                 Predefined Number Registers / 473 \\
+                 Special Characters / 474 \\
+                 The ms macros / 476 \\
+                 The mm Macros / 479 \\
+                 tbl Command Characters and Words / 485 \\
+                 eqn Command Characters / 487 \\
+                 The pic Preprocessor / 490 \\
+                 C Shell Command Summary / 495 \\
+                 D Format of troff Width Tables / 501 \\
+                 The DESC File / 501 \\
+                 Font Description Files / 502 \\
+                 Compiling Font Files / 503 \\
+                 Font Usage Limitations / 503 \\
+                 E Comparing mm and ms / 505 \\
+                 Paragraphs / 505 \\
+                 Justification / 505 \\
+                 Displays / 505 \\
+                 Formatting Lists / 506 \\
+                 Change Font / 506 \\
+                 Change Point Size / 506 \\
+                 Headers and Footers / 506 \\
+                 Section Headings / 506 \\
+                 Footnotes / 507 \\
+                 F The format Macros / 509 \\
+                 Summary of the Macros / 509 \\
+                 G Selected Readings / 511 \\
+                 Introductory UNIX Texts / 511 \\
+                 Advanced Topics / 511 \\
+                 Index / dxiii",
+}
+
 @Book{Emerson:1987:TTU,
   author =       "Sandra L. Emerson and Karen Paulsell",
   title =        "Troff typesetting for {UNIX} systems",

Modified: trunk/Master/tlpkg/doc/releng.txt
===================================================================
--- trunk/Master/tlpkg/doc/releng.txt	2017-04-16 10:31:17 UTC (rev 43841)
+++ trunk/Master/tlpkg/doc/releng.txt	2017-04-16 17:26:57 UTC (rev 43842)
@@ -83,8 +83,11 @@
 This will fail because pretest is not set up, but that's ok; the idea is
 to check the output and ensure all is as basically ok.
 
-9. After first successful pretest build, do
-recreate=--recreate  # just once! to get catalogue updates.
+9. After that trial build, set
+recreate=--recreate  # just once! to get catalogue updates, and again:
+  mkdir /home/ftp/texlive/tlpretest/tlpkg
+  touch !$/texlive.tlpdb
+  force_rebuild=true cron.tl
 
 A. After tlnet freeze:
   Run tl-update-linked-scripts for consistency.



More information about the tex-live-commits mailing list