summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-11-15 23:23:32 +0000
committerNorbert Preining <preining@logic.at>2008-11-15 23:23:32 +0000
commitdb58d1aa92d56153725896484895ceb7586b5b8e (patch)
tree89d9ac0ba52a63e07db5795d03f750e871c039f6 /Master
parent9e08c57ab0379e48b692f24ba9b4882c725fd4cf (diff)
fix the "remove all package" when upgrading from tlcritical problem
git-svn-id: svn://tug.org/texlive/trunk@11305 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl11
1 files changed, 9 insertions, 2 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index 7f25146df1b..f8c9f5a5bf0 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -1151,6 +1151,7 @@ sub action_update {
my %newpkgs;
# check for new/removed/forcibly removed packages.
# we start from the list of installed collections in the local tlpdb
+ # which are also present in the remote database
# and expand this list once with expand_dependencies in the local tlpdb
# and once in the tlmedia tlpdb. Then we compare the lists
# let A = set of local expansions
@@ -1159,10 +1160,16 @@ sub action_update {
# B \ A set of new packages
# A \ B set of packages removed on the server
# A \cup B set of packages which should be checked for forcible removal
+ #
+ my @colls = ();
+ for my $p ($localtlpdb->collections) {
+ push @colls, $p
+ if defined($mediatlpdb->get_package($p));
+ }
my @localexpansion =
- $localtlpdb->expand_dependencies($localtlpdb, $localtlpdb->collections);
+ $localtlpdb->expand_dependencies($localtlpdb, @colls);
my @remoteexpansion =
- $mediatlpdb->expand_dependencies($localtlpdb, $localtlpdb->collections);
+ $localtlpdb->expand_dependencies($mediatlpdb, @colls);
for my $p (@remoteexpansion) {
$newpkgs{$p} = 1;
}