diff options
author | Norbert Preining <preining@logic.at> | 2008-11-15 23:23:32 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-11-15 23:23:32 +0000 |
commit | db58d1aa92d56153725896484895ceb7586b5b8e (patch) | |
tree | 89d9ac0ba52a63e07db5795d03f750e871c039f6 | |
parent | 9e08c57ab0379e48b692f24ba9b4882c725fd4cf (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
-rwxr-xr-x | Master/texmf/scripts/texlive/tlmgr.pl | 11 |
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; } |