From a5673e5a8b0e5816d6c0c6a3f99f4777ce8db1ca Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 5 Sep 2011 02:18:07 +0000 Subject: update multi-source patch to current status, still working ;-) git-svn-id: svn://tug.org/texlive/trunk@23821 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/dev/dev.multi-source-support-v2.patch | 122 ++++++++++----------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/Master/tlpkg/dev/dev.multi-source-support-v2.patch b/Master/tlpkg/dev/dev.multi-source-support-v2.patch index c6759733d43..365162a3492 100644 --- a/Master/tlpkg/dev/dev.multi-source-support-v2.patch +++ b/Master/tlpkg/dev/dev.multi-source-support-v2.patch @@ -1,6 +1,6 @@ Index: tlpkg/TeXLive/TLPDB.pm =================================================================== ---- tlpkg/TeXLive/TLPDB.pm (revision 22666) +--- tlpkg/TeXLive/TLPDB.pm (revision 23788) +++ tlpkg/TeXLive/TLPDB.pm (working copy) @@ -70,20 +70,31 @@ $tlpdb->settings; @@ -36,9 +36,9 @@ Index: tlpkg/TeXLive/TLPDB.pm - tlwarn basename download_file merge_into); + tlwarn basename download_file merge_into tldie); use TeXLive::TLPOBJ; + use TeXLive::TLWinGoo; - use File::Temp qw/tempfile/; -@@ -160,6 +171,10 @@ +@@ -161,6 +172,10 @@ sub add_tlpobj { my ($self,$tlp) = @_; @@ -49,7 +49,7 @@ Index: tlpkg/TeXLive/TLPDB.pm $self->{'tlps'}{$tlp->name} = $tlp; } -@@ -208,6 +223,10 @@ +@@ -209,6 +224,10 @@ sub remove_tlpobj { my ($self,$pkg) = @_; @@ -60,7 +60,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (defined($self->{'tlps'}{$pkg})) { delete $self->{'tlps'}{$pkg}; } else { -@@ -228,6 +247,10 @@ +@@ -229,6 +248,10 @@ sub from_file { my ($self, $path) = @_; @@ -71,7 +71,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (@_ != 2) { die "$0: from_file needs filename for initialization"; } -@@ -360,6 +383,10 @@ +@@ -362,6 +385,10 @@ sub writeout { my $self = shift; @@ -82,7 +82,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my $fd = (@_ ? $_[0] : STDOUT); foreach (sort keys %{$self->{'tlps'}}) { ddebug("writeout: tlpname=$_ ", $self->{'tlps'}{$_}->name, "\n"); -@@ -379,6 +406,10 @@ +@@ -381,6 +408,10 @@ sub save { my $self = shift; @@ -93,7 +93,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my $path = $self->location; mkdirhier(dirname($path)); my $tmppath = "$path.tmp"; -@@ -400,6 +431,9 @@ +@@ -402,6 +433,9 @@ sub media { my $self = shift ; @@ -103,7 +103,7 @@ Index: tlpkg/TeXLive/TLPDB.pm return $self->{'media'}; } -@@ -415,6 +449,18 @@ +@@ -417,6 +451,18 @@ sub available_architectures { my $self = shift; @@ -122,7 +122,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my @archs = $self->setting("available_architectures"); if (! @archs) { # fall back to the old method checking tex\.* -@@ -442,6 +488,10 @@ +@@ -444,6 +490,10 @@ sub add_tlpcontainer { my ($self, $package, $ziplocation, $archrefs, $dest) = @_; @@ -133,7 +133,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my @archs; if (defined($archrefs)) { @archs = @$archrefs; -@@ -506,6 +556,29 @@ +@@ -508,6 +558,29 @@ =cut sub get_package { @@ -163,7 +163,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my ($self,$pkg) = @_; if (defined($self->{'tlps'}{$pkg})) { my $ret = $self->{'tlps'}{$pkg}; -@@ -517,6 +590,35 @@ +@@ -519,6 +592,35 @@ =pod @@ -199,7 +199,7 @@ Index: tlpkg/TeXLive/TLPDB.pm =item C<< $tlpdb->list_packages >> The C function returns the list of all included packages. -@@ -525,6 +627,15 @@ +@@ -527,6 +629,15 @@ sub list_packages { my $self = shift; @@ -215,7 +215,7 @@ Index: tlpkg/TeXLive/TLPDB.pm return (sort keys %{$self->{'tlps'}}); } -@@ -542,6 +653,11 @@ +@@ -544,6 +655,11 @@ The next (or first) argument is the target TLPDB, then a list of packages. @@ -227,7 +227,7 @@ Index: tlpkg/TeXLive/TLPDB.pm We return the closure of the package list with respect to the depends operator. (Sorry, that was for mathematicians.) -@@ -565,7 +681,8 @@ +@@ -567,7 +683,8 @@ my %install = (); my @archs = $totlpdb->available_architectures; for my $p (@_) { @@ -237,7 +237,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } my $changed = 1; while ($changed) { -@@ -574,7 +691,7 @@ +@@ -576,7 +693,7 @@ ddebug("pre_select = @pre_select\n"); for my $p (@pre_select) { next if ($p =~ m/^00texlive/); @@ -246,7 +246,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (!defined($pkg)) { debug("W: $p is mentioned somewhere but not available, disabling\n"); $install{$p} = 0; -@@ -600,16 +717,19 @@ +@@ -602,16 +719,19 @@ if ($p_dep =~ m/^(.*)\.ARCH$/) { my $foo = "$1"; foreach $a (@archs) { @@ -269,7 +269,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } } } -@@ -621,7 +741,9 @@ +@@ -623,7 +743,9 @@ $changed = 1; } } @@ -280,7 +280,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } =pod -@@ -633,6 +755,7 @@ +@@ -635,6 +757,7 @@ =cut @@ -288,7 +288,7 @@ Index: tlpkg/TeXLive/TLPDB.pm sub find_file { my ($self,$fn) = @_; my @ret; -@@ -866,6 +989,10 @@ +@@ -868,6 +991,10 @@ sub root { my $self = shift; @@ -299,7 +299,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (@_) { $self->{'root'} = shift } return $self->{'root'}; } -@@ -884,7 +1011,11 @@ +@@ -886,7 +1013,11 @@ =cut sub location { @@ -312,7 +312,7 @@ Index: tlpkg/TeXLive/TLPDB.pm return "$self->{'root'}/$InfraLocation/$DatabaseName"; } -@@ -935,8 +1066,14 @@ +@@ -937,8 +1068,14 @@ sub config_src_container { my $self = shift; @@ -329,7 +329,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^container_split_src_files/(.*)$!) { return "$1"; } -@@ -956,8 +1093,14 @@ +@@ -958,8 +1095,14 @@ sub config_doc_container { my $self = shift; @@ -346,7 +346,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^container_split_doc_files/(.*)$!) { return "$1"; } -@@ -976,8 +1119,14 @@ +@@ -978,8 +1121,14 @@ sub config_container_format { my $self = shift; @@ -363,7 +363,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^container_format/(.*)$!) { return "$1"; } -@@ -996,8 +1145,14 @@ +@@ -998,8 +1147,14 @@ sub config_release { my $self = shift; @@ -380,7 +380,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^release/(.*)$!) { return "$1"; } -@@ -1016,8 +1171,14 @@ +@@ -1018,8 +1173,14 @@ sub config_minrelease { my $self = shift; @@ -397,7 +397,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^minrelease/(.*)$!) { return "$1"; } -@@ -1037,8 +1198,14 @@ +@@ -1039,8 +1200,14 @@ sub config_revision { my $self = shift; @@ -414,7 +414,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^revision/(.*)$!) { return "$1"; } -@@ -1064,12 +1231,12 @@ +@@ -1066,12 +1233,12 @@ sub sizes_of_packages { my ($self, $opt_src, $opt_doc, @packs) = @_; @packs || ( @packs = $self->list_packages() ); @@ -428,7 +428,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (!defined($tlpobjs{$p})) { warn "STRANGE: $p not to be found in ", $self->root; next; -@@ -1093,7 +1260,7 @@ +@@ -1095,7 +1262,7 @@ $size += $tlpobj->srccontainersize if $opt_src; $size += $tlpobj->doccontainersize if $opt_doc; } else { @@ -437,7 +437,7 @@ Index: tlpkg/TeXLive/TLPDB.pm # installation of src and doc file $size = $tlpobj->runsize; $size += $tlpobj->srcsize if $opt_src; -@@ -1108,31 +1275,46 @@ +@@ -1110,31 +1277,46 @@ =pod @@ -498,7 +498,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } else { my $container_src_split = $fromtlpdb->config_src_container; my $container_doc_split = $fromtlpdb->config_doc_container; -@@ -1180,7 +1362,7 @@ +@@ -1182,7 +1364,7 @@ next; } } elsif (&media eq 'NET') { @@ -507,7 +507,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } $self->_install_package ($container, $reloc, \@installfiles, $totlpdb) || return(0); -@@ -1254,23 +1436,21 @@ +@@ -1256,23 +1438,21 @@ $totlpdb->save; # compute the return value TeXLive::TLUtils::announce_execute_actions("enable", $tlpobj); @@ -545,7 +545,7 @@ Index: tlpkg/TeXLive/TLPDB.pm } return 1; } -@@ -1523,7 +1703,7 @@ +@@ -1525,7 +1705,7 @@ # the postaction code part cannot be evaluated now since the # files are already removed. # Again, desktop integration maps to desktop and menu links @@ -554,7 +554,7 @@ Index: tlpkg/TeXLive/TLPDB.pm &TeXLive::TLUtils::do_postaction("remove", $tlp, $localtlpdb->option("file_assocs"), $localtlpdb->option("desktop_integration"), -@@ -1555,7 +1735,12 @@ +@@ -1557,7 +1737,12 @@ sub _set_value_pkg { my ($self,$pkgname,$pre,$key,$value) = @_; my $k = "$pre$key"; @@ -568,7 +568,7 @@ Index: tlpkg/TeXLive/TLPDB.pm my @newdeps; if (!defined($pkg)) { $pkg = new TeXLive::TLPOBJ; -@@ -1593,8 +1778,14 @@ +@@ -1595,8 +1780,14 @@ sub _value_pkg { my ($self,$pkg,$pre,$key) = @_; my $k = "$pre$key"; @@ -585,7 +585,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if ($d =~ m!^$k:(.*)$!) { return "$1"; } -@@ -1707,7 +1898,12 @@ +@@ -1709,7 +1900,12 @@ my ($self, $pre, $hr) = @_; my @allowed = keys %$hr; my %ret; @@ -599,7 +599,7 @@ Index: tlpkg/TeXLive/TLPDB.pm if (defined($pkg)) { foreach my $d ($pkg->depends) { if ($d =~ m!^$pre([^:]*):(.*)!) { -@@ -1856,6 +2052,329 @@ +@@ -1858,6 +2054,329 @@ =back @@ -931,7 +931,7 @@ Index: tlpkg/TeXLive/TLPDB.pm =head1 OPTIONS Index: tlpkg/TeXLive/TLUtils.pm =================================================================== ---- tlpkg/TeXLive/TLUtils.pm (revision 22666) +--- tlpkg/TeXLive/TLUtils.pm (revision 23788) +++ tlpkg/TeXLive/TLUtils.pm (working copy) @@ -62,6 +62,7 @@ TeXLive::TLUtils::setup_programs($bindir, $platform); @@ -941,7 +941,7 @@ Index: tlpkg/TeXLive/TLUtils.pm =head2 Installer Functions -@@ -180,6 +181,7 @@ +@@ -184,6 +185,7 @@ &setup_persistent_downloads &mktexupd &nulldev @@ -949,7 +949,7 @@ Index: tlpkg/TeXLive/TLUtils.pm ); @EXPORT = qw(setup_programs download_file process_logging_options tldie tlwarn info log debug ddebug dddebug debug_hash -@@ -2398,6 +2400,31 @@ +@@ -2438,6 +2440,31 @@ return (&win32)? 'nul' : '/dev/null'; } @@ -983,7 +983,7 @@ Index: tlpkg/TeXLive/TLUtils.pm Index: texmf/scripts/texlive/tlmgr.pl =================================================================== ---- texmf/scripts/texlive/tlmgr.pl (revision 22666) +--- texmf/scripts/texlive/tlmgr.pl (revision 23788) +++ texmf/scripts/texlive/tlmgr.pl (working copy) @@ -124,6 +124,7 @@ "package-logfile" => "=s", @@ -993,7 +993,7 @@ Index: texmf/scripts/texlive/tlmgr.pl "pause" => 1, "print-platform|print-arch" => 1, "version" => 1, -@@ -481,6 +482,12 @@ +@@ -483,6 +484,12 @@ } elsif ($action =~ m/^option$/i) { action_option(); finish(0); @@ -1006,7 +1006,7 @@ Index: texmf/scripts/texlive/tlmgr.pl } elsif ($action =~ m/^list$/i) { action_list(); finish(0); -@@ -1942,7 +1949,12 @@ +@@ -2027,7 +2034,12 @@ # intersection, don't check A\B and B\A next if $newpkgs_full{$p}; next if $removals_full{$p}; @@ -1020,7 +1020,7 @@ Index: texmf/scripts/texlive/tlmgr.pl my $tlp = $localtlpdb->get_package($p); if (!defined($tlp)) { if ($opts{"reinstall-forcibly-removed"}) { -@@ -2043,12 +2055,15 @@ +@@ -2128,12 +2140,15 @@ $ret = 1; shift; } @@ -1039,7 +1039,7 @@ Index: texmf/scripts/texlive/tlmgr.pl $str .= "\n"; return($str) if $ret; print $str; -@@ -2572,19 +2587,32 @@ +@@ -2657,19 +2672,32 @@ my $unwind_package; my $remove_unwind_container = 0; my $rev = $tlp->revision; @@ -1075,7 +1075,7 @@ Index: texmf/scripts/texlive/tlmgr.pl } $updated{$pkg} = 1; next; -@@ -2625,10 +2653,10 @@ +@@ -2710,10 +2738,10 @@ } if ($::machinereadable) { @@ -1088,7 +1088,7 @@ Index: texmf/scripts/texlive/tlmgr.pl } $donesize += $sizes{$pkg}; $currnr++; -@@ -2671,7 +2699,7 @@ +@@ -2756,7 +2784,7 @@ } if ($remotetlpdb->install_package($pkg, $localtlpdb)) { # installation succeeded because we got a reference @@ -1097,7 +1097,7 @@ Index: texmf/scripts/texlive/tlmgr.pl unlink($unwind_package) if $remove_unwind_container; # remember successful update $updated{$pkg} = 1; -@@ -2699,7 +2727,7 @@ +@@ -2784,7 +2812,7 @@ # now in fact we should do some cleanup, removing files and # dirs from the new package before re-installing the old one. # TODO @@ -1106,7 +1106,7 @@ Index: texmf/scripts/texlive/tlmgr.pl tlwarn("\n\nInstallation of new version of $pkg did fail, trying to unwind.\n"); if (win32()) { # w32 is notorious for not releasing a file immediately -@@ -2740,12 +2768,25 @@ +@@ -2825,12 +2853,25 @@ unless $::machinereadable; } else { # install new packages @@ -1120,7 +1120,7 @@ Index: texmf/scripts/texlive/tlmgr.pl + $mediatlp = $remotetlpdb->get_package($pkg); + } if (!defined($mediatlp)) { - tlwarn("\nShould not happen: $pkg not found in $location"); + tlwarn("\nShould not happen: $pkg not found in $location\n"); next; } my $mediarev = $mediatlp->revision; @@ -1133,7 +1133,7 @@ Index: texmf/scripts/texlive/tlmgr.pl my ($estrem, $esttot); if (!$opts{"list"}) { ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize, -@@ -2755,14 +2796,16 @@ +@@ -2840,14 +2881,16 @@ my @maargs = ($pkg, $FLAG_AUTOINSTALL, "-", $mediatlp->revision, $sizes{$pkg}); if (!$opts{"list"}) { push @maargs, $estrem, $esttot; @@ -1153,7 +1153,7 @@ Index: texmf/scripts/texlive/tlmgr.pl } } $currnr++; -@@ -2770,7 +2813,7 @@ +@@ -2855,7 +2898,7 @@ next if ($opts{"dry-run"} || $opts{"list"}); if ($remotetlpdb->install_package($pkg, $localtlpdb)) { # installation succeeded because we got a reference @@ -1162,7 +1162,7 @@ Index: texmf/scripts/texlive/tlmgr.pl $nrupdated++; } else { tlwarn("$0: couldn't install new package $pkg\n"); -@@ -2909,6 +2952,7 @@ +@@ -3002,6 +3045,7 @@ if (!(@new || @updated)) { info("tlmgr: no updates available\n"); if ($remotetlpdb->media ne "NET" @@ -1170,7 +1170,7 @@ Index: texmf/scripts/texlive/tlmgr.pl && !$opts{"dry-run"} && !$opts{"repository"} ) { -@@ -2987,6 +3031,14 @@ +@@ -3080,6 +3124,14 @@ @packs = $remotetlpdb->expand_dependencies($localtlpdb, @packs) unless $opts{"no-depends"}; } # @@ -1185,7 +1185,7 @@ Index: texmf/scripts/texlive/tlmgr.pl # installation order of packages: # first all normal packages, then collections, then schemes # isn't already installed, but the collection already updated, it will -@@ -2994,7 +3046,7 @@ +@@ -3087,7 +3139,7 @@ my @inst_packs; my @inst_colls; my @inst_schemes; @@ -1194,7 +1194,7 @@ Index: texmf/scripts/texlive/tlmgr.pl # we do name checking here, not to load all tlpobj again and again if ($pkg =~ m/^scheme-/) { push @inst_schemes, $pkg; -@@ -3013,7 +3065,11 @@ +@@ -3106,7 +3158,11 @@ my @todo; for my $pkg (@inst_packs, @inst_colls, @inst_schemes) { my $pkgrev = 0; @@ -1207,7 +1207,7 @@ Index: texmf/scripts/texlive/tlmgr.pl if (!defined($mediatlp)) { tlwarn("package $pkg not present in package repository.\n"); next; -@@ -3061,13 +3117,26 @@ +@@ -3154,13 +3210,26 @@ my ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize, $donesize, $starttime); my $kb = int($sizes{$pkg} / 1024) + 1; @@ -1237,7 +1237,7 @@ Index: texmf/scripts/texlive/tlmgr.pl logpackage("${re}install: $pkg"); } $donesize += $sizes{$pkg}; -@@ -3124,7 +3193,150 @@ +@@ -3217,7 +3286,150 @@ return; } @@ -1388,7 +1388,7 @@ Index: texmf/scripts/texlive/tlmgr.pl # OPTION # sub action_option { -@@ -4471,6 +4683,82 @@ +@@ -4578,6 +4790,82 @@ # sub init_tlmedia { @@ -1471,7 +1471,7 @@ Index: texmf/scripts/texlive/tlmgr.pl if (defined($remotetlpdb) && ($remotetlpdb->root eq $location)) { # nothing to be done return; -@@ -4484,11 +4772,29 @@ +@@ -4591,11 +4879,29 @@ $location =~ s,^$TeXLiveServerURL,$mirrorbase,; } @@ -1501,7 +1501,7 @@ Index: texmf/scripts/texlive/tlmgr.pl # if we talk about a net location try to download the hash of the tlpdb # - if that is possible, check for the locally saved file and if the hash # agrees load the local copy if present instead of the remote one, -@@ -4633,8 +4939,30 @@ +@@ -4740,8 +5046,30 @@ close($tlfh); } } -- cgit v1.2.3