From ae24c8b86c79bee7eaf87231d65de94e4a42caac Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 21 Mar 2012 09:57:01 +0000 Subject: update multi source support: preliminary support for multiple repos in tlmgr gui git-svn-id: svn://tug.org/texlive/trunk@25718 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/dev/dev.multi-source-support-v2.patch | 133 ++++++++++++++++++++- 1 file changed, 129 insertions(+), 4 deletions(-) diff --git a/Master/tlpkg/dev/dev.multi-source-support-v2.patch b/Master/tlpkg/dev/dev.multi-source-support-v2.patch index d50839473a5..cc35476e094 100644 --- a/Master/tlpkg/dev/dev.multi-source-support-v2.patch +++ b/Master/tlpkg/dev/dev.multi-source-support-v2.patch @@ -1,7 +1,8 @@ --- - texmf/scripts/texlive/tlmgr.pl | 907 ++++++++++++++++++++++++++++++++++------- - tlpkg/TeXLive/TLPDB.pm | 691 ++++++++++++++++++++++++++++--- - 2 files changed, 1402 insertions(+), 196 deletions(-) + texmf/scripts/texlive/tlmgr.pl | 909 ++++++++++++++++++++++++++++++++------ + texmf/scripts/texlive/tlmgrgui.pl | 57 +- + tlpkg/TeXLive/TLPDB.pm | 691 ++++++++++++++++++++++++++-- + 3 files changed, 1449 insertions(+), 208 deletions(-) Index: tlpkg/TeXLive/TLPDB.pm =================================================================== @@ -984,7 +985,16 @@ Index: tlpkg/TeXLive/TLPDB.pm Index: texmf/scripts/texlive/tlmgr.pl =================================================================== --- texmf/scripts/texlive/tlmgr.pl.orig 2012-01-31 23:25:04.175697912 +0900 -+++ texmf/scripts/texlive/tlmgr.pl 2012-02-03 13:08:05.773609454 +0900 ++++ texmf/scripts/texlive/tlmgr.pl 2012-03-21 17:29:21.810792133 +0900 +@@ -1,7 +1,7 @@ + #!/usr/bin/env perl + # $Id: tlmgr.pl 24419 2011-10-27 14:06:37Z preining $ + # +-# Copyright 2008, 2009, 2010, 2011 Norbert Preining ++# Copyright 2008, 2009, 2010, 2011, 2012 Norbert Preining + # This file is licensed under the GNU General Public License version 2 + # or any later version. + @@ -124,6 +124,7 @@ "package-logfile" => "=s", "persistent-downloads" => "!", @@ -2194,3 +2204,118 @@ Index: texmf/scripts/texlive/tlmgr.pl =head1 TAXONOMIES +Index: texmf/scripts/texlive/tlmgrgui.pl +=================================================================== +--- texmf/scripts/texlive/tlmgrgui.pl.orig 2011-06-16 21:30:37.000000000 +0900 ++++ texmf/scripts/texlive/tlmgrgui.pl 2012-03-21 18:54:41.072492333 +0900 +@@ -1,7 +1,7 @@ + #!/usr/bin/env perl + # $Id: tlmgrgui.pl 23011 2011-06-16 12:30:37Z preining $ + # +-# Copyright 2009, 2010 Norbert Preining ++# Copyright 2009, 2010, 2011, 2012 Norbert Preining + # This file is licensed under the GNU General Public License version 2 + # or any later version. + # +@@ -62,6 +62,11 @@ + my $tlpdb_location; + my $cmdline_location; + my @critical_updates = (); ++ ++my $single_repo_mode = 1; ++my %repos; ++my @tags; ++ + # + # shortcuts for padding, expand/fill, and pack sides, anchors + my @p_ii = qw/-padx 2m -pady 2m/; +@@ -97,6 +102,7 @@ + my $darktext; + my $match_entry; + my $loaded_text; ++my $loaded_text_button; + + # + # communication between filters and the rest +@@ -261,14 +267,13 @@ + -selectmode => "none"); + + my $button_frame = $mw->Frame; +- my $but; +- $but = $button_frame->Button(-text => __("Load default"), +- -command => sub { setup_location($tlpdb_location); $but->packForget; }); +- $but->pack( ++ $loaded_text_button = $button_frame->Button(-text => __("Load default"), ++ -command => sub { setup_location($tlpdb_location); }); ++ $loaded_text_button->pack( + -anchor => 'e', -padx => 0, -pady => 0, + -ipadx => 0, -ipady => 0, -side => 'right'); + $loaded_text = $button_frame->Label( +- -text => __("Loaded repository:") . " " .__("none")); ++ -text => __("Loaded repository:") . " " . __("none")); + $loaded_text->pack(-anchor => 'e', -padx => 0, -pady => 0, + -ipadx => 0, -ipady => 0, -side => 'right'); + +@@ -1554,19 +1559,34 @@ + sub setup_location { + my $loc = shift; + $location = $loc; ++ # first check if $location contains multiple locations ++ # in this case we go to virtual mode ++ %repos = repository_to_array($location); ++ @tags = keys %repos; ++ if ($#tags == 0) { ++ $single_repo_mode = 1; ++ } else { ++ $single_repo_mode = 0; ++ } + update_loaded_location_string(); + run_update_functions(); + } + + sub init_install_media { + my $newroot = $location; +- if (defined($remotetlpdb) && ($remotetlpdb->root eq $newroot)) { ++ if (defined($remotetlpdb) && !$remotetlpdb->is_virtual && ++ ($remotetlpdb->root eq $newroot)) { + # nothing to be done + } else { + $mw->Busy(-recurse => 1); +- info(__("Loading remote TeX Live Database\nThis may take some time, please wait!") . "\n"); +- $remotetlpdb = TeXLive::TLPDB->new(root => $newroot); +- info(__("Completed") . ".\n"); ++ if ($#tags == 0) { ++ init_tlmedia(); ++ #info(__("Loading remote TeX Live Database\nThis may take some time, please wait!") . "\n"); ++ #$remotetlpdb = TeXLive::TLPDB->new(root => $newroot); ++ #info(__("Completed") . ".\n"); ++ } else { ++ init_tlmedia(); ++ } + $mw->Unbusy; + if (!defined($remotetlpdb)) { + # something went badly wrong, maybe the newroot is wrong? +@@ -2216,7 +2236,22 @@ + sub update_loaded_location_string { + my $arg = shift; + $arg || ($arg = $location); +- $loaded_text->configure(-text => __("Loaded repository:") . " " . $arg); ++ my %repos = repository_to_array($arg); ++ my @tags = keys %repos; ++ my $locstr; ++ if ($#tags >= 0) { ++ $locstr = $repos{'main'}; ++ for my $t (keys %repos) { ++ if ($t ne 'main') { ++ $locstr .= " $repos{$t}"; ++ } ++ } ++ $loaded_text_button->configure(-text => __("multiple repositories")); ++ } else { ++ $loaded_text_button->configure(-text => $arg); ++ } ++ $loaded_text->configure(-text => __("Loaded repository:")); ++ $loaded_text_button->configure(-command => sub { show_repositories($arg); }); + } + + sub run_update_functions { -- cgit v1.2.3