diff options
Diffstat (limited to 'Master/tlpkg/bin')
-rwxr-xr-x | Master/tlpkg/bin/tl-update-tlpdb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/tl-update-tlpdb b/Master/tlpkg/bin/tl-update-tlpdb index a43baa6e08e..4c71cb78bcc 100755 --- a/Master/tlpkg/bin/tl-update-tlpdb +++ b/Master/tlpkg/bin/tl-update-tlpdb @@ -41,6 +41,7 @@ my $opt_save_anyway = 0; my $opt_tlpsrc_from_cmdline = 0; my $opt_w32warning; my $opt_keep_revisions = 0; +my $opt_cat_updates_tlpdb = 0; TeXLive::TLUtils::process_logging_options(); GetOptions( @@ -59,6 +60,7 @@ GetOptions( "save-anyway!" => \$opt_save_anyway, "tlpsrc-from-cmdline" => \$opt_tlpsrc_from_cmdline, "with-w32-pattern-warning" => \$opt_w32warning, + "cat-updates-tlpdb" => \$opt_cat_updates_tlpdb, "help|?" => \$help) or pod2usage(1); pod2usage(-exitstatus => 0, -verbose => 2) if $help; @@ -222,11 +224,21 @@ sub compare_and_fix_tlpdbs { # that is fine, otherwise try fixing it my ($rA, $rB) = split (':', $ret{'different_packages'}->{$p}->{'revision'}); + # since we only register 'revision' key when there is a change, we have + # either rA < rB or rA > rB if ($rA > $rB) { tlwarn("$progname: big warning for $p: file lists didn't change but " . "revision is going backward! Very strange!\n"); $packages_that_need_fixup{$p} = 1; } + } else { + # no revision change, so check catalogue + if (defined($ret{'different_packages'}->{$p}->{'catalogue'})) { + if ($opt_cat_updates_tlpdb) { + debug ("$progname: updating package $p due to catalogue changes and --cat-updates-tlpdb\n"); + $packages_that_need_fixup{$p} = 1; + } + } } } } |