From 47f6fdb0d9c4358ebe43284dd044a16d5f67e7de Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 14 Jun 2011 10:14:34 +0000 Subject: make sure that we do not try to add to times + for updated sub-packages in the gui git-svn-id: svn://tug.org/texlive/trunk@22975 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf/scripts/texlive/tlmgrgui.pl | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'Master/texmf') diff --git a/Master/texmf/scripts/texlive/tlmgrgui.pl b/Master/texmf/scripts/texlive/tlmgrgui.pl index 9b6c146e020..68f528e5172 100644 --- a/Master/texmf/scripts/texlive/tlmgrgui.pl +++ b/Master/texmf/scripts/texlive/tlmgrgui.pl @@ -1895,19 +1895,30 @@ sub update_list_remote { # check if $pkg itself has been update present, otherwise # add a "+" to the revision number of the upstream package # but do NOT show the sub package + # We have to make sure that the remote version does not get + # TWO times a + added. This can happen if you have multiple + # architectures installed, and all of the .ARCH packages (more + # than 1) are updated, but not the main package # if (TeXLive::TLUtils::member($ma, @avail_arch)) { if (defined($Packages{$mp}{'localrevision'}) && defined($Packages{$mp}{'remoterevision'}) && + # a subpackage was already checked and found to be updated + $Packages{$mp}{'remoterevision'} !~ m/\+$/ && $Packages{$mp}{'localrevision'} < $Packages{$mp}{'remoterevision'}) { # the main package is updated, so just do nothing } else { - # if there is an update to a binary sub package mark that with - # a "+" in the remote revision - my $ltlp = $localtlpdb->get_package($p); - if (defined($ltlp) && $ltlp->revision < $tlp->revision) { - $Packages{$mp}{'remoterevision'} .= "+"; + if ($Packages{$mp}{'remoterevision'} !~ m/\+$/) { + # if there is an update to a binary sub package mark that with + # a "+" in the remote revision + my $ltlp = $localtlpdb->get_package($p); + if (defined($ltlp) && $ltlp->revision < $tlp->revision) { + $Packages{$mp}{'remoterevision'} .= "+"; + } } + # no else clause, in this case the main package is not updated, + # but already one subpackage was checked and a + added, so don't + # do anything } # - $pkg.$arch where $arch is NOT in available_arch # thus it was installed by the user, show it -- cgit v1.2.3