summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tl-update-tlpdb
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/bin/tl-update-tlpdb')
-rwxr-xr-xMaster/tlpkg/bin/tl-update-tlpdb12
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;
+ }
+ }
}
}
}