summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tl-update-containers
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-10-06 23:52:06 +0000
committerNorbert Preining <preining@logic.at>2008-10-06 23:52:06 +0000
commita75ea875cafc75a740a6f4d68466cd7f194eba5b (patch)
treee2cfb7877eb359d5273d1b7f59896fce11fdee4c /Master/tlpkg/bin/tl-update-containers
parent2b648d13b593d12486ffa8ce64fc762af955b21a (diff)
make tl-update-containers honor the critical packages also on removals
git-svn-id: svn://tug.org/texlive/trunk@10874 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/tl-update-containers')
-rwxr-xr-xMaster/tlpkg/bin/tl-update-containers20
1 files changed, 19 insertions, 1 deletions
diff --git a/Master/tlpkg/bin/tl-update-containers b/Master/tlpkg/bin/tl-update-containers
index 9dc569e1576..918bfc826de 100755
--- a/Master/tlpkg/bin/tl-update-containers
+++ b/Master/tlpkg/bin/tl-update-containers
@@ -253,7 +253,25 @@ sub main
}
# next we remove those containers which have been gone!
- for my $op (@removepacks) {
+ REMOVEPACK: for my $op (@removepacks) {
+ foreach my $manualpkgre (@critical_pkg_list) {
+ # we match the initial string of the package name, so that all the
+ # .arch packages are skipped, too
+ if ($op =~ m/^$manualpkgre/) {
+ if ($opt_all || $opt_recreate) {
+ tlwarn ("$0: removing critical $op due to -all\n");
+ last; # of the manualpkgre checks
+
+ } else {
+ tlwarn ("$0: skipping removal of critical $op\n");
+ # the following line skips all other regexp checks on critical
+ # packages and skips everything below this (the part which
+ # actually builds the containers) and continues with the next
+ # package (the PACKS: label above).
+ next REMOVEPACK;
+ }
+ }
+ }
info("$op has disappeared, removing its containers\n");
`rm $opt_containerdir/$op.*`;
$nettlpdb->remove_package($op);