summaryrefslogtreecommitdiff
path: root/Master/texmf
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2011-06-14 10:14:34 +0000
committerNorbert Preining <preining@logic.at>2011-06-14 10:14:34 +0000
commit47f6fdb0d9c4358ebe43284dd044a16d5f67e7de (patch)
treeb4e5c3ce00f4adb184c27d8ca68ac4529747e7e0 /Master/texmf
parent59ed3bf1d6c84ab3617e78a95d5062dc0624a2e7 (diff)
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
Diffstat (limited to 'Master/texmf')
-rw-r--r--Master/texmf/scripts/texlive/tlmgrgui.pl21
1 files changed, 16 insertions, 5 deletions
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