summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-02-21 12:01:06 +0000
committerNorbert Preining <preining@logic.at>2009-02-21 12:01:06 +0000
commitc2f3a9662fbf0a257194d6dcffa69df7d37de3f7 (patch)
treeb52d4b0afbdbd7e113abcd5fb5f976a3e63209a4
parent84da58e035559e10b0e840c8bf3aed0fad2c77a3 (diff)
switch w32 to default installer mode wizard
git-svn-id: svn://tug.org/texlive/trunk@12200 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/tlpkg/etc/2009.combined.patch6034
-rw-r--r--Master/tlpkg/etc/2009.combined.patch.README3
2 files changed, 3116 insertions, 2921 deletions
diff --git a/Master/tlpkg/etc/2009.combined.patch b/Master/tlpkg/etc/2009.combined.patch
index 2c4d108be3f..a5a90621f6a 100644
--- a/Master/tlpkg/etc/2009.combined.patch
+++ b/Master/tlpkg/etc/2009.combined.patch
@@ -19,6 +19,15 @@ Index: install-tl
#
# 'option_symlinks' => 0,
# 'sys_bin' => '/usr/local/bin',
+@@ -146,7 +145,7 @@
+
+ # option handling
+ my $opt_from_dvd = "";
+-my $opt_gui = (win32() ? "perltk" : "text");
++my $opt_gui = (win32() ? "wizard" : "text");
+ my $opt_help = 0;
+ my $opt_location = "";
+ my $opt_no_gui = 0;
@@ -380,6 +379,14 @@
$vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
}
@@ -3791,2935 +3800,3013 @@ Index: tlpkg/bin/tl-update-nsis
}
Index: tlpkg/etc/2009.combined.patch
===================================================================
---- tlpkg/etc/2009.combined.patch (revision 12198)
+--- tlpkg/etc/2009.combined.patch (revision 12199)
+++ 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 @@
+@@ -19,6 +19,15 @@
+ #
+ # 'option_symlinks' => 0,
+ # 'sys_bin' => '/usr/local/bin',
++@@ -146,7 +145,7 @@
+
-+ # 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;
++ # option handling
++ my $opt_from_dvd = "";
++-my $opt_gui = (win32() ? "perltk" : "text");
+++my $opt_gui = (win32() ? "wizard" : "text");
++ my $opt_help = 0;
++ my $opt_location = "";
++ my $opt_no_gui = 0;
+ @@ -380,6 +379,14 @@
+ $vars{'doc_splitting_supported'} = $tlpdb->config_doc_container;
}
-@@ -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
--
--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 @@
- 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 @@
+@@ -3789,3148 +3798,3 @@
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);
---
---
--- # 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");
--- }
--- }
--- }
---}
---
+---- 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
--
---# 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: $!";
---}
+--Property changes on: tlpkg/tlpsrc/00texlive.installation.tlpsrc
+--___________________________________________________________________
+--Added: svn:mergeinfo
--
-- # 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");
@@ -6731,9 +6818,118 @@ Index: tlpkg/etc/2009.combined.patch
- }
- 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 ca242563ad9..901faaa0d2b 100644
--- a/Master/tlpkg/etc/2009.combined.patch.README
+++ b/Master/tlpkg/etc/2009.combined.patch.README
@@ -62,6 +62,7 @@ implemented are:
call of sub_name_a and at removal time the call of sub_name_b, both
within an eval to catch any errors.
+- on W32 the default installer mode is now the wizard
OPEN THINGS
@@ -72,5 +73,3 @@ OPEN THINGS
blablabla/2008/tlpkg/texlive.tlpdb
and read in the collection settings (not the package ones)
-- switch on win32 the default GUI to the wizard (this is in install-tl)
-