summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-05-05 22:45:15 +0000
committerKarl Berry <karl@freefriends.org>2017-05-05 22:45:15 +0000
commit59f17143c54efcdc9b7d1b9c679659eedee33378 (patch)
treeb7fbcb790c8e17852f7e57976d97a760c7f6b21f /Build
parent5ac3f72077e2326d5c7203f2c7e992f20f7ed37f (diff)
ptex-fontmaps (5may17)
git-svn-id: svn://tug.org/texlive/trunk@44206 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/texlive/linked_scripts/Makefile.am1
-rw-r--r--Build/source/texk/texlive/linked_scripts/Makefile.in1
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-user.sh24
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl54
-rw-r--r--Build/source/texk/texlive/linked_scripts/scripts.lst1
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/fmtutil.pl11
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl292
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