summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/texlive/tlmgr.pl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-15 18:38:19 +0000
committerKarl Berry <karl@freefriends.org>2019-11-15 18:38:19 +0000
commitafaeb779b71749474c5387bf357efcde8589c9e7 (patch)
tree167c47ae8392fd7cc4b0994d50bd08262355430b /Master/texmf-dist/scripts/texlive/tlmgr.pl
parentcedf923f06a9abb37d2755491cb6e43fbe741210 (diff)
(check_executes): check lualatex-dev format again, more
informative output, more ddebugging. git-svn-id: svn://tug.org/texlive/trunk@52799 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/texlive/tlmgr.pl')
-rwxr-xr-xMaster/texmf-dist/scripts/texlive/tlmgr.pl48
1 files changed, 36 insertions, 12 deletions
diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl
index ab3dc672c67..0d317b378d9 100755
--- a/Master/texmf-dist/scripts/texlive/tlmgr.pl
+++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl
@@ -5676,9 +5676,9 @@ sub check_executes {
my $engine = $r{"engine"};
my $name = $r{"name"};
my $mode = $r{"mode"};
- # just never mind about these.
- next if ($name eq "cont-en");
- next if ($name eq "lualatex-dev");
+ ddebug("check_executes: fmtline name=$name engine=$engine"
+ . " mode=$mode opt=$opt\n");
+ next if ($name eq "cont-en"); # too confusing
# we check that the name exist in bin/$arch
if (",$TeXLive::TLConfig::PartialEngineSupport," =~ /,$engine,/) {
# luajittex is special since it is not available on all architectures
@@ -5688,16 +5688,28 @@ sub check_executes {
# We do not want to have error messages here, so we do the following:
# * if tlpkg/tlpsrc/luatex.tlpsrc is available, then load it
# and filter away those archs that are excluded with f/!...
- # * if tlpkg/tlpsrc/luatex.tlpsrc is *not* available (user installation)
- # we just ignore it completely.
- my $tlpsrc_file = $localtlpdb->root . "/tlpkg/tlpsrc/luatex.tlpsrc";
+ # * similarly for the other partial-support engines; too much
+ # trouble to reverse-map to package names, so just hardwire;
+ # * if tlpkg/tlpsrc/<engine>.tlpsrc is *not* available (i.e., not
+ # the development tree) we just ignore it completely.
+ my $pkg;
+ if ($engine eq "luajittex") {
+ $pkg = "luatex";
+ } elsif ($engine eq "luahbtex") {
+ $pkg = "latex-bin-dev";
+ } elsif ($engine eq "mfluajit") {
+ $pkg = "mflua";
+ } else {
+ die "unknown partial engine $engine, goodbye"; # should not happen
+ }
+ my $tlpsrc_file = $localtlpdb->root . "/tlpkg/tlpsrc/$pkg.tlpsrc";
if (-r $tlpsrc_file) {
ddebug("check_executes: found $tlpsrc_file\n");
require TeXLive::TLPSRC;
my $tlpsrc = new TeXLive::TLPSRC;
$tlpsrc->from_file($tlpsrc_file);
my @binpats = $tlpsrc->binpatterns;
- my @negarchs;
+ my @negarchs = ();
for my $p (@binpats) {
if ($p =~ m%^(\w+)/(!?[-_a-z0-9,]+)\s+(.*)$%) {
my $pt = $1;
@@ -5725,10 +5737,22 @@ sub check_executes {
for my $a (@archs_to_check) {
my $f = "$Master/bin/$a/$name";
if (!check_file($a, $f)) {
- push @{$missingbins{$_}}, "bin/$a/$name" if $mode;
+ push @{$missingbins{$_}}, "bin/$a/${name}[engine=$engine]" if $mode;
+# # unfortunately there are too many exceptions to this check:
+# # cygwin symlinks pointing to .exe names, pdcsplain extras, mptopdf,
+# # *latex-dev pointing to *latex instead of the binary. Instead of
+# # writing all those error-prone tests, just give up.
+# } elsif (-l $f) {
+# my $linktarget = readlink($f);
+# #ddebug("check_executes: linktarget $linktarget, $name->$engine\n");
+# if ($linktarget ne $engine) {
+# print "\t bin/$a/$name: symlink to $linktarget, not $engine\n";
+# }
+# } else {
+# ; #ddebug("check_executes: $f readable file, not a link\n");
}
if (!check_file($a, "$Master/bin/$a/$engine")) {
- push @{$missingengines{$_}}, "bin/$a/$engine" if $mode;
+ push @{$missingengines{$_}}, "bin/$a/${engine}[fmt=$name]" if $mode;
}
}
# check for the existence of the .ini file
@@ -5748,19 +5772,19 @@ sub check_executes {
}
if (keys %missinginis) {
print "\f mentioned ini files that cannot be found:\n";
- for my $i (keys %missinginis) {
+ for my $i (sort keys %missinginis) {
print "\t $missinginis{$i} (execute: $i)\n";
}
}
if (keys %missingengines) {
print "\f mentioned engine files that cannot be found:\n";
- for my $i (keys %missingengines) {
+ for my $i (sort keys %missingengines) {
print "\t @{$missingengines{$i}}\n";
}
}
if (keys %missingbins) {
print "\f mentioned bin files that cannot be found:\n";
- for my $i (keys %missingbins) {
+ for my $i (sort keys %missingbins) {
print "\t @{$missingbins{$i}}\n";
}
}