summaryrefslogtreecommitdiff
path: root/Master/tlpkg/etc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/etc')
-rw-r--r--Master/tlpkg/etc/2009.combined.patch5558
-rw-r--r--Master/tlpkg/etc/2009.combined.patch.README3
2 files changed, 4736 insertions, 825 deletions
diff --git a/Master/tlpkg/etc/2009.combined.patch b/Master/tlpkg/etc/2009.combined.patch
index 02d55851362..2c4d108be3f 100644
--- a/Master/tlpkg/etc/2009.combined.patch
+++ b/Master/tlpkg/etc/2009.combined.patch
@@ -1,7 +1,839 @@
+Index: install-tl
+===================================================================
+--- install-tl (revision 12198)
++++ install-tl (working copy)
+@@ -82,7 +82,6 @@
+ &add_menu_shortcut
+ &remove_desktop_shortcut
+ &remove_menu_shortcut
+- &init_unshortbat
+ &create_uninstaller
+ ));
+ }
+@@ -121,7 +120,7 @@
+ #
+ # The following values are taken from the remote tlpdb using the
+ # $tlpdb->option_XXXXX
+-# settings (i.e., taken from tlpkg/tlpsrc/00texlive-installation.tlpsrc
++# settings (i.e., taken from tlpkg/tlpsrc/00texlive.installation.tlpsrc
+ #
+ # 'option_symlinks' => 0,
+ # 'sys_bin' => '/usr/local/bin',
+@@ -380,6 +379,14 @@
+ $vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
+ }
+ $texlive_release = $tlpdb->config_release;
++# if the release from the remote TLPDB does not agree with the
++# TLConfig::ReleaseYear in the first 4 places break out here.
++# Why only the first four places: some optional network distributions
++# might use
++# release/2009-foobar
++if ($texlive_release !~ m/^$TeXLive::TLConfig::ReleaseYear/) {
++ die "The release version of the installation source and\nthe installation media do not agree:\nsource: $texlive_release\nmedia: $TeXLive::TLConfig::ReleaseYear\nPlease report to tex-live\@tug.org";
++}
+ set_platforms_supported();
+ set_texlive_default_dirs();
+ initialize_collections();
+@@ -491,7 +498,229 @@
+ save_options_into_tlpdb();
+ do_install_packages();
+ }
++ # now we save every scheme that is fully covered by the stuff we have
++ # installed to the $localtlpdb
++ foreach my $s ($tlpdb->schemes) {
++ my $stlp = $tlpdb->get_package($s);
++ die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
++ my $incit = 1;
++ foreach my $d ($stlp->depends) {
++ if (!defined($localtlpdb->get_package($d))) {
++ $incit = 0;
++ last;
++ }
++ }
++ if ($incit) {
++ $localtlpdb->add_tlpobj($stlp);
++ }
++ }
++ $localtlpdb->save unless $vars{'from_dvd'};
++ do_postinst_stuff();
++}
++
++# do_postinst_stuff has to fix up the texmf tree and install some missing
++# files. The things to do are taken from the install-live.sh installer
++# of former times, and should be critically checked.
++sub do_postinst_stuff {
++ my $TEXDIR="$vars{'TEXDIR'}";
++ my $TEXDIRW="$vars{'TEXDIRW'}";
++ my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
++ my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
++ my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
++ my $tmv;
++
++ do_texmf_cnf() unless ($opt_portable);
++
++
++ # final program execution
++ # we have to do several things:
++ # - clean the environment from spurious TEXMF related variables
++ # - add the bin dir to the PATH
++ # - select perl interpreter and set the correct perllib
++ # - run the programs
++
++ # Step 1: Clean the environment
++ my @TMFVARS0=qw(VARTEXFONTS
++ TEXMF SYSTEXMF VARTEXFONTS
++ TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
++ PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
++ my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
++ TEXMFHOME TEXMFVAR TEXMFCONFIG);
++
++ if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
++ print "WARNING: environment variable TEXMFCNF is set.
++You should know what you are doing.
++We will remove that for the post install actions, but all further
++operations might be disturbed.\n\n";
++ }
++ foreach $tmv (@TMFVARS0) {
++ delete $ENV{$tmv} if (defined($ENV{$tmv}));
++ }
++ if (!$opt_portable) {
++ foreach $tmv (@TMFVARS1) {
++ delete $ENV{$tmv} if (defined($ENV{$tmv}));
++ }
++ }
++ $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
++
++ # Step 2: Setup the PATH, switch to the new Perl
++
++ my $pathsep=(win32)? ';' : ':';
++ my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
++ my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
++ my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
++
++## This won't do any good;
++## have to remove other tex directories in calling batchfile
++# if (win32) {
++# debug("Removing other TeXs from path\n");
++# my @newpt = ();
++# foreach my $d (split (';', $ENV{'PATH'})) {
++# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
++# }
++# $ENV{'PATH'} = join($pathsep, @newpt);
++# debug("Path after removals(s):\n $ENV{'PATH'}\n");
++# }
++
++ debug("Prepending $plat_bindir to PATH\n");
++
++ $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
++
++ if (win32) {
++ debug("Prepending $perl_bindir to PATH\n");
++ $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
++ $ENV{'PATH'} =~ s!/!\\!g;
++ }
++
++ debug("\nNew PATH is now:\n");
++ foreach my $dir (split $pathsep, $ENV{'PATH'}) {
++ debug(" $dir\n");
++ }
++ debug("\n");
++
++ if (win32) {
++ $ENV{'PERL5LIB'}="$perl_libdir";
++ }
++
++ #
++ # post install actions
++ #
++
++ # in case we are running from DVD we use the tlpdb from the DVD, otherwise
++ # the one we have locally created, for all the further actions
++ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
++
++
+ if (win32()) {
++ debug "Actual environment:\n".`set`."\n\n";
++ debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
++ }
++
++ # TODO: can the following two clauses be merged?
++ if (win32()) {
++ create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
++ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
++ }
++ # (re-)initialize batchfile for uninstalling shortcuts
++ if (win32() and !$opt_portable) {
++ mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
++ }
++
++ # Step 4: run the programs
++
++ if (!$opt_portable and !$vars{'from_dvd'}) {
++ info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
++ system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
++ }
++
++ # we have to generate the various config file. That could be done with
++ # texconfig generate * but Win32 does not have texconfig. But we have
++ # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
++ # the code from the various generate-*.pl scripts
++
++ info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
++ TeXLive::TLUtils::create_fmtutil($usedtlpdb,
++ "$TEXMFSYSVAR/web2c/fmtutil.cnf",
++ "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
++
++ mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
++ info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
++ TeXLive::TLUtils::create_updmap ($usedtlpdb,
++ "$TEXMFSYSCONFIG/web2c/updmap.cfg",
++ "$TEXMFLOCAL/web2c/updmap-local.cfg");
++
++ info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
++ TeXLive::TLUtils::create_language_dat($usedtlpdb,
++ "$TEXMFSYSVAR/tex/generic/config/language.dat",
++ "$TEXMFLOCAL/tex/generic/config/language-local.dat");
++
++ info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
++ TeXLive::TLUtils::create_language_def($usedtlpdb,
++ "$TEXMFSYSVAR/tex/generic/config/language.def",
++ "$TEXMFLOCAL/tex/generic/config/language-local.def");
++
++ info("running mktexlsr $TEXMFSYSVAR\n");
++ system('mktexlsr', "$TEXMFSYSVAR");
++
++ info("running updmap-sys... ");
++ # system('updmap-sys', '--nohash');
++ log(`updmap-sys --nohash 2>&1`);
++ info("done\n");
++
++ info("re-running mktexlsr $TEXMFSYSVAR\n");
++ system('mktexlsr', "$TEXMFSYSVAR");
++
++ # now work through the options if specified at all
++
++ # letter instead of a4
++ if ($vars{'option_letter'}) {
++ info("Setting default paper size to letter\n");
++ system("tlmgr", "paper", "letter");
++ }
++
++ # all formats option
++ if ($vars{'option_fmt'}) {
++ info("pre-generating all format files (fmtutil-sys --all), be patient...");
++ log(`fmtutil-sys --all 2>&1`);
++ info("done\n");
++ }
++
++ # TODO: Should/can this be moved into the do_system_integration part?
++ # it looks like it does not do anything outside the texlive tree, so it
++ # would be fine if we do it anyway ...
++ # $opt_portable: no %install but we still want xetex postinstall
++ &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
++ if $opt_portable;
++
++ # no do the system integration:
++ # on unix this means setting up symlinks
++ # on w32 this means adding to path, settting registry values
++ # on both, we run the TLPostActions and the postaction directives of the tlp
++ do_system_integration() if $vars{'option_sysint'};
++}
++
++sub do_system_integration {
++ # Run the post installation code in TLPostAction.pm
++ foreach my $package (sort keys %install) {
++ if ($install{$package} && defined($PostInstall{$package})) {
++ info("running post install action for $package\n");
++ &{$PostInstall{$package}}($vars{'TEXDIR'}, $vars{'TEXDIRW'},
++ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFLOCAL'});
++ }
++ }
++ # Run the post installation code in the postaction tlpsrc entries
++ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
++ foreach my $package (sort keys %install) {
++ if ($install{$package}) {
++ &TeXLive::TLUtils::do_postaction_code("install",
++ $usedtlpdb->get_package($package));
++ }
++ }
++ info ("finished with package specific postactions\n");
++
++ if (win32()) {
++ update_assocs();
++
+ my $path = TeXLive::TLWinGoo::get_system_env() -> {'/Path'};
+ $path =~ s/[\s\x00]+$//;
+ log("Old system path: $path\n");
+@@ -516,29 +745,97 @@
+ # setenv_reg('TEXMFSYSVAR', $vars{'TEXMFSYSVAR'}) if $vars{'from_dvd'};
+ setenv_reg('TEXMFCNF', $vars{'TEXMFSYSVAR'}.'/web2c') if $vars{'from_dvd'};
+ broadcast_env();
+- create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+- $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
++ } else {
++ $localtlpdb->add_symlinks()
+ }
+- do_postinst_stuff();
+- # now we save every scheme that is fully covered by the stuff we have
+- # installed to the $localtlpdb
+- foreach my $s ($tlpdb->schemes) {
+- my $stlp = $tlpdb->get_package($s);
+- die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
+- my $incit = 1;
+- foreach my $d ($stlp->depends) {
+- if (!defined($localtlpdb->get_package($d))) {
+- $incit = 0;
+- last;
++}
++
++
++# we have to adjust the texmf.cnf file to the paths set in the configuration!
++sub do_texmf_cnf {
++ open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
++ or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
++ my @texmfcnflines = <TMF>;
++ close(TMF);
++ my @newtmf;
++ my @changedtmf;
++ # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
++ foreach my $line (@texmfcnflines) {
++ if ($line =~ m/^TEXMFLOCAL/) {
++ # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
++ # we don't have to change anything from the default
++ my $deftmlocal = dirname($vars{'TEXDIR'});
++ $deftmlocal .= "/texmf-local";
++ if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
++ push @newtmf, $line;
++ } else {
++ push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
++ push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+ }
++ } elsif ($line =~ m/^TEXMFSYSVAR/) {
++ # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
++ # we don't have to change anything from the default
++ if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
++ push @newtmf, $line;
++ } else {
++ push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
++ push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
++ }
++ } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
++ # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
++ # we don't have to change anything from the default
++ if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
++ push @newtmf, $line;
++ } else {
++ push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
++ push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
++ }
++ } elsif ($line =~ m/^TEXMFHOME/) {
++ # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
++ # unix differently
++ push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
++ if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
++ push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
++ }
++ } elsif ($line =~ m/^OSFONTDIR/) {
++ if (win32()) {
++ push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
++ push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
++ } else {
++ push @newtmf, $line;
++ }
++ } else {
++ push @newtmf, $line;
+ }
+- if ($incit) {
+- $localtlpdb->add_tlpobj($stlp);
+- }
+ }
+- $localtlpdb->save unless $vars{'from_dvd'};
++ my $TMF;
++ if (!$vars{'from_dvd'}) {
++ $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
++ open(TMF, $TMF) || die "open($TMF) failed: $!";
++ print TMF <<EOF;
++% This texmf.cnf file should contain only your personal changes from the
++% main texmf.cnf.
++%
++% Do NOT change values in the main file (which is in
++% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
++% by later updates.
++%
++% If you need to make changes to texmf.cnf, put your custom settings in
++% this file instead, which is YYYY/texmf.cnf. And insert *only* your
++% changed values.
++%
++EOF
++;
++ foreach (@changedtmf) { print TMF; }
++ } else {
++ $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
++ open (TMF, $TMF) || die "open($TMF) failed: $!\n";
++ foreach (@newtmf) { print TMF; }
++ }
++ close(TMF) || warn "close($TMF) failed: $!";
+ }
+
++
+ sub dump_vars {
+ my $filename=shift;
+ my $fh;
+@@ -744,7 +1041,10 @@
+ $vars{'option_fmt'} = $tlpdb->option_create_formats;
+ $vars{'option_letter'} = defined($tlpdb->option_paper)
+ && ($tlpdb->option_paper eq "letter" ? 1 : 0);
+- $vars{'option_symlinks'} = $tlpdb->option_create_symlinks;
++ $vars{'option_sysint'} = $tlpdb->option_system_integration;
++ if (win32()) {
++ $vars{'option_sysint'} = 1;
++ }
+ $vars{'sys_bin'} = $tlpdb->option_sys_bin;
+ $vars{'sys_man'} = $tlpdb->option_sys_man;
+ $vars{'sys_info'} = $tlpdb->option_sys_info;
+@@ -850,8 +1150,8 @@
+ print $fh "$key $vars{$key}\n" if $key=~/^option_doc/;
+ print $fh "$key $vars{$key}\n" if $key=~/^option_fmt/;
+ print $fh "$key $vars{$key}\n" if $key=~/^option_src/;
+- print $fh "$key $vars{$key}\n" if $key=~/^option_symlinks/;
+- if ($vars{'option_symlinks'}) {
++ print $fh "$key $vars{$key}\n" if $key=~/^option_sysint/;
++ if ($vars{'option_sysint'} && unix()) {
+ print $fh "sys_bin ", $vars{'sys_bin'}, "\n" if $key =~ /^sys_bin/;
+ print $fh "sys_man ", $vars{'sys_man'}, "\n" if $key =~ /^sys_man/;
+ print $fh "sys_info ", $vars{'sys_info'}, "\n" if $key =~ /^sys_info/;
+@@ -948,7 +1248,7 @@
+ $localtlpdb->option_location($location);
+ $localtlpdb->option_paper($vars{'option_letter'} ? "letter" : "a4");
+ $localtlpdb->option_create_formats($vars{'option_fmt'} ? "1" : "0");
+- $localtlpdb->option_create_symlinks($vars{'option_symlinks'} ? "1" : "0");
++ $localtlpdb->option_system_integration($vars{'option_sysint'} ? "1" : "0");
+ $localtlpdb->option_sys_bin($vars{'sys_bin'});
+ $localtlpdb->option_sys_info($vars{'sys_info'});
+ $localtlpdb->option_sys_man($vars{'sys_man'});
+@@ -964,320 +1264,6 @@
+ $localtlpdb->save() unless $vars{'from_dvd'};
+ }
+
+-# do_postinst_stuff has to fix up the texmf tree and install some missing
+-# files. The things to do are taken from the install-live.sh installer
+-# of former times, and should be critically checked.
+-sub do_postinst_stuff {
+- my $TEXDIR="$vars{'TEXDIR'}";
+- my $TEXDIRW="$vars{'TEXDIRW'}";
+- my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
+- my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
+- my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
+- my $tmv;
+-
+- do_texmf_cnf() unless ($opt_portable);
+-
+-
+- # final program execution
+- # we have to do several things:
+- # - clean the environment from spurious TEXMF related variables
+- # - add the bin dir to the PATH
+- # - select perl interpreter and set the correct perllib
+- # - run the programs
+-
+- # Step 1: Clean the environment
+- my @TMFVARS0=qw(VARTEXFONTS
+- TEXMF SYSTEXMF VARTEXFONTS
+- TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
+- PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
+- my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
+- TEXMFHOME TEXMFVAR TEXMFCONFIG);
+-
+- if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
+- print "WARNING: environment variable TEXMFCNF is set.
+-You should know what you are doing.
+-We will remove that for the post install actions, but all further
+-operations might be disturbed.\n\n";
+- }
+- foreach $tmv (@TMFVARS0) {
+- delete $ENV{$tmv} if (defined($ENV{$tmv}));
+- }
+- if (!$opt_portable) {
+- foreach $tmv (@TMFVARS1) {
+- delete $ENV{$tmv} if (defined($ENV{$tmv}));
+- }
+- }
+- $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
+-
+- # Step 2: Setup the PATH, switch to the new Perl
+-
+- my $pathsep=(win32)? ';' : ':';
+- my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
+- my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
+- my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
+-
+-## This won't do any good;
+-## have to remove other tex directories in calling batchfile
+-# if (win32) {
+-# debug("Removing other TeXs from path\n");
+-# my @newpt = ();
+-# foreach my $d (split (';', $ENV{'PATH'})) {
+-# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
+-# }
+-# $ENV{'PATH'} = join($pathsep, @newpt);
+-# debug("Path after removals(s):\n $ENV{'PATH'}\n");
+-# }
+-
+- debug("Prepending $plat_bindir to PATH\n");
+-
+- $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
+-
+- if (win32) {
+- debug("Prepending $perl_bindir to PATH\n");
+- $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
+- $ENV{'PATH'} =~ s!/!\\!g;
+- }
+-
+- debug("\nNew PATH is now:\n");
+- foreach my $dir (split $pathsep, $ENV{'PATH'}) {
+- debug(" $dir\n");
+- }
+- debug("\n");
+-
+- if (win32) {
+- $ENV{'PERL5LIB'}="$perl_libdir";
+- }
+-
+- #
+- # post install actions
+- #
+-
+- if (win32()) {
+- debug "Actual environment:\n".`set`."\n\n";
+- debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
+- }
+-
+- # (re-)initialize batchfile for uninstalling shortcuts
+- if (win32() and !$opt_portable) {
+- mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
+- init_unshortbat($TEXDIRW);
+- }
+-
+- foreach my $package (sort keys %install) {
+- if ($install{$package} && defined($PostInstall{$package})) {
+- info("running post install action for $package\n");
+- &{$PostInstall{$package}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL);
+- }
+- }
+- # $opt_portable: no %install but we still want xetex postinstall
+- &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
+- if $opt_portable;
+- update_assocs() if win32();
+-
+- # Step 4: run the programs
+-
+- if (!$opt_portable and !$vars{'from_dvd'}) {
+- info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
+- system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
+- }
+-
+- # we have to generate the various config file. That could be done with
+- # texconfig generate * but Win32 does not have texconfig. But we have
+- # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
+- # the code from the various generate-*.pl scripts
+- info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
+- my $tlp = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+- TeXLive::TLUtils::create_fmtutil($tlp, #$localtlpdb,
+- "$TEXMFSYSVAR/web2c/fmtutil.cnf",
+- "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
+-
+- mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
+- info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
+- TeXLive::TLUtils::create_updmap ($tlp, #$localtlpdb,
+- "$TEXMFSYSCONFIG/web2c/updmap.cfg",
+- "$TEXMFLOCAL/web2c/updmap-local.cfg");
+-
+- info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
+- TeXLive::TLUtils::create_language_dat($tlp, #$localtlpdb,
+- "$TEXMFSYSVAR/tex/generic/config/language.dat",
+- "$TEXMFLOCAL/tex/generic/config/language-local.dat");
+-
+- info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
+- TeXLive::TLUtils::create_language_def($tlp, #$localtlpdb,
+- "$TEXMFSYSVAR/tex/generic/config/language.def",
+- "$TEXMFLOCAL/tex/generic/config/language-local.def");
+-
+- info("running mktexlsr $TEXMFSYSVAR\n");
+- system('mktexlsr', "$TEXMFSYSVAR");
+-
+- info("running updmap-sys... ");
+- # system('updmap-sys', '--nohash');
+- log(`updmap-sys --nohash 2>&1`);
+- info("done\n");
+-
+- info("re-running mktexlsr $TEXMFSYSVAR\n");
+- system('mktexlsr', "$TEXMFSYSVAR");
+-
+- # now work through the options if specified at all
+-
+- # letter instead of a4
+- if ($vars{'option_letter'}) {
+- info("Setting default paper size to letter\n");
+- if (platform() eq "hppa-hpux") {
+- # we didn't get a texlua binary for hppa-hpux, so try texconfig
+- system("texconfig", "paper", "letter");
+- } else {
+- system("texlua", "$TEXDIR/texmf/scripts/texlive/texconf.tlu", "--sys", "--noformat", "paper", "letter");
+- }
+- }
+-
+- # all formats option
+- if ($vars{'option_fmt'}) {
+- info("pre-generating all format files (fmtutil-sys --all), be patient...");
+- #system('fmtutil-sys', '--all');
+- # try to capture that output
+- log(`fmtutil-sys --all 2>&1`);
+- info("done\n");
+- }
+-
+- # option_links
+- if ($vars{'option_symlinks'}) {
+- # bin files
+- my @files;
+- mkdirhier $vars{'sys_bin'};
+- if (-w $vars{'sys_bin'}) {
+- info("linking binaries to $vars{'sys_bin'}\n");
+- @files = `ls $plat_bindir`;
+- chomp(@files);
+- `cd "$vars{'sys_bin'}" && rm -f @files`;
+- `ln -s "$plat_bindir/"* "$vars{'sys_bin'}"`;
+- } else {
+- info("destination of bin symlink $vars{'sys_bin'} not writable, "
+- . "no linking of bin files done.\n");
+- }
+- if ($vars{'option_doc'}) {
+- # info files
+- mkdirhier $vars{'sys_info'};
+- if (-w $vars{'sys_info'}) {
+- info("linking info pages to $vars{'sys_info'}\n");
+- @files = `ls "$TEXDIR/texmf/doc/info"`;
+- chomp(@files);
+- `cd "$vars{'sys_info'}" && rm -f @files`;
+- `ln -s "$TEXDIR/texmf/doc/info/"*info* "$vars{'sys_info'}"`;
+- } else {
+- info("destination of info symlink $vars{'sys_info'} not writable, "
+- . "no linking of info files done.\n");
+- }
+- # man files
+- mkdirhier $vars{'sys_man'};
+- if (-w $vars{'sys_man'}) {
+- info("linking man pages to $vars{'sys_man'}\n");
+- my $foo = `(cd "$TEXDIR/texmf/doc/man" && echo *)`;
+- my @mans = split ' ', $foo;
+- chomp(@mans);
+- foreach my $m (@mans) {
+- my $mandir = "$TEXDIR/texmf/doc/man/$m";
+- next unless -d $mandir;
+- mkdirhier "$vars{'sys_man'}/$m";
+- next unless -w "$vars{'sys_man'}/$m";
+- @files = `ls "$mandir"`;
+- chomp(@files);
+- `cd "$vars{'sys_man'}/$m" && rm -f @files`;
+- `ln -s "$mandir/"* "$vars{'sys_man'}/$m"`;
+- }
+- } else {
+- info("destination of man symlink $vars{'sys_man'} not writable, "
+- . "no linking of man files done.\n");
+- }
+- }
+- }
+-}
+-
+-
+-# we have to adjust the texmf.cnf file to the paths set in the configuration!
+-sub do_texmf_cnf {
+- open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
+- or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
+- my @texmfcnflines = <TMF>;
+- close(TMF);
+- my @newtmf;
+- my @changedtmf;
+- # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
+- foreach my $line (@texmfcnflines) {
+- if ($line =~ m/^TEXMFLOCAL/) {
+- # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
+- # we don't have to change anything from the default
+- my $deftmlocal = dirname($vars{'TEXDIR'});
+- $deftmlocal .= "/texmf-local";
+- if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
+- push @newtmf, $line;
+- } else {
+- push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+- push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+- }
+- } elsif ($line =~ m/^TEXMFSYSVAR/) {
+- # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
+- # we don't have to change anything from the default
+- if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
+- push @newtmf, $line;
+- } else {
+- push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+- push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+- }
+- } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
+- # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
+- # we don't have to change anything from the default
+- if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
+- push @newtmf, $line;
+- } else {
+- push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+- push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+- }
+- } elsif ($line =~ m/^TEXMFHOME/) {
+- # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
+- # unix differently
+- push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+- if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
+- push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+- }
+- } elsif ($line =~ m/^OSFONTDIR/) {
+- if (win32()) {
+- push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+- push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+- } else {
+- push @newtmf, $line;
+- }
+- } else {
+- push @newtmf, $line;
+- }
+- }
+- my $TMF;
+- if (!$vars{'from_dvd'}) {
+- $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
+- open(TMF, $TMF) || die "open($TMF) failed: $!";
+- print TMF <<EOF;
+-% This texmf.cnf file should contain only your personal changes from the
+-% main texmf.cnf.
+-%
+-% Do NOT change values in the main file (which is in
+-% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
+-% by later updates.
+-%
+-% If you need to make changes to texmf.cnf, put your custom settings in
+-% this file instead, which is YYYY/texmf.cnf. And insert *only* your
+-% changed values.
+-%
+-EOF
+-;
+- foreach (@changedtmf) { print TMF; }
+- } else {
+- $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
+- open (TMF, $TMF) || die "open($TMF) failed: $!\n";
+- foreach (@newtmf) { print TMF; }
+- }
+- close(TMF) || warn "close($TMF) failed: $!";
+-}
+-
+ # do everything to select a scheme
+ #
+ sub select_scheme {
Index: tlpkg/TeXLive/TLPDB.pm
===================================================================
---- tlpkg/TeXLive/TLPDB.pm (revision 12171)
+--- tlpkg/TeXLive/TLPDB.pm (revision 12198)
+++ tlpkg/TeXLive/TLPDB.pm (working copy)
+@@ -214,49 +214,49 @@
+ my $tlpdbfile;
+ if ($path =~ m;^((http|ftp)://|file:\/\/*);) {
+ debug("TLPDB.pm: trying to initialize from $path\n");
+- # if we have lzmadec available we try the lzma file
+- if (defined($::progs{'lzmadec'})) {
+- # we first try the lzma compressed file
++ # if we have xzdec available we try the xz file
++ if (defined($::progs{'xzdec'})) {
++ # we first try the xz compressed file
+ my $tmpdir = TeXLive::TLUtils::get_system_tmpdir();
+ my $bn = TeXLive::TLUtils::basename("$path");
+- my $lzmafile = "$tmpdir/$bn.$$.lzma";
+- my $lzmafile_quote = $lzmafile;
++ my $xzfile = "$tmpdir/$bn.$$.xz";
++ my $xzfile_quote = $xzfile;
+ # this is a variable of the whole sub as we have to remove the file
+ # before returning
+ $tlpdbfile = "$tmpdir/$bn.$$";
+ my $tlpdbfile_quote = $tlpdbfile;
+ if (win32()) {
+- $lzmafile =~ s!/!\\!g;
++ $xzfile =~ s!/!\\!g;
+ $tlpdbfile =~ s!/!\\!g;
+ }
+- $lzmafile_quote = "\"$lzmafile\"";
++ $xzfile_quote = "\"$xzfile\"";
+ $tlpdbfile_quote = "\"$tlpdbfile\"";
+- debug("trying to download $path.lzma to $lzmafile\n");
+- my $ret = TeXLive::TLUtils::download_file("$path.lzma", "$lzmafile");
++ debug("trying to download $path.xz to $xzfile\n");
++ my $ret = TeXLive::TLUtils::download_file("$path.xz", "$xzfile");
+ # better to check both, the return value AND the existence of the file
+- if ($ret && (-r "$lzmafile")) {
++ if ($ret && (-r "$xzfile")) {
+ # ok, let the fun begin
+- debug("un-lzmaing $lzmafile to $tlpdbfile\n");
+- # lzmadec *hopefully* returns 0 on success and anything else on failure
++ debug("un-xzing $xzfile to $tlpdbfile\n");
++ # xzdec *hopefully* returns 0 on success and anything else on failure
+ # we don't have to negate since not zero means error in the shell
+ # and thus in perl true
+- if (system("$::progs{'lzmadec'} <$lzmafile_quote >$tlpdbfile_quote")) {
+- debug("un-lzmaing $lzmafile failed, tryin gplain file\n");
+- # to be sure we unlink the lzma file and the tlpdbfile
+- unlink($lzmafile);
++ if (system("$::progs{'xzdec'} <$xzfile_quote >$tlpdbfile_quote")) {
++ debug("un-xzing $xzfile failed, tryin gplain file\n");
++ # to be sure we unlink the xz file and the tlpdbfile
++ unlink($xzfile);
+ unlink($tlpdbfile);
+ } else {
+- unlink($lzmafile);
++ unlink($xzfile);
+ open($retfh, "<$tlpdbfile") || die "$0: open($tlpdbfile) failed: $!";
+- debug("found the uncompressed lzma file\n");
++ debug("found the uncompressed xz file\n");
+ }
+ }
+ } else {
+- debug("no lzmadec defined, not trying tlpdb.lzma ...\n");
++ debug("no xzdec defined, not trying tlpdb.xz ...\n");
+ }
+ if (!defined($retfh)) {
+- debug("TLPDB: downloading $path.lzma didn't succeed, try $path\n");
+- # lzma did not succeed, so try the normal file
++ debug("TLPDB: downloading $path.xz didn't succeed, try $path\n");
++ # xz did not succeed, so try the normal file
+ $retfh = TeXLive::TLUtils::download_file($path, "|");
+ if (!$retfh) {
+ die "open tlpdb($path) failed: $!";
+@@ -277,7 +277,7 @@
+ }
+ } until (!$ret);
+ tlwarn("unusable location $path, could not load any packages\n") if (!$found);
+- # remove the un-lzma-ed tlpdb file from temp dir
++ # remove the un-xz-ed tlpdb file from temp dir
+ # THAT IS RACY!!! we should fix that in some better way with tempfile
+ unlink($tlpdbfile) if $tlpdbfile;
+ return($found);
+@@ -394,13 +394,13 @@
+ $container .= ".zip";
+ $unpackprog="unzip";
+ $args="-o -qq $container -d $dest";
+- } elsif (-r "$container.lzma") {
+- $container .= ".lzma";
++ } elsif (-r "$container.xz") {
++ $container .= ".xz";
+ $unpackprog="NO_IDEA_HOW_TO_UNPACK_LZMA";
+ $args="NO IDEA WHAT ARGS IT NEEDS";
+- die "$0: lzma checked for but not implemented, maybe update TLPDB.pm";
++ die "$0: xz checked for but not implemented, maybe update TLPDB.pm";
+ } else {
+- die "$0: No package $container (.zip or .lzma) in $ziplocation";
++ die "$0: No package $container (.zip or .xz) in $ziplocation";
+ }
+ tlwarn("Huuu, this needs testing and error checking!\n");
+ tlwarn("Should we use -a -- adapt line endings etc?\n");
@@ -788,7 +788,7 @@
read-only function; you cannot change the root of the TLPDB using this
function.
@@ -144,9 +976,18 @@ Index: tlpkg/TeXLive/TLPDB.pm
}
=item C<< $tlpdb->updmap_cfg_lines >>
+@@ -1420,7 +1463,7 @@
+ =item C<container_format/I<format>>
+
+ This option specifies a format for containers. The currently supported
+-formats are C<lzma> and C<zip>. But note that C<zip> is untested.
++formats are C<xz> and C<zip>. But note that C<zip> is untested.
+
+ =back
+
Index: tlpkg/TeXLive/TLConfig.pm
===================================================================
---- tlpkg/TeXLive/TLConfig.pm (revision 12171)
+--- tlpkg/TeXLive/TLConfig.pm (revision 12198)
+++ tlpkg/TeXLive/TLConfig.pm (working copy)
@@ -11,6 +11,7 @@
use vars qw( @ISA @EXPORT_OK @EXPORT );
@@ -172,7 +1013,12 @@ Index: tlpkg/TeXLive/TLConfig.pm
# Meta Categories do not ship files, but call only for other packages
our @MetaCategories = qw/Collection Scheme/;
our $MetaCategoriesRegexp = '(Collection|Scheme)';
-@@ -57,14 +63,14 @@
+@@ -53,18 +59,18 @@
+ our $BlockSize = 4096;
+
+ # the way we package things on the web
+-our $DefaultContainerExtension = "tar.lzma";
++our $DefaultContainerExtension = "tar.xz";
our $Archive = "archive";
our $TeXLiveServerURL = "http://mirror.ctan.org";
@@ -209,7 +1055,7 @@ Index: tlpkg/TeXLive/TLConfig.pm
Index: tlpkg/TeXLive/TLPostActions.pm
===================================================================
---- tlpkg/TeXLive/TLPostActions.pm (revision 12171)
+--- tlpkg/TeXLive/TLPostActions.pm (revision 12198)
+++ tlpkg/TeXLive/TLPostActions.pm (working copy)
@@ -20,48 +20,13 @@
use TeXLive::TLUtils qw(win32 mkdirhier copy conv_to_w32_path log debug info
@@ -859,7 +1705,7 @@ Index: tlpkg/TeXLive/TLPostActions.pm
Index: tlpkg/TeXLive/TLPSRC.pm
===================================================================
---- tlpkg/TeXLive/TLPSRC.pm (revision 12171)
+--- tlpkg/TeXLive/TLPSRC.pm (revision 12198)
+++ tlpkg/TeXLive/TLPSRC.pm (working copy)
@@ -30,6 +30,7 @@
srcpatterns => $params{'srcpatterns'},
@@ -936,8 +1782,17 @@ Index: tlpkg/TeXLive/TLPSRC.pm
Continuation lines are supported via a trailing backslash. That is, if
the C<.tlpsrc> file contains two physical lines like this:
-@@ -638,7 +655,7 @@
- is only "lzma", which generates .tar.lzma files. zip can be supported.
+@@ -631,14 +648,14 @@
+
+ This package contains configuration options for the TeX Live archive.
+ If container_split_{doc,src}_files occurs in the depend lines the
+-{doc,src} files are split into separate containers (.tar.lzma)
++{doc,src} files are split into separate containers (.tar.xz)
+ during container build time. Note that this has NO effect on the
+ appearance within the texlive.tlpdb. It is only on container level.
+ The container_format/XXXXX specifies the format, currently allowed
+-is only "lzma", which generates .tar.lzma files. zip can be supported.
++is only "xz", which generates .tar.xz files. zip can be supported.
release/NNNN specifies the release number as used in the installer.
-=item B<00texlive-installation.config>
@@ -999,7 +1854,7 @@ Index: tlpkg/TeXLive/TLPSRC.pm
adds a pattern (next section) to the respective list of patterns.
Index: tlpkg/TeXLive/TLPOBJ.pm
===================================================================
---- tlpkg/TeXLive/TLPOBJ.pm (revision 12171)
+--- tlpkg/TeXLive/TLPOBJ.pm (revision 12198)
+++ tlpkg/TeXLive/TLPOBJ.pm (working copy)
@@ -29,6 +29,7 @@
docfiles => defined($params{'docfiles'}) ? $params{'docfiles'} : [],
@@ -1052,6 +1907,61 @@ Index: tlpkg/TeXLive/TLPOBJ.pm
if (defined($self->{'docfiles'}) && (@{$self->{'docfiles'}})) {
print $fd "docfiles\n";
foreach (sort @{$self->{'docfiles'}}) {
+@@ -419,8 +435,8 @@
+
+ sub make_container {
+ my ($self,$type,$instroot,$destdir,$containername,$relative) = @_;
+- if (($type ne "lzma") && ($type ne "tar")) {
+- die "$0: TLPOBJ supports tar and lzma containers, not $type";
++ if (($type ne "xz") && ($type ne "tar")) {
++ die "$0: TLPOBJ supports tar and xz containers, not $type";
+ }
+ if (!defined($containername)) {
+ $containername = $self->name;
+@@ -484,21 +500,21 @@
+ if ($type eq "tar") {
+ $containername = $tarname;
+ } else {
+- $containername = "$tarname.lzma";
++ $containername = "$tarname.xz";
+ }
+
+ # start the fun
+ my $tar = $::progs{'tar'};
+- my $lzma;
++ my $xz;
+ if (!defined($tar)) {
+ tlwarn("$0: programs not set up, trying \"tar\".\n");
+ $tar = "tar";
+ }
+- if ($type eq "lzma") {
+- $lzma = $::progs{'lzma'};
+- if (!defined($lzma)) {
+- tlwarn("$0: programs not set up, trying \"lzma\".\n");
+- $lzma = "lzma";
++ if ($type eq "xz") {
++ $xz = $::progs{'xz'};
++ if (!defined($xz)) {
++ tlwarn("$0: programs not set up, trying \"xz\".\n");
++ $xz = "xz";
+ }
+ }
+
+@@ -564,11 +580,11 @@
+ xsystem(@cmdline);
+
+ # compress it.
+- if ($type eq "lzma") {
++ if ($type eq "xz") {
+ if (-r "$destdir/$tarname") {
+- system($lzma, "--force", "-z", "$destdir/$tarname");
++ system($xz, "--force", "-z", "$destdir/$tarname");
+ } else {
+- tlwarn("$0: Couldn't find $destdir/$tarname to run $lzma\n");
++ tlwarn("$0: Couldn't find $destdir/$tarname to run $xz\n");
+ return (0, 0, "");
+ }
+ }
@@ -837,7 +853,7 @@
} else {
push @maps, "disable $3";
@@ -1073,10 +1983,82 @@ Index: tlpkg/TeXLive/TLPOBJ.pm
sub containerdir {
my @self = shift;
if (@_) { $_containerdir = $_[0] }
+@@ -1187,7 +1208,7 @@
+ architectures as keys, similar to the C<runfiles> functions (see above).
+
+ Futhermore, if the tlpobj is contained ina tlpdb which describes a media
+-where the files are distributed in packed format (usually as .tar.lzma),
++where the files are distributed in packed format (usually as .tar.xz),
+ there are 6 more possible keys:
+
+ $tlpobj->containersize
+@@ -1249,11 +1270,11 @@
+ in C<$destdir> (if not defined then C<< TLPOBJ->containerdir >> is used).
+
+ The C<$type> variable specifies the type of container to be used.
+-Currently only C<zip> or C<lzma> are allowed, and are generating
+-zip files and tar.lzma files, respectively.
++Currently only C<zip> or C<xz> are allowed, and are generating
++zip files and tar.xz files, respectively.
+
+ The file name of the created container file is C<$containername.extension>,
+-where extension is either C<.zip> or C<.tar.lzma>, depending on the
++where extension is either C<.zip> or C<.tar.xz>, depending on the
+ setting of C<$type>. If no C<$containername> is specified the package name
+ is used.
+
Index: tlpkg/TeXLive/TLMedia.pm
===================================================================
---- tlpkg/TeXLive/TLMedia.pm (revision 12171)
+--- tlpkg/TeXLive/TLMedia.pm (revision 12198)
+++ tlpkg/TeXLive/TLMedia.pm (working copy)
+@@ -146,10 +146,10 @@
+ } elsif ($media eq 'CD') {
+ if (-r "$location/$Archive/$pkg.zip") {
+ $container = "$location/$Archive/$pkg.zip";
+- } elsif (-r "$location/$Archive/$pkg.tar.lzma") {
+- $container = "$location/$Archive/$pkg.tar.lzma";
++ } elsif (-r "$location/$Archive/$pkg.tar.xz") {
++ $container = "$location/$Archive/$pkg.tar.xz";
+ } else {
+- tlwarn("Cannot find a package $pkg (.zip or .lzma) in $location/$Archive\n");
++ tlwarn("Cannot find a package $pkg (.zip or .xz) in $location/$Archive\n");
+ next;
+ }
+ } elsif (&media eq 'NET') {
+@@ -164,20 +164,20 @@
+ # - src/doc files should be installed
+ # (- the package is not already a split one (like .i386-linux))
+ # the above test has been removed because it would mean that
+- # texlive.infra.doc.tar.lzma
++ # texlive.infra.doc.tar.xz
+ # will never be installed, and we do already check that there
+ # are at all src/doc files, which in split packages of the form
+ # foo.ARCH are not present. And if they are present, than that is fine,
+- # too (bin-foobar.win32.doc.tar.lzma)
++ # too (bin-foobar.win32.doc.tar.xz)
+ # - there are actually src/doc files present
+ if ($container_src_split && $opt_src && $tlpobj->srcfiles) {
+ my $srccontainer = $container;
+- $srccontainer =~ s/(\.tar\.lzma|\.zip)$/.source$1/;
++ $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/;
+ $self->_install_package($srccontainer,\@installfiles,$totlpdb) || return(0);
+ }
+ if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) {
+ my $doccontainer = $container;
+- $doccontainer =~ s/(\.tar\.lzma|\.zip)$/.doc$1/;
++ $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/;
+ $self->_install_package($doccontainer,\@installfiles,$totlpdb) || return(0);
+ }
+ }
+@@ -190,7 +190,7 @@
+ $tlpobj->clear_docfiles;
+ }
+ # we have to write out the tlpobj file since it is contained in the
+- # archives (.tar.lzma) but at DVD install time we don't have them
++ # archives (.tar.xz) but at DVD install time we don't have them
+ my $tlpod = $totlpdb->root . "/tlpkg/tlpobj";
+ mkdirhier( $tlpod );
+ open(TMP,">$tlpod/".$tlpobj->name.".tlpobj") or
@@ -208,6 +208,9 @@
info("running post install action for $pkg\n");
&{$PostInstall{$pkg}}($totlpdb->root);
@@ -1087,9 +2069,92 @@ Index: tlpkg/TeXLive/TLMedia.pm
}
return \%ret;
}
+@@ -228,8 +231,8 @@
+
+ # we assume that $::progs has been set up!
+ my $wget = $::progs{'wget'};
+- my $lzmadec = $::progs{'lzmadec'};
+- if (!defined($wget) || !defined($lzmadec)) {
++ my $xzdec = $::progs{'xzdec'};
++ if (!defined($wget) || !defined($xzdec)) {
+ tlwarn("_install_package: programs not set up properly, strange.\n");
+ return(0);
+ }
+@@ -246,27 +249,27 @@
+ }
+ # we always assume that copy will work
+ return(1);
+- } elsif ($what =~ m,\.tar(\.lzma)?$,) {
+- my $type = defined($1) ? "lzma" : "tar";
++ } elsif ($what =~ m,\.tar(\.xz)?$,) {
++ my $type = defined($1) ? "xz" : "tar";
+
+ # this is the case when we install from CD or the NET, or a backup
+ #
+- # in all other cases we create temp files .tar.lzma (or use the present
+- # one), lzmadec them, and then call tar
++ # in all other cases we create temp files .tar.xz (or use the present
++ # one), xzdec them, and then call tar
+
+ my $fn = basename($what);
+ mkdirhier("$target/temp");
+ my $tarfile;
+ my $remove_tarfile = 1;
+- if ($type eq "lzma") {
+- my $lzmafile = "$target/temp/$fn";
+- $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.lzma$//;
+- my $lzmafile_quote = $lzmafile;
++ if ($type eq "xz") {
++ my $xzfile = "$target/temp/$fn";
++ $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.xz$//;
++ my $xzfile_quote = $xzfile;
+ my $tarfile_quote = $tarfile;
+ my $target_quote = $target;
+ if (win32()) {
+- $lzmafile =~ s!/!\\!g;
+- $lzmafile_quote = "\"$lzmafile\"";
++ $xzfile =~ s!/!\\!g;
++ $xzfile_quote = "\"$xzfile\"";
+ $tarfile =~ s!/!\\!g;
+ $tarfile_quote = "\"$tarfile\"";
+ $target =~ s!/!\\!g;
+@@ -275,11 +278,11 @@
+ if ($what =~ m,http://|ftp://,) {
+ # we are installing from the NET
+ # download the file and put it into temp
+- if (!download_file($what, $lzmafile) || (! -r $lzmafile)) {
++ if (!download_file($what, $xzfile) || (! -r $xzfile)) {
+ tlwarn("Downloading \n");
+ tlwarn(" $what\n");
+ tlwarn("did not succeed, please retry.\n");
+- unlink($tarfile, $lzmafile);
++ unlink($tarfile, $xzfile);
+ return(0);
+ }
+ } else {
+@@ -287,14 +290,14 @@
+ # copy it to temp
+ copy($what, "$target/temp");
+ }
+- debug("un-lzmaing $lzmafile to $tarfile\n");
+- system("$lzmadec < $lzmafile_quote > $tarfile_quote");
++ debug("un-xzing $xzfile to $tarfile\n");
++ system("$xzdec < $xzfile_quote > $tarfile_quote");
+ if (! -f $tarfile) {
+- tlwarn("_install_package: Unpacking $lzmafile failed, please retry.\n");
+- unlink($tarfile, $lzmafile);
++ tlwarn("_install_package: Unpacking $xzfile failed, please retry.\n");
++ unlink($tarfile, $xzfile);
+ return(0);
+ }
+- unlink($lzmafile);
++ unlink($xzfile);
+ } else {
+ $tarfile = "$target/temp/$fn";
+ if ($what =~ m,http://|ftp://,) {
Index: tlpkg/TeXLive/TLUtils.pm
===================================================================
---- tlpkg/TeXLive/TLUtils.pm (revision 12171)
+--- tlpkg/TeXLive/TLUtils.pm (revision 12198)
+++ tlpkg/TeXLive/TLUtils.pm (working copy)
@@ -56,6 +56,7 @@
TeXLive::TLUtils::create_language_def($tlpdb,$dest,$localconf);
@@ -1099,6 +2164,168 @@ Index: tlpkg/TeXLive/TLUtils.pm
=head2 Miscellaneous
+@@ -1006,10 +1007,10 @@
+ } elsif ($media eq 'CD') {
+ if (-r "$root/$Archive/$package.zip") {
+ $container = "$root/$Archive/$package.zip";
+- } elsif (-r "$root/$Archive/$package.tar.lzma") {
+- $container = "$root/$Archive/$package.tar.lzma";
++ } elsif (-r "$root/$Archive/$package.tar.xz") {
++ $container = "$root/$Archive/$package.tar.xz";
+ } else {
+- tlwarn("No package $package (.zip or .lzma) in $root/$Archive\n");
++ tlwarn("No package $package (.zip or .xz) in $root/$Archive\n");
+ next;
+ }
+ } elsif ($media eq 'NET') {
+@@ -1036,7 +1037,7 @@
+ # - there are actually src/doc files present
+ if ($container_src_split && $opt_src && $tlpobj->srcfiles) {
+ my $srccontainer = $container;
+- $srccontainer =~ s/(\.tar\.lzma|\.zip)$/.source$1/;
++ $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/;
+ if (!install_package($srccontainer, $tlpobj->srccontainersize,
+ $tlpobj->srccontainermd5, \@installfiles,
+ $totlpdb->root, $vars{'this_platform'})) {
+@@ -1045,7 +1046,7 @@
+ }
+ if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) {
+ my $doccontainer = $container;
+- $doccontainer =~ s/(\.tar\.lzma|\.zip)$/.doc$1/;
++ $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/;
+ if (!install_package($doccontainer,
+ $tlpobj->doccontainersize,
+ $tlpobj->doccontainermd5, \@installfiles,
+@@ -1064,7 +1065,7 @@
+ }
+ $totlpdb->add_tlpobj($tlpobj);
+ # we have to write out the tlpobj file since it is contained in the
+- # archives (.tar.lzma) but at DVD install time we don't have them
++ # archives (.tar.xz) but at DVD install time we don't have them
+ my $tlpod = $totlpdb->root . "/tlpkg/tlpobj";
+ mkdirhier( $tlpod );
+ open(TMP,">$tlpod/".$tlpobj->name.".tlpobj") ||
+@@ -1097,11 +1098,11 @@
+ account.
+
+ If C<$what> starts with C<http://> or C<ftp://> then C<$what> is
+-downloaded from the net and piped through C<lzmadec> and C<tar>.
++downloaded from the net and piped through C<xzdec> and C<tar>.
+
+-If $what ends with C<.tar.lzma> (but does not start with C<http://> or
++If $what ends with C<.tar.xz> (but does not start with C<http://> or
+ C<ftp://>, but possibly with C<file:/>) it is assumed to be a readable
+-file on the system and is likewise piped through C<lzmadec> and C<tar>.
++file on the system and is likewise piped through C<xzdec> and C<tar>.
+
+ In both of these cases currently the list C<$@filelistref> currently
+ is not taken into account (should be fixed!).
+@@ -1117,9 +1118,9 @@
+
+ # we assume that $::progs has been set up!
+ my $wget = $::progs{'wget'};
+- my $lzmadec = $::progs{'lzmadec'};
+- if (!defined($wget) || !defined($lzmadec)) {
+- tlwarn("install_package: wget/lzmadec programs not set up properly.\n");
++ my $xzdec = $::progs{'xzdec'};
++ if (!defined($wget) || !defined($xzdec)) {
++ tlwarn("install_package: wget/xzdec programs not set up properly.\n");
+ return 0;
+ }
+ if (ref $what) {
+@@ -1132,35 +1133,35 @@
+ mkdirhier("$target/$dn");
+ copy "$root/$file", "$target/$dn";
+ }
+- } elsif ($what =~ m,\.tar.lzma$,) {
++ } elsif ($what =~ m,\.tar.xz$,) {
+ # this is the case when we install from CD or the NET
+ #
+- # in all other cases we create temp files .tar.lzma (or use the present
+- # one), lzmadec them, and then call tar
++ # in all other cases we create temp files .tar.xz (or use the present
++ # one), xzdec them, and then call tar
+
+ my $fn = basename($what);
+ mkdirhier("$target/temp");
+- my $lzmafile = "$target/temp/$fn";
+- my $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.lzma$//;
+- my $lzmafile_quote = $lzmafile;
++ my $xzfile = "$target/temp/$fn";
++ my $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.xz$//;
++ my $xzfile_quote = $xzfile;
+ my $tarfile_quote = $tarfile;
+ if (win32()) {
+- $lzmafile =~ s!/!\\!g;
++ $xzfile =~ s!/!\\!g;
+ $tarfile =~ s!/!\\!g;
+ $target =~ s!/!\\!g;
+ }
+- $lzmafile_quote = "\"$lzmafile\"";
++ $xzfile_quote = "\"$xzfile\"";
+ $tarfile_quote = "\"$tarfile\"";
+ my $gotfiledone = 0;
+- if (-r $lzmafile) {
++ if (-r $xzfile) {
+ # check that the downloaded file is not partial
+ if ($whatsize >= 0) {
+ # we have the size given, so check that first
+- my $size = (stat $lzmafile)[7];
++ my $size = (stat $xzfile)[7];
+ if ($size == $whatsize) {
+ # we want to check also the md5sum if we have it present
+ if ($whatmd5) {
+- if (tlmd5($lzmafile) eq $whatmd5) {
++ if (tlmd5($xzfile) eq $whatmd5) {
+ $gotfiledone = 1;
+ } else {
+ tlwarn("Downloaded $what, size equal, but md5sum differs;\n",
+@@ -1174,12 +1175,12 @@
+ }
+ } else {
+ tlwarn("Partial download of $what found, removing it.\n");
+- unlink($tarfile, $lzmafile);
++ unlink($tarfile, $xzfile);
+ }
+ } else {
+ # ok no size information, hopefully we have md5 sums
+ if ($whatmd5) {
+- if (tlmd5($lzmafile) eq $whatmd5) {
++ if (tlmd5($xzfile) eq $whatmd5) {
+ $gotfiledone = 1;
+ } else {
+ tlwarn("Downloaded file, but md5sum differs, removing it.\n");
+@@ -1190,14 +1191,14 @@
+ $gotfiledone = 1;
+ }
+ }
+- debug("Reusing already downloaded container $lzmafile\n")
++ debug("Reusing already downloaded container $xzfile\n")
+ if ($gotfiledone);
+ }
+ if (!$gotfiledone) {
+ if ($what =~ m,http://|ftp://,) {
+ # we are installing from the NET
+ # download the file and put it into temp
+- if (!download_file($what, $lzmafile) || (! -r $lzmafile)) {
++ if (!download_file($what, $xzfile) || (! -r $xzfile)) {
+ tlwarn("Downloading $what did not succeed.\n");
+ return 0;
+ }
+@@ -1207,10 +1208,10 @@
+ copy($what, "$target/temp");
+ }
+ }
+- debug("un-lzmaing $lzmafile to $tarfile\n");
+- system("$lzmadec < $lzmafile_quote > $tarfile_quote");
++ debug("un-xzing $xzfile to $tarfile\n");
++ system("$xzdec < $xzfile_quote > $tarfile_quote");
+ if (! -f $tarfile) {
+- tlwarn("Unpacking $lzmafile did not succeed.\n");
++ tlwarn("Unpacking $xzfile did not succeed.\n");
+ return 0;
+ }
+ if (!TeXLive::TLUtils::untar($tarfile, $target, 1)) {
@@ -1224,7 +1225,111 @@
return 1;
}
@@ -1211,9 +2438,55 @@ Index: tlpkg/TeXLive/TLUtils.pm
=item C<untar($tarfile,$targetdir, $remove_tarfile)>
Unpacked C<$tarfile> in C<$targetdir> (changing directories to
+@@ -1268,8 +1373,8 @@
+ =item C<setup_programs($bindir, $platform)>
+
+ Populate the global C<$::progs> hash containing the paths to the
+-programs C<wget>, C<tar>, C<lzmadec>. The C<$bindir> argument specifies
+-the path to the location of the C<lzmadec> binaries, the C<$platform>
++programs C<wget>, C<tar>, C<xzdec>. The C<$bindir> argument specifies
++the path to the location of the C<xzdec> binaries, the C<$platform>
+ gives the TeX Live platform name, used as the extension on our
+ executables. If a program is not present in the TeX Live tree, we also
+ check along PATH (without the platform extension.)
+@@ -1283,17 +1388,17 @@
+ my $ok = 1;
+
+ $::progs{'wget'} = "wget";
+- $::progs{'lzmadec'} = "lzmadec";
+- $::progs{'lzma'} = "lzma";
++ $::progs{'xzdec'} = "xzdec";
++ $::progs{'xz'} = "xz";
+ $::progs{'tar'} = "tar";
+
+ if ($^O =~ /^MSWin(32|64)$/i) {
+ $::progs{'wget'} = conv_to_w32_path("$bindir/wget/wget.exe");
+ $::progs{'tar'} = conv_to_w32_path("$bindir/tar.exe");
+- $::progs{'lzmadec'} = conv_to_w32_path("$bindir/lzma/lzmadec.win32.exe");
+- $::progs{'lzma'} = conv_to_w32_path("$bindir/lzma/lzma.exe");
+- for my $prog ("lzmadec", "wget") {
+- my $opt = $prog eq "lzmadec" ? "--help" : "--version";
++ $::progs{'xzdec'} = conv_to_w32_path("$bindir/xz/xzdec.win32.exe");
++ $::progs{'xz'} = conv_to_w32_path("$bindir/xz/xz.exe");
++ for my $prog ("xzdec", "wget") {
++ my $opt = $prog eq "xzdec" ? "--help" : "--version";
+ my $ret = system("$::progs{$prog} $opt >nul 2>&1"); # on windows
+ if ($ret != 0) {
+ warn "TeXLive::TLUtils::setup_programs (w32) failed"; # no nl for perl
+@@ -1315,8 +1420,8 @@
+ }
+ my $s = 0;
+ $s += setup_unix_one('wget', "$bindir/wget/wget.$platform", "--version");
+- $s += setup_unix_one('lzmadec',"$bindir/lzma/lzmadec.$platform","--help");
+- $s += setup_unix_one('lzma', "$bindir/lzma/lzma.$platform", "notest");
++ $s += setup_unix_one('xzdec',"$bindir/xz/xzdec.$platform","--help");
++ $s += setup_unix_one('xz', "$bindir/xz/xz.$platform", "notest");
+ $ok = ($s == 3); # failure return unless all are present.
+ }
+
Index: tlpkg/TeXLive/TLWinGoo.pm
===================================================================
---- tlpkg/TeXLive/TLWinGoo.pm (revision 12171)
+--- tlpkg/TeXLive/TLWinGoo.pm (revision 12198)
+++ tlpkg/TeXLive/TLWinGoo.pm (working copy)
@@ -58,7 +58,6 @@
$prog, $args, $batgui);
@@ -1325,7 +2598,7 @@ Index: tlpkg/TeXLive/TLWinGoo.pm
\"\%TEMP\%\\uninst2.bat\"
Index: tlpkg/installer/install-menu-perltk.pl
===================================================================
---- tlpkg/installer/install-menu-perltk.pl (revision 12171)
+--- tlpkg/installer/install-menu-perltk.pl (revision 12198)
+++ tlpkg/installer/install-menu-perltk.pl (working copy)
@@ -62,7 +62,6 @@
my $texmfhometext;
@@ -1405,7 +2678,7 @@ Index: tlpkg/installer/install-menu-perltk.pl
sub callback_select_scheme {
Index: tlpkg/installer/install-translations.pl
===================================================================
---- tlpkg/installer/install-translations.pl (revision 12171)
+--- tlpkg/installer/install-translations.pl (revision 12198)
+++ tlpkg/installer/install-translations.pl (working copy)
@@ -52,7 +52,7 @@
}
@@ -1444,7 +2717,7 @@ Index: tlpkg/installer/install-translations.pl
if (($::lang ne "en") && ($::lang ne "C")) {
Index: tlpkg/installer/install-menu-text.pl
===================================================================
---- tlpkg/installer/install-menu-text.pl (revision 12171)
+--- tlpkg/installer/install-menu-text.pl (revision 12198)
+++ tlpkg/installer/install-menu-text.pl (working copy)
@@ -675,7 +675,7 @@
@@ -1543,7 +2816,7 @@ Index: tlpkg/installer/install-menu-text.pl
if ($vars{'from_dvd'}) {
Index: tlpkg/tlpsrc/bin-tex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-tex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-tex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-tex.tlpsrc (working copy)
@@ -1,7 +1,6 @@
name bin-tex
@@ -1556,7 +2829,7 @@ Index: tlpkg/tlpsrc/bin-tex.tlpsrc
binpattern f bin/${ARCH}/tex
Index: tlpkg/tlpsrc/bin-mex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-mex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-mex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-mex.tlpsrc (working copy)
@@ -2,10 +2,9 @@
category TLCore
@@ -1574,7 +2847,7 @@ Index: tlpkg/tlpsrc/bin-mex.tlpsrc
binpattern f bin/${ARCH}/utf8mex
Index: tlpkg/tlpsrc/texlive-de.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-de.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-de.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-de.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-de
@@ -1583,7 +2856,7 @@ Index: tlpkg/tlpsrc/texlive-de.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (de) (HTML)" cmd=TEXDIR/texmf-doc/doc/german/texlive-de/texlive-de.html
Index: tlpkg/tlpsrc/00texlive.installer.tlpsrc
===================================================================
---- tlpkg/tlpsrc/00texlive.installer.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/00texlive.installer.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/00texlive.installer.tlpsrc (working copy)
@@ -7,7 +7,7 @@
longdesc used *except* to build the installer archives, so it's ok.
@@ -1594,9 +2867,31 @@ Index: tlpkg/tlpsrc/00texlive.installer.tlpsrc
category TLCore
runpattern f install-tl
runpattern f tlpkg/installer/install-tl.html
+@@ -16,8 +16,8 @@
+ #runpattern d tlpkg/TeXLive
+ runpattern d tlpkg/installer
+ #
+-# but no lzma binaries
+-runpattern !d tlpkg/installer/lzma
++# but no xz binaries
++runpattern !d tlpkg/installer/xz
+ runpattern !d tlpkg/installer/wget
+ #
+ # and no perl lib
+@@ -35,8 +35,8 @@
+ # shouldn't be in the installer packages
+ # binpattern f/win32 tl-portable.bat
+ binpattern f/win32 install-tl.bat.manifest
+-binpattern f/!win32 tlpkg/installer/lzma/lzmadec.${ARCH}
++binpattern f/!win32 tlpkg/installer/xz/xzdec.${ARCH}
+ binpattern f/!win32,i386-solaris,i386-linux,mips-irix,sparc-linux,alpha-linux,powerpc-linux,i386-freebsd,x86_64-linux tlpkg/installer/wget/wget.${ARCH}
+ binpattern f/win32 tlpkg/installer/wget/wget.exe
+ # why the above does not catch that one I don't know ... so add it
+-binpattern f/win32 tlpkg/installer/lzma/lzmadec.win32.exe
++binpattern f/win32 tlpkg/installer/xz/xzdec.win32.exe
Index: tlpkg/tlpsrc/pdftex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/pdftex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/pdftex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/pdftex.tlpsrc (working copy)
@@ -1,8 +1,9 @@
name pdftex
@@ -1612,7 +2907,7 @@ Index: tlpkg/tlpsrc/pdftex.tlpsrc
runpattern f texmf/tex/generic/pdftex/*
Index: tlpkg/tlpsrc/bin-csplain.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-csplain.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-csplain.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-csplain.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-csplain
@@ -1626,7 +2921,7 @@ Index: tlpkg/tlpsrc/bin-csplain.tlpsrc
binpattern f bin/${ARCH}/pdfcsplain
Index: tlpkg/tlpsrc/bin-metapost.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-metapost.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-metapost.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-metapost.tlpsrc (working copy)
@@ -1,8 +1,8 @@
name bin-metapost
@@ -1641,22 +2936,32 @@ Index: tlpkg/tlpsrc/bin-metapost.tlpsrc
docpattern f texmf/doc/man/man1/makempx.*
Index: tlpkg/tlpsrc/00texlive.config.tlpsrc
===================================================================
---- tlpkg/tlpsrc/00texlive.config.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/00texlive.config.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/00texlive.config.tlpsrc (working copy)
-@@ -9,8 +9,8 @@
- longdesc is only "lzma", which generates .tar.lzma files. zip can be supported.
+@@ -2,15 +2,15 @@
+ category TLCore
+ longdesc This package contains configuration options for the TeX Live archive
+ longdesc If container_split_{doc,src}_files occurs in the depend lines the
+-longdesc {doc,src} files are split into separate containers (.tar.lzma)
++longdesc {doc,src} files are split into separate containers (.tar.xz)
+ longdesc during container build time. Note that this has NO effect on the
+ longdesc appearance within the texlive.tlpdb. It is only on container level.
+ longdesc The container_format/XXXXX specifies the format, currently allowed
+-longdesc is only "lzma", which generates .tar.lzma files. zip can be supported.
++longdesc is only "xz", which generates .tar.xz files. zip can be supported.
longdesc release/NNNN specifies the release number as used in the installer.
longdesc For information on the 00texlive prefix see
-longdesc 00texlive-installation.config(.tlpsrc)
+longdesc 00texlive.installation(.tlpsrc)
depend container_split_src_files
depend container_split_doc_files
- depend container_format/lzma
+-depend container_format/lzma
-depend release/2008
++depend container_format/xz
+depend release/2009
Index: tlpkg/tlpsrc/texlive-fr.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-fr.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-fr.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-fr.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-fr
@@ -1665,7 +2970,7 @@ Index: tlpkg/tlpsrc/texlive-fr.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (fr) (HTML)" cmd=TEXDIR/texmf-doc/doc/french/texlive-fr/texlive-fr.html
Index: tlpkg/tlpsrc/texlive-zh-cn.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (working copy)
@@ -1,2 +1,3 @@
name texlive-zh-cn
@@ -1673,7 +2978,7 @@ Index: tlpkg/tlpsrc/texlive-zh-cn.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (zh-cn) (PDF)" cmd=TEXDIR/texmf-doc/doc/chinese/texlive-zh-cn/texlive-zh-cn.pdf
Index: tlpkg/tlpsrc/bin-dviout.win32.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (working copy)
@@ -2,3 +2,4 @@
category TLCore
@@ -1682,7 +2987,7 @@ Index: tlpkg/tlpsrc/bin-dviout.win32.tlpsrc
+postaction shortcut type=menu name="DVIOUT Dvi Viewer" cmd=wscript args=TEXDIR/bin/win32/dviout.vbs hide=1
Index: tlpkg/tlpsrc/bin-context.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-context.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-context.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-context.tlpsrc (working copy)
@@ -1,9 +1,15 @@
name bin-context
@@ -1704,7 +3009,7 @@ Index: tlpkg/tlpsrc/bin-context.tlpsrc
docpattern f texmf/doc/man/man1/mptopdf.*
Index: tlpkg/tlpsrc/bin-mltex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-mltex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-mltex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-mltex.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-mltex
@@ -1718,7 +3023,7 @@ Index: tlpkg/tlpsrc/bin-mltex.tlpsrc
binpattern f bin/${ARCH}/mltex
Index: tlpkg/tlpsrc/luatex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/luatex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/luatex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/luatex.tlpsrc (working copy)
@@ -1,8 +1,8 @@
name luatex
@@ -1733,7 +3038,7 @@ Index: tlpkg/tlpsrc/luatex.tlpsrc
binpattern f/!hppa-hpux bin/${ARCH}/texlua
Index: tlpkg/tlpsrc/bin-cslatex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-cslatex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-cslatex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-cslatex.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-cslatex
@@ -1747,7 +3052,7 @@ Index: tlpkg/tlpsrc/bin-cslatex.tlpsrc
binpattern f bin/${ARCH}/pdfcslatex
Index: tlpkg/tlpsrc/bin-texdoc.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-texdoc.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-texdoc.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-texdoc.tlpsrc (working copy)
@@ -12,3 +12,4 @@
binpattern f bin/${ARCH}/texdoctk
@@ -1756,7 +3061,7 @@ Index: tlpkg/tlpsrc/bin-texdoc.tlpsrc
+postaction shortcut type=menu name="TeXdoc GUI" cmd="TEXDIR/bin/win32/texdoctk.bat" hide=1
Index: tlpkg/tlpsrc/bin-latex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-latex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-latex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-latex.tlpsrc (working copy)
@@ -4,12 +4,14 @@
depend pdftex
@@ -1777,7 +3082,7 @@ Index: tlpkg/tlpsrc/bin-latex.tlpsrc
runpattern d texmf/tex/latex/config
Index: tlpkg/tlpsrc/bin-omega.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-omega.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-omega.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-omega.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-omega
@@ -1791,7 +3096,7 @@ Index: tlpkg/tlpsrc/bin-omega.tlpsrc
binpattern f bin/${ARCH}/lambda
Index: tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (working copy)
@@ -5,3 +5,5 @@
runpattern f bin/win32/psv.bat
@@ -1801,7 +3106,7 @@ Index: tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc
+postaction shortcut type=desktop name="PS_View" icon=TEXDIR/tlpkg/tlpsv/psv.exe cmd=TEXDIR/bin/win32/psv.bat hide=1
Index: tlpkg/tlpsrc/bin-xmltex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-xmltex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-xmltex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-xmltex.tlpsrc (working copy)
@@ -2,7 +2,7 @@
category TLCore
@@ -1815,7 +3120,7 @@ Index: tlpkg/tlpsrc/bin-xmltex.tlpsrc
binpattern f bin/${ARCH}/xmltex
Index: tlpkg/tlpsrc/texlive-ru.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-ru.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-ru.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-ru.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-ru
@@ -1824,7 +3129,7 @@ Index: tlpkg/tlpsrc/texlive-ru.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (ru) (HTML)" cmd=TEXDIR/texmf-doc/doc/russian/texlive-ru/texlive-ru.html
Index: tlpkg/tlpsrc/bin-texlive.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-texlive.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-texlive.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-texlive.tlpsrc (working copy)
@@ -1,27 +1,11 @@
name bin-texlive
@@ -1857,7 +3162,7 @@ Index: tlpkg/tlpsrc/bin-texlive.tlpsrc
-binpattern f/win32 texmf/scripts/texlive/updater-w32.bat
Index: tlpkg/tlpsrc/t2.tlpsrc
===================================================================
---- tlpkg/tlpsrc/t2.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/t2.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/t2.tlpsrc (working copy)
@@ -1,5 +1,5 @@
name t2
@@ -1870,7 +3175,7 @@ Index: tlpkg/tlpsrc/t2.tlpsrc
+execute AddFormat name=cyrtexinfo mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyrtxinf.ini"
Index: tlpkg/tlpsrc/bin-texsis.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-texsis.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-texsis.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-texsis.tlpsrc (working copy)
@@ -1,6 +1,5 @@
name bin-texsis
@@ -1882,7 +3187,7 @@ Index: tlpkg/tlpsrc/bin-texsis.tlpsrc
binpattern f bin/${ARCH}/texsis
Index: tlpkg/tlpsrc/texlive-en.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-en.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-en.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-en.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-en
@@ -1891,7 +3196,7 @@ Index: tlpkg/tlpsrc/texlive-en.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (en) (HTML)" cmd=TEXDIR/texmf-doc/doc/english/texlive-en/texlive-en.html
Index: tlpkg/tlpsrc/bin-physe.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-physe.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-physe.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-physe.tlpsrc (working copy)
@@ -1,6 +1,5 @@
name bin-physe
@@ -1903,7 +3208,7 @@ Index: tlpkg/tlpsrc/bin-physe.tlpsrc
binpattern f bin/${ARCH}/physe
Index: tlpkg/tlpsrc/bin-phyzzx.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-phyzzx.tlpsrc (working copy)
@@ -1,6 +1,5 @@
name bin-phyzzx
@@ -1915,7 +3220,7 @@ Index: tlpkg/tlpsrc/bin-phyzzx.tlpsrc
binpattern f bin/${ARCH}/phyzzx
Index: tlpkg/tlpsrc/bin-eplain.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-eplain.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-eplain.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-eplain.tlpsrc (working copy)
@@ -1,8 +1,7 @@
name bin-eplain
@@ -1929,7 +3234,7 @@ Index: tlpkg/tlpsrc/bin-eplain.tlpsrc
binpattern f bin/${ARCH}/eplain
Index: tlpkg/tlpsrc/texlive-cz.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-cz.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-cz.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-cz.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-cz
@@ -1938,7 +3243,7 @@ Index: tlpkg/tlpsrc/texlive-cz.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (cz) (HTML)" cmd=TEXDIR/texmf-doc/doc/czechslovak/texlive-cz/texlive-cz.html
Index: tlpkg/tlpsrc/bin-jadetex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-jadetex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-jadetex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-jadetex.tlpsrc (working copy)
@@ -2,7 +2,7 @@
category TLCore
@@ -1952,7 +3257,7 @@ Index: tlpkg/tlpsrc/bin-jadetex.tlpsrc
binpattern f bin/${ARCH}/pdfjadetex
Index: tlpkg/tlpsrc/00texlive-installation.config.tlpsrc
===================================================================
---- tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (working copy)
@@ -1,30 +0,0 @@
-name 00texlive-installation.config
@@ -1987,7 +3292,7 @@ Index: tlpkg/tlpsrc/00texlive-installation.config.tlpsrc
-depend opt_install_srcfiles:1
Index: tlpkg/tlpsrc/texlive-pl.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive-pl.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive-pl.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive-pl.tlpsrc (working copy)
@@ -1,2 +1,4 @@
name texlive-pl
@@ -1996,7 +3301,7 @@ Index: tlpkg/tlpsrc/texlive-pl.tlpsrc
+postaction shortcut type=menu name="TeX Live Manual (pl) (HTML)" cmd=TEXDIR/texmf-doc/doc/polish/texlive-pl/texlive-pl.html
Index: tlpkg/tlpsrc/bin-amstex.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-amstex.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-amstex.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-amstex.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-amstex
@@ -2010,7 +3315,7 @@ Index: tlpkg/tlpsrc/bin-amstex.tlpsrc
binpattern f bin/${ARCH}/amstex
Index: tlpkg/tlpsrc/bin-aleph.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-aleph.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-aleph.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-aleph.tlpsrc (working copy)
@@ -1,7 +1,7 @@
name bin-aleph
@@ -2024,31 +3329,42 @@ Index: tlpkg/tlpsrc/bin-aleph.tlpsrc
binpattern f bin/${ARCH}/lamed
Index: tlpkg/tlpsrc/00texlive.installation.tlpsrc
===================================================================
---- tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 12171)
-+++ tlpkg/tlpsrc/00texlive.installation.tlpsrc (working copy)
-@@ -1,4 +1,4 @@
--name 00texlive-installation.config
+--- tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 0)
++++ tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 0)
+@@ -0,0 +1,30 @@
+name 00texlive.installation
- category TLCore
- longdesc This package serves two purposes:
- longdesc
-@@ -22,7 +22,7 @@
- depend location:__MASTER__
- depend opt_paper:a4
- depend opt_create_formats:1
--depend opt_create_symlinks:0
++category TLCore
++longdesc This package serves two purposes:
++longdesc
++longdesc 1. at installation time the present values are taken as default for
++longdesc the installer
++longdesc
++longdesc 2. on an installed system it serves as a configuration file.
++longdesc We have to remember these settings for additional package
++longdesc installation, removal, etc.
++longdesc
++longdesc The value of __MASTER__ for the location field tells the
++longdesc installer to use the present directory itself. For example,
++longdesc the DVD can be mounted anywhere and we want the installer to work.
++longdesc
++longdesc Concerning the 00* names:
++longdesc All packages starting with 00texlive are considered virtual packages
++longdesc in the sense that no containers are generated and these packages
++longdesc are never split into .src and .doc sub-packages in the tlpdb.
++
++depend platform:
++depend location:__MASTER__
++depend opt_paper:a4
++depend opt_create_formats:1
+depend opt_system_integration:0
- depend opt_sys_bin:/usr/local/bin
- depend opt_sys_info:/usr/local/info
- depend opt_sys_man:/usr/local/man
-
-Property changes on: tlpkg/tlpsrc/00texlive.installation.tlpsrc
-___________________________________________________________________
-Added: svn:mergeinfo
-
++depend opt_sys_bin:/usr/local/bin
++depend opt_sys_info:/usr/local/info
++depend opt_sys_man:/usr/local/man
++depend opt_install_docfiles:1
++depend opt_install_srcfiles:1
Index: tlpkg/tlpsrc/00texlive.core.tlpsrc
===================================================================
---- tlpkg/tlpsrc/00texlive.core.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/00texlive.core.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/00texlive.core.tlpsrc (working copy)
@@ -6,7 +6,7 @@
longdesc and containers are not built; they exist only in the
@@ -2061,7 +3377,7 @@ Index: tlpkg/tlpsrc/00texlive.core.tlpsrc
runpattern d tlpkg/libexec
Index: tlpkg/tlpsrc/bin-metafont.tlpsrc
===================================================================
---- tlpkg/tlpsrc/bin-metafont.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/bin-metafont.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/bin-metafont.tlpsrc (working copy)
@@ -1,8 +1,7 @@
name bin-metafont
@@ -2075,9 +3391,31 @@ Index: tlpkg/tlpsrc/bin-metafont.tlpsrc
binpattern f bin/${ARCH}/mf
Index: tlpkg/tlpsrc/texlive.infra.tlpsrc
===================================================================
---- tlpkg/tlpsrc/texlive.infra.tlpsrc (revision 12171)
+--- tlpkg/tlpsrc/texlive.infra.tlpsrc (revision 12198)
+++ tlpkg/tlpsrc/texlive.infra.tlpsrc (working copy)
-@@ -36,3 +36,17 @@
+@@ -3,7 +3,7 @@
+ shortdesc basic TeX Live infrastructure
+ longdesc This package contains the files needed to get the TeX Live
+ longdesc tools (notably tlmgr) running. That comprises the perl modules,
+-longdesc documentation, and the lzma binaries, plus tar and wget, sometimes.
++longdesc documentation, and the xz binaries, plus tar and wget, sometimes.
+ longdesc These files end up in the install packages.
+ #
+ # Until TL'09, reduce installed doc to just this file (which was present
+@@ -27,12 +27,26 @@
+ runpattern f release-texlive.txt
+ #
+ binpattern f/win32 tlpkg/installer/tar.exe
+-binpattern f/win32 tlpkg/installer/lzma/lzmadec.win32.exe
+-binpattern f/win32 tlpkg/installer/lzma/lzma.exe
++binpattern f/win32 tlpkg/installer/xz/xzdec.win32.exe
++binpattern f/win32 tlpkg/installer/xz/xz.exe
+ binpattern f/win32 tlpkg/installer/wget/wget.exe
+-binpattern f tlpkg/installer/lzma/lzmadec.${ARCH}
+-binpattern f tlpkg/installer/lzma/lzma.${ARCH}
++binpattern f tlpkg/installer/xz/xzdec.${ARCH}
++binpattern f tlpkg/installer/xz/xz.${ARCH}
+ # we count on lots of platforms providing their own wget.
binpattern f/!i386-solaris,i386-linux,mips-irix,sparc-linux,alpha-linux,\
powerpc-linux,i386-freebsd,x86_64-linux \
tlpkg/installer/wget/wget.${ARCH}
@@ -2097,7 +3435,7 @@ Index: tlpkg/tlpsrc/texlive.infra.tlpsrc
+postaction shortcut type=menu name="Release notes" cmd="http://tug.org/texlive/windows.html"
Index: tlpkg/bin/tl-update-tlcritical
===================================================================
---- tlpkg/bin/tl-update-tlcritical (revision 12171)
+--- tlpkg/bin/tl-update-tlcritical (revision 12198)
+++ tlpkg/bin/tl-update-tlcritical (working copy)
@@ -34,7 +34,7 @@
# update normal containers.
@@ -2108,9 +3446,153 @@ Index: tlpkg/bin/tl-update-tlcritical
# update Unix disaster recovery.
echo "$0: running tl-makeself-from-tlnet..."
+Index: tlpkg/bin/tl-fix-container-infos
+===================================================================
+--- tlpkg/bin/tl-fix-container-infos (revision 12198)
++++ tlpkg/bin/tl-fix-container-infos (working copy)
+@@ -64,13 +64,13 @@
+ # set up the programs.
+ if ($opt_nosetup) {
+ # do a minimal setup
+- $::progs{'lzma'} = "lzma";
++ $::progs{'xz'} = "xz";
+ $::progs{'tar'} = "tar";
+ } else {
+ # do a full setup
+ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
+ if ($ret == -1) {
+- tlwarn("$0: no lzmadec for $::_platform_, aborting.\n");
++ tlwarn("$0: no xzdec for $::_platform_, aborting.\n");
+ exit 1;
+ }
+ if (!$ret) {
+@@ -93,7 +93,7 @@
+ $tlpdb->add_tlpobj($obj);
+ }
+ $tlpdb->save;
+- system("lzma --force -k -z $opt_location/tlpkg/texlive.tlpdb");
++ system("xz --force -k -z $opt_location/tlpkg/texlive.tlpdb");
+
+ return 0;
+ }
+@@ -102,16 +102,16 @@
+ sub do_containers {
+ my ($obj, $dosrc, $dodoc) = @_;
+ my $fbase = "$opt_location/archive/" . $obj->name;
+- my ($a, $b) = do_size_md ("${fbase}.tar.lzma");
++ my ($a, $b) = do_size_md ("${fbase}.tar.xz");
+ $obj->containersize($a);
+ $obj->containermd5($b);
+ if ($dosrc && $obj->srcfiles) {
+- ($a, $b) = do_size_md ("${fbase}.source.tar.lzma");
++ ($a, $b) = do_size_md ("${fbase}.source.tar.xz");
+ $obj->srccontainersize($a);
+ $obj->srccontainermd5($b);
+ }
+ if ($dodoc && $obj->docfiles) {
+- ($a, $b) = do_size_md ("${fbase}.doc.tar.lzma");
++ ($a, $b) = do_size_md ("${fbase}.doc.tar.xz");
+ $obj->doccontainersize($a);
+ $obj->doccontainermd5($b);
+ }
+@@ -146,7 +146,7 @@
+
+ =item B<-no-setup>
+
+-Does not try to setup the various programs, but uses I<lzma> and I<tar>
++Does not try to setup the various programs, but uses I<xz> and I<tar>
+ from the current path.
+
+ =item B<-help>
+Index: tlpkg/bin/check-tlnet-consistency
+===================================================================
+--- tlpkg/bin/check-tlnet-consistency (revision 12198)
++++ tlpkg/bin/check-tlnet-consistency (working copy)
+@@ -49,13 +49,13 @@
+ # set up the programs ...
+ if ($opt_nosetup) {
+ # do a minimal setup
+- $::progs{'lzma'} = "lzma";
++ $::progs{'xz'} = "xz";
+ $::progs{'tar'} = "tar";
+ } else {
+ # do a full setup
+ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
+ if ($ret == -1) {
+- tlwarn("no binary of lzmadec for $::_platform_ detected, aborting.\n");
++ tlwarn("no binary of xzdec for $::_platform_ detected, aborting.\n");
+ exit 1;
+ }
+ if (!$ret) {
+@@ -82,16 +82,16 @@
+ my %filedifferrors;
+ foreach my $pkg ($tlpdb->list_packages()) {
+ next if ($pkg =~ m/^00texlive/);
+- my $cont = "$opt_location/archive/$pkg.tar.lzma";
+- my $srccont = "$opt_location/archive/$pkg.source.tar.lzma";
+- my $doccont = "$opt_location/archive/$pkg.doc.tar.lzma";
++ my $cont = "$opt_location/archive/$pkg.tar.xz";
++ my $srccont = "$opt_location/archive/$pkg.source.tar.xz";
++ my $doccont = "$opt_location/archive/$pkg.doc.tar.xz";
+ my $tlpdbtlpobj = $tlpdb->get_package($pkg);
+ my $dodoc = ($tlpdb->config_doc_container && $tlpdbtlpobj->docfiles);
+ my $dosrc = ($tlpdb->config_src_container && $tlpdbtlpobj->srcfiles);
+ if ($opt_filelists) {
+- system("cat $cont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - ");
++ system("cat $cont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - ");
+ } else {
+- system("cat $cont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ system("cat $cont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+ }
+ if (! -r "$temp/tlpkg/tlpobj/$pkg.tlpobj") {
+ push @notlpobj, $pkg;
+@@ -101,7 +101,7 @@
+ die "Cannot load tlpobj from $temp/$pkg.tlpobj: $!" unless defined($tartlpobj);
+ # get the src and doc containers unpacked and add the respective files
+ if ($dosrc) {
+- system("cat $srccont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ system("cat $srccont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+ if (! -r "$temp/tlpkg/tlpobj/$pkg.source.tlpobj") {
+ push @missingsrccontainer, $pkg;
+ } else {
+@@ -112,7 +112,7 @@
+ }
+ }
+ if ($dodoc) {
+- system("cat $doccont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ system("cat $doccont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+ if (! -r "$temp/tlpkg/tlpobj/$pkg.doc.tlpobj") {
+ push @missingdoccontainer, $pkg;
+ } else {
+@@ -268,7 +268,7 @@
+
+ =item B<-no-setup>
+
+-Does not try to setup the various programs, but uses I<lzma> and I<tar>
++Does not try to setup the various programs, but uses I<xz> and I<tar>
+ from path.
+
+ =item B<-help>
+Index: tlpkg/bin/tlpkg-by-size
+===================================================================
+--- tlpkg/bin/tlpkg-by-size (revision 12198)
++++ tlpkg/bin/tlpkg-by-size (working copy)
+@@ -5,9 +5,9 @@
+
+ test $# -eq 0 && set - /home/ftp/texlive/tlnet/2008/archive
+ cd "$1" || exit 1
+-for pkgtar in `ls *.tar.lzma | egrep -v '\..*\.tar\.lzma$'`; do
+- pkg=`echo $pkgtar | sed 's/\.tar\.lzma$//'`
+- size=`cat $pkg.*tar.lzma | wc -c`
++for pkgtar in `ls *.tar.xz | egrep -v '\..*\.tar\.xz$'`; do
++ pkg=`echo $pkgtar | sed 's/\.tar\.xz$//'`
++ size=`cat $pkg.*tar.xz | wc -c`
+ size=`expr $size / 1024`
+ printf "%6d %s\n" $size "$pkg"
+ done | sort -nr
Index: tlpkg/bin/tl-update-containers
===================================================================
---- tlpkg/bin/tl-update-containers (revision 12171)
+--- tlpkg/bin/tl-update-containers (revision 12198)
+++ tlpkg/bin/tl-update-containers (working copy)
@@ -24,7 +24,7 @@
use File::Path;
@@ -2121,7 +3603,18 @@ Index: tlpkg/bin/tl-update-containers
our ($mydir, $vc_id);
my $opt_all = 0;
-@@ -176,12 +176,12 @@
+@@ -71,8 +71,8 @@
+ my $srcsplit = $tlpdb->config_src_container;
+ my $docsplit = $tlpdb->config_doc_container;
+ my $format = $tlpdb->config_container_format;
+- my $type = "lzma";
+- if ($format eq "lzma" || $format eq "zip") {
++ my $type = "xz";
++ if ($format eq "xz" || $format eq "zip") {
+ $type = $format;
+ } else {
+ tlwarn("$0: unknown container format $format in 00texlive.config; ",
+@@ -176,24 +176,24 @@
}
}
@@ -2136,7 +3629,46 @@ Index: tlpkg/bin/tl-update-containers
$nettlpdb->add_tlpobj($tlpinstconfig);
# set up the programs.
-@@ -392,7 +392,7 @@
+ if ($opt_nosetup) {
+ # do a minimal setup
+- $::progs{'lzma'} = "lzma";
++ $::progs{'xz'} = "xz";
+ $::progs{'tar'} = "tar";
+ } else {
+ # do a full setup
+ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
+ if ($ret == -1) {
+- tlwarn("$0: no lzmadec for $::_platform_, aborting.\n");
++ tlwarn("$0: no xzdec for $::_platform_, aborting.\n");
+ exit 1;
+ }
+ if (!$ret) {
+@@ -300,7 +300,7 @@
+
+ # remove old containers
+ for my $op (@removecontainers) {
+- if (-r "$opt_containerdir/$op.tar.lzma") {
++ if (-r "$opt_containerdir/$op.tar.xz") {
+ info("$0: $op container is old, removing it\n");
+ `rm $opt_containerdir/$op.*` unless $opt_dry;
+ }
+@@ -349,13 +349,13 @@
+ # docfiles into the texlive.tlpdb, no idea why. So update should now
+ # do that.
+ $nettlpdb->save;
+- system("lzma --force -k -z $opt_location/tlpkg/texlive.tlpdb");
++ system("xz --force -k -z $opt_location/tlpkg/texlive.tlpdb");
+
+ if (! @ARGV) {
+ # do a last check that all the containers are actually present
+ foreach my $p ($nettlpdb->list_packages) {
+ next if $p =~ /00texlive/;
+- if (! -r "$opt_containerdir/$p.tar.lzma") {
++ if (! -r "$opt_containerdir/$p.tar.xz") {
+ tlwarn("$0: container for $p is missing, strange\n");
+ }
+ }
+@@ -392,12 +392,12 @@
=item B<-all|-a>
Include packages deemed critical in the update, currently
@@ -2145,9 +3677,15 @@ Index: tlpkg/bin/tl-update-containers
testing before updating, so we don't do it by default.)
=item B<-no-setup>
+
+-Does not try to setup the various programs, but uses I<lzma> and I<tar>
++Does not try to setup the various programs, but uses I<xz> and I<tar>
+ from the current path.
+
+ =item B<-help>
Index: tlpkg/bin/tl-makeself-from-tlnet
===================================================================
---- tlpkg/bin/tl-makeself-from-tlnet (revision 12171)
+--- tlpkg/bin/tl-makeself-from-tlnet (revision 12198)
+++ tlpkg/bin/tl-makeself-from-tlnet (working copy)
@@ -4,7 +4,7 @@
# This file is licensed under the GNU General Public License version 2
@@ -2158,19 +3696,30 @@ Index: tlpkg/bin/tl-makeself-from-tlnet
# packages on Unix, similar to the .exe we create for Windows. Both are
# created in the nightly cron from tl-update-tlcritical.
-@@ -28,9 +28,8 @@
+@@ -28,13 +28,12 @@
mkdir master
cd master
-# unpack texlive.infra and bin-texlive archives for all platforms,
-# except w32.
-for pkg in texlive.infra bin-texlive; do
+- for i in $ARCHIVE/$pkg*.tar.lzma ; do
+# unpack texlive.infra archives for all platforms, except w32.
+for pkg in texlive.infra; do
- for i in $ARCHIVE/$pkg*.tar.lzma ; do
++ for i in $ARCHIVE/$pkg*.tar.xz ; do
case "$i" in
*win32*) ;;
-@@ -69,13 +68,12 @@
+- *) lzmadec <$i | tar -xf - ;;
++ *) xzdec <$i | tar -xf - ;;
+ esac
+ done
+ done
+@@ -65,25 +64,24 @@
+ t_instdir=$ROOT/tlpkg/installer # target installer dir
+
+ # ensure these target directories exist.
+- mkdir -p $t_instdir/lzma
++ mkdir -p $t_instdir/xz
mkdir -p $t_instdir/wget
# start the list of tlpobjs we will install
@@ -2185,18 +3734,20 @@ Index: tlpkg/bin/tl-makeself-from-tlnet
tlpobjs="$tlpobjs $t_objdir/texlive.infra.$b.tlpobj"
# install the bin dir for this platform.
+ (cd bin && tar cf - $b) | (cd $ROOT/bin && tar xf -)
+
+ # copy the installer binaries.
+- cp installer/lzma/lzmadec.$b $t_instdir/lzma/
+- cp installer/lzma/lzma.$b $t_instdir/lzma/
++ cp installer/xz/xzdec.$b $t_instdir/xz/
++ cp installer/xz/xz.$b $t_instdir/xz/
+ test -r installer/wget/wget.$b \
+ && cp installer/wget/wget.$b $t_instdir/wget
+ done
Index: tlpkg/bin/tl-update-nsis
===================================================================
---- tlpkg/bin/tl-update-nsis (revision 12171)
+--- tlpkg/bin/tl-update-nsis (revision 12198)
+++ tlpkg/bin/tl-update-nsis (working copy)
-@@ -1,6 +1,6 @@
- #!/usr/bin/env perl
- # $Id$
--# Copyright 2008 Norbert Preining
-+# Copyright 2008, 2009 Norbert Preining
- # This file is licensed under the GNU General Public License version 2
- # or any later version.
- #
@@ -40,13 +40,9 @@
chomp (my $Master = `cd $mydir/../.. && pwd`);
my $tlpdb = TeXLive::TLPDB->new ("root" => $Master);
@@ -2238,743 +3789,2991 @@ Index: tlpkg/bin/tl-update-nsis
if (defined $p) {
print " \"\$INSTDIR\\tlpkg\\tlpobj\\", $p->name, ".tlpobj\"";
}
-Index: install-tl
+Index: tlpkg/etc/2009.combined.patch
===================================================================
---- install-tl (revision 12171)
-+++ install-tl (working copy)
-@@ -82,7 +82,6 @@
- &add_menu_shortcut
- &remove_desktop_shortcut
- &remove_menu_shortcut
-- &init_unshortbat
- &create_uninstaller
- ));
- }
-@@ -121,7 +120,7 @@
- #
- # The following values are taken from the remote tlpdb using the
- # $tlpdb->option_XXXXX
--# settings (i.e., taken from tlpkg/tlpsrc/00texlive-installation.tlpsrc
-+# settings (i.e., taken from tlpkg/tlpsrc/00texlive.installation.tlpsrc
- #
- # 'option_symlinks' => 0,
- # 'sys_bin' => '/usr/local/bin',
-@@ -380,6 +379,14 @@
- $vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
- }
- $texlive_release = $tlpdb->config_release;
-+# if the release from the remote TLPDB does not agree with the
-+# TLConfig::ReleaseYear in the first 4 places break out here.
-+# Why only the first four places: some optional network distributions
-+# might use
-+# release/2009-foobar
-+if ($texlive_release !~ m/^$TeXLive::TLConfig::ReleaseYear/) {
-+ die "The release version of the installation source and\nthe installation media do not agree:\nsource: $texlive_release\nmedia: $TeXLive::TLConfig::ReleaseYear\nPlease report to tex-live\@tug.org";
-+}
- set_platforms_supported();
- set_texlive_default_dirs();
- initialize_collections();
-@@ -491,7 +498,229 @@
- save_options_into_tlpdb();
- do_install_packages();
- }
-+ # now we save every scheme that is fully covered by the stuff we have
-+ # installed to the $localtlpdb
-+ foreach my $s ($tlpdb->schemes) {
-+ my $stlp = $tlpdb->get_package($s);
-+ die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
-+ my $incit = 1;
-+ foreach my $d ($stlp->depends) {
-+ if (!defined($localtlpdb->get_package($d))) {
-+ $incit = 0;
-+ last;
-+ }
-+ }
-+ if ($incit) {
-+ $localtlpdb->add_tlpobj($stlp);
-+ }
-+ }
-+ $localtlpdb->save unless $vars{'from_dvd'};
-+ do_postinst_stuff();
-+}
-+
-+# do_postinst_stuff has to fix up the texmf tree and install some missing
-+# files. The things to do are taken from the install-live.sh installer
-+# of former times, and should be critically checked.
-+sub do_postinst_stuff {
-+ my $TEXDIR="$vars{'TEXDIR'}";
-+ my $TEXDIRW="$vars{'TEXDIRW'}";
-+ my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
-+ my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
-+ my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
-+ my $tmv;
-+
-+ do_texmf_cnf() unless ($opt_portable);
-+
-+
-+ # final program execution
-+ # we have to do several things:
-+ # - clean the environment from spurious TEXMF related variables
-+ # - add the bin dir to the PATH
-+ # - select perl interpreter and set the correct perllib
-+ # - run the programs
-+
-+ # Step 1: Clean the environment
-+ my @TMFVARS0=qw(VARTEXFONTS
-+ TEXMF SYSTEXMF VARTEXFONTS
-+ TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
-+ PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
-+ my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
-+ TEXMFHOME TEXMFVAR TEXMFCONFIG);
-+
-+ if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
-+ print "WARNING: environment variable TEXMFCNF is set.
-+You should know what you are doing.
-+We will remove that for the post install actions, but all further
-+operations might be disturbed.\n\n";
-+ }
-+ foreach $tmv (@TMFVARS0) {
-+ delete $ENV{$tmv} if (defined($ENV{$tmv}));
-+ }
-+ if (!$opt_portable) {
-+ foreach $tmv (@TMFVARS1) {
-+ delete $ENV{$tmv} if (defined($ENV{$tmv}));
-+ }
-+ }
-+ $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
-+
-+ # Step 2: Setup the PATH, switch to the new Perl
-+
-+ my $pathsep=(win32)? ';' : ':';
-+ my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
-+ my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
-+ my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
-+
-+## This won't do any good;
-+## have to remove other tex directories in calling batchfile
-+# if (win32) {
-+# debug("Removing other TeXs from path\n");
-+# my @newpt = ();
-+# foreach my $d (split (';', $ENV{'PATH'})) {
-+# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
-+# }
-+# $ENV{'PATH'} = join($pathsep, @newpt);
-+# debug("Path after removals(s):\n $ENV{'PATH'}\n");
-+# }
-+
-+ debug("Prepending $plat_bindir to PATH\n");
-+
-+ $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
-+
-+ if (win32) {
-+ debug("Prepending $perl_bindir to PATH\n");
-+ $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
-+ $ENV{'PATH'} =~ s!/!\\!g;
-+ }
-+
-+ debug("\nNew PATH is now:\n");
-+ foreach my $dir (split $pathsep, $ENV{'PATH'}) {
-+ debug(" $dir\n");
-+ }
-+ debug("\n");
-+
-+ if (win32) {
-+ $ENV{'PERL5LIB'}="$perl_libdir";
-+ }
-+
-+ #
-+ # post install actions
-+ #
-+
-+ # in case we are running from DVD we use the tlpdb from the DVD, otherwise
-+ # the one we have locally created, for all the further actions
-+ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
-+
-+
- if (win32()) {
-+ debug "Actual environment:\n".`set`."\n\n";
-+ debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
-+ }
-+
-+ # TODO: can the following two clauses be merged?
-+ if (win32()) {
-+ create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
-+ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
-+ }
-+ # (re-)initialize batchfile for uninstalling shortcuts
-+ if (win32() and !$opt_portable) {
-+ mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
-+ }
-+
-+ # Step 4: run the programs
-+
-+ if (!$opt_portable and !$vars{'from_dvd'}) {
-+ info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
-+ system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
-+ }
-+
-+ # we have to generate the various config file. That could be done with
-+ # texconfig generate * but Win32 does not have texconfig. But we have
-+ # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
-+ # the code from the various generate-*.pl scripts
-+
-+ info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
-+ TeXLive::TLUtils::create_fmtutil($usedtlpdb,
-+ "$TEXMFSYSVAR/web2c/fmtutil.cnf",
-+ "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
-+
-+ mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
-+ info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
-+ TeXLive::TLUtils::create_updmap ($usedtlpdb,
-+ "$TEXMFSYSCONFIG/web2c/updmap.cfg",
-+ "$TEXMFLOCAL/web2c/updmap-local.cfg");
-+
-+ info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
-+ TeXLive::TLUtils::create_language_dat($usedtlpdb,
-+ "$TEXMFSYSVAR/tex/generic/config/language.dat",
-+ "$TEXMFLOCAL/tex/generic/config/language-local.dat");
-+
-+ info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
-+ TeXLive::TLUtils::create_language_def($usedtlpdb,
-+ "$TEXMFSYSVAR/tex/generic/config/language.def",
-+ "$TEXMFLOCAL/tex/generic/config/language-local.def");
-+
-+ info("running mktexlsr $TEXMFSYSVAR\n");
-+ system('mktexlsr', "$TEXMFSYSVAR");
-+
-+ info("running updmap-sys... ");
-+ # system('updmap-sys', '--nohash');
-+ log(`updmap-sys --nohash 2>&1`);
-+ info("done\n");
-+
-+ info("re-running mktexlsr $TEXMFSYSVAR\n");
-+ system('mktexlsr', "$TEXMFSYSVAR");
-+
-+ # now work through the options if specified at all
-+
-+ # letter instead of a4
-+ if ($vars{'option_letter'}) {
-+ info("Setting default paper size to letter\n");
-+ system("tlmgr", "paper", "letter");
-+ }
-+
-+ # all formats option
-+ if ($vars{'option_fmt'}) {
-+ info("pre-generating all format files (fmtutil-sys --all), be patient...");
-+ log(`fmtutil-sys --all 2>&1`);
-+ info("done\n");
-+ }
-+
-+ # TODO: Should/can this be moved into the do_system_integration part?
-+ # it looks like it does not do anything outside the texlive tree, so it
-+ # would be fine if we do it anyway ...
-+ # $opt_portable: no %install but we still want xetex postinstall
-+ &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
-+ if $opt_portable;
-+
-+ # no do the system integration:
-+ # on unix this means setting up symlinks
-+ # on w32 this means adding to path, settting registry values
-+ # on both, we run the TLPostActions and the postaction directives of the tlp
-+ do_system_integration() if $vars{'option_sysint'};
-+}
-+
-+sub do_system_integration {
-+ # Run the post installation code in TLPostAction.pm
-+ foreach my $package (sort keys %install) {
-+ if ($install{$package} && defined($PostInstall{$package})) {
-+ info("running post install action for $package\n");
-+ &{$PostInstall{$package}}($vars{'TEXDIR'}, $vars{'TEXDIRW'},
-+ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFLOCAL'});
-+ }
-+ }
-+ # Run the post installation code in the postaction tlpsrc entries
-+ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
-+ foreach my $package (sort keys %install) {
-+ if ($install{$package}) {
-+ &TeXLive::TLUtils::do_postaction_code("install",
-+ $usedtlpdb->get_package($package));
-+ }
-+ }
-+ info ("finished with package specific postactions\n");
-+
-+ if (win32()) {
-+ update_assocs();
-+
- my $path = TeXLive::TLWinGoo::get_system_env() -> {'/Path'};
- $path =~ s/[\s\x00]+$//;
- log("Old system path: $path\n");
-@@ -516,29 +745,97 @@
- # setenv_reg('TEXMFSYSVAR', $vars{'TEXMFSYSVAR'}) if $vars{'from_dvd'};
- setenv_reg('TEXMFCNF', $vars{'TEXMFSYSVAR'}.'/web2c') if $vars{'from_dvd'};
- broadcast_env();
-- create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
-- $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
-+ } else {
-+ $localtlpdb->add_symlinks()
- }
-- do_postinst_stuff();
-- # now we save every scheme that is fully covered by the stuff we have
-- # installed to the $localtlpdb
-- foreach my $s ($tlpdb->schemes) {
-- my $stlp = $tlpdb->get_package($s);
-- die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
-- my $incit = 1;
-- foreach my $d ($stlp->depends) {
-- if (!defined($localtlpdb->get_package($d))) {
-- $incit = 0;
-- last;
-+}
-+
-+
-+# we have to adjust the texmf.cnf file to the paths set in the configuration!
-+sub do_texmf_cnf {
-+ open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
-+ or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
-+ my @texmfcnflines = <TMF>;
-+ close(TMF);
-+ my @newtmf;
-+ my @changedtmf;
-+ # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
-+ foreach my $line (@texmfcnflines) {
-+ if ($line =~ m/^TEXMFLOCAL/) {
-+ # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
-+ # we don't have to change anything from the default
-+ my $deftmlocal = dirname($vars{'TEXDIR'});
-+ $deftmlocal .= "/texmf-local";
-+ if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
-+ push @newtmf, $line;
-+ } else {
-+ push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
-+ push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
- }
-+ } elsif ($line =~ m/^TEXMFSYSVAR/) {
-+ # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
-+ # we don't have to change anything from the default
-+ if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
-+ push @newtmf, $line;
-+ } else {
-+ push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
-+ push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
-+ }
-+ } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
-+ # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
-+ # we don't have to change anything from the default
-+ if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
-+ push @newtmf, $line;
-+ } else {
-+ push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
-+ push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
-+ }
-+ } elsif ($line =~ m/^TEXMFHOME/) {
-+ # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
-+ # unix differently
-+ push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
-+ if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
-+ push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
-+ }
-+ } elsif ($line =~ m/^OSFONTDIR/) {
-+ if (win32()) {
-+ push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
-+ push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
-+ } else {
-+ push @newtmf, $line;
-+ }
-+ } else {
-+ push @newtmf, $line;
- }
-- if ($incit) {
-- $localtlpdb->add_tlpobj($stlp);
-- }
- }
-- $localtlpdb->save unless $vars{'from_dvd'};
-+ my $TMF;
-+ if (!$vars{'from_dvd'}) {
-+ $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
-+ open(TMF, $TMF) || die "open($TMF) failed: $!";
-+ print TMF <<EOF;
-+% This texmf.cnf file should contain only your personal changes from the
-+% main texmf.cnf.
-+%
-+% Do NOT change values in the main file (which is in
-+% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
-+% by later updates.
-+%
-+% If you need to make changes to texmf.cnf, put your custom settings in
-+% this file instead, which is YYYY/texmf.cnf. And insert *only* your
-+% changed values.
-+%
-+EOF
-+;
-+ foreach (@changedtmf) { print TMF; }
-+ } else {
-+ $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
-+ open (TMF, $TMF) || die "open($TMF) failed: $!\n";
-+ foreach (@newtmf) { print TMF; }
-+ }
-+ close(TMF) || warn "close($TMF) failed: $!";
- }
-
-+
- sub dump_vars {
- my $filename=shift;
- my $fh;
-@@ -744,7 +1041,10 @@
- $vars{'option_fmt'} = $tlpdb->option_create_formats;
- $vars{'option_letter'} = defined($tlpdb->option_paper)
- && ($tlpdb->option_paper eq "letter" ? 1 : 0);
-- $vars{'option_symlinks'} = $tlpdb->option_create_symlinks;
-+ $vars{'option_sysint'} = $tlpdb->option_system_integration;
-+ if (win32()) {
-+ $vars{'option_sysint'} = 1;
-+ }
- $vars{'sys_bin'} = $tlpdb->option_sys_bin;
- $vars{'sys_man'} = $tlpdb->option_sys_man;
- $vars{'sys_info'} = $tlpdb->option_sys_info;
-@@ -850,8 +1150,8 @@
- print $fh "$key $vars{$key}\n" if $key=~/^option_doc/;
- print $fh "$key $vars{$key}\n" if $key=~/^option_fmt/;
- print $fh "$key $vars{$key}\n" if $key=~/^option_src/;
-- print $fh "$key $vars{$key}\n" if $key=~/^option_symlinks/;
-- if ($vars{'option_symlinks'}) {
-+ print $fh "$key $vars{$key}\n" if $key=~/^option_sysint/;
-+ if ($vars{'option_sysint'} && unix()) {
- print $fh "sys_bin ", $vars{'sys_bin'}, "\n" if $key =~ /^sys_bin/;
- print $fh "sys_man ", $vars{'sys_man'}, "\n" if $key =~ /^sys_man/;
- print $fh "sys_info ", $vars{'sys_info'}, "\n" if $key =~ /^sys_info/;
-@@ -948,7 +1248,7 @@
- $localtlpdb->option_location($location);
- $localtlpdb->option_paper($vars{'option_letter'} ? "letter" : "a4");
- $localtlpdb->option_create_formats($vars{'option_fmt'} ? "1" : "0");
-- $localtlpdb->option_create_symlinks($vars{'option_symlinks'} ? "1" : "0");
-+ $localtlpdb->option_system_integration($vars{'option_sysint'} ? "1" : "0");
- $localtlpdb->option_sys_bin($vars{'sys_bin'});
- $localtlpdb->option_sys_info($vars{'sys_info'});
- $localtlpdb->option_sys_man($vars{'sys_man'});
-@@ -964,320 +1264,6 @@
- $localtlpdb->save() unless $vars{'from_dvd'};
- }
-
--# do_postinst_stuff has to fix up the texmf tree and install some missing
--# files. The things to do are taken from the install-live.sh installer
--# of former times, and should be critically checked.
--sub do_postinst_stuff {
-- my $TEXDIR="$vars{'TEXDIR'}";
-- my $TEXDIRW="$vars{'TEXDIRW'}";
-- my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
-- my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
-- my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
-- my $tmv;
--
-- do_texmf_cnf() unless ($opt_portable);
--
+--- tlpkg/etc/2009.combined.patch (revision 12198)
++++ tlpkg/etc/2009.combined.patch (working copy)
+@@ -1,7 +1,839 @@
++Index: install-tl
++===================================================================
++--- install-tl (revision 12198)
+++++ install-tl (working copy)
++@@ -82,7 +82,6 @@
++ &add_menu_shortcut
++ &remove_desktop_shortcut
++ &remove_menu_shortcut
++- &init_unshortbat
++ &create_uninstaller
++ ));
++ }
++@@ -121,7 +120,7 @@
++ #
++ # The following values are taken from the remote tlpdb using the
++ # $tlpdb->option_XXXXX
++-# settings (i.e., taken from tlpkg/tlpsrc/00texlive-installation.tlpsrc
+++# settings (i.e., taken from tlpkg/tlpsrc/00texlive.installation.tlpsrc
++ #
++ # 'option_symlinks' => 0,
++ # 'sys_bin' => '/usr/local/bin',
++@@ -380,6 +379,14 @@
++ $vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
++ }
++ $texlive_release = $tlpdb->config_release;
+++# if the release from the remote TLPDB does not agree with the
+++# TLConfig::ReleaseYear in the first 4 places break out here.
+++# Why only the first four places: some optional network distributions
+++# might use
+++# release/2009-foobar
+++if ($texlive_release !~ m/^$TeXLive::TLConfig::ReleaseYear/) {
+++ die "The release version of the installation source and\nthe installation media do not agree:\nsource: $texlive_release\nmedia: $TeXLive::TLConfig::ReleaseYear\nPlease report to tex-live\@tug.org";
+++}
++ set_platforms_supported();
++ set_texlive_default_dirs();
++ initialize_collections();
++@@ -491,7 +498,229 @@
++ save_options_into_tlpdb();
++ do_install_packages();
++ }
+++ # now we save every scheme that is fully covered by the stuff we have
+++ # installed to the $localtlpdb
+++ foreach my $s ($tlpdb->schemes) {
+++ my $stlp = $tlpdb->get_package($s);
+++ die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
+++ my $incit = 1;
+++ foreach my $d ($stlp->depends) {
+++ if (!defined($localtlpdb->get_package($d))) {
+++ $incit = 0;
+++ last;
+++ }
+++ }
+++ if ($incit) {
+++ $localtlpdb->add_tlpobj($stlp);
+++ }
+++ }
+++ $localtlpdb->save unless $vars{'from_dvd'};
+++ do_postinst_stuff();
+++}
+++
+++# do_postinst_stuff has to fix up the texmf tree and install some missing
+++# files. The things to do are taken from the install-live.sh installer
+++# of former times, and should be critically checked.
+++sub do_postinst_stuff {
+++ my $TEXDIR="$vars{'TEXDIR'}";
+++ my $TEXDIRW="$vars{'TEXDIRW'}";
+++ my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
+++ my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
+++ my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
+++ my $tmv;
+++
+++ do_texmf_cnf() unless ($opt_portable);
+++
+++
+++ # final program execution
+++ # we have to do several things:
+++ # - clean the environment from spurious TEXMF related variables
+++ # - add the bin dir to the PATH
+++ # - select perl interpreter and set the correct perllib
+++ # - run the programs
+++
+++ # Step 1: Clean the environment
+++ my @TMFVARS0=qw(VARTEXFONTS
+++ TEXMF SYSTEXMF VARTEXFONTS
+++ TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
+++ PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
+++ my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
+++ TEXMFHOME TEXMFVAR TEXMFCONFIG);
+++
+++ if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
+++ print "WARNING: environment variable TEXMFCNF is set.
+++You should know what you are doing.
+++We will remove that for the post install actions, but all further
+++operations might be disturbed.\n\n";
+++ }
+++ foreach $tmv (@TMFVARS0) {
+++ delete $ENV{$tmv} if (defined($ENV{$tmv}));
+++ }
+++ if (!$opt_portable) {
+++ foreach $tmv (@TMFVARS1) {
+++ delete $ENV{$tmv} if (defined($ENV{$tmv}));
+++ }
+++ }
+++ $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
+++
+++ # Step 2: Setup the PATH, switch to the new Perl
+++
+++ my $pathsep=(win32)? ';' : ':';
+++ my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
+++ my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
+++ my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
+++
+++## This won't do any good;
+++## have to remove other tex directories in calling batchfile
+++# if (win32) {
+++# debug("Removing other TeXs from path\n");
+++# my @newpt = ();
+++# foreach my $d (split (';', $ENV{'PATH'})) {
+++# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
+++# }
+++# $ENV{'PATH'} = join($pathsep, @newpt);
+++# debug("Path after removals(s):\n $ENV{'PATH'}\n");
+++# }
+++
+++ debug("Prepending $plat_bindir to PATH\n");
+++
+++ $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
+++
+++ if (win32) {
+++ debug("Prepending $perl_bindir to PATH\n");
+++ $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
+++ $ENV{'PATH'} =~ s!/!\\!g;
+++ }
+++
+++ debug("\nNew PATH is now:\n");
+++ foreach my $dir (split $pathsep, $ENV{'PATH'}) {
+++ debug(" $dir\n");
+++ }
+++ debug("\n");
+++
+++ if (win32) {
+++ $ENV{'PERL5LIB'}="$perl_libdir";
+++ }
+++
+++ #
+++ # post install actions
+++ #
+++
+++ # in case we are running from DVD we use the tlpdb from the DVD, otherwise
+++ # the one we have locally created, for all the further actions
+++ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+++
+++
++ if (win32()) {
+++ debug "Actual environment:\n".`set`."\n\n";
+++ debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
+++ }
+++
+++ # TODO: can the following two clauses be merged?
+++ if (win32()) {
+++ create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+++ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
+++ }
+++ # (re-)initialize batchfile for uninstalling shortcuts
+++ if (win32() and !$opt_portable) {
+++ mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
+++ }
+++
+++ # Step 4: run the programs
+++
+++ if (!$opt_portable and !$vars{'from_dvd'}) {
+++ info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
+++ system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
+++ }
+++
+++ # we have to generate the various config file. That could be done with
+++ # texconfig generate * but Win32 does not have texconfig. But we have
+++ # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
+++ # the code from the various generate-*.pl scripts
+++
+++ info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
+++ TeXLive::TLUtils::create_fmtutil($usedtlpdb,
+++ "$TEXMFSYSVAR/web2c/fmtutil.cnf",
+++ "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
+++
+++ mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
+++ info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
+++ TeXLive::TLUtils::create_updmap ($usedtlpdb,
+++ "$TEXMFSYSCONFIG/web2c/updmap.cfg",
+++ "$TEXMFLOCAL/web2c/updmap-local.cfg");
+++
+++ info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
+++ TeXLive::TLUtils::create_language_dat($usedtlpdb,
+++ "$TEXMFSYSVAR/tex/generic/config/language.dat",
+++ "$TEXMFLOCAL/tex/generic/config/language-local.dat");
+++
+++ info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
+++ TeXLive::TLUtils::create_language_def($usedtlpdb,
+++ "$TEXMFSYSVAR/tex/generic/config/language.def",
+++ "$TEXMFLOCAL/tex/generic/config/language-local.def");
+++
+++ info("running mktexlsr $TEXMFSYSVAR\n");
+++ system('mktexlsr', "$TEXMFSYSVAR");
+++
+++ info("running updmap-sys... ");
+++ # system('updmap-sys', '--nohash');
+++ log(`updmap-sys --nohash 2>&1`);
+++ info("done\n");
+++
+++ info("re-running mktexlsr $TEXMFSYSVAR\n");
+++ system('mktexlsr', "$TEXMFSYSVAR");
+++
+++ # now work through the options if specified at all
+++
+++ # letter instead of a4
+++ if ($vars{'option_letter'}) {
+++ info("Setting default paper size to letter\n");
+++ system("tlmgr", "paper", "letter");
+++ }
+++
+++ # all formats option
+++ if ($vars{'option_fmt'}) {
+++ info("pre-generating all format files (fmtutil-sys --all), be patient...");
+++ log(`fmtutil-sys --all 2>&1`);
+++ info("done\n");
+++ }
+++
+++ # TODO: Should/can this be moved into the do_system_integration part?
+++ # it looks like it does not do anything outside the texlive tree, so it
+++ # would be fine if we do it anyway ...
+++ # $opt_portable: no %install but we still want xetex postinstall
+++ &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
+++ if $opt_portable;
+++
+++ # no do the system integration:
+++ # on unix this means setting up symlinks
+++ # on w32 this means adding to path, settting registry values
+++ # on both, we run the TLPostActions and the postaction directives of the tlp
+++ do_system_integration() if $vars{'option_sysint'};
+++}
+++
+++sub do_system_integration {
+++ # Run the post installation code in TLPostAction.pm
+++ foreach my $package (sort keys %install) {
+++ if ($install{$package} && defined($PostInstall{$package})) {
+++ info("running post install action for $package\n");
+++ &{$PostInstall{$package}}($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+++ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFLOCAL'});
+++ }
+++ }
+++ # Run the post installation code in the postaction tlpsrc entries
+++ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+++ foreach my $package (sort keys %install) {
+++ if ($install{$package}) {
+++ &TeXLive::TLUtils::do_postaction_code("install",
+++ $usedtlpdb->get_package($package));
+++ }
+++ }
+++ info ("finished with package specific postactions\n");
+++
+++ if (win32()) {
+++ update_assocs();
+++
++ my $path = TeXLive::TLWinGoo::get_system_env() -> {'/Path'};
++ $path =~ s/[\s\x00]+$//;
++ log("Old system path: $path\n");
++@@ -516,29 +745,97 @@
++ # setenv_reg('TEXMFSYSVAR', $vars{'TEXMFSYSVAR'}) if $vars{'from_dvd'};
++ setenv_reg('TEXMFCNF', $vars{'TEXMFSYSVAR'}.'/web2c') if $vars{'from_dvd'};
++ broadcast_env();
++- create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
++- $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
+++ } else {
+++ $localtlpdb->add_symlinks()
++ }
++- do_postinst_stuff();
++- # now we save every scheme that is fully covered by the stuff we have
++- # installed to the $localtlpdb
++- foreach my $s ($tlpdb->schemes) {
++- my $stlp = $tlpdb->get_package($s);
++- die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
++- my $incit = 1;
++- foreach my $d ($stlp->depends) {
++- if (!defined($localtlpdb->get_package($d))) {
++- $incit = 0;
++- last;
+++}
+++
+++
+++# we have to adjust the texmf.cnf file to the paths set in the configuration!
+++sub do_texmf_cnf {
+++ open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
+++ or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
+++ my @texmfcnflines = <TMF>;
+++ close(TMF);
+++ my @newtmf;
+++ my @changedtmf;
+++ # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
+++ foreach my $line (@texmfcnflines) {
+++ if ($line =~ m/^TEXMFLOCAL/) {
+++ # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
+++ # we don't have to change anything from the default
+++ my $deftmlocal = dirname($vars{'TEXDIR'});
+++ $deftmlocal .= "/texmf-local";
+++ if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
+++ push @newtmf, $line;
+++ } else {
+++ push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+++ push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
++ }
+++ } elsif ($line =~ m/^TEXMFSYSVAR/) {
+++ # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
+++ # we don't have to change anything from the default
+++ if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
+++ push @newtmf, $line;
+++ } else {
+++ push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+++ push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+++ }
+++ } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
+++ # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
+++ # we don't have to change anything from the default
+++ if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
+++ push @newtmf, $line;
+++ } else {
+++ push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+++ push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+++ }
+++ } elsif ($line =~ m/^TEXMFHOME/) {
+++ # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
+++ # unix differently
+++ push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+++ if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
+++ push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+++ }
+++ } elsif ($line =~ m/^OSFONTDIR/) {
+++ if (win32()) {
+++ push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+++ push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+++ } else {
+++ push @newtmf, $line;
+++ }
+++ } else {
+++ push @newtmf, $line;
++ }
++- if ($incit) {
++- $localtlpdb->add_tlpobj($stlp);
++- }
++ }
++- $localtlpdb->save unless $vars{'from_dvd'};
+++ my $TMF;
+++ if (!$vars{'from_dvd'}) {
+++ $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
+++ open(TMF, $TMF) || die "open($TMF) failed: $!";
+++ print TMF <<EOF;
+++% This texmf.cnf file should contain only your personal changes from the
+++% main texmf.cnf.
+++%
+++% Do NOT change values in the main file (which is in
+++% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
+++% by later updates.
+++%
+++% If you need to make changes to texmf.cnf, put your custom settings in
+++% this file instead, which is YYYY/texmf.cnf. And insert *only* your
+++% changed values.
+++%
+++EOF
+++;
+++ foreach (@changedtmf) { print TMF; }
+++ } else {
+++ $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
+++ open (TMF, $TMF) || die "open($TMF) failed: $!\n";
+++ foreach (@newtmf) { print TMF; }
+++ }
+++ close(TMF) || warn "close($TMF) failed: $!";
++ }
++
+++
++ sub dump_vars {
++ my $filename=shift;
++ my $fh;
++@@ -744,7 +1041,10 @@
++ $vars{'option_fmt'} = $tlpdb->option_create_formats;
++ $vars{'option_letter'} = defined($tlpdb->option_paper)
++ && ($tlpdb->option_paper eq "letter" ? 1 : 0);
++- $vars{'option_symlinks'} = $tlpdb->option_create_symlinks;
+++ $vars{'option_sysint'} = $tlpdb->option_system_integration;
+++ if (win32()) {
+++ $vars{'option_sysint'} = 1;
+++ }
++ $vars{'sys_bin'} = $tlpdb->option_sys_bin;
++ $vars{'sys_man'} = $tlpdb->option_sys_man;
++ $vars{'sys_info'} = $tlpdb->option_sys_info;
++@@ -850,8 +1150,8 @@
++ print $fh "$key $vars{$key}\n" if $key=~/^option_doc/;
++ print $fh "$key $vars{$key}\n" if $key=~/^option_fmt/;
++ print $fh "$key $vars{$key}\n" if $key=~/^option_src/;
++- print $fh "$key $vars{$key}\n" if $key=~/^option_symlinks/;
++- if ($vars{'option_symlinks'}) {
+++ print $fh "$key $vars{$key}\n" if $key=~/^option_sysint/;
+++ if ($vars{'option_sysint'} && unix()) {
++ print $fh "sys_bin ", $vars{'sys_bin'}, "\n" if $key =~ /^sys_bin/;
++ print $fh "sys_man ", $vars{'sys_man'}, "\n" if $key =~ /^sys_man/;
++ print $fh "sys_info ", $vars{'sys_info'}, "\n" if $key =~ /^sys_info/;
++@@ -948,7 +1248,7 @@
++ $localtlpdb->option_location($location);
++ $localtlpdb->option_paper($vars{'option_letter'} ? "letter" : "a4");
++ $localtlpdb->option_create_formats($vars{'option_fmt'} ? "1" : "0");
++- $localtlpdb->option_create_symlinks($vars{'option_symlinks'} ? "1" : "0");
+++ $localtlpdb->option_system_integration($vars{'option_sysint'} ? "1" : "0");
++ $localtlpdb->option_sys_bin($vars{'sys_bin'});
++ $localtlpdb->option_sys_info($vars{'sys_info'});
++ $localtlpdb->option_sys_man($vars{'sys_man'});
++@@ -964,320 +1264,6 @@
++ $localtlpdb->save() unless $vars{'from_dvd'};
++ }
++
++-# do_postinst_stuff has to fix up the texmf tree and install some missing
++-# files. The things to do are taken from the install-live.sh installer
++-# of former times, and should be critically checked.
++-sub do_postinst_stuff {
++- my $TEXDIR="$vars{'TEXDIR'}";
++- my $TEXDIRW="$vars{'TEXDIRW'}";
++- my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
++- my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
++- my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
++- my $tmv;
++-
++- do_texmf_cnf() unless ($opt_portable);
++-
++-
++- # final program execution
++- # we have to do several things:
++- # - clean the environment from spurious TEXMF related variables
++- # - add the bin dir to the PATH
++- # - select perl interpreter and set the correct perllib
++- # - run the programs
++-
++- # Step 1: Clean the environment
++- my @TMFVARS0=qw(VARTEXFONTS
++- TEXMF SYSTEXMF VARTEXFONTS
++- TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
++- PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
++- my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
++- TEXMFHOME TEXMFVAR TEXMFCONFIG);
++-
++- if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
++- print "WARNING: environment variable TEXMFCNF is set.
++-You should know what you are doing.
++-We will remove that for the post install actions, but all further
++-operations might be disturbed.\n\n";
++- }
++- foreach $tmv (@TMFVARS0) {
++- delete $ENV{$tmv} if (defined($ENV{$tmv}));
++- }
++- if (!$opt_portable) {
++- foreach $tmv (@TMFVARS1) {
++- delete $ENV{$tmv} if (defined($ENV{$tmv}));
++- }
++- }
++- $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
++-
++- # Step 2: Setup the PATH, switch to the new Perl
++-
++- my $pathsep=(win32)? ';' : ':';
++- my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
++- my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
++- my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
++-
++-## This won't do any good;
++-## have to remove other tex directories in calling batchfile
++-# if (win32) {
++-# debug("Removing other TeXs from path\n");
++-# my @newpt = ();
++-# foreach my $d (split (';', $ENV{'PATH'})) {
++-# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
++-# }
++-# $ENV{'PATH'} = join($pathsep, @newpt);
++-# debug("Path after removals(s):\n $ENV{'PATH'}\n");
++-# }
++-
++- debug("Prepending $plat_bindir to PATH\n");
++-
++- $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
++-
++- if (win32) {
++- debug("Prepending $perl_bindir to PATH\n");
++- $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
++- $ENV{'PATH'} =~ s!/!\\!g;
++- }
++-
++- debug("\nNew PATH is now:\n");
++- foreach my $dir (split $pathsep, $ENV{'PATH'}) {
++- debug(" $dir\n");
++- }
++- debug("\n");
++-
++- if (win32) {
++- $ENV{'PERL5LIB'}="$perl_libdir";
++- }
++-
++- #
++- # post install actions
++- #
++-
++- if (win32()) {
++- debug "Actual environment:\n".`set`."\n\n";
++- debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
++- }
++-
++- # (re-)initialize batchfile for uninstalling shortcuts
++- if (win32() and !$opt_portable) {
++- mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
++- init_unshortbat($TEXDIRW);
++- }
++-
++- foreach my $package (sort keys %install) {
++- if ($install{$package} && defined($PostInstall{$package})) {
++- info("running post install action for $package\n");
++- &{$PostInstall{$package}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL);
++- }
++- }
++- # $opt_portable: no %install but we still want xetex postinstall
++- &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
++- if $opt_portable;
++- update_assocs() if win32();
++-
++- # Step 4: run the programs
++-
++- if (!$opt_portable and !$vars{'from_dvd'}) {
++- info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
++- system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
++- }
++-
++- # we have to generate the various config file. That could be done with
++- # texconfig generate * but Win32 does not have texconfig. But we have
++- # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
++- # the code from the various generate-*.pl scripts
++- info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
++- my $tlp = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
++- TeXLive::TLUtils::create_fmtutil($tlp, #$localtlpdb,
++- "$TEXMFSYSVAR/web2c/fmtutil.cnf",
++- "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
++-
++- mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
++- info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
++- TeXLive::TLUtils::create_updmap ($tlp, #$localtlpdb,
++- "$TEXMFSYSCONFIG/web2c/updmap.cfg",
++- "$TEXMFLOCAL/web2c/updmap-local.cfg");
++-
++- info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
++- TeXLive::TLUtils::create_language_dat($tlp, #$localtlpdb,
++- "$TEXMFSYSVAR/tex/generic/config/language.dat",
++- "$TEXMFLOCAL/tex/generic/config/language-local.dat");
++-
++- info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
++- TeXLive::TLUtils::create_language_def($tlp, #$localtlpdb,
++- "$TEXMFSYSVAR/tex/generic/config/language.def",
++- "$TEXMFLOCAL/tex/generic/config/language-local.def");
++-
++- info("running mktexlsr $TEXMFSYSVAR\n");
++- system('mktexlsr', "$TEXMFSYSVAR");
++-
++- info("running updmap-sys... ");
++- # system('updmap-sys', '--nohash');
++- log(`updmap-sys --nohash 2>&1`);
++- info("done\n");
++-
++- info("re-running mktexlsr $TEXMFSYSVAR\n");
++- system('mktexlsr', "$TEXMFSYSVAR");
++-
++- # now work through the options if specified at all
++-
++- # letter instead of a4
++- if ($vars{'option_letter'}) {
++- info("Setting default paper size to letter\n");
++- if (platform() eq "hppa-hpux") {
++- # we didn't get a texlua binary for hppa-hpux, so try texconfig
++- system("texconfig", "paper", "letter");
++- } else {
++- system("texlua", "$TEXDIR/texmf/scripts/texlive/texconf.tlu", "--sys", "--noformat", "paper", "letter");
++- }
++- }
++-
++- # all formats option
++- if ($vars{'option_fmt'}) {
++- info("pre-generating all format files (fmtutil-sys --all), be patient...");
++- #system('fmtutil-sys', '--all');
++- # try to capture that output
++- log(`fmtutil-sys --all 2>&1`);
++- info("done\n");
++- }
++-
++- # option_links
++- if ($vars{'option_symlinks'}) {
++- # bin files
++- my @files;
++- mkdirhier $vars{'sys_bin'};
++- if (-w $vars{'sys_bin'}) {
++- info("linking binaries to $vars{'sys_bin'}\n");
++- @files = `ls $plat_bindir`;
++- chomp(@files);
++- `cd "$vars{'sys_bin'}" && rm -f @files`;
++- `ln -s "$plat_bindir/"* "$vars{'sys_bin'}"`;
++- } else {
++- info("destination of bin symlink $vars{'sys_bin'} not writable, "
++- . "no linking of bin files done.\n");
++- }
++- if ($vars{'option_doc'}) {
++- # info files
++- mkdirhier $vars{'sys_info'};
++- if (-w $vars{'sys_info'}) {
++- info("linking info pages to $vars{'sys_info'}\n");
++- @files = `ls "$TEXDIR/texmf/doc/info"`;
++- chomp(@files);
++- `cd "$vars{'sys_info'}" && rm -f @files`;
++- `ln -s "$TEXDIR/texmf/doc/info/"*info* "$vars{'sys_info'}"`;
++- } else {
++- info("destination of info symlink $vars{'sys_info'} not writable, "
++- . "no linking of info files done.\n");
++- }
++- # man files
++- mkdirhier $vars{'sys_man'};
++- if (-w $vars{'sys_man'}) {
++- info("linking man pages to $vars{'sys_man'}\n");
++- my $foo = `(cd "$TEXDIR/texmf/doc/man" && echo *)`;
++- my @mans = split ' ', $foo;
++- chomp(@mans);
++- foreach my $m (@mans) {
++- my $mandir = "$TEXDIR/texmf/doc/man/$m";
++- next unless -d $mandir;
++- mkdirhier "$vars{'sys_man'}/$m";
++- next unless -w "$vars{'sys_man'}/$m";
++- @files = `ls "$mandir"`;
++- chomp(@files);
++- `cd "$vars{'sys_man'}/$m" && rm -f @files`;
++- `ln -s "$mandir/"* "$vars{'sys_man'}/$m"`;
++- }
++- } else {
++- info("destination of man symlink $vars{'sys_man'} not writable, "
++- . "no linking of man files done.\n");
++- }
++- }
++- }
++-}
++-
++-
++-# we have to adjust the texmf.cnf file to the paths set in the configuration!
++-sub do_texmf_cnf {
++- open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
++- or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
++- my @texmfcnflines = <TMF>;
++- close(TMF);
++- my @newtmf;
++- my @changedtmf;
++- # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
++- foreach my $line (@texmfcnflines) {
++- if ($line =~ m/^TEXMFLOCAL/) {
++- # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
++- # we don't have to change anything from the default
++- my $deftmlocal = dirname($vars{'TEXDIR'});
++- $deftmlocal .= "/texmf-local";
++- if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
++- push @newtmf, $line;
++- } else {
++- push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
++- push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
++- }
++- } elsif ($line =~ m/^TEXMFSYSVAR/) {
++- # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
++- # we don't have to change anything from the default
++- if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
++- push @newtmf, $line;
++- } else {
++- push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
++- push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
++- }
++- } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
++- # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
++- # we don't have to change anything from the default
++- if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
++- push @newtmf, $line;
++- } else {
++- push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
++- push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
++- }
++- } elsif ($line =~ m/^TEXMFHOME/) {
++- # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
++- # unix differently
++- push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
++- if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
++- push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
++- }
++- } elsif ($line =~ m/^OSFONTDIR/) {
++- if (win32()) {
++- push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
++- push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
++- } else {
++- push @newtmf, $line;
++- }
++- } else {
++- push @newtmf, $line;
++- }
++- }
++- my $TMF;
++- if (!$vars{'from_dvd'}) {
++- $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
++- open(TMF, $TMF) || die "open($TMF) failed: $!";
++- print TMF <<EOF;
++-% This texmf.cnf file should contain only your personal changes from the
++-% main texmf.cnf.
++-%
++-% Do NOT change values in the main file (which is in
++-% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
++-% by later updates.
++-%
++-% If you need to make changes to texmf.cnf, put your custom settings in
++-% this file instead, which is YYYY/texmf.cnf. And insert *only* your
++-% changed values.
++-%
++-EOF
++-;
++- foreach (@changedtmf) { print TMF; }
++- } else {
++- $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
++- open (TMF, $TMF) || die "open($TMF) failed: $!\n";
++- foreach (@newtmf) { print TMF; }
++- }
++- close(TMF) || warn "close($TMF) failed: $!";
++-}
++-
++ # do everything to select a scheme
++ #
++ sub select_scheme {
+ Index: tlpkg/TeXLive/TLPDB.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLPDB.pm (revision 12171)
++--- tlpkg/TeXLive/TLPDB.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLPDB.pm (working copy)
++@@ -214,49 +214,49 @@
++ my $tlpdbfile;
++ if ($path =~ m;^((http|ftp)://|file:\/\/*);) {
++ debug("TLPDB.pm: trying to initialize from $path\n");
++- # if we have lzmadec available we try the lzma file
++- if (defined($::progs{'lzmadec'})) {
++- # we first try the lzma compressed file
+++ # if we have xzdec available we try the xz file
+++ if (defined($::progs{'xzdec'})) {
+++ # we first try the xz compressed file
++ my $tmpdir = TeXLive::TLUtils::get_system_tmpdir();
++ my $bn = TeXLive::TLUtils::basename("$path");
++- my $lzmafile = "$tmpdir/$bn.$$.lzma";
++- my $lzmafile_quote = $lzmafile;
+++ my $xzfile = "$tmpdir/$bn.$$.xz";
+++ my $xzfile_quote = $xzfile;
++ # this is a variable of the whole sub as we have to remove the file
++ # before returning
++ $tlpdbfile = "$tmpdir/$bn.$$";
++ my $tlpdbfile_quote = $tlpdbfile;
++ if (win32()) {
++- $lzmafile =~ s!/!\\!g;
+++ $xzfile =~ s!/!\\!g;
++ $tlpdbfile =~ s!/!\\!g;
++ }
++- $lzmafile_quote = "\"$lzmafile\"";
+++ $xzfile_quote = "\"$xzfile\"";
++ $tlpdbfile_quote = "\"$tlpdbfile\"";
++- debug("trying to download $path.lzma to $lzmafile\n");
++- my $ret = TeXLive::TLUtils::download_file("$path.lzma", "$lzmafile");
+++ debug("trying to download $path.xz to $xzfile\n");
+++ my $ret = TeXLive::TLUtils::download_file("$path.xz", "$xzfile");
++ # better to check both, the return value AND the existence of the file
++- if ($ret && (-r "$lzmafile")) {
+++ if ($ret && (-r "$xzfile")) {
++ # ok, let the fun begin
++- debug("un-lzmaing $lzmafile to $tlpdbfile\n");
++- # lzmadec *hopefully* returns 0 on success and anything else on failure
+++ debug("un-xzing $xzfile to $tlpdbfile\n");
+++ # xzdec *hopefully* returns 0 on success and anything else on failure
++ # we don't have to negate since not zero means error in the shell
++ # and thus in perl true
++- if (system("$::progs{'lzmadec'} <$lzmafile_quote >$tlpdbfile_quote")) {
++- debug("un-lzmaing $lzmafile failed, tryin gplain file\n");
++- # to be sure we unlink the lzma file and the tlpdbfile
++- unlink($lzmafile);
+++ if (system("$::progs{'xzdec'} <$xzfile_quote >$tlpdbfile_quote")) {
+++ debug("un-xzing $xzfile failed, tryin gplain file\n");
+++ # to be sure we unlink the xz file and the tlpdbfile
+++ unlink($xzfile);
++ unlink($tlpdbfile);
++ } else {
++- unlink($lzmafile);
+++ unlink($xzfile);
++ open($retfh, "<$tlpdbfile") || die "$0: open($tlpdbfile) failed: $!";
++- debug("found the uncompressed lzma file\n");
+++ debug("found the uncompressed xz file\n");
++ }
++ }
++ } else {
++- debug("no lzmadec defined, not trying tlpdb.lzma ...\n");
+++ debug("no xzdec defined, not trying tlpdb.xz ...\n");
++ }
++ if (!defined($retfh)) {
++- debug("TLPDB: downloading $path.lzma didn't succeed, try $path\n");
++- # lzma did not succeed, so try the normal file
+++ debug("TLPDB: downloading $path.xz didn't succeed, try $path\n");
+++ # xz did not succeed, so try the normal file
++ $retfh = TeXLive::TLUtils::download_file($path, "|");
++ if (!$retfh) {
++ die "open tlpdb($path) failed: $!";
++@@ -277,7 +277,7 @@
++ }
++ } until (!$ret);
++ tlwarn("unusable location $path, could not load any packages\n") if (!$found);
++- # remove the un-lzma-ed tlpdb file from temp dir
+++ # remove the un-xz-ed tlpdb file from temp dir
++ # THAT IS RACY!!! we should fix that in some better way with tempfile
++ unlink($tlpdbfile) if $tlpdbfile;
++ return($found);
++@@ -394,13 +394,13 @@
++ $container .= ".zip";
++ $unpackprog="unzip";
++ $args="-o -qq $container -d $dest";
++- } elsif (-r "$container.lzma") {
++- $container .= ".lzma";
+++ } elsif (-r "$container.xz") {
+++ $container .= ".xz";
++ $unpackprog="NO_IDEA_HOW_TO_UNPACK_LZMA";
++ $args="NO IDEA WHAT ARGS IT NEEDS";
++- die "$0: lzma checked for but not implemented, maybe update TLPDB.pm";
+++ die "$0: xz checked for but not implemented, maybe update TLPDB.pm";
++ } else {
++- die "$0: No package $container (.zip or .lzma) in $ziplocation";
+++ die "$0: No package $container (.zip or .xz) in $ziplocation";
++ }
++ tlwarn("Huuu, this needs testing and error checking!\n");
++ tlwarn("Should we use -a -- adapt line endings etc?\n");
+ @@ -788,7 +788,7 @@
+ read-only function; you cannot change the root of the TLPDB using this
+ function.
+@@ -144,9 +976,18 @@
+ }
+
+ =item C<< $tlpdb->updmap_cfg_lines >>
++@@ -1420,7 +1463,7 @@
++ =item C<container_format/I<format>>
++
++ This option specifies a format for containers. The currently supported
++-formats are C<lzma> and C<zip>. But note that C<zip> is untested.
+++formats are C<xz> and C<zip>. But note that C<zip> is untested.
++
++ =back
++
+ Index: tlpkg/TeXLive/TLConfig.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLConfig.pm (revision 12171)
++--- tlpkg/TeXLive/TLConfig.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLConfig.pm (working copy)
+ @@ -11,6 +11,7 @@
+ use vars qw( @ISA @EXPORT_OK @EXPORT );
+@@ -172,8 +1013,13 @@
+ # Meta Categories do not ship files, but call only for other packages
+ our @MetaCategories = qw/Collection Scheme/;
+ our $MetaCategoriesRegexp = '(Collection|Scheme)';
+-@@ -57,14 +63,14 @@
++@@ -53,18 +59,18 @@
++ our $BlockSize = 4096;
+
++ # the way we package things on the web
++-our $DefaultContainerExtension = "tar.lzma";
+++our $DefaultContainerExtension = "tar.xz";
++
+ our $Archive = "archive";
+ our $TeXLiveServerURL = "http://mirror.ctan.org";
+ -our $TeXLiveServerPath = "systems/texlive/tlnet/2008";
+@@ -209,7 +1055,7 @@
+
+ Index: tlpkg/TeXLive/TLPostActions.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLPostActions.pm (revision 12171)
++--- tlpkg/TeXLive/TLPostActions.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLPostActions.pm (working copy)
+ @@ -20,48 +20,13 @@
+ use TeXLive::TLUtils qw(win32 mkdirhier copy conv_to_w32_path log debug info
+@@ -859,7 +1705,7 @@
+
+ Index: tlpkg/TeXLive/TLPSRC.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLPSRC.pm (revision 12171)
++--- tlpkg/TeXLive/TLPSRC.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLPSRC.pm (working copy)
+ @@ -30,6 +30,7 @@
+ srcpatterns => $params{'srcpatterns'},
+@@ -936,8 +1782,17 @@
+
+ Continuation lines are supported via a trailing backslash. That is, if
+ the C<.tlpsrc> file contains two physical lines like this:
+-@@ -638,7 +655,7 @@
+- is only "lzma", which generates .tar.lzma files. zip can be supported.
++@@ -631,14 +648,14 @@
++
++ This package contains configuration options for the TeX Live archive.
++ If container_split_{doc,src}_files occurs in the depend lines the
++-{doc,src} files are split into separate containers (.tar.lzma)
+++{doc,src} files are split into separate containers (.tar.xz)
++ during container build time. Note that this has NO effect on the
++ appearance within the texlive.tlpdb. It is only on container level.
++ The container_format/XXXXX specifies the format, currently allowed
++-is only "lzma", which generates .tar.lzma files. zip can be supported.
+++is only "xz", which generates .tar.xz files. zip can be supported.
+ release/NNNN specifies the release number as used in the installer.
+
+ -=item B<00texlive-installation.config>
+@@ -999,7 +1854,7 @@
+ adds a pattern (next section) to the respective list of patterns.
+ Index: tlpkg/TeXLive/TLPOBJ.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLPOBJ.pm (revision 12171)
++--- tlpkg/TeXLive/TLPOBJ.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLPOBJ.pm (working copy)
+ @@ -29,6 +29,7 @@
+ docfiles => defined($params{'docfiles'}) ? $params{'docfiles'} : [],
+@@ -1052,6 +1907,61 @@
+ if (defined($self->{'docfiles'}) && (@{$self->{'docfiles'}})) {
+ print $fd "docfiles\n";
+ foreach (sort @{$self->{'docfiles'}}) {
++@@ -419,8 +435,8 @@
++
++ sub make_container {
++ my ($self,$type,$instroot,$destdir,$containername,$relative) = @_;
++- if (($type ne "lzma") && ($type ne "tar")) {
++- die "$0: TLPOBJ supports tar and lzma containers, not $type";
+++ if (($type ne "xz") && ($type ne "tar")) {
+++ die "$0: TLPOBJ supports tar and xz containers, not $type";
++ }
++ if (!defined($containername)) {
++ $containername = $self->name;
++@@ -484,21 +500,21 @@
++ if ($type eq "tar") {
++ $containername = $tarname;
++ } else {
++- $containername = "$tarname.lzma";
+++ $containername = "$tarname.xz";
++ }
++
++ # start the fun
++ my $tar = $::progs{'tar'};
++- my $lzma;
+++ my $xz;
++ if (!defined($tar)) {
++ tlwarn("$0: programs not set up, trying \"tar\".\n");
++ $tar = "tar";
++ }
++- if ($type eq "lzma") {
++- $lzma = $::progs{'lzma'};
++- if (!defined($lzma)) {
++- tlwarn("$0: programs not set up, trying \"lzma\".\n");
++- $lzma = "lzma";
+++ if ($type eq "xz") {
+++ $xz = $::progs{'xz'};
+++ if (!defined($xz)) {
+++ tlwarn("$0: programs not set up, trying \"xz\".\n");
+++ $xz = "xz";
++ }
++ }
++
++@@ -564,11 +580,11 @@
++ xsystem(@cmdline);
++
++ # compress it.
++- if ($type eq "lzma") {
+++ if ($type eq "xz") {
++ if (-r "$destdir/$tarname") {
++- system($lzma, "--force", "-z", "$destdir/$tarname");
+++ system($xz, "--force", "-z", "$destdir/$tarname");
++ } else {
++- tlwarn("$0: Couldn't find $destdir/$tarname to run $lzma\n");
+++ tlwarn("$0: Couldn't find $destdir/$tarname to run $xz\n");
++ return (0, 0, "");
++ }
++ }
+ @@ -837,7 +853,7 @@
+ } else {
+ push @maps, "disable $3";
+@@ -1073,10 +1983,82 @@
+ sub containerdir {
+ my @self = shift;
+ if (@_) { $_containerdir = $_[0] }
++@@ -1187,7 +1208,7 @@
++ architectures as keys, similar to the C<runfiles> functions (see above).
++
++ Futhermore, if the tlpobj is contained ina tlpdb which describes a media
++-where the files are distributed in packed format (usually as .tar.lzma),
+++where the files are distributed in packed format (usually as .tar.xz),
++ there are 6 more possible keys:
++
++ $tlpobj->containersize
++@@ -1249,11 +1270,11 @@
++ in C<$destdir> (if not defined then C<< TLPOBJ->containerdir >> is used).
++
++ The C<$type> variable specifies the type of container to be used.
++-Currently only C<zip> or C<lzma> are allowed, and are generating
++-zip files and tar.lzma files, respectively.
+++Currently only C<zip> or C<xz> are allowed, and are generating
+++zip files and tar.xz files, respectively.
++
++ The file name of the created container file is C<$containername.extension>,
++-where extension is either C<.zip> or C<.tar.lzma>, depending on the
+++where extension is either C<.zip> or C<.tar.xz>, depending on the
++ setting of C<$type>. If no C<$containername> is specified the package name
++ is used.
++
+ Index: tlpkg/TeXLive/TLMedia.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLMedia.pm (revision 12171)
++--- tlpkg/TeXLive/TLMedia.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLMedia.pm (working copy)
++@@ -146,10 +146,10 @@
++ } elsif ($media eq 'CD') {
++ if (-r "$location/$Archive/$pkg.zip") {
++ $container = "$location/$Archive/$pkg.zip";
++- } elsif (-r "$location/$Archive/$pkg.tar.lzma") {
++- $container = "$location/$Archive/$pkg.tar.lzma";
+++ } elsif (-r "$location/$Archive/$pkg.tar.xz") {
+++ $container = "$location/$Archive/$pkg.tar.xz";
++ } else {
++- tlwarn("Cannot find a package $pkg (.zip or .lzma) in $location/$Archive\n");
+++ tlwarn("Cannot find a package $pkg (.zip or .xz) in $location/$Archive\n");
++ next;
++ }
++ } elsif (&media eq 'NET') {
++@@ -164,20 +164,20 @@
++ # - src/doc files should be installed
++ # (- the package is not already a split one (like .i386-linux))
++ # the above test has been removed because it would mean that
++- # texlive.infra.doc.tar.lzma
+++ # texlive.infra.doc.tar.xz
++ # will never be installed, and we do already check that there
++ # are at all src/doc files, which in split packages of the form
++ # foo.ARCH are not present. And if they are present, than that is fine,
++- # too (bin-foobar.win32.doc.tar.lzma)
+++ # too (bin-foobar.win32.doc.tar.xz)
++ # - there are actually src/doc files present
++ if ($container_src_split && $opt_src && $tlpobj->srcfiles) {
++ my $srccontainer = $container;
++- $srccontainer =~ s/(\.tar\.lzma|\.zip)$/.source$1/;
+++ $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/;
++ $self->_install_package($srccontainer,\@installfiles,$totlpdb) || return(0);
++ }
++ if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) {
++ my $doccontainer = $container;
++- $doccontainer =~ s/(\.tar\.lzma|\.zip)$/.doc$1/;
+++ $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/;
++ $self->_install_package($doccontainer,\@installfiles,$totlpdb) || return(0);
++ }
++ }
++@@ -190,7 +190,7 @@
++ $tlpobj->clear_docfiles;
++ }
++ # we have to write out the tlpobj file since it is contained in the
++- # archives (.tar.lzma) but at DVD install time we don't have them
+++ # archives (.tar.xz) but at DVD install time we don't have them
++ my $tlpod = $totlpdb->root . "/tlpkg/tlpobj";
++ mkdirhier( $tlpod );
++ open(TMP,">$tlpod/".$tlpobj->name.".tlpobj") or
+ @@ -208,6 +208,9 @@
+ info("running post install action for $pkg\n");
+ &{$PostInstall{$pkg}}($totlpdb->root);
+@@ -1087,9 +2069,92 @@
+ }
+ return \%ret;
+ }
++@@ -228,8 +231,8 @@
++
++ # we assume that $::progs has been set up!
++ my $wget = $::progs{'wget'};
++- my $lzmadec = $::progs{'lzmadec'};
++- if (!defined($wget) || !defined($lzmadec)) {
+++ my $xzdec = $::progs{'xzdec'};
+++ if (!defined($wget) || !defined($xzdec)) {
++ tlwarn("_install_package: programs not set up properly, strange.\n");
++ return(0);
++ }
++@@ -246,27 +249,27 @@
++ }
++ # we always assume that copy will work
++ return(1);
++- } elsif ($what =~ m,\.tar(\.lzma)?$,) {
++- my $type = defined($1) ? "lzma" : "tar";
+++ } elsif ($what =~ m,\.tar(\.xz)?$,) {
+++ my $type = defined($1) ? "xz" : "tar";
++
++ # this is the case when we install from CD or the NET, or a backup
++ #
++- # in all other cases we create temp files .tar.lzma (or use the present
++- # one), lzmadec them, and then call tar
+++ # in all other cases we create temp files .tar.xz (or use the present
+++ # one), xzdec them, and then call tar
++
++ my $fn = basename($what);
++ mkdirhier("$target/temp");
++ my $tarfile;
++ my $remove_tarfile = 1;
++- if ($type eq "lzma") {
++- my $lzmafile = "$target/temp/$fn";
++- $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.lzma$//;
++- my $lzmafile_quote = $lzmafile;
+++ if ($type eq "xz") {
+++ my $xzfile = "$target/temp/$fn";
+++ $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.xz$//;
+++ my $xzfile_quote = $xzfile;
++ my $tarfile_quote = $tarfile;
++ my $target_quote = $target;
++ if (win32()) {
++- $lzmafile =~ s!/!\\!g;
++- $lzmafile_quote = "\"$lzmafile\"";
+++ $xzfile =~ s!/!\\!g;
+++ $xzfile_quote = "\"$xzfile\"";
++ $tarfile =~ s!/!\\!g;
++ $tarfile_quote = "\"$tarfile\"";
++ $target =~ s!/!\\!g;
++@@ -275,11 +278,11 @@
++ if ($what =~ m,http://|ftp://,) {
++ # we are installing from the NET
++ # download the file and put it into temp
++- if (!download_file($what, $lzmafile) || (! -r $lzmafile)) {
+++ if (!download_file($what, $xzfile) || (! -r $xzfile)) {
++ tlwarn("Downloading \n");
++ tlwarn(" $what\n");
++ tlwarn("did not succeed, please retry.\n");
++- unlink($tarfile, $lzmafile);
+++ unlink($tarfile, $xzfile);
++ return(0);
++ }
++ } else {
++@@ -287,14 +290,14 @@
++ # copy it to temp
++ copy($what, "$target/temp");
++ }
++- debug("un-lzmaing $lzmafile to $tarfile\n");
++- system("$lzmadec < $lzmafile_quote > $tarfile_quote");
+++ debug("un-xzing $xzfile to $tarfile\n");
+++ system("$xzdec < $xzfile_quote > $tarfile_quote");
++ if (! -f $tarfile) {
++- tlwarn("_install_package: Unpacking $lzmafile failed, please retry.\n");
++- unlink($tarfile, $lzmafile);
+++ tlwarn("_install_package: Unpacking $xzfile failed, please retry.\n");
+++ unlink($tarfile, $xzfile);
++ return(0);
++ }
++- unlink($lzmafile);
+++ unlink($xzfile);
++ } else {
++ $tarfile = "$target/temp/$fn";
++ if ($what =~ m,http://|ftp://,) {
+ Index: tlpkg/TeXLive/TLUtils.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLUtils.pm (revision 12171)
++--- tlpkg/TeXLive/TLUtils.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLUtils.pm (working copy)
+ @@ -56,6 +56,7 @@
+ TeXLive::TLUtils::create_language_def($tlpdb,$dest,$localconf);
+@@ -1099,6 +2164,168 @@
+
+ =head2 Miscellaneous
+
++@@ -1006,10 +1007,10 @@
++ } elsif ($media eq 'CD') {
++ if (-r "$root/$Archive/$package.zip") {
++ $container = "$root/$Archive/$package.zip";
++- } elsif (-r "$root/$Archive/$package.tar.lzma") {
++- $container = "$root/$Archive/$package.tar.lzma";
+++ } elsif (-r "$root/$Archive/$package.tar.xz") {
+++ $container = "$root/$Archive/$package.tar.xz";
++ } else {
++- tlwarn("No package $package (.zip or .lzma) in $root/$Archive\n");
+++ tlwarn("No package $package (.zip or .xz) in $root/$Archive\n");
++ next;
++ }
++ } elsif ($media eq 'NET') {
++@@ -1036,7 +1037,7 @@
++ # - there are actually src/doc files present
++ if ($container_src_split && $opt_src && $tlpobj->srcfiles) {
++ my $srccontainer = $container;
++- $srccontainer =~ s/(\.tar\.lzma|\.zip)$/.source$1/;
+++ $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/;
++ if (!install_package($srccontainer, $tlpobj->srccontainersize,
++ $tlpobj->srccontainermd5, \@installfiles,
++ $totlpdb->root, $vars{'this_platform'})) {
++@@ -1045,7 +1046,7 @@
++ }
++ if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) {
++ my $doccontainer = $container;
++- $doccontainer =~ s/(\.tar\.lzma|\.zip)$/.doc$1/;
+++ $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/;
++ if (!install_package($doccontainer,
++ $tlpobj->doccontainersize,
++ $tlpobj->doccontainermd5, \@installfiles,
++@@ -1064,7 +1065,7 @@
++ }
++ $totlpdb->add_tlpobj($tlpobj);
++ # we have to write out the tlpobj file since it is contained in the
++- # archives (.tar.lzma) but at DVD install time we don't have them
+++ # archives (.tar.xz) but at DVD install time we don't have them
++ my $tlpod = $totlpdb->root . "/tlpkg/tlpobj";
++ mkdirhier( $tlpod );
++ open(TMP,">$tlpod/".$tlpobj->name.".tlpobj") ||
++@@ -1097,11 +1098,11 @@
++ account.
++
++ If C<$what> starts with C<http://> or C<ftp://> then C<$what> is
++-downloaded from the net and piped through C<lzmadec> and C<tar>.
+++downloaded from the net and piped through C<xzdec> and C<tar>.
++
++-If $what ends with C<.tar.lzma> (but does not start with C<http://> or
+++If $what ends with C<.tar.xz> (but does not start with C<http://> or
++ C<ftp://>, but possibly with C<file:/>) it is assumed to be a readable
++-file on the system and is likewise piped through C<lzmadec> and C<tar>.
+++file on the system and is likewise piped through C<xzdec> and C<tar>.
++
++ In both of these cases currently the list C<$@filelistref> currently
++ is not taken into account (should be fixed!).
++@@ -1117,9 +1118,9 @@
++
++ # we assume that $::progs has been set up!
++ my $wget = $::progs{'wget'};
++- my $lzmadec = $::progs{'lzmadec'};
++- if (!defined($wget) || !defined($lzmadec)) {
++- tlwarn("install_package: wget/lzmadec programs not set up properly.\n");
+++ my $xzdec = $::progs{'xzdec'};
+++ if (!defined($wget) || !defined($xzdec)) {
+++ tlwarn("install_package: wget/xzdec programs not set up properly.\n");
++ return 0;
++ }
++ if (ref $what) {
++@@ -1132,35 +1133,35 @@
++ mkdirhier("$target/$dn");
++ copy "$root/$file", "$target/$dn";
++ }
++- } elsif ($what =~ m,\.tar.lzma$,) {
+++ } elsif ($what =~ m,\.tar.xz$,) {
++ # this is the case when we install from CD or the NET
++ #
++- # in all other cases we create temp files .tar.lzma (or use the present
++- # one), lzmadec them, and then call tar
+++ # in all other cases we create temp files .tar.xz (or use the present
+++ # one), xzdec them, and then call tar
++
++ my $fn = basename($what);
++ mkdirhier("$target/temp");
++- my $lzmafile = "$target/temp/$fn";
++- my $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.lzma$//;
++- my $lzmafile_quote = $lzmafile;
+++ my $xzfile = "$target/temp/$fn";
+++ my $tarfile = "$target/temp/$fn"; $tarfile =~ s/\.xz$//;
+++ my $xzfile_quote = $xzfile;
++ my $tarfile_quote = $tarfile;
++ if (win32()) {
++- $lzmafile =~ s!/!\\!g;
+++ $xzfile =~ s!/!\\!g;
++ $tarfile =~ s!/!\\!g;
++ $target =~ s!/!\\!g;
++ }
++- $lzmafile_quote = "\"$lzmafile\"";
+++ $xzfile_quote = "\"$xzfile\"";
++ $tarfile_quote = "\"$tarfile\"";
++ my $gotfiledone = 0;
++- if (-r $lzmafile) {
+++ if (-r $xzfile) {
++ # check that the downloaded file is not partial
++ if ($whatsize >= 0) {
++ # we have the size given, so check that first
++- my $size = (stat $lzmafile)[7];
+++ my $size = (stat $xzfile)[7];
++ if ($size == $whatsize) {
++ # we want to check also the md5sum if we have it present
++ if ($whatmd5) {
++- if (tlmd5($lzmafile) eq $whatmd5) {
+++ if (tlmd5($xzfile) eq $whatmd5) {
++ $gotfiledone = 1;
++ } else {
++ tlwarn("Downloaded $what, size equal, but md5sum differs;\n",
++@@ -1174,12 +1175,12 @@
++ }
++ } else {
++ tlwarn("Partial download of $what found, removing it.\n");
++- unlink($tarfile, $lzmafile);
+++ unlink($tarfile, $xzfile);
++ }
++ } else {
++ # ok no size information, hopefully we have md5 sums
++ if ($whatmd5) {
++- if (tlmd5($lzmafile) eq $whatmd5) {
+++ if (tlmd5($xzfile) eq $whatmd5) {
++ $gotfiledone = 1;
++ } else {
++ tlwarn("Downloaded file, but md5sum differs, removing it.\n");
++@@ -1190,14 +1191,14 @@
++ $gotfiledone = 1;
++ }
++ }
++- debug("Reusing already downloaded container $lzmafile\n")
+++ debug("Reusing already downloaded container $xzfile\n")
++ if ($gotfiledone);
++ }
++ if (!$gotfiledone) {
++ if ($what =~ m,http://|ftp://,) {
++ # we are installing from the NET
++ # download the file and put it into temp
++- if (!download_file($what, $lzmafile) || (! -r $lzmafile)) {
+++ if (!download_file($what, $xzfile) || (! -r $xzfile)) {
++ tlwarn("Downloading $what did not succeed.\n");
++ return 0;
++ }
++@@ -1207,10 +1208,10 @@
++ copy($what, "$target/temp");
++ }
++ }
++- debug("un-lzmaing $lzmafile to $tarfile\n");
++- system("$lzmadec < $lzmafile_quote > $tarfile_quote");
+++ debug("un-xzing $xzfile to $tarfile\n");
+++ system("$xzdec < $xzfile_quote > $tarfile_quote");
++ if (! -f $tarfile) {
++- tlwarn("Unpacking $lzmafile did not succeed.\n");
+++ tlwarn("Unpacking $xzfile did not succeed.\n");
++ return 0;
++ }
++ if (!TeXLive::TLUtils::untar($tarfile, $target, 1)) {
+ @@ -1224,7 +1225,111 @@
+ return 1;
+ }
+@@ -1211,9 +2438,55 @@
+ =item C<untar($tarfile,$targetdir, $remove_tarfile)>
+
+ Unpacked C<$tarfile> in C<$targetdir> (changing directories to
++@@ -1268,8 +1373,8 @@
++ =item C<setup_programs($bindir, $platform)>
++
++ Populate the global C<$::progs> hash containing the paths to the
++-programs C<wget>, C<tar>, C<lzmadec>. The C<$bindir> argument specifies
++-the path to the location of the C<lzmadec> binaries, the C<$platform>
+++programs C<wget>, C<tar>, C<xzdec>. The C<$bindir> argument specifies
+++the path to the location of the C<xzdec> binaries, the C<$platform>
++ gives the TeX Live platform name, used as the extension on our
++ executables. If a program is not present in the TeX Live tree, we also
++ check along PATH (without the platform extension.)
++@@ -1283,17 +1388,17 @@
++ my $ok = 1;
++
++ $::progs{'wget'} = "wget";
++- $::progs{'lzmadec'} = "lzmadec";
++- $::progs{'lzma'} = "lzma";
+++ $::progs{'xzdec'} = "xzdec";
+++ $::progs{'xz'} = "xz";
++ $::progs{'tar'} = "tar";
++
++ if ($^O =~ /^MSWin(32|64)$/i) {
++ $::progs{'wget'} = conv_to_w32_path("$bindir/wget/wget.exe");
++ $::progs{'tar'} = conv_to_w32_path("$bindir/tar.exe");
++- $::progs{'lzmadec'} = conv_to_w32_path("$bindir/lzma/lzmadec.win32.exe");
++- $::progs{'lzma'} = conv_to_w32_path("$bindir/lzma/lzma.exe");
++- for my $prog ("lzmadec", "wget") {
++- my $opt = $prog eq "lzmadec" ? "--help" : "--version";
+++ $::progs{'xzdec'} = conv_to_w32_path("$bindir/xz/xzdec.win32.exe");
+++ $::progs{'xz'} = conv_to_w32_path("$bindir/xz/xz.exe");
+++ for my $prog ("xzdec", "wget") {
+++ my $opt = $prog eq "xzdec" ? "--help" : "--version";
++ my $ret = system("$::progs{$prog} $opt >nul 2>&1"); # on windows
++ if ($ret != 0) {
++ warn "TeXLive::TLUtils::setup_programs (w32) failed"; # no nl for perl
++@@ -1315,8 +1420,8 @@
++ }
++ my $s = 0;
++ $s += setup_unix_one('wget', "$bindir/wget/wget.$platform", "--version");
++- $s += setup_unix_one('lzmadec',"$bindir/lzma/lzmadec.$platform","--help");
++- $s += setup_unix_one('lzma', "$bindir/lzma/lzma.$platform", "notest");
+++ $s += setup_unix_one('xzdec',"$bindir/xz/xzdec.$platform","--help");
+++ $s += setup_unix_one('xz', "$bindir/xz/xz.$platform", "notest");
++ $ok = ($s == 3); # failure return unless all are present.
++ }
++
+ Index: tlpkg/TeXLive/TLWinGoo.pm
+ ===================================================================
+---- tlpkg/TeXLive/TLWinGoo.pm (revision 12171)
++--- tlpkg/TeXLive/TLWinGoo.pm (revision 12198)
+ +++ tlpkg/TeXLive/TLWinGoo.pm (working copy)
+ @@ -58,7 +58,6 @@
+ $prog, $args, $batgui);
+@@ -1325,7 +2598,7 @@
+ \"\%TEMP\%\\uninst2.bat\"
+ Index: tlpkg/installer/install-menu-perltk.pl
+ ===================================================================
+---- tlpkg/installer/install-menu-perltk.pl (revision 12171)
++--- tlpkg/installer/install-menu-perltk.pl (revision 12198)
+ +++ tlpkg/installer/install-menu-perltk.pl (working copy)
+ @@ -62,7 +62,6 @@
+ my $texmfhometext;
+@@ -1405,7 +2678,7 @@
+ sub callback_select_scheme {
+ Index: tlpkg/installer/install-translations.pl
+ ===================================================================
+---- tlpkg/installer/install-translations.pl (revision 12171)
++--- tlpkg/installer/install-translations.pl (revision 12198)
+ +++ tlpkg/installer/install-translations.pl (working copy)
+ @@ -52,7 +52,7 @@
+ }
+@@ -1444,7 +2717,7 @@
+ if (($::lang ne "en") && ($::lang ne "C")) {
+ Index: tlpkg/installer/install-menu-text.pl
+ ===================================================================
+---- tlpkg/installer/install-menu-text.pl (revision 12171)
++--- tlpkg/installer/install-menu-text.pl (revision 12198)
+ +++ tlpkg/installer/install-menu-text.pl (working copy)
+ @@ -675,7 +675,7 @@
+
+@@ -1543,7 +2816,7 @@
+ if ($vars{'from_dvd'}) {
+ Index: tlpkg/tlpsrc/bin-tex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-tex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-tex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-tex.tlpsrc (working copy)
+ @@ -1,7 +1,6 @@
+ name bin-tex
+@@ -1556,7 +2829,7 @@
+ binpattern f bin/${ARCH}/tex
+ Index: tlpkg/tlpsrc/bin-mex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-mex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-mex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-mex.tlpsrc (working copy)
+ @@ -2,10 +2,9 @@
+ category TLCore
+@@ -1574,7 +2847,7 @@
+ binpattern f bin/${ARCH}/utf8mex
+ Index: tlpkg/tlpsrc/texlive-de.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-de.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-de.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-de.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-de
+@@ -1583,7 +2856,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (de) (HTML)" cmd=TEXDIR/texmf-doc/doc/german/texlive-de/texlive-de.html
+ Index: tlpkg/tlpsrc/00texlive.installer.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/00texlive.installer.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/00texlive.installer.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/00texlive.installer.tlpsrc (working copy)
+ @@ -7,7 +7,7 @@
+ longdesc used *except* to build the installer archives, so it's ok.
+@@ -1594,9 +2867,31 @@
+ category TLCore
+ runpattern f install-tl
+ runpattern f tlpkg/installer/install-tl.html
++@@ -16,8 +16,8 @@
++ #runpattern d tlpkg/TeXLive
++ runpattern d tlpkg/installer
++ #
++-# but no lzma binaries
++-runpattern !d tlpkg/installer/lzma
+++# but no xz binaries
+++runpattern !d tlpkg/installer/xz
++ runpattern !d tlpkg/installer/wget
++ #
++ # and no perl lib
++@@ -35,8 +35,8 @@
++ # shouldn't be in the installer packages
++ # binpattern f/win32 tl-portable.bat
++ binpattern f/win32 install-tl.bat.manifest
++-binpattern f/!win32 tlpkg/installer/lzma/lzmadec.${ARCH}
+++binpattern f/!win32 tlpkg/installer/xz/xzdec.${ARCH}
++ binpattern f/!win32,i386-solaris,i386-linux,mips-irix,sparc-linux,alpha-linux,powerpc-linux,i386-freebsd,x86_64-linux tlpkg/installer/wget/wget.${ARCH}
++ binpattern f/win32 tlpkg/installer/wget/wget.exe
++ # why the above does not catch that one I don't know ... so add it
++-binpattern f/win32 tlpkg/installer/lzma/lzmadec.win32.exe
+++binpattern f/win32 tlpkg/installer/xz/xzdec.win32.exe
+ Index: tlpkg/tlpsrc/pdftex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/pdftex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/pdftex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/pdftex.tlpsrc (working copy)
+ @@ -1,8 +1,9 @@
+ name pdftex
+@@ -1612,7 +2907,7 @@
+ runpattern f texmf/tex/generic/pdftex/*
+ Index: tlpkg/tlpsrc/bin-csplain.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-csplain.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-csplain.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-csplain.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-csplain
+@@ -1626,7 +2921,7 @@
+ binpattern f bin/${ARCH}/pdfcsplain
+ Index: tlpkg/tlpsrc/bin-metapost.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-metapost.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-metapost.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-metapost.tlpsrc (working copy)
+ @@ -1,8 +1,8 @@
+ name bin-metapost
+@@ -1641,22 +2936,32 @@
+ docpattern f texmf/doc/man/man1/makempx.*
+ Index: tlpkg/tlpsrc/00texlive.config.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/00texlive.config.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/00texlive.config.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/00texlive.config.tlpsrc (working copy)
+-@@ -9,8 +9,8 @@
+- longdesc is only "lzma", which generates .tar.lzma files. zip can be supported.
++@@ -2,15 +2,15 @@
++ category TLCore
++ longdesc This package contains configuration options for the TeX Live archive
++ longdesc If container_split_{doc,src}_files occurs in the depend lines the
++-longdesc {doc,src} files are split into separate containers (.tar.lzma)
+++longdesc {doc,src} files are split into separate containers (.tar.xz)
++ longdesc during container build time. Note that this has NO effect on the
++ longdesc appearance within the texlive.tlpdb. It is only on container level.
++ longdesc The container_format/XXXXX specifies the format, currently allowed
++-longdesc is only "lzma", which generates .tar.lzma files. zip can be supported.
+++longdesc is only "xz", which generates .tar.xz files. zip can be supported.
+ longdesc release/NNNN specifies the release number as used in the installer.
+ longdesc For information on the 00texlive prefix see
+ -longdesc 00texlive-installation.config(.tlpsrc)
+ +longdesc 00texlive.installation(.tlpsrc)
+ depend container_split_src_files
+ depend container_split_doc_files
+- depend container_format/lzma
++-depend container_format/lzma
+ -depend release/2008
+++depend container_format/xz
+ +depend release/2009
+ Index: tlpkg/tlpsrc/texlive-fr.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-fr.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-fr.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-fr.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-fr
+@@ -1665,7 +2970,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (fr) (HTML)" cmd=TEXDIR/texmf-doc/doc/french/texlive-fr/texlive-fr.html
+ Index: tlpkg/tlpsrc/texlive-zh-cn.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (working copy)
+ @@ -1,2 +1,3 @@
+ name texlive-zh-cn
+@@ -1673,7 +2978,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (zh-cn) (PDF)" cmd=TEXDIR/texmf-doc/doc/chinese/texlive-zh-cn/texlive-zh-cn.pdf
+ Index: tlpkg/tlpsrc/bin-dviout.win32.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (working copy)
+ @@ -2,3 +2,4 @@
+ category TLCore
+@@ -1682,7 +2987,7 @@
+ +postaction shortcut type=menu name="DVIOUT Dvi Viewer" cmd=wscript args=TEXDIR/bin/win32/dviout.vbs hide=1
+ Index: tlpkg/tlpsrc/bin-context.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-context.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-context.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-context.tlpsrc (working copy)
+ @@ -1,9 +1,15 @@
+ name bin-context
+@@ -1704,7 +3009,7 @@
+ docpattern f texmf/doc/man/man1/mptopdf.*
+ Index: tlpkg/tlpsrc/bin-mltex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-mltex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-mltex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-mltex.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-mltex
+@@ -1718,7 +3023,7 @@
+ binpattern f bin/${ARCH}/mltex
+ Index: tlpkg/tlpsrc/luatex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/luatex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/luatex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/luatex.tlpsrc (working copy)
+ @@ -1,8 +1,8 @@
+ name luatex
+@@ -1733,7 +3038,7 @@
+ binpattern f/!hppa-hpux bin/${ARCH}/texlua
+ Index: tlpkg/tlpsrc/bin-cslatex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-cslatex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-cslatex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-cslatex.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-cslatex
+@@ -1747,7 +3052,7 @@
+ binpattern f bin/${ARCH}/pdfcslatex
+ Index: tlpkg/tlpsrc/bin-texdoc.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-texdoc.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-texdoc.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-texdoc.tlpsrc (working copy)
+ @@ -12,3 +12,4 @@
+ binpattern f bin/${ARCH}/texdoctk
+@@ -1756,7 +3061,7 @@
+ +postaction shortcut type=menu name="TeXdoc GUI" cmd="TEXDIR/bin/win32/texdoctk.bat" hide=1
+ Index: tlpkg/tlpsrc/bin-latex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-latex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-latex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-latex.tlpsrc (working copy)
+ @@ -4,12 +4,14 @@
+ depend pdftex
+@@ -1777,7 +3082,7 @@
+ runpattern d texmf/tex/latex/config
+ Index: tlpkg/tlpsrc/bin-omega.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-omega.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-omega.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-omega.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-omega
+@@ -1791,7 +3096,7 @@
+ binpattern f bin/${ARCH}/lambda
+ Index: tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc (working copy)
+ @@ -5,3 +5,5 @@
+ runpattern f bin/win32/psv.bat
+@@ -1801,7 +3106,7 @@
+ +postaction shortcut type=desktop name="PS_View" icon=TEXDIR/tlpkg/tlpsv/psv.exe cmd=TEXDIR/bin/win32/psv.bat hide=1
+ Index: tlpkg/tlpsrc/bin-xmltex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-xmltex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-xmltex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-xmltex.tlpsrc (working copy)
+ @@ -2,7 +2,7 @@
+ category TLCore
+@@ -1815,7 +3120,7 @@
+ binpattern f bin/${ARCH}/xmltex
+ Index: tlpkg/tlpsrc/texlive-ru.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-ru.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-ru.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-ru.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-ru
+@@ -1824,7 +3129,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (ru) (HTML)" cmd=TEXDIR/texmf-doc/doc/russian/texlive-ru/texlive-ru.html
+ Index: tlpkg/tlpsrc/bin-texlive.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-texlive.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-texlive.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-texlive.tlpsrc (working copy)
+ @@ -1,27 +1,11 @@
+ name bin-texlive
+@@ -1857,7 +3162,7 @@
+ -binpattern f/win32 texmf/scripts/texlive/updater-w32.bat
+ Index: tlpkg/tlpsrc/t2.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/t2.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/t2.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/t2.tlpsrc (working copy)
+ @@ -1,5 +1,5 @@
+ name t2
+@@ -1870,7 +3175,7 @@
+ +execute AddFormat name=cyrtexinfo mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyrtxinf.ini"
+ Index: tlpkg/tlpsrc/bin-texsis.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-texsis.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-texsis.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-texsis.tlpsrc (working copy)
+ @@ -1,6 +1,5 @@
+ name bin-texsis
+@@ -1882,7 +3187,7 @@
+ binpattern f bin/${ARCH}/texsis
+ Index: tlpkg/tlpsrc/texlive-en.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-en.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-en.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-en.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-en
+@@ -1891,7 +3196,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (en) (HTML)" cmd=TEXDIR/texmf-doc/doc/english/texlive-en/texlive-en.html
+ Index: tlpkg/tlpsrc/bin-physe.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-physe.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-physe.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-physe.tlpsrc (working copy)
+ @@ -1,6 +1,5 @@
+ name bin-physe
+@@ -1903,7 +3208,7 @@
+ binpattern f bin/${ARCH}/physe
+ Index: tlpkg/tlpsrc/bin-phyzzx.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-phyzzx.tlpsrc (working copy)
+ @@ -1,6 +1,5 @@
+ name bin-phyzzx
+@@ -1915,7 +3220,7 @@
+ binpattern f bin/${ARCH}/phyzzx
+ Index: tlpkg/tlpsrc/bin-eplain.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-eplain.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-eplain.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-eplain.tlpsrc (working copy)
+ @@ -1,8 +1,7 @@
+ name bin-eplain
+@@ -1929,7 +3234,7 @@
+ binpattern f bin/${ARCH}/eplain
+ Index: tlpkg/tlpsrc/texlive-cz.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-cz.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-cz.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-cz.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-cz
+@@ -1938,7 +3243,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (cz) (HTML)" cmd=TEXDIR/texmf-doc/doc/czechslovak/texlive-cz/texlive-cz.html
+ Index: tlpkg/tlpsrc/bin-jadetex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-jadetex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-jadetex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-jadetex.tlpsrc (working copy)
+ @@ -2,7 +2,7 @@
+ category TLCore
+@@ -1952,7 +3257,7 @@
+ binpattern f bin/${ARCH}/pdfjadetex
+ Index: tlpkg/tlpsrc/00texlive-installation.config.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (working copy)
+ @@ -1,30 +0,0 @@
+ -name 00texlive-installation.config
+@@ -1987,7 +3292,7 @@
+ -depend opt_install_srcfiles:1
+ Index: tlpkg/tlpsrc/texlive-pl.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive-pl.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive-pl.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive-pl.tlpsrc (working copy)
+ @@ -1,2 +1,4 @@
+ name texlive-pl
+@@ -1996,7 +3301,7 @@
+ +postaction shortcut type=menu name="TeX Live Manual (pl) (HTML)" cmd=TEXDIR/texmf-doc/doc/polish/texlive-pl/texlive-pl.html
+ Index: tlpkg/tlpsrc/bin-amstex.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-amstex.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-amstex.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-amstex.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-amstex
+@@ -2010,7 +3315,7 @@
+ binpattern f bin/${ARCH}/amstex
+ Index: tlpkg/tlpsrc/bin-aleph.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-aleph.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-aleph.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-aleph.tlpsrc (working copy)
+ @@ -1,7 +1,7 @@
+ name bin-aleph
+@@ -2024,31 +3329,42 @@
+ binpattern f bin/${ARCH}/lamed
+ Index: tlpkg/tlpsrc/00texlive.installation.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 12171)
+-+++ tlpkg/tlpsrc/00texlive.installation.tlpsrc (working copy)
+-@@ -1,4 +1,4 @@
+--name 00texlive-installation.config
++--- tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 0)
+++++ tlpkg/tlpsrc/00texlive.installation.tlpsrc (revision 0)
++@@ -0,0 +1,30 @@
+ +name 00texlive.installation
+- category TLCore
+- longdesc This package serves two purposes:
+- longdesc
+-@@ -22,7 +22,7 @@
+- depend location:__MASTER__
+- depend opt_paper:a4
+- depend opt_create_formats:1
+--depend opt_create_symlinks:0
+++category TLCore
+++longdesc This package serves two purposes:
+++longdesc
+++longdesc 1. at installation time the present values are taken as default for
+++longdesc the installer
+++longdesc
+++longdesc 2. on an installed system it serves as a configuration file.
+++longdesc We have to remember these settings for additional package
+++longdesc installation, removal, etc.
+++longdesc
+++longdesc The value of __MASTER__ for the location field tells the
+++longdesc installer to use the present directory itself. For example,
+++longdesc the DVD can be mounted anywhere and we want the installer to work.
+++longdesc
+++longdesc Concerning the 00* names:
+++longdesc All packages starting with 00texlive are considered virtual packages
+++longdesc in the sense that no containers are generated and these packages
+++longdesc are never split into .src and .doc sub-packages in the tlpdb.
+++
+++depend platform:
+++depend location:__MASTER__
+++depend opt_paper:a4
+++depend opt_create_formats:1
+ +depend opt_system_integration:0
+- depend opt_sys_bin:/usr/local/bin
+- depend opt_sys_info:/usr/local/info
+- depend opt_sys_man:/usr/local/man
-
-- # final program execution
-- # we have to do several things:
-- # - clean the environment from spurious TEXMF related variables
-- # - add the bin dir to the PATH
-- # - select perl interpreter and set the correct perllib
-- # - run the programs
--
-- # Step 1: Clean the environment
-- my @TMFVARS0=qw(VARTEXFONTS
-- TEXMF SYSTEXMF VARTEXFONTS
-- TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
-- PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
-- my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
-- TEXMFHOME TEXMFVAR TEXMFCONFIG);
--
-- if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
-- print "WARNING: environment variable TEXMFCNF is set.
--You should know what you are doing.
--We will remove that for the post install actions, but all further
--operations might be disturbed.\n\n";
-- }
-- foreach $tmv (@TMFVARS0) {
-- delete $ENV{$tmv} if (defined($ENV{$tmv}));
-- }
-- if (!$opt_portable) {
-- foreach $tmv (@TMFVARS1) {
-- delete $ENV{$tmv} if (defined($ENV{$tmv}));
-- }
-- }
-- $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
--
-- # Step 2: Setup the PATH, switch to the new Perl
--
-- my $pathsep=(win32)? ';' : ':';
-- my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
-- my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
-- my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
--
--## This won't do any good;
--## have to remove other tex directories in calling batchfile
--# if (win32) {
--# debug("Removing other TeXs from path\n");
--# my @newpt = ();
--# foreach my $d (split (';', $ENV{'PATH'})) {
--# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
--# }
--# $ENV{'PATH'} = join($pathsep, @newpt);
--# debug("Path after removals(s):\n $ENV{'PATH'}\n");
--# }
--
-- debug("Prepending $plat_bindir to PATH\n");
--
-- $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
--
-- if (win32) {
-- debug("Prepending $perl_bindir to PATH\n");
-- $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
-- $ENV{'PATH'} =~ s!/!\\!g;
-- }
--
-- debug("\nNew PATH is now:\n");
-- foreach my $dir (split $pathsep, $ENV{'PATH'}) {
-- debug(" $dir\n");
-- }
-- debug("\n");
--
-- if (win32) {
-- $ENV{'PERL5LIB'}="$perl_libdir";
-- }
--
-- #
-- # post install actions
-- #
--
-- if (win32()) {
-- debug "Actual environment:\n".`set`."\n\n";
-- debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
-- }
--
-- # (re-)initialize batchfile for uninstalling shortcuts
-- if (win32() and !$opt_portable) {
-- mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
-- init_unshortbat($TEXDIRW);
-- }
--
-- foreach my $package (sort keys %install) {
-- if ($install{$package} && defined($PostInstall{$package})) {
-- info("running post install action for $package\n");
-- &{$PostInstall{$package}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL);
-- }
-- }
-- # $opt_portable: no %install but we still want xetex postinstall
-- &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
-- if $opt_portable;
-- update_assocs() if win32();
--
-- # Step 4: run the programs
--
-- if (!$opt_portable and !$vars{'from_dvd'}) {
-- info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
-- system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
-- }
--
-- # we have to generate the various config file. That could be done with
-- # texconfig generate * but Win32 does not have texconfig. But we have
-- # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
-- # the code from the various generate-*.pl scripts
-- info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
-- my $tlp = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
-- TeXLive::TLUtils::create_fmtutil($tlp, #$localtlpdb,
-- "$TEXMFSYSVAR/web2c/fmtutil.cnf",
-- "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
--
-- mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
-- info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
-- TeXLive::TLUtils::create_updmap ($tlp, #$localtlpdb,
-- "$TEXMFSYSCONFIG/web2c/updmap.cfg",
-- "$TEXMFLOCAL/web2c/updmap-local.cfg");
+-Property changes on: tlpkg/tlpsrc/00texlive.installation.tlpsrc
+-___________________________________________________________________
+-Added: svn:mergeinfo
-
-- info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
-- TeXLive::TLUtils::create_language_dat($tlp, #$localtlpdb,
-- "$TEXMFSYSVAR/tex/generic/config/language.dat",
-- "$TEXMFLOCAL/tex/generic/config/language-local.dat");
--
-- info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
-- TeXLive::TLUtils::create_language_def($tlp, #$localtlpdb,
-- "$TEXMFSYSVAR/tex/generic/config/language.def",
-- "$TEXMFLOCAL/tex/generic/config/language-local.def");
--
-- info("running mktexlsr $TEXMFSYSVAR\n");
-- system('mktexlsr', "$TEXMFSYSVAR");
--
-- info("running updmap-sys... ");
-- # system('updmap-sys', '--nohash');
-- log(`updmap-sys --nohash 2>&1`);
-- info("done\n");
--
-- info("re-running mktexlsr $TEXMFSYSVAR\n");
-- system('mktexlsr', "$TEXMFSYSVAR");
--
-- # now work through the options if specified at all
--
-- # letter instead of a4
-- if ($vars{'option_letter'}) {
-- info("Setting default paper size to letter\n");
-- if (platform() eq "hppa-hpux") {
-- # we didn't get a texlua binary for hppa-hpux, so try texconfig
-- system("texconfig", "paper", "letter");
-- } else {
-- system("texlua", "$TEXDIR/texmf/scripts/texlive/texconf.tlu", "--sys", "--noformat", "paper", "letter");
-- }
-- }
--
-- # all formats option
-- if ($vars{'option_fmt'}) {
-- info("pre-generating all format files (fmtutil-sys --all), be patient...");
-- #system('fmtutil-sys', '--all');
-- # try to capture that output
-- log(`fmtutil-sys --all 2>&1`);
-- info("done\n");
-- }
--
-- # option_links
-- if ($vars{'option_symlinks'}) {
-- # bin files
-- my @files;
-- mkdirhier $vars{'sys_bin'};
-- if (-w $vars{'sys_bin'}) {
-- info("linking binaries to $vars{'sys_bin'}\n");
-- @files = `ls $plat_bindir`;
-- chomp(@files);
-- `cd "$vars{'sys_bin'}" && rm -f @files`;
-- `ln -s "$plat_bindir/"* "$vars{'sys_bin'}"`;
-- } else {
-- info("destination of bin symlink $vars{'sys_bin'} not writable, "
-- . "no linking of bin files done.\n");
-- }
-- if ($vars{'option_doc'}) {
-- # info files
-- mkdirhier $vars{'sys_info'};
-- if (-w $vars{'sys_info'}) {
-- info("linking info pages to $vars{'sys_info'}\n");
-- @files = `ls "$TEXDIR/texmf/doc/info"`;
-- chomp(@files);
-- `cd "$vars{'sys_info'}" && rm -f @files`;
-- `ln -s "$TEXDIR/texmf/doc/info/"*info* "$vars{'sys_info'}"`;
-- } else {
-- info("destination of info symlink $vars{'sys_info'} not writable, "
-- . "no linking of info files done.\n");
-- }
-- # man files
-- mkdirhier $vars{'sys_man'};
-- if (-w $vars{'sys_man'}) {
-- info("linking man pages to $vars{'sys_man'}\n");
-- my $foo = `(cd "$TEXDIR/texmf/doc/man" && echo *)`;
-- my @mans = split ' ', $foo;
-- chomp(@mans);
-- foreach my $m (@mans) {
-- my $mandir = "$TEXDIR/texmf/doc/man/$m";
-- next unless -d $mandir;
-- mkdirhier "$vars{'sys_man'}/$m";
-- next unless -w "$vars{'sys_man'}/$m";
-- @files = `ls "$mandir"`;
-- chomp(@files);
-- `cd "$vars{'sys_man'}/$m" && rm -f @files`;
-- `ln -s "$mandir/"* "$vars{'sys_man'}/$m"`;
-- }
-- } else {
-- info("destination of man symlink $vars{'sys_man'} not writable, "
-- . "no linking of man files done.\n");
-- }
-- }
-- }
--}
--
--
--# we have to adjust the texmf.cnf file to the paths set in the configuration!
--sub do_texmf_cnf {
-- open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
-- or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
-- my @texmfcnflines = <TMF>;
-- close(TMF);
-- my @newtmf;
-- my @changedtmf;
-- # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
-- foreach my $line (@texmfcnflines) {
-- if ($line =~ m/^TEXMFLOCAL/) {
-- # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
-- # we don't have to change anything from the default
-- my $deftmlocal = dirname($vars{'TEXDIR'});
-- $deftmlocal .= "/texmf-local";
-- if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
-- push @newtmf, $line;
-- } else {
-- push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
-- push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
-- }
-- } elsif ($line =~ m/^TEXMFSYSVAR/) {
-- # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
-- # we don't have to change anything from the default
-- if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
-- push @newtmf, $line;
-- } else {
-- push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
-- push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
-- }
-- } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
-- # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
-- # we don't have to change anything from the default
-- if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
-- push @newtmf, $line;
-- } else {
-- push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
-- push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
-- }
-- } elsif ($line =~ m/^TEXMFHOME/) {
-- # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
-- # unix differently
-- push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
-- if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
-- push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
-- }
-- } elsif ($line =~ m/^OSFONTDIR/) {
-- if (win32()) {
-- push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
-- push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
-- } else {
-- push @newtmf, $line;
-- }
-- } else {
-- push @newtmf, $line;
-- }
-- }
-- my $TMF;
-- if (!$vars{'from_dvd'}) {
-- $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
-- open(TMF, $TMF) || die "open($TMF) failed: $!";
-- print TMF <<EOF;
--% This texmf.cnf file should contain only your personal changes from the
--% main texmf.cnf.
--%
--% Do NOT change values in the main file (which is in
--% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
--% by later updates.
--%
--% If you need to make changes to texmf.cnf, put your custom settings in
--% this file instead, which is YYYY/texmf.cnf. And insert *only* your
--% changed values.
--%
--EOF
--;
-- foreach (@changedtmf) { print TMF; }
-- } else {
-- $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
-- open (TMF, $TMF) || die "open($TMF) failed: $!\n";
-- foreach (@newtmf) { print TMF; }
-- }
-- close(TMF) || warn "close($TMF) failed: $!";
--}
--
- # do everything to select a scheme
- #
- sub select_scheme {
+++depend opt_sys_bin:/usr/local/bin
+++depend opt_sys_info:/usr/local/info
+++depend opt_sys_man:/usr/local/man
+++depend opt_install_docfiles:1
+++depend opt_install_srcfiles:1
+ Index: tlpkg/tlpsrc/00texlive.core.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/00texlive.core.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/00texlive.core.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/00texlive.core.tlpsrc (working copy)
+ @@ -6,7 +6,7 @@
+ longdesc and containers are not built; they exist only in the
+@@ -2061,7 +3377,7 @@
+ runpattern d tlpkg/libexec
+ Index: tlpkg/tlpsrc/bin-metafont.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/bin-metafont.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/bin-metafont.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/bin-metafont.tlpsrc (working copy)
+ @@ -1,8 +1,7 @@
+ name bin-metafont
+@@ -2075,9 +3391,31 @@
+ binpattern f bin/${ARCH}/mf
+ Index: tlpkg/tlpsrc/texlive.infra.tlpsrc
+ ===================================================================
+---- tlpkg/tlpsrc/texlive.infra.tlpsrc (revision 12171)
++--- tlpkg/tlpsrc/texlive.infra.tlpsrc (revision 12198)
+ +++ tlpkg/tlpsrc/texlive.infra.tlpsrc (working copy)
+-@@ -36,3 +36,17 @@
++@@ -3,7 +3,7 @@
++ shortdesc basic TeX Live infrastructure
++ longdesc This package contains the files needed to get the TeX Live
++ longdesc tools (notably tlmgr) running. That comprises the perl modules,
++-longdesc documentation, and the lzma binaries, plus tar and wget, sometimes.
+++longdesc documentation, and the xz binaries, plus tar and wget, sometimes.
++ longdesc These files end up in the install packages.
++ #
++ # Until TL'09, reduce installed doc to just this file (which was present
++@@ -27,12 +27,26 @@
++ runpattern f release-texlive.txt
++ #
++ binpattern f/win32 tlpkg/installer/tar.exe
++-binpattern f/win32 tlpkg/installer/lzma/lzmadec.win32.exe
++-binpattern f/win32 tlpkg/installer/lzma/lzma.exe
+++binpattern f/win32 tlpkg/installer/xz/xzdec.win32.exe
+++binpattern f/win32 tlpkg/installer/xz/xz.exe
++ binpattern f/win32 tlpkg/installer/wget/wget.exe
++-binpattern f tlpkg/installer/lzma/lzmadec.${ARCH}
++-binpattern f tlpkg/installer/lzma/lzma.${ARCH}
+++binpattern f tlpkg/installer/xz/xzdec.${ARCH}
+++binpattern f tlpkg/installer/xz/xz.${ARCH}
++ # we count on lots of platforms providing their own wget.
+ binpattern f/!i386-solaris,i386-linux,mips-irix,sparc-linux,alpha-linux,\
+ powerpc-linux,i386-freebsd,x86_64-linux \
+ tlpkg/installer/wget/wget.${ARCH}
+@@ -2097,7 +3435,7 @@
+ +postaction shortcut type=menu name="Release notes" cmd="http://tug.org/texlive/windows.html"
+ Index: tlpkg/bin/tl-update-tlcritical
+ ===================================================================
+---- tlpkg/bin/tl-update-tlcritical (revision 12171)
++--- tlpkg/bin/tl-update-tlcritical (revision 12198)
+ +++ tlpkg/bin/tl-update-tlcritical (working copy)
+ @@ -34,7 +34,7 @@
+ # update normal containers.
+@@ -2108,9 +3446,153 @@
+
+ # update Unix disaster recovery.
+ echo "$0: running tl-makeself-from-tlnet..."
++Index: tlpkg/bin/tl-fix-container-infos
++===================================================================
++--- tlpkg/bin/tl-fix-container-infos (revision 12198)
+++++ tlpkg/bin/tl-fix-container-infos (working copy)
++@@ -64,13 +64,13 @@
++ # set up the programs.
++ if ($opt_nosetup) {
++ # do a minimal setup
++- $::progs{'lzma'} = "lzma";
+++ $::progs{'xz'} = "xz";
++ $::progs{'tar'} = "tar";
++ } else {
++ # do a full setup
++ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
++ if ($ret == -1) {
++- tlwarn("$0: no lzmadec for $::_platform_, aborting.\n");
+++ tlwarn("$0: no xzdec for $::_platform_, aborting.\n");
++ exit 1;
++ }
++ if (!$ret) {
++@@ -93,7 +93,7 @@
++ $tlpdb->add_tlpobj($obj);
++ }
++ $tlpdb->save;
++- system("lzma --force -k -z $opt_location/tlpkg/texlive.tlpdb");
+++ system("xz --force -k -z $opt_location/tlpkg/texlive.tlpdb");
++
++ return 0;
++ }
++@@ -102,16 +102,16 @@
++ sub do_containers {
++ my ($obj, $dosrc, $dodoc) = @_;
++ my $fbase = "$opt_location/archive/" . $obj->name;
++- my ($a, $b) = do_size_md ("${fbase}.tar.lzma");
+++ my ($a, $b) = do_size_md ("${fbase}.tar.xz");
++ $obj->containersize($a);
++ $obj->containermd5($b);
++ if ($dosrc && $obj->srcfiles) {
++- ($a, $b) = do_size_md ("${fbase}.source.tar.lzma");
+++ ($a, $b) = do_size_md ("${fbase}.source.tar.xz");
++ $obj->srccontainersize($a);
++ $obj->srccontainermd5($b);
++ }
++ if ($dodoc && $obj->docfiles) {
++- ($a, $b) = do_size_md ("${fbase}.doc.tar.lzma");
+++ ($a, $b) = do_size_md ("${fbase}.doc.tar.xz");
++ $obj->doccontainersize($a);
++ $obj->doccontainermd5($b);
++ }
++@@ -146,7 +146,7 @@
++
++ =item B<-no-setup>
++
++-Does not try to setup the various programs, but uses I<lzma> and I<tar>
+++Does not try to setup the various programs, but uses I<xz> and I<tar>
++ from the current path.
++
++ =item B<-help>
++Index: tlpkg/bin/check-tlnet-consistency
++===================================================================
++--- tlpkg/bin/check-tlnet-consistency (revision 12198)
+++++ tlpkg/bin/check-tlnet-consistency (working copy)
++@@ -49,13 +49,13 @@
++ # set up the programs ...
++ if ($opt_nosetup) {
++ # do a minimal setup
++- $::progs{'lzma'} = "lzma";
+++ $::progs{'xz'} = "xz";
++ $::progs{'tar'} = "tar";
++ } else {
++ # do a full setup
++ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
++ if ($ret == -1) {
++- tlwarn("no binary of lzmadec for $::_platform_ detected, aborting.\n");
+++ tlwarn("no binary of xzdec for $::_platform_ detected, aborting.\n");
++ exit 1;
++ }
++ if (!$ret) {
++@@ -82,16 +82,16 @@
++ my %filedifferrors;
++ foreach my $pkg ($tlpdb->list_packages()) {
++ next if ($pkg =~ m/^00texlive/);
++- my $cont = "$opt_location/archive/$pkg.tar.lzma";
++- my $srccont = "$opt_location/archive/$pkg.source.tar.lzma";
++- my $doccont = "$opt_location/archive/$pkg.doc.tar.lzma";
+++ my $cont = "$opt_location/archive/$pkg.tar.xz";
+++ my $srccont = "$opt_location/archive/$pkg.source.tar.xz";
+++ my $doccont = "$opt_location/archive/$pkg.doc.tar.xz";
++ my $tlpdbtlpobj = $tlpdb->get_package($pkg);
++ my $dodoc = ($tlpdb->config_doc_container && $tlpdbtlpobj->docfiles);
++ my $dosrc = ($tlpdb->config_src_container && $tlpdbtlpobj->srcfiles);
++ if ($opt_filelists) {
++- system("cat $cont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - ");
+++ system("cat $cont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - ");
++ } else {
++- system("cat $cont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+++ system("cat $cont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ }
++ if (! -r "$temp/tlpkg/tlpobj/$pkg.tlpobj") {
++ push @notlpobj, $pkg;
++@@ -101,7 +101,7 @@
++ die "Cannot load tlpobj from $temp/$pkg.tlpobj: $!" unless defined($tartlpobj);
++ # get the src and doc containers unpacked and add the respective files
++ if ($dosrc) {
++- system("cat $srccont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+++ system("cat $srccont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ if (! -r "$temp/tlpkg/tlpobj/$pkg.source.tlpobj") {
++ push @missingsrccontainer, $pkg;
++ } else {
++@@ -112,7 +112,7 @@
++ }
++ }
++ if ($dodoc) {
++- system("cat $doccont | $::progs{lzmadec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
+++ system("cat $doccont | $::progs{xzdec} | $::progs{tar} -C \"$temp\" -xf - tlpkg/tlpobj");
++ if (! -r "$temp/tlpkg/tlpobj/$pkg.doc.tlpobj") {
++ push @missingdoccontainer, $pkg;
++ } else {
++@@ -268,7 +268,7 @@
++
++ =item B<-no-setup>
++
++-Does not try to setup the various programs, but uses I<lzma> and I<tar>
+++Does not try to setup the various programs, but uses I<xz> and I<tar>
++ from path.
++
++ =item B<-help>
++Index: tlpkg/bin/tlpkg-by-size
++===================================================================
++--- tlpkg/bin/tlpkg-by-size (revision 12198)
+++++ tlpkg/bin/tlpkg-by-size (working copy)
++@@ -5,9 +5,9 @@
++
++ test $# -eq 0 && set - /home/ftp/texlive/tlnet/2008/archive
++ cd "$1" || exit 1
++-for pkgtar in `ls *.tar.lzma | egrep -v '\..*\.tar\.lzma$'`; do
++- pkg=`echo $pkgtar | sed 's/\.tar\.lzma$//'`
++- size=`cat $pkg.*tar.lzma | wc -c`
+++for pkgtar in `ls *.tar.xz | egrep -v '\..*\.tar\.xz$'`; do
+++ pkg=`echo $pkgtar | sed 's/\.tar\.xz$//'`
+++ size=`cat $pkg.*tar.xz | wc -c`
++ size=`expr $size / 1024`
++ printf "%6d %s\n" $size "$pkg"
++ done | sort -nr
+ Index: tlpkg/bin/tl-update-containers
+ ===================================================================
+---- tlpkg/bin/tl-update-containers (revision 12171)
++--- tlpkg/bin/tl-update-containers (revision 12198)
+ +++ tlpkg/bin/tl-update-containers (working copy)
+ @@ -24,7 +24,7 @@
+ use File::Path;
+@@ -2121,7 +3603,18 @@
+
+ our ($mydir, $vc_id);
+ my $opt_all = 0;
+-@@ -176,12 +176,12 @@
++@@ -71,8 +71,8 @@
++ my $srcsplit = $tlpdb->config_src_container;
++ my $docsplit = $tlpdb->config_doc_container;
++ my $format = $tlpdb->config_container_format;
++- my $type = "lzma";
++- if ($format eq "lzma" || $format eq "zip") {
+++ my $type = "xz";
+++ if ($format eq "xz" || $format eq "zip") {
++ $type = $format;
++ } else {
++ tlwarn("$0: unknown container format $format in 00texlive.config; ",
++@@ -176,24 +176,24 @@
+ }
+ }
+
+@@ -2136,7 +3629,46 @@
+ $nettlpdb->add_tlpobj($tlpinstconfig);
+
+ # set up the programs.
+-@@ -392,7 +392,7 @@
++ if ($opt_nosetup) {
++ # do a minimal setup
++- $::progs{'lzma'} = "lzma";
+++ $::progs{'xz'} = "xz";
++ $::progs{'tar'} = "tar";
++ } else {
++ # do a full setup
++ my $ret = &TeXLive::TLUtils::setup_programs("$Master/tlpkg/installer");
++ if ($ret == -1) {
++- tlwarn("$0: no lzmadec for $::_platform_, aborting.\n");
+++ tlwarn("$0: no xzdec for $::_platform_, aborting.\n");
++ exit 1;
++ }
++ if (!$ret) {
++@@ -300,7 +300,7 @@
++
++ # remove old containers
++ for my $op (@removecontainers) {
++- if (-r "$opt_containerdir/$op.tar.lzma") {
+++ if (-r "$opt_containerdir/$op.tar.xz") {
++ info("$0: $op container is old, removing it\n");
++ `rm $opt_containerdir/$op.*` unless $opt_dry;
++ }
++@@ -349,13 +349,13 @@
++ # docfiles into the texlive.tlpdb, no idea why. So update should now
++ # do that.
++ $nettlpdb->save;
++- system("lzma --force -k -z $opt_location/tlpkg/texlive.tlpdb");
+++ system("xz --force -k -z $opt_location/tlpkg/texlive.tlpdb");
++
++ if (! @ARGV) {
++ # do a last check that all the containers are actually present
++ foreach my $p ($nettlpdb->list_packages) {
++ next if $p =~ /00texlive/;
++- if (! -r "$opt_containerdir/$p.tar.lzma") {
+++ if (! -r "$opt_containerdir/$p.tar.xz") {
++ tlwarn("$0: container for $p is missing, strange\n");
++ }
++ }
++@@ -392,12 +392,12 @@
+ =item B<-all|-a>
+
+ Include packages deemed critical in the update, currently
+@@ -2145,9 +3677,15 @@
+ testing before updating, so we don't do it by default.)
+
+ =item B<-no-setup>
++
++-Does not try to setup the various programs, but uses I<lzma> and I<tar>
+++Does not try to setup the various programs, but uses I<xz> and I<tar>
++ from the current path.
++
++ =item B<-help>
+ Index: tlpkg/bin/tl-makeself-from-tlnet
+ ===================================================================
+---- tlpkg/bin/tl-makeself-from-tlnet (revision 12171)
++--- tlpkg/bin/tl-makeself-from-tlnet (revision 12198)
+ +++ tlpkg/bin/tl-makeself-from-tlnet (working copy)
+ @@ -4,7 +4,7 @@
+ # This file is licensed under the GNU General Public License version 2
+@@ -2158,19 +3696,30 @@
+ # packages on Unix, similar to the .exe we create for Windows. Both are
+ # created in the nightly cron from tl-update-tlcritical.
+
+-@@ -28,9 +28,8 @@
++@@ -28,13 +28,12 @@
+ mkdir master
+ cd master
+
+ -# unpack texlive.infra and bin-texlive archives for all platforms,
+ -# except w32.
+ -for pkg in texlive.infra bin-texlive; do
++- for i in $ARCHIVE/$pkg*.tar.lzma ; do
+ +# unpack texlive.infra archives for all platforms, except w32.
+ +for pkg in texlive.infra; do
+- for i in $ARCHIVE/$pkg*.tar.lzma ; do
+++ for i in $ARCHIVE/$pkg*.tar.xz ; do
+ case "$i" in
+ *win32*) ;;
+-@@ -69,13 +68,12 @@
++- *) lzmadec <$i | tar -xf - ;;
+++ *) xzdec <$i | tar -xf - ;;
++ esac
++ done
++ done
++@@ -65,25 +64,24 @@
++ t_instdir=$ROOT/tlpkg/installer # target installer dir
++
++ # ensure these target directories exist.
++- mkdir -p $t_instdir/lzma
+++ mkdir -p $t_instdir/xz
+ mkdir -p $t_instdir/wget
+
+ # start the list of tlpobjs we will install
+@@ -2185,18 +3734,20 @@
+ tlpobjs="$tlpobjs $t_objdir/texlive.infra.$b.tlpobj"
+
+ # install the bin dir for this platform.
++ (cd bin && tar cf - $b) | (cd $ROOT/bin && tar xf -)
++
++ # copy the installer binaries.
++- cp installer/lzma/lzmadec.$b $t_instdir/lzma/
++- cp installer/lzma/lzma.$b $t_instdir/lzma/
+++ cp installer/xz/xzdec.$b $t_instdir/xz/
+++ cp installer/xz/xz.$b $t_instdir/xz/
++ test -r installer/wget/wget.$b \
++ && cp installer/wget/wget.$b $t_instdir/wget
++ done
+ Index: tlpkg/bin/tl-update-nsis
+ ===================================================================
+---- tlpkg/bin/tl-update-nsis (revision 12171)
++--- tlpkg/bin/tl-update-nsis (revision 12198)
+ +++ tlpkg/bin/tl-update-nsis (working copy)
+-@@ -1,6 +1,6 @@
+- #!/usr/bin/env perl
+- # $Id$
+--# Copyright 2008 Norbert Preining
+-+# Copyright 2008, 2009 Norbert Preining
+- # This file is licensed under the GNU General Public License version 2
+- # or any later version.
+- #
+ @@ -40,13 +40,9 @@
+ chomp (my $Master = `cd $mydir/../.. && pwd`);
+ my $tlpdb = TeXLive::TLPDB->new ("root" => $Master);
+@@ -2238,791 +3789,3 @@
+ if (defined $p) {
+ print " \"\$INSTDIR\\tlpkg\\tlpobj\\", $p->name, ".tlpobj\"";
+ }
+-Index: install-tl
+-===================================================================
+---- install-tl (revision 12171)
+-+++ install-tl (working copy)
+-@@ -82,7 +82,6 @@
+- &add_menu_shortcut
+- &remove_desktop_shortcut
+- &remove_menu_shortcut
+-- &init_unshortbat
+- &create_uninstaller
+- ));
+- }
+-@@ -121,7 +120,7 @@
+- #
+- # The following values are taken from the remote tlpdb using the
+- # $tlpdb->option_XXXXX
+--# settings (i.e., taken from tlpkg/tlpsrc/00texlive-installation.tlpsrc
+-+# settings (i.e., taken from tlpkg/tlpsrc/00texlive.installation.tlpsrc
+- #
+- # 'option_symlinks' => 0,
+- # 'sys_bin' => '/usr/local/bin',
+-@@ -380,6 +379,14 @@
+- $vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
+- }
+- $texlive_release = $tlpdb->config_release;
+-+# if the release from the remote TLPDB does not agree with the
+-+# TLConfig::ReleaseYear in the first 4 places break out here.
+-+# Why only the first four places: some optional network distributions
+-+# might use
+-+# release/2009-foobar
+-+if ($texlive_release !~ m/^$TeXLive::TLConfig::ReleaseYear/) {
+-+ die "The release version of the installation source and\nthe installation media do not agree:\nsource: $texlive_release\nmedia: $TeXLive::TLConfig::ReleaseYear\nPlease report to tex-live\@tug.org";
+-+}
+- set_platforms_supported();
+- set_texlive_default_dirs();
+- initialize_collections();
+-@@ -491,7 +498,229 @@
+- save_options_into_tlpdb();
+- do_install_packages();
+- }
+-+ # now we save every scheme that is fully covered by the stuff we have
+-+ # installed to the $localtlpdb
+-+ foreach my $s ($tlpdb->schemes) {
+-+ my $stlp = $tlpdb->get_package($s);
+-+ die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
+-+ my $incit = 1;
+-+ foreach my $d ($stlp->depends) {
+-+ if (!defined($localtlpdb->get_package($d))) {
+-+ $incit = 0;
+-+ last;
+-+ }
+-+ }
+-+ if ($incit) {
+-+ $localtlpdb->add_tlpobj($stlp);
+-+ }
+-+ }
+-+ $localtlpdb->save unless $vars{'from_dvd'};
+-+ do_postinst_stuff();
+-+}
+-+
+-+# do_postinst_stuff has to fix up the texmf tree and install some missing
+-+# files. The things to do are taken from the install-live.sh installer
+-+# of former times, and should be critically checked.
+-+sub do_postinst_stuff {
+-+ my $TEXDIR="$vars{'TEXDIR'}";
+-+ my $TEXDIRW="$vars{'TEXDIRW'}";
+-+ my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
+-+ my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
+-+ my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
+-+ my $tmv;
+-+
+-+ do_texmf_cnf() unless ($opt_portable);
+-+
+-+
+-+ # final program execution
+-+ # we have to do several things:
+-+ # - clean the environment from spurious TEXMF related variables
+-+ # - add the bin dir to the PATH
+-+ # - select perl interpreter and set the correct perllib
+-+ # - run the programs
+-+
+-+ # Step 1: Clean the environment
+-+ my @TMFVARS0=qw(VARTEXFONTS
+-+ TEXMF SYSTEXMF VARTEXFONTS
+-+ TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
+-+ PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
+-+ my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
+-+ TEXMFHOME TEXMFVAR TEXMFCONFIG);
+-+
+-+ if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
+-+ print "WARNING: environment variable TEXMFCNF is set.
+-+You should know what you are doing.
+-+We will remove that for the post install actions, but all further
+-+operations might be disturbed.\n\n";
+-+ }
+-+ foreach $tmv (@TMFVARS0) {
+-+ delete $ENV{$tmv} if (defined($ENV{$tmv}));
+-+ }
+-+ if (!$opt_portable) {
+-+ foreach $tmv (@TMFVARS1) {
+-+ delete $ENV{$tmv} if (defined($ENV{$tmv}));
+-+ }
+-+ }
+-+ $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
+-+
+-+ # Step 2: Setup the PATH, switch to the new Perl
+-+
+-+ my $pathsep=(win32)? ';' : ':';
+-+ my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
+-+ my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
+-+ my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
+-+
+-+## This won't do any good;
+-+## have to remove other tex directories in calling batchfile
+-+# if (win32) {
+-+# debug("Removing other TeXs from path\n");
+-+# my @newpt = ();
+-+# foreach my $d (split (';', $ENV{'PATH'})) {
+-+# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
+-+# }
+-+# $ENV{'PATH'} = join($pathsep, @newpt);
+-+# debug("Path after removals(s):\n $ENV{'PATH'}\n");
+-+# }
+-+
+-+ debug("Prepending $plat_bindir to PATH\n");
+-+
+-+ $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
+-+
+-+ if (win32) {
+-+ debug("Prepending $perl_bindir to PATH\n");
+-+ $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
+-+ $ENV{'PATH'} =~ s!/!\\!g;
+-+ }
+-+
+-+ debug("\nNew PATH is now:\n");
+-+ foreach my $dir (split $pathsep, $ENV{'PATH'}) {
+-+ debug(" $dir\n");
+-+ }
+-+ debug("\n");
+-+
+-+ if (win32) {
+-+ $ENV{'PERL5LIB'}="$perl_libdir";
+-+ }
+-+
+-+ #
+-+ # post install actions
+-+ #
+-+
+-+ # in case we are running from DVD we use the tlpdb from the DVD, otherwise
+-+ # the one we have locally created, for all the further actions
+-+ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+-+
+-+
+- if (win32()) {
+-+ debug "Actual environment:\n".`set`."\n\n";
+-+ debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
+-+ }
+-+
+-+ # TODO: can the following two clauses be merged?
+-+ if (win32()) {
+-+ create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+-+ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
+-+ }
+-+ # (re-)initialize batchfile for uninstalling shortcuts
+-+ if (win32() and !$opt_portable) {
+-+ mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
+-+ }
+-+
+-+ # Step 4: run the programs
+-+
+-+ if (!$opt_portable and !$vars{'from_dvd'}) {
+-+ info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
+-+ system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
+-+ }
+-+
+-+ # we have to generate the various config file. That could be done with
+-+ # texconfig generate * but Win32 does not have texconfig. But we have
+-+ # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
+-+ # the code from the various generate-*.pl scripts
+-+
+-+ info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
+-+ TeXLive::TLUtils::create_fmtutil($usedtlpdb,
+-+ "$TEXMFSYSVAR/web2c/fmtutil.cnf",
+-+ "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
+-+
+-+ mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
+-+ info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
+-+ TeXLive::TLUtils::create_updmap ($usedtlpdb,
+-+ "$TEXMFSYSCONFIG/web2c/updmap.cfg",
+-+ "$TEXMFLOCAL/web2c/updmap-local.cfg");
+-+
+-+ info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
+-+ TeXLive::TLUtils::create_language_dat($usedtlpdb,
+-+ "$TEXMFSYSVAR/tex/generic/config/language.dat",
+-+ "$TEXMFLOCAL/tex/generic/config/language-local.dat");
+-+
+-+ info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
+-+ TeXLive::TLUtils::create_language_def($usedtlpdb,
+-+ "$TEXMFSYSVAR/tex/generic/config/language.def",
+-+ "$TEXMFLOCAL/tex/generic/config/language-local.def");
+-+
+-+ info("running mktexlsr $TEXMFSYSVAR\n");
+-+ system('mktexlsr', "$TEXMFSYSVAR");
+-+
+-+ info("running updmap-sys... ");
+-+ # system('updmap-sys', '--nohash');
+-+ log(`updmap-sys --nohash 2>&1`);
+-+ info("done\n");
+-+
+-+ info("re-running mktexlsr $TEXMFSYSVAR\n");
+-+ system('mktexlsr', "$TEXMFSYSVAR");
+-+
+-+ # now work through the options if specified at all
+-+
+-+ # letter instead of a4
+-+ if ($vars{'option_letter'}) {
+-+ info("Setting default paper size to letter\n");
+-+ system("tlmgr", "paper", "letter");
+-+ }
+-+
+-+ # all formats option
+-+ if ($vars{'option_fmt'}) {
+-+ info("pre-generating all format files (fmtutil-sys --all), be patient...");
+-+ log(`fmtutil-sys --all 2>&1`);
+-+ info("done\n");
+-+ }
+-+
+-+ # TODO: Should/can this be moved into the do_system_integration part?
+-+ # it looks like it does not do anything outside the texlive tree, so it
+-+ # would be fine if we do it anyway ...
+-+ # $opt_portable: no %install but we still want xetex postinstall
+-+ &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
+-+ if $opt_portable;
+-+
+-+ # no do the system integration:
+-+ # on unix this means setting up symlinks
+-+ # on w32 this means adding to path, settting registry values
+-+ # on both, we run the TLPostActions and the postaction directives of the tlp
+-+ do_system_integration() if $vars{'option_sysint'};
+-+}
+-+
+-+sub do_system_integration {
+-+ # Run the post installation code in TLPostAction.pm
+-+ foreach my $package (sort keys %install) {
+-+ if ($install{$package} && defined($PostInstall{$package})) {
+-+ info("running post install action for $package\n");
+-+ &{$PostInstall{$package}}($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+-+ $vars{'TEXMFSYSVAR'}, $vars{'TEXMFLOCAL'});
+-+ }
+-+ }
+-+ # Run the post installation code in the postaction tlpsrc entries
+-+ my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+-+ foreach my $package (sort keys %install) {
+-+ if ($install{$package}) {
+-+ &TeXLive::TLUtils::do_postaction_code("install",
+-+ $usedtlpdb->get_package($package));
+-+ }
+-+ }
+-+ info ("finished with package specific postactions\n");
+-+
+-+ if (win32()) {
+-+ update_assocs();
+-+
+- my $path = TeXLive::TLWinGoo::get_system_env() -> {'/Path'};
+- $path =~ s/[\s\x00]+$//;
+- log("Old system path: $path\n");
+-@@ -516,29 +745,97 @@
+- # setenv_reg('TEXMFSYSVAR', $vars{'TEXMFSYSVAR'}) if $vars{'from_dvd'};
+- setenv_reg('TEXMFCNF', $vars{'TEXMFSYSVAR'}.'/web2c') if $vars{'from_dvd'};
+- broadcast_env();
+-- create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+-- $vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
+-+ } else {
+-+ $localtlpdb->add_symlinks()
+- }
+-- do_postinst_stuff();
+-- # now we save every scheme that is fully covered by the stuff we have
+-- # installed to the $localtlpdb
+-- foreach my $s ($tlpdb->schemes) {
+-- my $stlp = $tlpdb->get_package($s);
+-- die ("That cannot happen, $s not defined in tlpdb") unless defined($stlp);
+-- my $incit = 1;
+-- foreach my $d ($stlp->depends) {
+-- if (!defined($localtlpdb->get_package($d))) {
+-- $incit = 0;
+-- last;
+-+}
+-+
+-+
+-+# we have to adjust the texmf.cnf file to the paths set in the configuration!
+-+sub do_texmf_cnf {
+-+ open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
+-+ or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
+-+ my @texmfcnflines = <TMF>;
+-+ close(TMF);
+-+ my @newtmf;
+-+ my @changedtmf;
+-+ # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
+-+ foreach my $line (@texmfcnflines) {
+-+ if ($line =~ m/^TEXMFLOCAL/) {
+-+ # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
+-+ # we don't have to change anything from the default
+-+ my $deftmlocal = dirname($vars{'TEXDIR'});
+-+ $deftmlocal .= "/texmf-local";
+-+ if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
+-+ push @newtmf, $line;
+-+ } else {
+-+ push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+-+ push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+- }
+-+ } elsif ($line =~ m/^TEXMFSYSVAR/) {
+-+ # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
+-+ # we don't have to change anything from the default
+-+ if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
+-+ push @newtmf, $line;
+-+ } else {
+-+ push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+-+ push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+-+ }
+-+ } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
+-+ # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
+-+ # we don't have to change anything from the default
+-+ if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
+-+ push @newtmf, $line;
+-+ } else {
+-+ push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+-+ push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+-+ }
+-+ } elsif ($line =~ m/^TEXMFHOME/) {
+-+ # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
+-+ # unix differently
+-+ push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+-+ if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
+-+ push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+-+ }
+-+ } elsif ($line =~ m/^OSFONTDIR/) {
+-+ if (win32()) {
+-+ push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+-+ push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+-+ } else {
+-+ push @newtmf, $line;
+-+ }
+-+ } else {
+-+ push @newtmf, $line;
+- }
+-- if ($incit) {
+-- $localtlpdb->add_tlpobj($stlp);
+-- }
+- }
+-- $localtlpdb->save unless $vars{'from_dvd'};
+-+ my $TMF;
+-+ if (!$vars{'from_dvd'}) {
+-+ $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
+-+ open(TMF, $TMF) || die "open($TMF) failed: $!";
+-+ print TMF <<EOF;
+-+% This texmf.cnf file should contain only your personal changes from the
+-+% main texmf.cnf.
+-+%
+-+% Do NOT change values in the main file (which is in
+-+% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
+-+% by later updates.
+-+%
+-+% If you need to make changes to texmf.cnf, put your custom settings in
+-+% this file instead, which is YYYY/texmf.cnf. And insert *only* your
+-+% changed values.
+-+%
+-+EOF
+-+;
+-+ foreach (@changedtmf) { print TMF; }
+-+ } else {
+-+ $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
+-+ open (TMF, $TMF) || die "open($TMF) failed: $!\n";
+-+ foreach (@newtmf) { print TMF; }
+-+ }
+-+ close(TMF) || warn "close($TMF) failed: $!";
+- }
+-
+-+
+- sub dump_vars {
+- my $filename=shift;
+- my $fh;
+-@@ -744,7 +1041,10 @@
+- $vars{'option_fmt'} = $tlpdb->option_create_formats;
+- $vars{'option_letter'} = defined($tlpdb->option_paper)
+- && ($tlpdb->option_paper eq "letter" ? 1 : 0);
+-- $vars{'option_symlinks'} = $tlpdb->option_create_symlinks;
+-+ $vars{'option_sysint'} = $tlpdb->option_system_integration;
+-+ if (win32()) {
+-+ $vars{'option_sysint'} = 1;
+-+ }
+- $vars{'sys_bin'} = $tlpdb->option_sys_bin;
+- $vars{'sys_man'} = $tlpdb->option_sys_man;
+- $vars{'sys_info'} = $tlpdb->option_sys_info;
+-@@ -850,8 +1150,8 @@
+- print $fh "$key $vars{$key}\n" if $key=~/^option_doc/;
+- print $fh "$key $vars{$key}\n" if $key=~/^option_fmt/;
+- print $fh "$key $vars{$key}\n" if $key=~/^option_src/;
+-- print $fh "$key $vars{$key}\n" if $key=~/^option_symlinks/;
+-- if ($vars{'option_symlinks'}) {
+-+ print $fh "$key $vars{$key}\n" if $key=~/^option_sysint/;
+-+ if ($vars{'option_sysint'} && unix()) {
+- print $fh "sys_bin ", $vars{'sys_bin'}, "\n" if $key =~ /^sys_bin/;
+- print $fh "sys_man ", $vars{'sys_man'}, "\n" if $key =~ /^sys_man/;
+- print $fh "sys_info ", $vars{'sys_info'}, "\n" if $key =~ /^sys_info/;
+-@@ -948,7 +1248,7 @@
+- $localtlpdb->option_location($location);
+- $localtlpdb->option_paper($vars{'option_letter'} ? "letter" : "a4");
+- $localtlpdb->option_create_formats($vars{'option_fmt'} ? "1" : "0");
+-- $localtlpdb->option_create_symlinks($vars{'option_symlinks'} ? "1" : "0");
+-+ $localtlpdb->option_system_integration($vars{'option_sysint'} ? "1" : "0");
+- $localtlpdb->option_sys_bin($vars{'sys_bin'});
+- $localtlpdb->option_sys_info($vars{'sys_info'});
+- $localtlpdb->option_sys_man($vars{'sys_man'});
+-@@ -964,320 +1264,6 @@
+- $localtlpdb->save() unless $vars{'from_dvd'};
+- }
+-
+--# do_postinst_stuff has to fix up the texmf tree and install some missing
+--# files. The things to do are taken from the install-live.sh installer
+--# of former times, and should be critically checked.
+--sub do_postinst_stuff {
+-- my $TEXDIR="$vars{'TEXDIR'}";
+-- my $TEXDIRW="$vars{'TEXDIRW'}";
+-- my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
+-- my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
+-- my $TEXMFLOCAL="$vars{'TEXMFLOCAL'}";
+-- my $tmv;
+--
+-- do_texmf_cnf() unless ($opt_portable);
+--
+--
+-- # final program execution
+-- # we have to do several things:
+-- # - clean the environment from spurious TEXMF related variables
+-- # - add the bin dir to the PATH
+-- # - select perl interpreter and set the correct perllib
+-- # - run the programs
+--
+-- # Step 1: Clean the environment
+-- my @TMFVARS0=qw(VARTEXFONTS
+-- TEXMF SYSTEXMF VARTEXFONTS
+-- TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
+-- PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF);
+-- my @TMFVARS1=qw(TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
+-- TEXMFHOME TEXMFVAR TEXMFCONFIG);
+--
+-- if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'} and !$opt_portable) {
+-- print "WARNING: environment variable TEXMFCNF is set.
+--You should know what you are doing.
+--We will remove that for the post install actions, but all further
+--operations might be disturbed.\n\n";
+-- }
+-- foreach $tmv (@TMFVARS0) {
+-- delete $ENV{$tmv} if (defined($ENV{$tmv}));
+-- }
+-- if (!$opt_portable) {
+-- foreach $tmv (@TMFVARS1) {
+-- delete $ENV{$tmv} if (defined($ENV{$tmv}));
+-- }
+-- }
+-- $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'} if $vars{'from_dvd'};
+--
+-- # Step 2: Setup the PATH, switch to the new Perl
+--
+-- my $pathsep=(win32)? ';' : ':';
+-- my $plat_bindir="$TEXDIR/bin/$vars{'this_platform'}";
+-- my $perl_bindir="$TEXDIR/tlpkg/tlperl/bin";
+-- my $perl_libdir="$TEXDIR/tlpkg/tlperl/lib";
+--
+--## This won't do any good;
+--## have to remove other tex directories in calling batchfile
+--# if (win32) {
+--# debug("Removing other TeXs from path\n");
+--# my @newpt = ();
+--# foreach my $d (split (';', $ENV{'PATH'})) {
+--# push @newpt, $d unless TeXLive::TLWinGoo::is_a_texdir($d);
+--# }
+--# $ENV{'PATH'} = join($pathsep, @newpt);
+--# debug("Path after removals(s):\n $ENV{'PATH'}\n");
+--# }
+--
+-- debug("Prepending $plat_bindir to PATH\n");
+--
+-- $ENV{'PATH'}="$plat_bindir" . "$pathsep" . "$ENV{'PATH'}";
+--
+-- if (win32) {
+-- debug("Prepending $perl_bindir to PATH\n");
+-- $ENV{'PATH'}="$perl_bindir" . "$pathsep" . "$ENV{'PATH'}";
+-- $ENV{'PATH'} =~ s!/!\\!g;
+-- }
+--
+-- debug("\nNew PATH is now:\n");
+-- foreach my $dir (split $pathsep, $ENV{'PATH'}) {
+-- debug(" $dir\n");
+-- }
+-- debug("\n");
+--
+-- if (win32) {
+-- $ENV{'PERL5LIB'}="$perl_libdir";
+-- }
+--
+-- #
+-- # post install actions
+-- #
+--
+-- if (win32()) {
+-- debug "Actual environment:\n".`set`."\n\n";
+-- debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
+-- }
+--
+-- # (re-)initialize batchfile for uninstalling shortcuts
+-- if (win32() and !$opt_portable) {
+-- mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
+-- init_unshortbat($TEXDIRW);
+-- }
+--
+-- foreach my $package (sort keys %install) {
+-- if ($install{$package} && defined($PostInstall{$package})) {
+-- info("running post install action for $package\n");
+-- &{$PostInstall{$package}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL);
+-- }
+-- }
+-- # $opt_portable: no %install but we still want xetex postinstall
+-- &{$PostInstall{'xetex'}}($TEXDIR, $TEXDIRW, $TEXMFSYSVAR, $TEXMFLOCAL)
+-- if $opt_portable;
+-- update_assocs() if win32();
+--
+-- # Step 4: run the programs
+--
+-- if (!$opt_portable and !$vars{'from_dvd'}) {
+-- info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
+-- system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
+-- }
+--
+-- # we have to generate the various config file. That could be done with
+-- # texconfig generate * but Win32 does not have texconfig. But we have
+-- # $localtlpdb and this is simple code, so do it directly, i.e., duplicate
+-- # the code from the various generate-*.pl scripts
+-- info("writing fmtutil.cnf data to $TEXMFSYSVAR/web2c/fmtutil.cnf\n");
+-- my $tlp = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+-- TeXLive::TLUtils::create_fmtutil($tlp, #$localtlpdb,
+-- "$TEXMFSYSVAR/web2c/fmtutil.cnf",
+-- "$TEXMFLOCAL/web2c/fmtutil-local.cnf");
+--
+-- mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c";
+-- info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n");
+-- TeXLive::TLUtils::create_updmap ($tlp, #$localtlpdb,
+-- "$TEXMFSYSCONFIG/web2c/updmap.cfg",
+-- "$TEXMFLOCAL/web2c/updmap-local.cfg");
+--
+-- info("writing language.dat data to $TEXMFSYSVAR/tex/generic/config/language.dat\n");
+-- TeXLive::TLUtils::create_language_dat($tlp, #$localtlpdb,
+-- "$TEXMFSYSVAR/tex/generic/config/language.dat",
+-- "$TEXMFLOCAL/tex/generic/config/language-local.dat");
+--
+-- info("writing language.def data to $TEXMFSYSVAR/tex/generic/config/language.def\n");
+-- TeXLive::TLUtils::create_language_def($tlp, #$localtlpdb,
+-- "$TEXMFSYSVAR/tex/generic/config/language.def",
+-- "$TEXMFLOCAL/tex/generic/config/language-local.def");
+--
+-- info("running mktexlsr $TEXMFSYSVAR\n");
+-- system('mktexlsr', "$TEXMFSYSVAR");
+--
+-- info("running updmap-sys... ");
+-- # system('updmap-sys', '--nohash');
+-- log(`updmap-sys --nohash 2>&1`);
+-- info("done\n");
+--
+-- info("re-running mktexlsr $TEXMFSYSVAR\n");
+-- system('mktexlsr', "$TEXMFSYSVAR");
+--
+-- # now work through the options if specified at all
+--
+-- # letter instead of a4
+-- if ($vars{'option_letter'}) {
+-- info("Setting default paper size to letter\n");
+-- if (platform() eq "hppa-hpux") {
+-- # we didn't get a texlua binary for hppa-hpux, so try texconfig
+-- system("texconfig", "paper", "letter");
+-- } else {
+-- system("texlua", "$TEXDIR/texmf/scripts/texlive/texconf.tlu", "--sys", "--noformat", "paper", "letter");
+-- }
+-- }
+--
+-- # all formats option
+-- if ($vars{'option_fmt'}) {
+-- info("pre-generating all format files (fmtutil-sys --all), be patient...");
+-- #system('fmtutil-sys', '--all');
+-- # try to capture that output
+-- log(`fmtutil-sys --all 2>&1`);
+-- info("done\n");
+-- }
+--
+-- # option_links
+-- if ($vars{'option_symlinks'}) {
+-- # bin files
+-- my @files;
+-- mkdirhier $vars{'sys_bin'};
+-- if (-w $vars{'sys_bin'}) {
+-- info("linking binaries to $vars{'sys_bin'}\n");
+-- @files = `ls $plat_bindir`;
+-- chomp(@files);
+-- `cd "$vars{'sys_bin'}" && rm -f @files`;
+-- `ln -s "$plat_bindir/"* "$vars{'sys_bin'}"`;
+-- } else {
+-- info("destination of bin symlink $vars{'sys_bin'} not writable, "
+-- . "no linking of bin files done.\n");
+-- }
+-- if ($vars{'option_doc'}) {
+-- # info files
+-- mkdirhier $vars{'sys_info'};
+-- if (-w $vars{'sys_info'}) {
+-- info("linking info pages to $vars{'sys_info'}\n");
+-- @files = `ls "$TEXDIR/texmf/doc/info"`;
+-- chomp(@files);
+-- `cd "$vars{'sys_info'}" && rm -f @files`;
+-- `ln -s "$TEXDIR/texmf/doc/info/"*info* "$vars{'sys_info'}"`;
+-- } else {
+-- info("destination of info symlink $vars{'sys_info'} not writable, "
+-- . "no linking of info files done.\n");
+-- }
+-- # man files
+-- mkdirhier $vars{'sys_man'};
+-- if (-w $vars{'sys_man'}) {
+-- info("linking man pages to $vars{'sys_man'}\n");
+-- my $foo = `(cd "$TEXDIR/texmf/doc/man" && echo *)`;
+-- my @mans = split ' ', $foo;
+-- chomp(@mans);
+-- foreach my $m (@mans) {
+-- my $mandir = "$TEXDIR/texmf/doc/man/$m";
+-- next unless -d $mandir;
+-- mkdirhier "$vars{'sys_man'}/$m";
+-- next unless -w "$vars{'sys_man'}/$m";
+-- @files = `ls "$mandir"`;
+-- chomp(@files);
+-- `cd "$vars{'sys_man'}/$m" && rm -f @files`;
+-- `ln -s "$mandir/"* "$vars{'sys_man'}/$m"`;
+-- }
+-- } else {
+-- info("destination of man symlink $vars{'sys_man'} not writable, "
+-- . "no linking of man files done.\n");
+-- }
+-- }
+-- }
+--}
+--
+--
+--# we have to adjust the texmf.cnf file to the paths set in the configuration!
+--sub do_texmf_cnf {
+-- open(TMF,"<$vars{'TEXDIR'}/texmf/web2c/texmf.cnf")
+-- or die "$vars{'TEXDIR'}/texmf/web2c/texmf.cnf not found: $!";
+-- my @texmfcnflines = <TMF>;
+-- close(TMF);
+-- my @newtmf;
+-- my @changedtmf;
+-- # we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
+-- foreach my $line (@texmfcnflines) {
+-- if ($line =~ m/^TEXMFLOCAL/) {
+-- # by default TEXMFLOCAL = TEXDIR/../texmf-local, if this is the case
+-- # we don't have to change anything from the default
+-- my $deftmlocal = dirname($vars{'TEXDIR'});
+-- $deftmlocal .= "/texmf-local";
+-- if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
+-- push @newtmf, $line;
+-- } else {
+-- push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+-- push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+-- }
+-- } elsif ($line =~ m/^TEXMFSYSVAR/) {
+-- # by default TEXMFSYSVAR = TEXDIR/texmf-var, if this is the case
+-- # we don't have to change anything from the default
+-- if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
+-- push @newtmf, $line;
+-- } else {
+-- push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+-- push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+-- }
+-- } elsif ($line =~ m/^TEXMFSYSCONFIG/) {
+-- # by default TEXMFSYSCONFIG = TEXDIR/texmf-config, if this is the case
+-- # we don't have to change anything from the default
+-- if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
+-- push @newtmf, $line;
+-- } else {
+-- push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+-- push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+-- }
+-- } elsif ($line =~ m/^TEXMFHOME/) {
+-- # kpse now expands ~ to USERPROFILE, so we don't treat win32 and
+-- # unix differently
+-- push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+-- if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
+-- push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+-- }
+-- } elsif ($line =~ m/^OSFONTDIR/) {
+-- if (win32()) {
+-- push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+-- push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
+-- } else {
+-- push @newtmf, $line;
+-- }
+-- } else {
+-- push @newtmf, $line;
+-- }
+-- }
+-- my $TMF;
+-- if (!$vars{'from_dvd'}) {
+-- $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
+-- open(TMF, $TMF) || die "open($TMF) failed: $!";
+-- print TMF <<EOF;
+--% This texmf.cnf file should contain only your personal changes from the
+--% main texmf.cnf.
+--%
+--% Do NOT change values in the main file (which is in
+--% .../texlive/YYYY/texmf/web2c/texmf.cnf), as YOUR CHANGES WILL BE LOST
+--% by later updates.
+--%
+--% If you need to make changes to texmf.cnf, put your custom settings in
+--% this file instead, which is YYYY/texmf.cnf. And insert *only* your
+--% changed values.
+--%
+--EOF
+--;
+-- foreach (@changedtmf) { print TMF; }
+-- } else {
+-- $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
+-- open (TMF, $TMF) || die "open($TMF) failed: $!\n";
+-- foreach (@newtmf) { print TMF; }
+-- }
+-- close(TMF) || warn "close($TMF) failed: $!";
+--}
+--
+- # do everything to select a scheme
+- #
+- sub select_scheme {
+-Index: texmf/scripts/texlive/tlmgr.pl
+-===================================================================
+---- texmf/scripts/texlive/tlmgr.pl (revision 12171)
+-+++ texmf/scripts/texlive/tlmgr.pl (working copy)
+-@@ -557,6 +557,9 @@
+- info("running post remove action for $pkg\n");
+- &{$PostRemove{$pkg}}($localtlpdb->root);
+- }
+-+ #
+-+ # Run the post installation code in the postaction tlpsrc entries
+-+ &TeXLive::TLUtils::do_postaction_code("remove", $tlp);
+- }
+- return \%ret;
+- }
+-Index: texmf/scripts/texlive/uninstall-win32.pl
+-===================================================================
+---- texmf/scripts/texlive/uninstall-win32.pl (revision 12171)
+-+++ texmf/scripts/texlive/uninstall-win32.pl (working copy)
+-@@ -17,6 +17,11 @@
+- }
+-
+- use TeXLive::TLWinGoo;
+-+use TeXLive::TLPDB;
+-+use TeXLive::TLPOBJ;
+-+use TeXLive::TLPostActions;
+-+use TeXLive::TLConfig;
+-+use TeXLive::TLUtils;
+- use Tk;
+- use Tk::Dialog;
+-
+-@@ -39,6 +44,23 @@
+- $cancel->pack(-side => 'left' , -padx => "3m");
+-
+- sub doit {
+-+ # first we remove the whole bunch of shortcuts and menu entries
+-+ # by calling all the post action codes for the installed packages
+-+ my $localtlpdb = TeXLive::TLPDB->new ("root" => $Master);
+-+ if (!defined($localtlpdb)) {
+-+ tlwarn("Cannot load the TLPDB from $Master, are you sure there is an installation?\n");
+-+ } else {
+-+ for my $pkg ($localtlpdb->list_packages) {
+-+ if (defined($PostRemove{$pkg})) {
+-+ info("running post remove action for $pkg\n");
+-+ &{$PostRemove{$pkg}}($Master);
+-+ }
+-+ }
+-+ &TeXLive::TLUtils::do_postaction_code("remove", $pkg);
+-+ }
+-+ my $menupath = &TeXLive::TLWinGoo::menu_path();
+-+ $menupath =~ s!/!\\!g;
+-+ `rmdir /s /q "$menupath\\$TeXLive::TLConfig::WindowsMainMenuName" 2>nul`;
+- remove_texbindirs_from_path();
+- unsetenv_reg("TEXBINDIR");
+- # from_dvd case:
Index: texmf/scripts/texlive/tlmgr.pl
===================================================================
---- texmf/scripts/texlive/tlmgr.pl (revision 12171)
+--- texmf/scripts/texlive/tlmgr.pl (revision 12198)
+++ texmf/scripts/texlive/tlmgr.pl (working copy)
@@ -557,6 +557,9 @@
info("running post remove action for $pkg\n");
@@ -2986,9 +6785,118 @@ Index: texmf/scripts/texlive/tlmgr.pl
}
return \%ret;
}
+@@ -969,7 +972,7 @@
+ closedir (DIR) || warn "closedir($opts{'backupdir'}) failed: $!";
+ for my $dirent (@dirents) {
+ next if (-d $dirent);
+- next if ($dirent !~ m/^(.*)\.r([0-9]+)\.tar\.lzma$/);
++ next if ($dirent !~ m/^(.*)\.r([0-9]+)\.tar\.xz$/);
+ $backups{$1}->{$2} = 1;
+ }
+ my ($pkg, $rev) = @ARGV;
+@@ -1002,14 +1005,14 @@
+ finish(0);
+ }
+ }
+- print "Restoring $pkg, $rev from $opts{'backupdir'}/${pkg}.r${rev}.tar.lzma\n";
++ print "Restoring $pkg, $rev from $opts{'backupdir'}/${pkg}.r${rev}.tar.xz\n";
+ if (!$opts{"dry"}) {
+ init_local_db(1);
+ # first remove the package, then reinstall it
+ # this way we get rid of useless files
+ $opts{"backupdir"} = abs_path($opts{"backupdir"});
+ merge_into(\%ret, &remove_package($pkg, $localtlpdb));
+- TeXLive::TLMedia->_install_package("$opts{'backupdir'}/${pkg}.r${rev}.tar.lzma" , [] ,$localtlpdb);
++ TeXLive::TLMedia->_install_package("$opts{'backupdir'}/${pkg}.r${rev}.tar.xz" , [] ,$localtlpdb);
+ logpackage("restore: $pkg ($rev)");
+ # now we have to read the .tlpobj file and add it to the DB
+ my $tlpobj = TeXLive::TLPOBJ->new;
+@@ -1118,9 +1121,9 @@
+ } else {
+ my $tlp = $localtlpdb->get_package($pkg);
+ info("saving current status of $pkg to $opts{'backupdir'}/${pkg}.r" .
+- $tlp->revision . "tar.lzma\n");
++ $tlp->revision . "tar.xz\n");
+ if (!$opts{"dry-run"}) {
+- $tlp->make_container("lzma", $localtlpdb->root,
++ $tlp->make_container("xz", $localtlpdb->root,
+ $opts{"backupdir"}, "${pkg}.r" . $tlp->revision);
+ }
+ }
+@@ -1177,22 +1180,22 @@
+ }
+ foreach $pkg_part (@pkg_parts) {
+ if ($media eq 'CD') {
+- copy("$repo/$pkg_part.tar.lzma", "$temp");
++ copy("$repo/$pkg_part.tar.xz", "$temp");
+ } else { # net
+- TeXLive::TLUtils::download_file("$repo/$pkg_part.tar.lzma", "$temp/$pkg_part.tar.lzma");
++ TeXLive::TLUtils::download_file("$repo/$pkg_part.tar.xz", "$temp/$pkg_part.tar.xz");
+ }
+ # now we should have the file present
+- if (!-r "$temp/$pkg_part.tar.lzma") {
+- tlwarn("Couldn't get $pkg_part.tar.lzma, that is bad\n");
++ if (!-r "$temp/$pkg_part.tar.xz") {
++ tlwarn("Couldn't get $pkg_part.tar.xz, that is bad\n");
+ return 1; # abort
+ }
+- # unpack lzma archive
+- $sysret = system("$::progs{'lzmadec'} < \"$temp/$pkg_part.tar.lzma\" > \"$temp/$pkg_part.tar\"");
++ # unpack xz archive
++ $sysret = system("$::progs{'xzdec'} < \"$temp/$pkg_part.tar.xz\" > \"$temp/$pkg_part.tar\"");
+ if ($sysret) {
+- tlwarn("Couldn't unpack $pkg_part.tar.lzma\n");
++ tlwarn("Couldn't unpack $pkg_part.tar.xz\n");
+ return 1; # unpack failed? abort
+ }
+- unlink("$temp/$pkg_part.tar.lzma"); # we don't need that archive anymore
++ unlink("$temp/$pkg_part.tar.xz"); # we don't need that archive anymore
+ push @updater_args, $pkg_part, $oldrev, $newrev;
+ }
+ }
+@@ -1617,10 +1620,10 @@
+ }
+
+ if ($opts{"backup"} && !$opts{"dry-run"}) {
+- $tlp->make_container("lzma", $root,
++ $tlp->make_container("xz", $root,
+ $opts{"backupdir"}, "${pkg}.r" . $tlp->revision);
+ $unwind_package =
+- "$opts{'backupdir'}/${pkg}.r" . $tlp->revision . ".tar.lzma";
++ "$opts{'backupdir'}/${pkg}.r" . $tlp->revision . ".tar.xz";
+
+ if ($autobackup) {
+ # in case we do auto backups we remove older backups
+@@ -2494,7 +2497,7 @@
+ return if defined $localtlpdb;
+ $localtlpdb = TeXLive::TLPDB->new ("root" => $Master);
+ die("cannot find tlpdb in $Master") unless (defined($localtlpdb));
+- # setup the programs, for w32 we need the shipped wget/lzma etc, so we
++ # setup the programs, for w32 we need the shipped wget/xz etc, so we
+ # pass the location of these files to setup_programs.
+ if (!setup_programs("$Master/tlpkg/installer",
+ $localtlpdb->option_platform)) {
+@@ -2605,14 +2608,14 @@
+ my @backups;
+ for my $dirent (@dirents) {
+ next if (-d $dirent);
+- next if ($dirent !~ m/^$pkg\.r([0-9]+)\.tar\.lzma$/);
++ next if ($dirent !~ m/^$pkg\.r([0-9]+)\.tar\.xz$/);
+ push @backups, $1;
+ }
+ my $i = 1;
+ for my $e (reverse sort {$a <=> $b} @backups) {
+ if ($i > $autobackup) {
+- info ("Removing backup $backupdir/$pkg.r$e.tar.lzma\n");
+- unlink("$backupdir/$pkg.r$e.tar.lzma") unless $dryrun;
++ info ("Removing backup $backupdir/$pkg.r$e.tar.xz\n");
++ unlink("$backupdir/$pkg.r$e.tar.xz") unless $dryrun;
+ }
+ $i++;
+ }
Index: texmf/scripts/texlive/uninstall-win32.pl
===================================================================
---- texmf/scripts/texlive/uninstall-win32.pl (revision 12171)
+--- texmf/scripts/texlive/uninstall-win32.pl (revision 12198)
+++ texmf/scripts/texlive/uninstall-win32.pl (working copy)
@@ -17,6 +17,11 @@
}
diff --git a/Master/tlpkg/etc/2009.combined.patch.README b/Master/tlpkg/etc/2009.combined.patch.README
index 12fc0ae8671..ca242563ad9 100644
--- a/Master/tlpkg/etc/2009.combined.patch.README
+++ b/Master/tlpkg/etc/2009.combined.patch.README
@@ -4,6 +4,9 @@
This patch collects all the stuff that we will change for 2009. Currently
implemented are:
+- switch from lzma to xz. Extensions are now .tar.xz, programs have to
+ be put into tlpkg/installer/xz/
+
- renaming of 00texlive-installation.config -> 00texlive.installation
WARNING: that needs to be checked that the old file is removed and the
new file (in tlpsrc) is *really* added!!!!