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