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