From afaeb779b71749474c5387bf357efcde8589c9e7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 15 Nov 2019 18:38:19 +0000 Subject: (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 --- Master/texmf-dist/scripts/texlive/tlmgr.pl | 48 ++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 12 deletions(-) (limited to 'Master') 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/.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"; } } -- cgit v1.2.3