summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}