diff options
-rwxr-xr-x | Master/tlpkg/bin/tl-check-fmttriggers | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/Master/tlpkg/bin/tl-check-fmttriggers b/Master/tlpkg/bin/tl-check-fmttriggers index 724f468b33a..90fb4131d2b 100755 --- a/Master/tlpkg/bin/tl-check-fmttriggers +++ b/Master/tlpkg/bin/tl-check-fmttriggers @@ -87,8 +87,11 @@ sub main { my %pkgs_per_format = &pkgs_per_format ($tlpdb, %files_per_format); # check that those packages are exactly what's listed as needed. - return &compare_pkgs_and_triggers (\%pkgs_per_format, - $fmttriggers, $fmtpkgcontainers); + my $ret = &compare_pkgs_and_triggers (\%pkgs_per_format, + $fmttriggers, + $fmtpkgcontainers); + info ("Exit status: $ret\n"); + return $ret; } @@ -290,8 +293,9 @@ sub pkgs_per_format { # Compare lists of packages required by building (PKGS_PER_FORMAT) with # lists of existing trigger directives (FMTTRIGGERS). Return 0 if # identical, 1 otherwise (and report differences). Ignore some -# hyphenation dependencies and l3backend, and the package itself -# containing the trigger directive (FMTPKGCONTAINERS). +# hyphenation dependencies, the package itself containing the trigger +# directive (FMTPKGCONTAINERS), and various other dependencies we +# specify to ease maintenance. # sub compare_pkgs_and_triggers { my ($pkgs_per_format,$fmttriggers,$fmtpkgcontainers) = @_; @@ -301,7 +305,7 @@ sub compare_pkgs_and_triggers { # we don't include these as fmttriggers since when they meaningfully # change, fmtutil should get called anyway due to language.* changing. my @skip_recorded = qw(dehyph-exptl ruhyphen ukrhyph); - + # # Anything matching hyphen-.* is also ignored, but not hyph-utf8. for my $ef (sort keys %$pkgs_per_format) { @@ -316,15 +320,6 @@ sub compare_pkgs_and_triggers { my %tlpdb_pkgs; @tlpdb_pkgs{@tlpdb_pkgs} = (); # hash slice for tlpdb pkgs - # This does not show up in the recorder output, unfortunately. - # It's used in the lualatex formats. - delete $tlpdb_pkgs{"luaotfload"}; - - # We intentionally include this as a fmttrigger in tlpdb even - # though it is not read at fmt creation time. See - # 00texlive.autopatterns.tlpsrc. - delete $tlpdb_pkgs{"l3backend"}; - my @recorded_only = (); for my $r (keys %recorded_pkgs) { # no need for a package to include itself as a fmttrigger. @@ -343,18 +338,29 @@ sub compare_pkgs_and_triggers { } } if (keys %tlpdb_pkgs) { - # These packages are also included as fmttriggers even though - # they are not always necessary, to simplify maintenance of the + # These packages are included as fmttriggers even though they + # are not always used, usually to simplify maintenance of the # package lists. So don't worry about them if they are present. - my @skip_tlpdb = qw(atbegshi atveryend everyshi latex + # See 00texlive.autopatterns.tlpsrc for more. + # + # luaotfload doesn't show up in the recorder output, + # unfortunately. It's used in the lualatex patterns. + # + my @skip_tlpdb = qw(atbegshi atveryend everyshi + firstaid l3backend l3kernel l3packages latex + luaotfload tex-ini-files unicode-data); my %skip_tlpdb; @skip_tlpdb{@skip_tlpdb} = 1; # make into hash - tlwarn ("$prg: $ef triggers only in tlpdb: " - . join (",", sort - grep { ! exists $skip_tlpdb{$_} } keys %tlpdb_pkgs) - . "\n"); - $bad_p = 1; + for my $t (keys %tlpdb_pkgs) { + delete $tlpdb_pkgs{$t} if exists $skip_tlpdb{$t}; + } + if (keys %tlpdb_pkgs) { + tlwarn ("$prg: $ef triggers only in tlpdb: " + . join (",", sort keys %tlpdb_pkgs) + . "\n"); + $bad_p = 1; + } } if (@recorded_only) { tlwarn ("$prg: $ef triggers only in recorder: " |