summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/tests/TeXLive/TLConfig.pm4
-rw-r--r--Build/source/texk/tests/TeXLive/TLUtils.pm20
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/fmtutil.pl98
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl15
-rw-r--r--Build/source/texk/texlive/tl_scripts/fmtutil.cnf8
5 files changed, 79 insertions, 66 deletions
diff --git a/Build/source/texk/tests/TeXLive/TLConfig.pm b/Build/source/texk/tests/TeXLive/TLConfig.pm
index cf68faf5c00..8e3117a6b72 100644
--- a/Build/source/texk/tests/TeXLive/TLConfig.pm
+++ b/Build/source/texk/tests/TeXLive/TLConfig.pm
@@ -5,7 +5,7 @@
package TeXLive::TLConfig;
-my $svnrev = '$Revision: 52112 $';
+my $svnrev = '$Revision: 52745 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -232,7 +232,7 @@ our %TLPDBSettings = (
our $WindowsMainMenuName = "TeX Live $ReleaseYear";
# Comma-separated list of engines which do not exist on all platforms.
-our $PartialEngineSupport = "luajittex,mfluajit";
+our $PartialEngineSupport = "luahbtex,luajittex,mfluajit";
# Flags for error handling across the scripts and modules
# all fine
diff --git a/Build/source/texk/tests/TeXLive/TLUtils.pm b/Build/source/texk/tests/TeXLive/TLUtils.pm
index 0aab6a6248c..9ee9674214e 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: 52568 $';
+my $svnrev = '$Revision: 52706 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -1129,6 +1129,7 @@ that is a fatal error.
=cut
sub copy {
+ #too verbose ddebug("TLUtils::copy(", join (",", @_), "\n");
my $infile = shift;
my $filemode = 0;
my $dereference = 0;
@@ -1180,12 +1181,13 @@ sub copy {
if ($linktarget !~ m,^/,) {
$infile = Cwd::abs_path(dirname($infile)) . "/$linktarget";
}
+ ddebug("TLUtils::copy: dereferencing symlink $infile -> $linktarget");
}
if (-l $infile) {
my $linktarget = readlink($infile);
my $dest = "$destdir/$filename";
- debug("TLUtils::copy: doing symlink($linktarget,$dest)"
+ ddebug("TLUtils::copy: doing symlink($linktarget,$dest)"
. " [from readlink($infile)]\n");
symlink($linktarget, $dest) || die "symlink($linktarget,$dest) failed: $!";
} else {
@@ -2521,7 +2523,7 @@ END_COMPRESSOR_BAD
$::progs{'compressor'} = $ENV{'TEXLIVE_COMPRESSOR'};
}
- if ($::opt_verbosity >= 1) {
+ if ($::opt_verbosity >= 2) {
require Data::Dumper;
use vars qw($Data::Dumper::Indent $Data::Dumper::Sortkeys
$Data::Dumper::Purity); # -w pain
@@ -2602,16 +2604,16 @@ sub setup_unix_tl_one {
debug("(unix) trying to set up $p, default $def, arg $arg\n");
if (-r $def) {
if (-x $def) {
- ddebug("default $def has executable permissions\n");
+ ddebug(" Default $def has executable permissions\n");
# we have to check for actual "executability" since a "noexec"
# mount option may interfere, which is not taken into account by -x.
my $ret = system("'$def' $arg >/dev/null 2>&1" ); # we are on Unix
if ($ret == 0) {
$::progs{$p} = $def;
- debug("Using shipped $def for $p (tested).\n");
+ debug(" Using shipped $def for $p (tested).\n");
return(1);
} else {
- ddebug("Shipped $def has -x but cannot be executed, "
+ ddebug(" Shipped $def has -x but cannot be executed, "
. "trying tmp copy.\n");
}
}
@@ -2632,19 +2634,19 @@ sub setup_unix_tl_one {
if (! -x $tmpprog) {
# hmm, something is going really bad, not even the copy is
# executable. Fall back to normal path element
- ddebug("Copied $p $tmpprog does not have -x bit, strange!\n");
+ ddebug(" Copied $p $tmpprog does not have -x bit, strange!\n");
return(0);
} else {
# check again for executability
my $ret = system("$tmpprog $arg > /dev/null 2>&1");
if ($ret == 0) {
# ok, the copy works
- debug("Using copied $tmpprog for $p (tested).\n");
+ debug(" Using copied $tmpprog for $p (tested).\n");
$::progs{$p} = $tmpprog;
return(1);
} else {
# even the copied prog is not executable, strange
- ddebug("Copied $p $tmpprog has x bit but not executable?!\n");
+ ddebug(" Copied $p $tmpprog has x bit but not executable?!\n");
return(0);
}
}
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
index 6deac084cd9..69b829b3a45 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 48129 2018-07-03 22:15:38Z karl $
+# $Id: fmtutil.pl 52741 2019-11-11 23:16:13Z karl $
# 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 48129 2018-07-03 22:15:38Z karl $';
-my $lastchdate = '$Date: 2018-07-04 00:15:38 +0200 (Wed, 04 Jul 2018) $';
+my $svnid = '$Id: fmtutil.pl 52741 2019-11-11 23:16:13Z karl $';
+my $lastchdate = '$Date: 2019-11-12 00:16:13 +0100 (Tue, 12 Nov 2019) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 48129 $';
+my $svnrev = '$Revision: 52741 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
@@ -162,7 +162,7 @@ sub main {
$opts{'user'} = 1;
GetOptions ( "help" => \$opts{'help'}, "version" => \$opts{'version'} )
- or die "Unknown option in mktexfmt command line arguments\n";
+ || die "$prg: Unknown option in mktexfmt command line arguments.\n";
if ($ARGV[0]) {
if ($ARGV[0] =~ m/^(.*)\.(fmt|mem|base?)$/) {
$opts{'byfmt'} = $1;
@@ -447,12 +447,12 @@ sub callback_build_formats {
for (@deferred_stdout) { print $stdo $_; }
for (@deferred_stderr) { print STDERR $_; }
#
- print_info("Disabled formats: $disabled\n") if ($disabled);
- print_info("Successfully rebuilt formats: $suc\n") if ($suc);
- print_info("Not selected formats: $nobuild\n") if ($nobuild);
- print_info("Not available formats: $notavail\n") if ($notavail);
- print_info("Failed to build: $err (@err)\n") if ($err);
- print_info("Total formats: $total\n");
+ print_info("disabled formats: $disabled\n") if ($disabled);
+ print_info("successfully rebuilt formats: $suc\n") if ($suc);
+ print_info("not selected formats: $nobuild\n") if ($nobuild);
+ print_info("not available formats: $notavail\n") if ($notavail);
+ print_info("failed to build: $err (@err)\n") if ($err);
+ print_info("total formats: $total\n");
chdir($thisdir) || warn "chdir($thisdir) failed: $!";
if (win32()) {
# try to remove the tmpdir with all files
@@ -516,15 +516,16 @@ sub select_and_rebuild_format {
}
}
if ($doit) {
- return rebuild_one_format($fmt, $eng, $kpsefmt, $destdir, $fmtfile, $logfile);
+ return rebuild_one_format($fmt,$eng,$kpsefmt,$destdir,$fmtfile,$logfile);
} else {
return $FMT_NOTSELECTED;
}
}
# compute_format_destination
-# takes fmt/eng and returns the location where format and log files should be saved
-# return value (dump file full path, log file full path)
+# takes fmt/eng and returns the locations where format and log files
+# should be saved, that is, a list: (dump file full path, log file full path)
+#
sub compute_format_destination {
my ($fmt, $eng) = @_;
my $enginedir;
@@ -557,11 +558,12 @@ sub compute_format_destination {
# rebuild_one_format
-# takes fmt/eng and rebuilds it, irrelevant of any setting
+# takes fmt/eng and rebuilds it, irrelevant of any setting;
+# copies generated log file
# return value FMT_*
#
sub rebuild_one_format {
- my ($fmt, $eng, $kpsefmt, $destdir, $fmtfile, $logfile) = @_;
+ my ($fmt,$eng,$kpsefmt,$destdir,$fmtfile,$logfile) = @_;
print_info("--- remaking $fmt with $eng\n");
# get variables
@@ -575,7 +577,7 @@ sub rebuild_one_format {
my $pool;
my $tcx = "";
my $tcxflag = "";
- my $localpool=0;
+ my $localpool = 0;
my $texargs;
unlink glob "*.pool";
@@ -624,7 +626,7 @@ sub rebuild_one_format {
$texargs = $addargs;
}
if ($pool) {
- chomp ( my $poolfile = `kpsewhich -progname=$eng $pool.poo 2>$nul` );
+ chomp (my $poolfile = `kpsewhich -progname=$eng $pool.poo 2>$nul`);
if ($poolfile && -f $poolfile) {
print_verbose("attempting to create localized format "
. "using pool=$pool and tcx=$tcx.\n");
@@ -656,7 +658,7 @@ sub rebuild_one_format {
",$opts{'no-error-if-no-engine'}," =~ m/,$eng,/) {
return $FMT_NOTAVAIL;
} else {
- print_deferred_error("not building $fmt due to missing engine $eng.\n");
+ print_deferred_error("not building $fmt due to missing engine: $eng\n");
return $FMT_FAILURE;
}
}
@@ -675,17 +677,33 @@ sub rebuild_one_format {
$cmdline .= " >&2" if $mktexfmtMode;
$cmdline .= " <$nul";
my $retval = system($cmdline);
+
+ # report error if it failed.
if ($retval != 0) {
$retval /= 256 if ($retval > 0);
- print_deferred_error("running \`$cmdline' return status $retval\n");
- #
- # original shell script did *not* check the return value
- # we keep this behavior, but add an option --strict that
- # errors out on all failures.
- if ($opts{'strict'}) {
- print_deferred_error("return error due to options --strict\n");
- return $FMT_FAILURE;
- }
+ print_deferred_error("running \`$cmdline' return status: $retval\n");
+ }
+
+ # Copy the log file after the program is run, so that the log file
+ # is available to inspect even on failure. So we need the dest dir tree.
+ TeXLive::TLUtils::mkdirhier($destdir);
+ #
+ # Here and in the following we use copy instead of move
+ # to make sure that in SElinux enabled cases the rules of
+ # the destination directory are applied.
+ # See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900580
+ if (File::Copy::copy($logfile, "$destdir/$logfile")) {
+ print_info("log file copied to: $destdir/$logfile\n");
+ } else {
+ print_deferred_error("cannot copy log $logfile to: $destdir\n");
+ }
+
+ # original shell script did *not* check the return value
+ # we keep this behavior, but add an option --strict that
+ # errors out on all failures.
+ if ($retval != 0 && $opts{'strict'}) {
+ print_deferred_error("returning error due to option --strict\n");
+ return $FMT_FAILURE;
}
if ($localpool) {
@@ -695,7 +713,6 @@ sub rebuild_one_format {
delete $ENV{'TEXPOOL'};
}
}
-
}
# check and install of fmt and log files
@@ -717,27 +734,18 @@ sub rebuild_one_format {
print_deferred_error("\`$cmdline' had errors.\n");
}
- TeXLive::TLUtils::mkdirhier($destdir);
-
- # here and in the following we use copy instead of move
- # to make sure that in SElinux enabled cases the rules of
- # the destination directory are applied.]
- # See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900580
- if (!File::Copy::copy( $logfile, "$destdir/$logfile")) {
- print_deferred_error("Cannot copy $logfile to $destdir.\n");
- }
if ($opts{'recorder'}) {
- # the recorder output is used by check-fmttriggers to determine
+ # the recorder output is used by tl-check-fmttriggers to determine
# package dependencies for each format. Unfortunately omega-based
# engines gratuitiously changed the extension from .fls to .ofl.
my $recfile = $fmt . ($fmt =~ m/^(aleph|lamed)$/ ? ".ofl" : ".fls");
- if (!File::Copy::copy( $recfile, "$destdir/$recfile")) {
- print_deferred_error("Cannot copy $recfile to $destdir.\n");
+ if (!File::Copy::copy($recfile, "$destdir/$recfile")) {
+ print_deferred_error("cannot copy recorder $recfile to: $destdir\n");
}
}
my $destfile = "$destdir/$fmtfile";
- if (File::Copy::copy( $fmtfile, $destfile )) {
+ if (File::Copy::copy($fmtfile, $destfile )) {
print_info("$destfile installed.\n");
#
# original fmtutil.sh did some magic trick for mplib-luatex.mem
@@ -784,10 +792,10 @@ sub rebuild_one_format {
return $FMT_SUCCESS;
} else {
- print_deferred_error("Cannot copy $fmtfile to $destfile.\n");
+ print_deferred_error("cannot copy format $fmtfile to: $destfile\n");
if (-f $destfile) {
# remove the empty file possibly left over if near-full file system.
- print_verbose("Removing partial file after copy failure: $destfile\n");
+ print_verbose("removing partial file after copy failure: $destfile\n");
unlink($destfile)
|| print_deferred_error("unlink($destfile) failed: $!\n");
}
@@ -1032,7 +1040,7 @@ sub determine_config_files {
my @tmp;
for my $f (@{$opts{'cnffile'}}) {
if (! -f $f) {
- die "$prg: Config file \"$f\" not found.";
+ die "$prg: Config file \"$f\" not found";
}
push @tmp, (win32() ? lc($f) : $f);
}
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index 58c5ce81c55..29901e51386 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,12 +1,12 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 52672 2019-11-07 18:35:53Z karl $
+# $Id: tlmgr.pl 52752 2019-11-12 21:34:13Z karl $
#
# Copyright 2008-2019 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
-my $svnrev = '$Revision: 52672 $';
-my $datrev = '$Date: 2019-11-07 19:35:53 +0100 (Thu, 07 Nov 2019) $';
+my $svnrev = '$Revision: 52752 $';
+my $datrev = '$Date: 2019-11-12 22:34:13 +0100 (Tue, 12 Nov 2019) $';
my $tlmgrrevision;
my $tlmgrversion;
my $prg;
@@ -5676,10 +5676,11 @@ sub check_executes {
my $engine = $r{"engine"};
my $name = $r{"name"};
my $mode = $r{"mode"};
- # special case for cont-en ...
+ # just never mind about these.
next if ($name eq "cont-en");
+ next if ($name eq "lualatex-dev");
# we check that the name exist in bin/$arch
- if ($engine =~ /^lua(jit|hb)tex$/) {
+ if (",$TeXLive::TLConfig::PartialEngineSupport," =~ /,$engine,/) {
# luajittex is special since it is not available on all architectures
# due to inherent reasons (machine code);
# luahbtex is special until we build it everywhere for TL'20.
@@ -5719,7 +5720,7 @@ sub check_executes {
} else {
@archs_to_check = (); # no tlpsrc, check nothing.
}
- ddebug("check_executes: final arches to check: @archs_to_check");
+ ddebug("check_executes: final arches to check: @archs_to_check\n");
}
for my $a (@archs_to_check) {
my $f = "$Master/bin/$a/$name";
@@ -9927,7 +9928,7 @@ This script and its documentation were written for the TeX Live
distribution (L<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 52672 2019-11-07 18:35:53Z karl $
+$Id: tlmgr.pl 52752 2019-11-12 21:34:13Z karl $
=cut
# test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html
diff --git a/Build/source/texk/texlive/tl_scripts/fmtutil.cnf b/Build/source/texk/texlive/tl_scripts/fmtutil.cnf
index 45ff85d6ae4..201d375ed33 100644
--- a/Build/source/texk/texlive/tl_scripts/fmtutil.cnf
+++ b/Build/source/texk/texlive/tl_scripts/fmtutil.cnf
@@ -1,4 +1,4 @@
-# Generated by /home/texlive/karl/Master/bin/x86_64-linux/tlmgr on Sat Jul 27 01:53:50 2019
+# Generated by /home/texlive/karl/Master/bin/x86_64-linux/tlmgr on Tue Nov 12 19:27:54 2019
# Originally written by Thomas Esser, 1998. Public domain.
#
# As of TeX Live 2015, fmtutil reads *all* fmtutil.cnf files found.
@@ -80,7 +80,7 @@ lualatex luatex language.dat,language.dat.lua lualatex.ini
latex-dev pdftex language.dat -translate-file=cp227.tcx *latex.ini
pdflatex-dev pdftex language.dat -translate-file=cp227.tcx *pdflatex.ini
dvilualatex-dev luatex language.dat,language.dat.lua dvilualatex.ini
-lualatex-dev luatex language.dat,language.dat.lua lualatex.ini
+lualatex-dev luahbtex language.dat,language.dat.lua lualatex.ini
#
# from lollipop:
lollipop tex - lollipop.ini
@@ -135,10 +135,12 @@ uplatex-dev euptex language.dat *uplatex.ini
uptex uptex - uptex.ini
euptex euptex language.def *euptex.ini
#
+# from xelatex-dev:
+xelatex-dev xetex language.dat -etex xelatex.ini
+#
# from xetex:
xetex xetex language.def -etex xetex.ini
xelatex xetex language.dat -etex xelatex.ini
-xelatex-dev xetex language.dat -etex xelatex.ini
#
# from xmltex:
xmltex pdftex language.dat *xmltex.ini