diff options
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLConfig.pm | 6 | ||||
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLUtils.pm | 54 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl | 66 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl | 233 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/texlive/updmap.pl | 62 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bib/beebe/typeset.bib | 279 | ||||
-rw-r--r-- | Master/tlpkg/doc/releng.txt | 7 |
7 files changed, 606 insertions, 101 deletions
diff --git a/Build/source/texk/tests/TeXLive/TLConfig.pm b/Build/source/texk/tests/TeXLive/TLConfig.pm index c1f6bbb1ff8..5e4deea47af 100644 --- a/Build/source/texk/tests/TeXLive/TLConfig.pm +++ b/Build/source/texk/tests/TeXLive/TLConfig.pm @@ -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 @@ BEGIN { # 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. diff --git a/Build/source/texk/tests/TeXLive/TLUtils.pm b/Build/source/texk/tests/TeXLive/TLUtils.pm index 8876057f73a..36d440344be 100644 --- a/Build/source/texk/tests/TeXLive/TLUtils.pm +++ b/Build/source/texk/tests/TeXLive/TLUtils.pm @@ -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 @@ C<TeXLive::TLUtils> -- utilities used in TeX Live infrastructure 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 @@ BEGIN { &report_tlpdb_differences &setup_persistent_downloads &mktexupd + &setup_sys_user_mode &nulldev &get_full_line &sort_archs @@ -3979,6 +3981,56 @@ sub mktexupd { 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; diff --git a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl index 89eccc5ca01..fd0232b7c2b 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl @@ -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 @@ BEGIN { 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 @@ my @cmdline_cmds = ( # in same order as help message our @cmdline_options = ( # in same order as help message "sys", + "user", "cnffile=s@", "fmtdir=s", "no-engine-subdir", @@ -151,6 +152,12 @@ sub main { # 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 @@ sub main { } # 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 @@ sub read_fmtutil_file { # 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 version { 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 @@ By default, the return status is zero if all formats requested are 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 @@ Explanation of trees and files normally used: 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,12 +1395,14 @@ Disabling formats: --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. diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index 0afba48116b..6a79657c531 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl @@ -1,13 +1,13 @@ #!/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 # 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 @@ my %action_specification = ( "run-post" => 1, "function" => \&action_search }, + "shell" => { + "function" => \&action_shell + }, "uninstall" => { "options" => { "force" => 1 }, "run-post" => 0, @@ -592,8 +595,8 @@ for the full story.\n"; # # 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 @@ for the full story.\n"; 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 @@ sub execute_action { $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 @@ sub check_on_writable { } 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 @@ C<tables> (unless they also contain the word C<table> on its own). =back +=head2 shell + +Starts the TeX Live Manager Shell. + + =head2 uninstall Uninstalls the entire TeX Live installation. Options: diff --git a/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl b/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl index b027a0fe225..e7cadcfc0d4 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl @@ -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 @@ BEGIN { 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 $updLSR; my @cmdline_options = ( "sys", + "user", "listfiles", "cnffile=s@", "copy", @@ -172,27 +173,9 @@ sub main { 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; - } - } - - if ($opts{'sys'}) { - # we are running as updmap-sys, make sure that the right tree is used - $texmfconfig = $TEXMFSYSCONFIG; - $texmfvar = $TEXMFSYSVAR; - } + ($texmfconfig, $texmfvar) = + TeXLive::TLUtils::setup_sys_user_mode($prg, \%opts, + $TEXMFCONFIG, $TEXMFSYSCONFIG, $TEXMFVAR, $TEXMFSYSVAR); if ($opts{'dvipdfmoutputdir'} && !defined($opts{'dvipdfmxoutputdir'})) { $opts{'dvipdfmxoutputdir'} = $opts{'dvipdfmoutputdir'}; @@ -1342,15 +1325,17 @@ sub mkMaps { 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 version { 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 @@ Among other things, these map files are used to determine which fonts 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 @@ Options: --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 @@ The main output: 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 @@ Explanation of trees and files normally used: 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 @@ Listing of maps: (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. diff --git a/Master/texmf-dist/bibtex/bib/beebe/typeset.bib b/Master/texmf-dist/bibtex/bib/beebe/typeset.bib index 000771a0824..2f570bcf3e2 100644 --- a/Master/texmf-dist/bibtex/bib/beebe/typeset.bib +++ b/Master/texmf-dist/bibtex/bib/beebe/typeset.bib @@ -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"} +@String{pub-HAYDEN = "Hayden Books"} +@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", } +@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", diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt index 4ecf7bf8123..1808e02c4cd 100644 --- a/Master/tlpkg/doc/releng.txt +++ b/Master/tlpkg/doc/releng.txt @@ -83,8 +83,11 @@ for p in *conv hbf2gf; do cp /home/ftp/mirror/rsync.tex.ac.uk/CTAN/language/chin 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. |