summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-08-22 13:30:11 +0000
committerNorbert Preining <preining@logic.at>2008-08-22 13:30:11 +0000
commite894194c86f8f41c30d26e3b113d952f5b5f1d8a (patch)
treeecc369cf03273e910739c04ec341b25735bc8f71
parent16e1b95974ca58b897083027ee7e014911b12a0a (diff)
add more patches for future inclusion
git-svn-id: svn://tug.org/texlive/trunk@10403 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/tlpkg/etc/generalize-revisions.diff131
-rw-r--r--Master/tlpkg/etc/tlmgrgui-include-revisions-in-update-list.diff61
2 files changed, 192 insertions, 0 deletions
diff --git a/Master/tlpkg/etc/generalize-revisions.diff b/Master/tlpkg/etc/generalize-revisions.diff
new file mode 100644
index 00000000000..50e01fa2ad3
--- /dev/null
+++ b/Master/tlpkg/etc/generalize-revisions.diff
@@ -0,0 +1,131 @@
+Index: tlpkg/TeXLive/TLUtils.pm
+===================================================================
+--- tlpkg/TeXLive/TLUtils.pm (revision 10402)
++++ tlpkg/TeXLive/TLUtils.pm (working copy)
+@@ -66,6 +66,7 @@
+ TeXLive::TLUtils::conv_to_win_path($path);
+ TeXLive::TLUtils::give_ctan_mirror($path);
+ TeXLive::TLUtils::tlmd5($path);
++ TeXLive::TLUtils::revless($rev1, $rev2);
+
+ =head1 DESCRIPTION
+
+@@ -115,8 +116,9 @@
+ &welcome_paths
+ &give_ctan_mirror
+ &tlmd5
++ &revless
+ );
+- @EXPORT = qw(setup_programs download_file info log debug ddebug tlwarn process_logging_options win32);
++ @EXPORT = qw(setup_programs download_file info log debug ddebug tlwarn process_logging_options win32 revless);
+ }
+
+
+@@ -1691,6 +1693,49 @@
+ }
+ }
+
++=pod
++
++=item C<revless ($rev1, $rev2) >
++
++Returns true if the first revision is less or equal than the second.
++
++=cut
++
++
++sub revless {
++ my ($a, $b) = @_;
++ # format of a revision number:
++ # [source:]NNNN[.RRRR]
++ # where source is an optional source, the default is "texlive" which
++ # is the main source. But there can be other sources, too.
++ # NNNN and RRRR are integers (variable number of digits, but at least one
++ # for NNNN)
++ #
++ my (undef, $asource, $arev, undef, $arrr) = ($a =~ m/^((.*):)?([0-9]+)(\.([0-9]+))?$/);
++ my (undef, $bsource, $brev, undef, $brrr) = ($b =~ m/^((.*):)?([0-9]+)(\.([0-9]+))?$/);
++ # default source is texlive
++ $asource || ($asource = "texlive");
++ $bsource || ($bsource = "texlive");
++ $arrr || ($arrr = 0);
++ $brrr || ($brrr = 0);
++ # now everything should be defined
++ # if aNNNN < bNNNN return true
++ return 1 if ($arev < $brev);
++ return 0 if ($arev > $brev);
++ # so now $arev == $brev
++ return 1 if ($arrr < $brrr);
++ return 0 if ($arrr > $brrr);
++ # so now $arrr == $brrr
++ # if also the sources are the same return false
++ return 0 if ($asource eq $bsource);
++ # the only distinction is made via the source. Here "texlive" is always
++ # "bigger" than anything else
++ # since we know that the sources are different
++ return 1 if ($bsource eq "texlive");
++ # ok, last case is just ordered alphabetically
++ return ($asource lt $bsource);
++}
++
+ #############################################
+ #
+ # Taken from Text::ParseWords
+Index: texmf/scripts/texlive/tlmgr.pl
+===================================================================
+--- texmf/scripts/texlive/tlmgr.pl (revision 10402)
++++ texmf/scripts/texlive/tlmgr.pl (working copy)
+@@ -636,11 +636,11 @@
+ my $rev = $tlp->revision;
+ my $mediatlp = $mediatlpdb->get_package($pkg);
+ if (!defined($mediatlp)) {
+- print "$pkg cannot be found in $location\n";
++ debug("$pkg cannot be found in $location\n");
+ next;
+ }
+ my $mediarev = $mediatlp->revision;
+- if ($rev < $mediarev) {
++ if (revless($rev,$mediarev)) {
+ $nrupdated++;
+ if ($opt_list) {
+ print "$pkg: local: $rev, source: $mediarev\n";
+@@ -719,7 +719,7 @@
+ print "update: $pkg done\n";
+ }
+ }
+- } elsif ($rev > $mediarev) {
++ } elsif (revless( $mediarev, $rev )) {
+ print "$pkg: revision in $location is less then local revision, not updating!\n";
+ next;
+ }
+Index: texmf/scripts/texlive/tlmgrgui/tlmgrgui-real.pl
+===================================================================
+--- texmf/scripts/texlive/tlmgrgui/tlmgrgui-real.pl (revision 10402)
++++ texmf/scripts/texlive/tlmgrgui/tlmgrgui-real.pl (working copy)
+@@ -26,7 +26,7 @@
+ use TeXLive::TLMedia;
+ use TeXLive::TLPDB;
+ use TeXLive::TLConfig;
+-use TeXLive::TLUtils qw(setup_programs platform_desc win32);
++use TeXLive::TLUtils qw(setup_programs platform_desc win32 revless);
+ use Getopt::Long qw(:config no_autoabbrev require_order);
+
+ use Tk;
+@@ -116,7 +116,7 @@
+ loadremotetlpdbwait => "Loading remote TeX Live Database\nThis may take some time, please wait!",
+ runupdater => "Some package cannot be updated using the GUI!\nPlease run TEXROOT/tlpkg/installer/updater.bat once,\notherwise the updates will not be complete!\nNOTE: You have to QUIT this program first!",
+ actions => "Actions",
+- reinitlsr => "Re-initalise file database",
++ reinitlsr => "Re-initialise file database",
+ recreateformats => "Re-create all formats",
+ updatemaps => "Update font map database",
+ warningnonetupdate => "No updates found.\n\nYour installation is set up to look on the disk for updates.\n\nIf you want to install from the Internet for this one time only, click on the \"Change\" button above and select \"Default Net Location\" (or any other network location you know to be working).\n\nIf you want to change it permanently, go to the \"Configuration\" Tab and change the default installation source.",
+@@ -583,7 +583,7 @@
+ } else {
+ $urev = 0;
+ }
+- if ($urev > $lrev) {
++ if (revless($lrev, $urev)) {
+ if ($lp =~ m/\./) {
+ push @archret, $lp;
+ } else {
diff --git a/Master/tlpkg/etc/tlmgrgui-include-revisions-in-update-list.diff b/Master/tlpkg/etc/tlmgrgui-include-revisions-in-update-list.diff
new file mode 100644
index 00000000000..fa1d4dd7236
--- /dev/null
+++ b/Master/tlpkg/etc/tlmgrgui-include-revisions-in-update-list.diff
@@ -0,0 +1,61 @@
+--- /src/TeX/texlive-svn/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui-real.pl 2008-08-22 15:00:15.000000000 +0200
++++ tlmgrgui-real.pl 2008-08-22 15:28:26.000000000 +0200
+@@ -511,6 +511,9 @@
+ } else {
+ @upgradepkgs = @_;
+ }
++ # note that the list still contains package names with revision
++ # specifications
++ @upgradepkgs = map { m/(^[^ ]+) /; $1; } @upgradepkgs;
+ foreach my $p (@upgradepkgs) {
+ if ($p =~ m/$WinSpecialUpdatePackagesRegexp/) {
+ $updater_needed = 1;
+@@ -521,9 +524,16 @@
+ my @execlist;
+ push @execlist, "tlmgr", "--location", "$location";
+ if ($debugmode) {
+- push @execlist, "-v";
++ push @execlist, "-v", "update";
++ }
++ # remove the revision information
++ if ($_[0] eq "--all") {
++ push @execlist, "--all";
++ } else {
++ # we got some actual package names, remove the revision info
++ my @foo = map { m/(^[^ ]+) /; $1; } @_;
++ push @execlist, @foo;
+ }
+- push @execlist, "update", @_;
+ run_program_show_output(@execlist);
+ if (win32() && $updater_needed) {
+ my $t = ___"runupdater";
+@@ -572,6 +582,8 @@
+ sub create_update_list {
+ my @ret = ();
+ my @archret = ();
++ my %localrev;
++ my %remoterev;
+ if (defined($tlmediatlpdb)) {
+ foreach my $lp ($localtlpdb->list_packages) {
+ next if ($lp =~ m/00texlive-installation.config/);
+@@ -589,6 +601,8 @@
+ } else {
+ push @ret, $lp;
+ }
++ $localrev{$lp} = $lrev;
++ $remoterev{$lp} = $urev;
+ }
+ }
+ foreach my $p (@archret) {
+@@ -598,6 +612,11 @@
+ }
+ push @ret, $p unless $foundparent;
+ }
++ my @realret = ();
++ for my $p (@ret) {
++ push @realret, "$p ($localrev{$p} -> $remoterev{$p})";
++ }
++ @ret = @realret;
+ # issue a warning if no updates are available, the tlmediatlpdb is loaded
+ # and is not from the net
+ if ($#ret < 0) {