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