diff options
author | Karl Berry <karl@freefriends.org> | 2017-05-05 22:45:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-05-05 22:45:15 +0000 |
commit | 59f17143c54efcdc9b7d1b9c679659eedee33378 (patch) | |
tree | b7fbcb790c8e17852f7e57976d97a760c7f6b21f /Build/source | |
parent | 5ac3f72077e2326d5c7203f2c7e992f20f7ed37f (diff) |
ptex-fontmaps (5may17)
git-svn-id: svn://tug.org/texlive/trunk@44206 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
7 files changed, 261 insertions, 123 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.am b/Build/source/texk/texlive/linked_scripts/Makefile.am index 678d9f87b85..efd046a584c 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.am +++ b/Build/source/texk/texlive/linked_scripts/Makefile.am @@ -167,6 +167,7 @@ texmf_other_scripts = \ pmxchords/pmxchords.lua \ pst2pdf/pst2pdf.pl \ ptex-fontmaps/kanji-config-updmap-sys.sh \ + ptex-fontmaps/kanji-config-updmap-user.sh \ ptex-fontmaps/kanji-config-updmap.pl \ ptex-fontmaps/kanji-fontmap-creator.pl \ ptex2pdf/ptex2pdf.lua \ diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.in b/Build/source/texk/texlive/linked_scripts/Makefile.in index 299b8281fae..8e0d2d71767 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.in +++ b/Build/source/texk/texlive/linked_scripts/Makefile.in @@ -382,6 +382,7 @@ texmf_other_scripts = \ pmxchords/pmxchords.lua \ pst2pdf/pst2pdf.pl \ ptex-fontmaps/kanji-config-updmap-sys.sh \ + ptex-fontmaps/kanji-config-updmap-user.sh \ ptex-fontmaps/kanji-config-updmap.pl \ ptex-fontmaps/kanji-fontmap-creator.pl \ ptex2pdf/ptex2pdf.lua \ diff --git a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-user.sh b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-user.sh new file mode 100755 index 00000000000..8426f66e57f --- /dev/null +++ b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-user.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# kanji-config-updmap-user: +# copy of fmtutil-sys by Thomas Esser, public domain. + +# wrapper script for updmap-setup-kanji with TEXMFVAR and TEXMFCONFIG set to +# TEXMFVAR / TEXMFCONFIG + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' +export PATH + +exec kanji-config-updmap --user ${1+"$@"} + diff --git a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl index f1b88fbe12c..0caff69f627 100755 --- a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl +++ b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl @@ -1,11 +1,12 @@ #!/usr/bin/env perl # kanji-config-updmap: setup Japanese font embedding -# Version 20170114.0 +# Version 20170505.0 # # formerly known as updmap-setup-kanji # # Copyright 2004-2006 by KOBAYASHI R. Taizo for the shell version (updmap-otf) -# Copyright 2011-2016 by PREINING Norbert +# Copyright 2011-2017 by PREINING Norbert +# Copyright 2016-2017 by Japanese TeX Development Community # # This file is licensed under GPL version 3 or any later version. # For copyright statements see end of file. @@ -21,7 +22,7 @@ use Getopt::Long qw(:config no_autoabbrev ignore_case_always); use strict; my $prg = "kanji-config-updmap"; -my $version = '20170114.0'; +my $version = '20170505.0'; my $updmap_real = "updmap"; my $updmap = $updmap_real; @@ -30,7 +31,9 @@ my $dry_run = 0; my $opt_help = 0; my $opt_jis = 0; my $opt_sys = 0; +my $opt_user = 0; my $opt_mode = "ja"; +my $opt_old = 0; if (! GetOptions( "n|dry-run" => \$dry_run, @@ -41,8 +44,10 @@ if (! GetOptions( "sc" => sub { $opt_mode = "sc"; }, "tc" => sub { $opt_mode = "tc"; }, "ko" => sub { $opt_mode = "ko"; }, - "sys" => \$opt_sys, - "version" => sub { print &version(); exit(0); }, ) ) { + "sys" => \$opt_sys, + "user" => \$opt_user, + "old" => \$opt_old, + "version" => sub { print &version(); exit(0); }, ) ) { die "Try \"$0 --help\" for more information.\n"; } @@ -51,6 +56,16 @@ sub win32 { return ($^O=~/^MSWin(32|64)$/i); } my $nul = (win32() ? 'nul' : '/dev/null') ; +if ($opt_user && $opt_sys) { + die "Only one of -user and -sys can be used!"; +} + +if (defined($ARGV[0]) && $ARGV[0] ne "status") { + if (!($opt_user || $opt_sys)) { + die "Either -user or -sys mode is required."; + } +} + if ($dry_run) { $updmap = "echo updmap"; @@ -58,6 +73,22 @@ if ($dry_run) { if ($opt_sys) { $updmap = "$updmap --sys" ; $updmap_real = "$updmap_real --sys" ; +} else { + # TeX Live 2017 requires --user option + # try to determine the version of updmap installed + my $updver = `updmap --version 2>&1`; + if ($updver =~ m/^updmap version r([0-9]*) /) { + if ($1 >= 44080) { + $updmap = "$updmap --user" ; + $updmap_real = "$updmap_real --user" ; + } # else nothing to do, already set up for old updmap + } else { + # not recognized updmap -> assume new updmap unless --old + if (!$opt_old) { + $updmap = "$updmap --user" ; + $updmap_real = "$updmap_real --user" ; + } + } } if ($opt_help) { @@ -102,7 +133,8 @@ my %representatives = ( "cjkunifonts-ttf" => "uming.ttf", }, "tc" => { - "ms" => "mingliu.ttc", + "ms" => "msjh.ttf", + "ms-win10" => "msjh.ttc", "dynacomware" => "LiSongPro.ttf", "adobe" => "AdobeMingStd-Light.otf", "arphic" => "bsmi00lp.ttf", @@ -183,7 +215,13 @@ sub Usage { Simplified Chinese (NN=sc), Traditional Chinese (NN=tc) --NN short for --mode=NN --jis2004 use JIS2004 variants for default fonts of (u)pTeX - --sys run in sys mode, i.e., call updmap-sys + --sys run in sys mode, i.e., call updmap -sys + --user run in user mode, i.e., call updmap -user or updmap + by checking the version of the updmap script. If a + non-parsable output of `updmap --version' is found, a new + updmap with --user option is assumed. If this is not the + case, use --old. + --old Makes $prg call `updmap' without --user argument in user mode. --version show version information and exit EOF @@ -311,7 +349,7 @@ sub SetupReplacement { ms ms-osx moga-mobo moga-mobo-ex ume ipa ipaex/; } elsif ($opt_mode eq 'tc') { - @testlist = qw/dynacomware adobe ms arphic cjkunifonts cjkunifonts-ttf/; + @testlist = qw/dynacomware adobe ms-win10 ms arphic cjkunifonts cjkunifonts-ttf/; } elsif ($opt_mode eq 'sc') { @testlist = qw/fandol adobe ms arphic cjkunifonts cjkunifonts-ttf/; } elsif ($opt_mode eq 'ko') { diff --git a/Build/source/texk/texlive/linked_scripts/scripts.lst b/Build/source/texk/texlive/linked_scripts/scripts.lst index 78b6b80736d..5ba124a3981 100644 --- a/Build/source/texk/texlive/linked_scripts/scripts.lst +++ b/Build/source/texk/texlive/linked_scripts/scripts.lst @@ -112,6 +112,7 @@ pkfix/pkfix.pl pmxchords/pmxchords.lua pst2pdf/pst2pdf.pl ptex-fontmaps/kanji-config-updmap-sys.sh +ptex-fontmaps/kanji-config-updmap-user.sh ptex-fontmaps/kanji-config-updmap.pl ptex-fontmaps/kanji-fontmap-creator.pl ptex2pdf/ptex2pdf.lua diff --git a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl index fd0232b7c2b..d351e8d0299 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 43794 2017-04-15 00:12:54Z preining $ +# $Id: fmtutil.pl 44190 2017-05-04 21:38:43Z 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 43794 2017-04-15 00:12:54Z preining $'; -my $lastchdate = '$Date: 2017-04-15 02:12:54 +0200 (Sat, 15 Apr 2017) $'; +my $svnid = '$Id: fmtutil.pl 44190 2017-05-04 21:38:43Z preining $'; +my $lastchdate = '$Date: 2017-05-04 23:38:43 +0200 (Thu, 04 May 2017) $'; $lastchdate =~ s/^\$Date:\s*//; $lastchdate =~ s/ \(.*$//; -my $svnrev = '$Revision: 43794 $'; +my $svnrev = '$Revision: 44190 $'; $svnrev =~ s/^\$Revision:\s*//; $svnrev =~ s/\s*\$$//; my $version = "r$svnrev ($lastchdate)"; @@ -62,6 +62,9 @@ my @deferred_stdout; (our $prg = basename($0)) =~ s/\.pl$//; +# make sure that the main binary path is available at the front +TeXLive::TLUtils::prepend_own_path(); + # sudo sometimes does not reset the home dir of root, check on that # see more comments at the definition of the function itself # this function checks by itself whether it is running on windows or not diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index 26c3235d097..f59d3ec7466 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 44146 2017-05-01 22:53:26Z karl $ +# $Id: tlmgr.pl 44189 2017-05-04 17:31:52Z karl $ # # Copyright 2008-2017 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # -my $svnrev = '$Revision: 44146 $'; -my $datrev = '$Date: 2017-05-02 00:53:26 +0200 (Tue, 02 May 2017) $'; +my $svnrev = '$Revision: 44189 $'; +my $datrev = '$Date: 2017-05-04 19:31:52 +0200 (Thu, 04 May 2017) $'; my $tlmgrrevision; my $prg; if ($svnrev =~ m/: ([0-9]+) /) { @@ -5519,8 +5519,8 @@ sub action_conf { if (!defined($arg)) { texconfig_conf_mimic(); - } elsif ($arg !~ /^(tlmgr|texmf|updmap)$/) { - warn "$prg: unknown conf arg: $arg (try tlmgr or texmf or updmap)\n"; + } elsif ($arg !~ /^(tlmgr|texmf|updmap|auxtrees)$/) { + warn "$prg: unknown conf arg: $arg (try tlmgr or texmf or updmap or auxtrees)\n"; return($F_ERROR); } else { @@ -5532,7 +5532,7 @@ sub action_conf { chomp (my $TEXMFCONFIG = `kpsewhich -var-value=TEXMFCONFIG`); $fn || ( $fn = "$TEXMFCONFIG/tlmgr/config" ) ; $cf = TeXLive::TLConfFile->new($fn, "#", "="); - } elsif ($arg eq "texmf") { + } elsif ($arg eq "texmf" || $arg eq "auxtrees") { $fn || ( $fn = "$Master/texmf.cnf" ) ; $cf = TeXLive::TLConfFile->new($fn, "[%#]", "="); } elsif ($arg eq "updmap") { @@ -5541,9 +5541,13 @@ sub action_conf { } else { die "Should not happen, conf arg=$arg"; } - my ($key,$val,$str) = @ARGV; + my ($key,$val) = @ARGV; + # make sure that in case of tlmgr conf auxtrees (without anything else) + # we add the "show" argument which makes it easier to do stuff. + $key = "show" if ($arg eq "auxtrees" && !defined($key)); + if (!defined($key)) { - # show all settings + # show all settings (not auxtrees case!) if ($cf) { info("$arg configuration values (from $fn):\n"); for my $k ($cf->keys) { @@ -5554,92 +5558,87 @@ sub action_conf { return($F_WARNING); } } else { - if ($key eq "auxtrees") { - if ($arg eq "texmf") { - my $tmfa = 'TEXMFAUXTREES'; - my $tv = $cf->value($tmfa); - if (!$val || $val eq "show") { + if ($arg eq "auxtrees") { + my $tmfa = 'TEXMFAUXTREES'; + my $tv = $cf->value($tmfa); + if (!$key || $key eq "show") { + if (defined($tv)) { + $tv =~ s/^\s*//; + $tv =~ s/\s*$//; + $tv =~ s/,$//; + my @foo = split(',', $tv); + print "List of auxiliary texmf trees:\n" if (@foo); + for my $f (@foo) { + print " $f\n"; + } + return($F_OK); + } else { + print "$prg: no auxiliary texmf trees defined.\n"; + return($F_OK); + } + } elsif ($key eq "add") { + if (defined($val)) { if (defined($tv)) { - $tv =~ s/^\s*{//; - $tv =~ s/}\s*$//; + $tv =~ s/^\s*//; + $tv =~ s/\s*$//; $tv =~ s/,$//; my @foo = split(',', $tv); - print "List of auxiliary texmf trees:\n" if (@foo); + my @new; + my $already = 0; for my $f (@foo) { - print " $f\n"; - } - return($F_OK); - } else { - print "$prg: no auxiliary texmf trees defined.\n"; - return($F_OK); - } - } elsif ($val eq "add") { - if (defined($str)) { - if (defined($tv)) { - $tv =~ s/^\s*{//; - $tv =~ s/}\s*$//; - $tv =~ s/,$//; - my @foo = split(',', $tv); - my @new; - my $already = 0; - for my $f (@foo) { - if ($f eq $str) { - tlwarn("$prg: already registered auxtree: $str\n"); - return ($F_WARNING); - } else { - push @new, $f; - } + if ($f eq $val) { + tlwarn("$prg: already registered auxtree: $val\n"); + return ($F_WARNING); + } else { + push @new, $f; } - push @new, $str; - $cf->value($tmfa, '{' . join(',', @new) . ',}'); - } else { - $cf->value($tmfa, '{' . $str . ',}'); } + push @new, $val; + $cf->value($tmfa, join(',', @new) . ','); } else { - tlwarn("$prg: missing argument for auxtrees add\n"); - return($F_ERROR); + $cf->value($tmfa, $val . ','); } - } elsif ($val eq "remove") { - if (defined($str)) { - if (defined($tv)) { - $tv =~ s/^\s*{//; - $tv =~ s/}\s*$//; - $tv =~ s/,$//; - my @foo = split(',', $tv); - my @new; - my $removed = 0; - for my $f (@foo) { - if ($f ne $str) { - push @new, $f; - } else { - $removed = 1; - } + } else { + tlwarn("$prg: missing argument for auxtrees add\n"); + return($F_ERROR); + } + } elsif ($key eq "remove") { + if (defined($val)) { + if (defined($tv)) { + $tv =~ s/^\s*//; + $tv =~ s/\s*$//; + $tv =~ s/,$//; + my @foo = split(',', $tv); + my @new; + my $removed = 0; + for my $f (@foo) { + if ($f ne $val) { + push @new, $f; + } else { + $removed = 1; } - if ($removed) { - if ($#new >= 0) { - $cf->value($tmfa, '{' . join(',', @new) . ',}'); - } else { - $cf->delete_key($tmfa); - } + } + if ($removed) { + if ($#new >= 0) { + $cf->value($tmfa, join(',', @new) . ','); } else { - tlwarn("$prg: not defined as auxiliary texmf tree: $str\n"); - return($F_WARNING); + $cf->delete_key($tmfa); } } else { - tlwarn("$prg: no auxiliary texmf trees defined, " - . "so nothing removed\n"); + tlwarn("$prg: not defined as auxiliary texmf tree: $val\n"); return($F_WARNING); } } else { - tlwarn("$prg: missing argument for auxtrees remove\n"); - return($F_ERROR); + tlwarn("$prg: no auxiliary texmf trees defined, " + . "so nothing removed\n"); + return($F_WARNING); } } else { - tlwarn("$prg: unknown auxtrees operation: $val\n"); + tlwarn("$prg: missing argument for auxtrees remove\n"); return($F_ERROR); } } else { - tlwarn("$prg: auxtrees not suitable for $arg\n"); + tlwarn("$prg: unknown auxtrees operation: $key\n"); return($F_ERROR); } } elsif (!defined($val)) { @@ -5665,7 +5664,7 @@ sub action_conf { } else { info("$arg $key default value: $defval"); } - info(" (kpsewhich -var-value)\n"); + info(" (from kpsewhich -var-value)\n"); } } } @@ -5864,13 +5863,12 @@ sub action_shell { } chomp($ans); if (@options) { - $ans--; - if ($ans >= 0 && $ans <= $#options) { - $ans = $options[$ans]; - return($ans); + if ($ans =~ /^[0-9]+$/ && 0 <= $ans - 1 && $ans - 1 <= $#options) { + $ans = $options[$ans - 1]; } else { - print "ERROR invalid answer\n"; - return; + print "ERROR invalid answer $ans\n"; + # return empty string so caller knows not to continue + $ans = ""; } } if (@guarantee) { @@ -5882,7 +5880,7 @@ sub action_shell { } } if (!$isok) { - print("Please answer one of @guarantee!\n"); + print("Please answer one of: @guarantee\n"); return(do_prompt(@savedargs)); } } @@ -5907,19 +5905,27 @@ sub action_shell { } elsif ($cmd eq "setup-location") { my $dest = shift @args; print "ERROR not implemented: $cmd\n"; + } elsif ($cmd eq "restart") { + exec("tlmgr", @::SAVEDARGV); + } elsif ($cmd =~ m/^(set|get)$/) { - my @valid_keys = qw/repository debug-translation machine-readable no-execute-actions require-verification verify-downloads/; + my @valid_bool_keys + = qw/debug-translation machine-readable no-execute-actions + require-verification verify-downloads/; + my @valid_string_keys = qw/repository/; + my @valid_keys = (@valid_bool_keys, @valid_string_keys); + # my $key = shift @args; my $val = shift @args; if (!$key) { - $key = do_prompt('Choose...', -menu => \@valid_keys, '>'); + $key = do_prompt('Choose one of...', -menu => \@valid_keys, '>'); } if (!$key) { - print("ERROR missing argument for get\n"); + print("ERROR missing key argument for get/set\n"); next; } if ($cmd eq "get" && defined($val)) { - print("ERROR no argument allowed for get\n"); + print("ERROR argument not allowed for get: $val\n"); next; } if ($cmd eq "set" && !defined($val)) { @@ -5930,7 +5936,7 @@ sub action_shell { } # deal with Ctrl-D if (!defined($val)) { - print("ERROR Missing value for set.\n"); + print("ERROR missing value for set\n"); next; } } @@ -5939,16 +5945,23 @@ sub action_shell { if ($cmd eq "set") { $location = scalar($val); } else { - if (defined($location)) { + if (defined($location) && $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)$/) { + } elsif (TeXLive::TLUtils::member($key, @valid_bool_keys)) { if ($cmd eq "set") { - $opts{$key} = ($val eq "1" ? 1 : 0); + if ($val eq "0") { + $opts{$key} = 0; + } elsif ($val eq "1") { + $opts{$key} = 1; + } else { + print "ERROR invalid value $val for key $key\n"; + next; + } # special cases $::debug_translation = $opts{"debug-translation"}; $::machinereadable = $opts{"machine-readable"}; @@ -5958,7 +5971,7 @@ sub action_shell { } print "OK\n"; } else { - print "ERROR unknown key $key\n"; + print "ERROR unknown get/set key $key\n"; } } elsif ($cmd eq "load") { my $what = shift @args; @@ -5972,7 +5985,7 @@ sub action_shell { init_tlmedia_or_die(); print "OK\n"; } else { - print "ERROR can only load 'local' or 'remote'\n"; + print "ERROR can only load 'local' or 'remote', not $what\n"; } } elsif ($cmd eq "save") { $localtlpdb->save; @@ -5980,7 +5993,7 @@ sub action_shell { } elsif (defined($action_specification{$cmd})) { # an action if (!defined($action_specification{$cmd}{"function"})) { - print "ERROR action function not defined\n"; + print "ERROR undefined action function $cmd\n"; next; } # redo the option parsing @@ -6018,7 +6031,7 @@ sub action_shell { } %opts = %savedopts; } else { - print "ERROR unknown command\n"; + print "ERROR unknown command $cmd\n"; } } } @@ -7124,7 +7137,7 @@ checking the TL development repository. =back =head2 conf [texmf|tlmgr|updmap [--conffile I<file>] [--delete] [I<key> [I<value>]]] -=head2 conf texmf [--conffile I<file>] auxtrees [show|add|delete] [I<value>] +=head2 conf auxtrees [--conffile I<file>] [show|add|delete] [I<value>] With only C<conf>, show general configuration information for TeX Live, including active configuration files, path settings, and more. This is @@ -7143,33 +7156,34 @@ out). If I<value> is given in addition, I<key> is set to I<value> in the respective file. I<No error checking is done!> +The C<PATH> value shown by C<conf> is as used by C<tlmgr>. The +directory in which the C<tlmgr> executable is found is automatically +prepended to the PATH value inherited from the environment. + Here is a practical example of changing configuration values. If the execution of (some or all) system commands via C<\write18> was left enabled during installation, you can disable it afterwards: tlmgr conf texmf shell_escape 0 -For C<texmf>, an additional subcommand C<auxtrees> allows adding and -removing arbitrary additional texmf trees, completely under user -control. C<texmf auxtrees show> shows the list of additional trees, -C<texmf auxtrees add> I<tree> adds a tree to the list, and C<texmf -auxtrees remove> I<tree> removes a tree from the list (if present). This -works by manipulating the Kpathsea variable C<TEXMFAUXTREES>, in +The subcommand C<auxtrees> allows adding and removing arbitrary +additional texmf trees, completely under user control. C<auxtrees show> +shows the list of additional trees, C<auxtrees add> I<tree> adds a tree +to the list, and C<auxtrees remove> I<tree> removes a tree from the list +(if present). The trees should not contain an C<ls-R> file. This works +by manipulating the Kpathsea variable C<TEXMFAUXTREES>, in C<ROOT/texmf.cnf>. Example: - tlmgr conf texmf auxtrees add /my/quick/test/tree - tlmgr conf texmf auxtrees remove /my/quick/test/tree + tlmgr conf auxtrees add /quick/test/tree + tlmgr conf auxtrees remove /quick/test/tree In all cases the configuration file can be explicitly specified via the option C<--conffile> I<file>, if desired. -The C<PATH> value shown is as used by C<tlmgr>. The directory in which -the C<tlmgr> executable is found is automatically prepended to the PATH -value inherited from the environment. - -Warning: The general facility is here, but tinkering with settings in -this way is strongly discouraged. Again, no error checking on either -keys or values is done, so any sort of breakage is possible. +Warning: The general facility for changing configuration values is here, +but tinkering with settings in this way is strongly discouraged. Again, +no error checking on either keys or values is done, so any sort of +breakage is possible. =head2 dump-tlpdb [--local|--remote] @@ -7855,8 +7869,63 @@ C<tables> (unless they also contain the word C<table> on its own). =head2 shell -Starts the TeX Live Manager Shell. +Starts an interactive mode, where tlmgr prompts for commands. This can +be used directly, or for scripting. The first line of output is +C<protocol> I<n>, where I<n> is an unsigned number identifying the +protocol version (currently 1). + +In general, tlmgr actions that can be given on the command line +translate to commands in this shell mode. For example, you can say +C<update --list> to see what would be updated. The TLPDB is loaded the +first time it is needed (not at the beginning), and used for the rest of +the session. + +Besides these actions, a few commands are specific to shell mode: + +=over 4 + +=item protocol + +Print C<protocol I<n>>, the current protocol version. + +=item help + +Print pointers to this documentation. + +=item version + +Print tlmgr version information. +=item quit, end, bye, byebye, EOF + +Exit. + +=item restart + +Restart C<tlmgr shell> with the original command line; most useful when +developing C<tlmgr>. + +=item load [local|remote] + +Explicitly load the local or remote, respectively, TLPDB. + +=item save + +Save the local TLPDB, presumably after other operations have changed it. + +=item get [I<var>] +=item set [I<var> [I<val>]] + +Get the value of I<var>, or set it to I<val>. Possible I<var> names: +C<debug-translation>, C<machine-readable>, C<no-execute-actions>, +C<require-verification>, C<verify-downloads>, and C<repository>. All +except C<repository> are booleans, taking values 0 and 1, and behave +like the corresponding command line option. The C<repository> variable +takes a string, and sets the remote repository location. + +If I<var> or then I<val> is not specified, it is prompted for. + +=back =head2 uninstall @@ -8740,6 +8809,7 @@ This script and its documentation were written for the TeX Live distribution (L<http://tug.org/texlive>) and both are licensed under the GNU General Public License Version 2 or later. +$Id$ =cut # to remake HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html |