summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xMaster/tlpkg/bin/tl-check-fmttriggers50
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: "