diff options
-rw-r--r-- | Master/tlpkg/etc/2009.combined.patch | 7132 | ||||
-rw-r--r-- | Master/tlpkg/etc/2009.combined.patch.README | 75 | ||||
-rw-r--r-- | Master/tlpkg/etc/2009.rework-AddFormat-lines.patch | 432 | ||||
-rw-r--r-- | Master/tlpkg/etc/allow_packages_to_be_relocatable.patch | 405 |
4 files changed, 0 insertions, 8044 deletions
diff --git a/Master/tlpkg/etc/2009.combined.patch b/Master/tlpkg/etc/2009.combined.patch deleted file mode 100644 index a5a90621f6a..00000000000 --- a/Master/tlpkg/etc/2009.combined.patch +++ /dev/null @@ -1,7132 +0,0 @@ -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', -@@ -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; - } - $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 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. - --See C<00texlive-installation.config.tlpsrc> for a description of the -+See C<00texlive.installation.tlpsrc> for a description of the - special value C<__MASTER>. - - =cut -@@ -1111,11 +1111,11 @@ - - sub _set_option_value { - my ($self,$key,$value) = @_; -- my $pkg = $self->{'tlps'}{'00texlive-installation.config'}; -+ my $pkg = $self->{'tlps'}{'00texlive.installation'}; - my @newdeps; - if (!defined($pkg)) { - $pkg = new TeXLive::TLPOBJ; -- $pkg->name("00texlive-installation.config"); -+ $pkg->name("00texlive.installation"); - $pkg->category("TLCore"); - push @newdeps, "$key:$value"; - } else { -@@ -1133,20 +1133,20 @@ - } - } - $pkg->depends(@newdeps); -- $self->{'tlps'}{'00texlive-installation.config'} = $pkg; -+ $self->{'tlps'}{'00texlive.installation'} = $pkg; - } - - sub _option_value { - my ($self,$key) = @_; -- if (defined($self->{'tlps'}{'00texlive-installation.config'})) { -- foreach my $d ($self->{'tlps'}{'00texlive-installation.config'}->depends) { -+ if (defined($self->{'tlps'}{'00texlive.installation'})) { -+ foreach my $d ($self->{'tlps'}{'00texlive.installation'}->depends) { - if ($d =~ m!^$key:(.*)$!) { - return "$1"; - } - } - return; - } -- tlwarn("00texlive-installation.config not found, cannot read option $key.\n"); -+ tlwarn("00texlive.installation not found, cannot read option $key.\n"); - return; - } - -@@ -1179,6 +1179,11 @@ - if (@_) { $self->_set_option_value("opt_create_symlinks", shift); } - return $self->_option_value("opt_create_symlinks"); - } -+sub option_system_integration { -+ my $self = shift; -+ if (@_) { $self->_set_option_value("opt_system_integration", shift); } -+ return $self->_option_value("opt_system_integration"); -+} - sub option_install_docfiles { - my $self = shift; - if (@_) { $self->_set_option_value("opt_install_docfiles", shift); } -@@ -1239,26 +1244,64 @@ - =cut - sub fmtutil_cnf_lines { - my $self = shift; -- my %fmtcnffiles; -- foreach my $p ($self->list_packages) { -- my $obj = $self->get_package ($p); -- die "$0: No TeX Live package named $p, strange" if ! $obj; -+ my @fmtlines = (); -+ -+ foreach my $pkg ($self->list_packages) { -+ my $obj = $self->get_package ($pkg); -+ die "No TeX Live package named $pkg, too strange" if ! $obj; -+ my $first = 1; - foreach my $e ($obj->executes) { -- if ($e =~ m/BuildFormat (.*)$/) { -- $fmtcnffiles{$1} = 1; -- } -- # others are ignored here -+ if ($e =~ m/AddFormat\s+(.*)\s*/) { -+ my $name; -+ my $engine; -+ my $patterns = "-"; -+ my $options = ""; -+ my $mode = ""; -+ if ($first) { -+ push @fmtlines, "# from $pkg:\n"; -+ $first = 0; -+ } -+ foreach my $p (&TeXLive::TLUtils::quotewords('\s+', 0, "$1")) { -+ # foreach my $p (split(' ', $1)) { -+ my ($a, $b); -+ if ($p =~ m/^(name|engine|mode|patterns|options)=(.*)$/) { -+ $a = $1; -+ $b = $2; -+ } else { -+ die "Unknown format directive in $pkg: $e"; -+ } -+ if ($a eq "name") { -+ die "AddFormat line needs name=something: $pkg, $e" unless $b; -+ $name = $b; next; -+ } -+ if ($a eq "engine") { -+ die "AddFormat line needs engine=something: $pkg, $e" unless $b; -+ $engine = $b; next; -+ } -+ if ($a eq "patterns") { -+ $patterns = ( $b ? $b : "-"); -+ next; -+ } -+ if ($a eq "mode") { -+ if ($b eq "disabled") { -+ $mode = "#! "; -+ } else { -+ $mode = ""; -+ } -+ next; -+ } -+ if ($a eq "options") { -+ $options = ( $b ? $b : ""); -+ next; -+ } -+ # should not be reached at all -+ die "Unknown language directive in $pkg: $e"; -+ } -+ push @fmtlines, "$mode$name $engine $patterns $options\n"; -+ } - } - } -- my @formatlines; -- foreach my $f (sort keys %fmtcnffiles) { -- open(INFILE,"<$self->{'root'}/texmf/fmtutil/format.$f.cnf") -- or tlwarn("Cannot open $self->{'root'}/texmf/fmtutil/format.$f.cnf\nThe generated fmtutil.cnf file might be incomplete.\nError: $!\n"); -- @tmp = <INFILE>; -- close(INFILE); -- push @formatlines, @tmp; -- } -- return(@formatlines); -+ return @fmtlines; - } - - =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 12198) -+++ tlpkg/TeXLive/TLConfig.pm (working copy) -@@ -11,6 +11,7 @@ - use vars qw( @ISA @EXPORT_OK @EXPORT ); - @ISA = qw(Exporter); - @EXPORT_OK = qw( -+ $ReleaseYear - @MetaCategories - @NormalCategories - @Categories -@@ -28,10 +29,15 @@ - $WinSpecialUpdatePackagesRegexp - @CriticalPackagesList - @AllowedConfigOptions -+ $WindowsMainMenuName - ); - @EXPORT = @EXPORT_OK; - } - -+# the year of our release, will be used in the location of the -+# network packges, and in menu names, and probably many other places -+$ReleaseYear = 2009; -+ - # Meta Categories do not ship files, but call only for other packages - our @MetaCategories = qw/Collection Scheme/; - our $MetaCategoriesRegexp = '(Collection|Scheme)'; -@@ -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"; -+our $TeXLiveServerPath = "systems/texlive/tlnet/$ReleaseYear"; - our $TeXLiveURL = "$TeXLiveServerURL/$TeXLiveServerPath"; - - our $WinSpecialUpdatePackagesRegexp = - '^(texlive\.infra|luatex|bin-tlperl\.win32$|bin-texlive|bin-kpathsea)'; - - --our @CriticalPackagesList = qw/texlive.infra bin-texlive/; -+our @CriticalPackagesList = qw/texlive.infra/; - - our @AllowedConfigOptions = qw/ - available_architectures -@@ -82,6 +88,8 @@ - autobackup - /; - -+our $WindowsMainMenuName = "TeX Live $ReleaseYear"; -+ - 1; - - -@@ -163,7 +171,7 @@ - - =item C<@TeXLive::TLConfig::AllowedConfigOptions> - --A list of a config options that can be set in 00texlive-installation.config. -+A list of a config options that can be set in 00texlive.installation. - - =back - -Index: tlpkg/TeXLive/TLPostActions.pm -=================================================================== ---- 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 - touch tlwarn); - use TeXLive::TLWinGoo; -+use TeXLive::TLConfig; - --my $mainmenu = "TeX Live 2008"; -+my $mainmenu = $TeXLive::TLConfig::WindowsMainMenuName; - - our %PostInstall; - our %PostRemove; - --# NOT ENABLED !!!!! --# context post install actions --sub do_install_bin_context { -- my ($texdir, $texdirw, $texmfsysvar) = @_; -- # set up texmfcnf.lua -- my $TMF = "$texdirw/texmf/web2c/texmfcnf.lua"; -- if (! -r $TMF) { -- open(TMF, ">$TMF") || die "open($TMF) failed: $!\n"; -- print TMF 'local conf = {}', "\n"; -- print TMF "conf.TEXMFCACHE = \"$texmfsysvar\"\n"; -- #print TMP "conf.CACHEINTDS = 't'\n"; -- print TMF "return conf\n"; -- close(TMF) || warn "close($TMF) failed: $!"; -- } -- # update the luatools cache -- system("luatools", "--generate"); -- # build the context formats based on luatex -- system("context", "--make", "--compile", "cont-en"); -- # update the font cache -- system("mtxrun", "--script", "fonts", "--reload"); --} --# --# That has to be sorted out and maybe changed at a later time, so do NOT --# enable that for now. --###$PostInstall{"bin-context"} = \&do_install_bin_context; -- -- --# ATM do the same for luatex as for context --sub do_install_luatex { -- do_install_bin_context(@_); --} --# --# SEE ABOVE --# $PostInstall{"luatex"} = \&do_install_luatex; -- -- - # xetex - # - sub do_install_xetex { -@@ -125,7 +90,7 @@ - } - } - foreach (@lines) { -- $_ =~ s!c:/Program Files/texlive/2008!$texdir!; -+ $_ =~ s!c:/Program Files/texlive/$TeXLive::TLConfig::ReleaseYear!$texdir!; - $_ =~ s!c:/windows/fonts!$winfontdir! if win32(); - # hack around fc-cache problem in from_dvd case: - #if (win32() and (uc($texdir) ne uc($texdirw)) and -@@ -149,136 +114,13 @@ - } - $PostInstall{"xetex"} = \&do_install_xetex; - --# --# bin-dviout.win32 --# --sub do_install_bin_dviout_win32 { -- my ($texdir, $texdirw) = @_; -- if (win32()) { -- my $texdir_bsl = conv_to_w32_path($texdir); -- add_menu_shortcut( -- $mainmenu, -- 'DVIOUT Dvi Viewer', -- $texdir.'/tlpkg/dviout/dviout.exe', # for the icon -- 'wscript', -- $texdir_bsl."\\bin\\win32\\dviout.vbs", -- '', -- ); -- } --} --sub do_remove_bin_dviout_win32 { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu, 'DVIOUT Dvi Viewer'); -- } --} --$PostInstall{'bin-dviout.win32'} = \&do_install_bin_dviout_win32; --$PostRemove{'bin-dviout.win32'} = \&do_remove_bin_dviout_win32; - -- - # --# bin-texdoc --# --sub do_install_bin_texdoc { -- my ($texdir, $texdirw) = @_; -- if (win32()) { -- #add_desktop_shortcut( -- # $texdirw, -- # 'TeXdoc GUI', -- # '', # $vars{'TEXDIR'}.'/tlpkg/doc/notes.ico', # the icon -- # $texdir.'/bin/win32/texdoctk.bat', -- # '', # no args -- # 'batgui', # any non-null value to hide command-prompt -- #); -- add_menu_shortcut( -- $mainmenu, -- 'TeXdoc GUI', -- '', # $vars{'TEXDIR'}.'/tlpkg/doc/notes.ico', # the icon -- $texdir.'/bin/win32/texdoctk.bat', -- '', # no args -- 'batgui', # any non-null value to hide command-prompt -- ); -- } --} --sub do_remove_bin_texdoc { -- my ($texdir) = @_; -- if (win32()) { -- # remove_desktop_shortcut('TeXdoc GUI'); -- remove_menu_shortcut($mainmenu, 'TeXdoc GUI'); -- } --} --$PostInstall{'bin-texdoc'} = \&do_install_bin_texdoc; --$PostRemove{'bin-texdoc'} = \&do_remove_bin_texdoc; -- --# --# bin-tlpsv.win32 --# --sub do_install_bin_tlpsv_win32 { -- my ($texdir, $texdirw) = @_; -- if (win32()) { -- add_desktop_shortcut( -- $texdirw, -- 'PS_View', -- $texdir.'/tlpkg/tlpsv/psv.exe', # icon, not prog! -- $texdir.'/bin/win32/psv.bat', -- '', # no args -- 'batgui', # any non-null value to hide command-prompt -- ); -- add_menu_shortcut( -- $mainmenu, -- 'PS_View', -- $texdir.'/tlpkg/tlpsv/psv.exe', # icon, not prog! -- $texdir.'/bin/win32/psv.bat', -- '', # no args -- 'batgui', # any non-null value to hide command-prompt -- ); -- #register_extension(".ps", "PostScript"); -- #register_extension(".eps", "PostScript"); -- ##register_file_type("PostScript", '"'.$texdir.'/bin/win32/psv.bat"'); -- #register_file_type("PostScript", -- # '"'.$texdir.'/tlpkg/tlpsv/gswxlua.exe" -g '. -- # '"'.$texdir.'/tlpkg/tlgs/bin/gsdll32.dll" -l '. -- # '"'.$texdir.'/tlpkg/tlpsv/psv.wx.lua" -p '. -- # '"'.$texdir.'/tlpkg/tlpsv/psv_view.ps" -sINPUT="%1"'); -- #update_assocs(); -- } --} --sub do_remove_bin_tlpsv_win32 { -- my ($texdir) = @_; -- if (win32()) { -- remove_desktop_shortcut('PS_View'); -- remove_menu_shortcut($mainmenu, 'PS_View'); -- #unregister_extension(".ps"); -- #unregister_extension(".eps"); -- #unregister_file_type("PostScript"); -- #update_assocs(); -- } --} --$PostRemove{'bin-tlpsv.win32'} = \&do_remove_bin_tlpsv_win32; --$PostInstall{'bin-tlpsv.win32'} = \&do_install_bin_tlpsv_win32; -- --# - # bin-texlive - # - sub do_install_bin_texlive { - my ($texdir, $texdirw) = @_; - if (win32()) { -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manager', -- '', # $texdir.'/tlpkg/doc/dummy.ico', -- $texdir.'/bin/win32/tlmgr.bat', -- 'gui', -- 'batgui', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'Release notes', -- '', -- 'http://tug.org/texlive/windows.html', -- '', -- '', -- ); - if (uc(TeXLive::TLWinGoo::win_which_dir('tex.exe')) ne - uc($texdir.'/bin/win32') or - uc(TeXLive::TLWinGoo::win_which_dir('pdftex.exe')) ne -@@ -296,7 +138,6 @@ - '', - ); - add_desktop_shortcut( -- $texdirw, - 'TeX Live Prompt', - '', - $ENV{'COMSPEC'}, -@@ -309,8 +150,6 @@ - sub do_remove_bin_texlive { - my ($texdir) = @_; - if (win32()) { -- remove_menu_shortcut($mainmenu, 'TeX Live Manager'); -- remove_menu_shortcut($mainmenu, 'Release notes'); - remove_menu_shortcut($mainmenu, 'TeX Live Prompt'); - remove_desktop_shortcut('TeX Live Prompt'); - } -@@ -318,431 +157,6 @@ - $PostInstall{'bin-texlive'} = \&do_install_bin_texlive; - $PostRemove{'bin-texlive'} = \&do_remove_bin_texlive; - --# --# texlive.infra --# ships all the readme.html/readme.XX.html files, and the index of all --# documents --sub do_install_texlive_infra { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_infra: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Toplevel Readme Index', -- '', # default pdf icon -- $texdir.'/index.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_infra { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Toplevel Readme Index'); -- } --} --$PostInstall{'texlive.infra'} = \&do_install_texlive_infra; --$PostRemove{'texlive.infra'} = \&do_remove_texlive_infra; -- --# --# texlive-en --# --sub do_install_texlive_en { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_en: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (en) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/english/texlive-en/texlive-en.html', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (en) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/english/texlive-en/texlive-en.pdf', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_en { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (en) (HTML)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (en) (PDF)'); -- } --} --$PostInstall{'texlive-en'} = \&do_install_texlive_en; --$PostRemove{'texlive-en'} = \&do_remove_texlive_en; -- --# --# texlive-cz --# --sub do_install_texlive_cz { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_cz: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (cz) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/czechslovak/texlive-cz/texlive-cz.pdf', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (cz) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/czechslovak/texlive-cz/texlive-cz.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_cz { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (cz) (PDF)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (cz) (HTML)'); -- } --} --$PostInstall{'texlive-cz'} = \&do_install_texlive_cz; --$PostRemove{'texlive-cz'} = \&do_remove_texlive_cz; -- --# --# texlive-fr --# --sub do_install_texlive_fr { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_fr: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (fr) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/french/texlive-fr/texlive-fr.pdf', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (fr) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/french/texlive-fr/texlive-fr.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_fr { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (fr) (HTML)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (fr) (PDF)'); -- } --} --$PostInstall{'texlive-fr'} = \&do_install_texlive_fr; --$PostRemove{'texlive-fr'} = \&do_remove_texlive_fr; -- --# --# texlive-de --# --sub do_install_texlive_de { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_de: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (de) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/german/texlive-de/texlive-de.pdf', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (de) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/german/texlive-de/texlive-de.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_de { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (de) (PDF)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (de) (HTML)'); -- } --} --$PostInstall{'texlive-de'} = \&do_install_texlive_de; --$PostRemove{'texlive-de'} = \&do_remove_texlive_de; -- --# --# texlive-pl --# --sub do_install_texlive_pl { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_pl: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (pl) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/polish/texlive-pl/texlive-pl.pdf', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (pl) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/polish/texlive-pl/texlive-pl.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_pl { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (pl) (PDF)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (pl) (HTML)'); -- } --} --$PostInstall{'texlive-pl'} = \&do_install_texlive_pl; --$PostRemove{'texlive-pl'} = \&do_remove_texlive_pl; -- --# --# texlive-ru --# --sub do_install_texlive_ru { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_ru: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (ru) (PDF)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/russian/texlive-ru/texlive-ru.pdf', -- '', -- '', -- ); -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (ru) (HTML)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/russian/texlive-ru/texlive-ru.html', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_ru { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (ru) (HTML)'); -- remove_menu_shortcut($mainmenu,'TeX Live Manual (ru) (PDF)'); -- } --} --$PostInstall{'texlive-ru'} = \&do_install_texlive_ru; --$PostRemove{'texlive-ru'} = \&do_remove_texlive_ru; -- --# --# texlive-zh-cn --# --sub do_install_texlive_zh_cn { -- my ($texdir) = @_; -- if (win32()) { -- if (!defined($texdir)) { -- tlwarn("do_install_texlive_zh_cn: texdir not defined, returning\n"); -- return; -- } -- add_menu_shortcut( -- $mainmenu, -- 'TeX Live Manual (zh-cn)', -- '', # default pdf icon -- $texdir.'/texmf-doc/doc/chinese/texlive-zh-cn/texlive-zh-cn.pdf', -- '', -- '', -- ); -- } --} --sub do_remove_texlive_zh_cn { -- my ($texdir) = @_; -- if (win32()) { -- remove_menu_shortcut($mainmenu,'TeX Live Manual (zh-cn)'); -- } --} --$PostInstall{'texlive-zh-cn'} = \&do_install_texlive_zh_cn; --$PostRemove{'texlive-zh-cn'} = \&do_remove_texlive_zh_cn; -- -- --# --# FROM HERE ON ONLY DISABLED POST INSTALL AND REMOVE ACTIONS!!!!!!! --# -- --# disabled --sub do_bin_xdvi { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- copy ("$TEXDIR/texmf/xdvi/XDvi", "$TEXMFSYSVAR/xdvi"); --} --# $PostInstall{"bin-xdvi"} = \&do_bin_xdvi; -- -- --# disabled --sub do_plain { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # install some copies from texmf(-dist) into texmf-var -- copy ("$TEXDIR/texmf-dist/tex/generic/config/language.def", -- "$TEXMFSYSVAR/tex/generic/config"); --} --# $PostInstall{"plain"} = \&do_plain; -- -- --# disabled --sub do_bin_dvipsk { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # those files must exist -- copy ("$TEXDIR/texmf/dvips/config/config.ps", -- "$TEXMFSYSVAR/dvips/config"); --} --# $PostInstall{"bin-dvipsk"} = \&do_bin_dvipsk; -- --# disabled --sub do_bin_dvipdfm { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # fix up dvipdfm config file to contain the right # piping command -- mkdirhier("$TEXMFSYSVAR/dvipdfm/config"); -- open(DVIPDFMCONFIGDIST, "<$TEXDIR/texmf/dvipdfm/config/config") -- or die("Cannot open $TEXDIR/texmf/dvipdfm/config/config"); -- open(DVIPDFMCONFIGINST, ">$TEXMFSYSVAR/dvipdfm/config/config") -- or die("Cannot open $TEXMFSYSVAR/dvipdfm/config/config"); -- while (<DVIPDFMCONFIGDIST>) { -- if (m/^D /) { -- print DVIPDFMCONFIGINST 'D "epstopdf --outfile=%o --nocompress %i"', "\n"; -- } else { -- print DVIPDFMCONFIGINST; -- } -- } -- close(DVIPDFMCONFIGDIST); -- close(DVIPDFMCONFIGINST); --} --# $PostInstall{"bin-dvipdfm"} = \&do_bin_dvipdfm; -- --# disabled --sub do_bin_dvipdfmx { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # dvipdfmx.cfg -- open(DVIPDFMCONFIGDIST, "<$TEXDIR/texmf/dvipdfmx/dvipdfmx.cfg") -- or die("Cannot open $TEXDIR/texmf/dvipdfmx/dvipdfmx.cfg"); -- open(DVIPDFMCONFIGINST, ">$TEXMFSYSVAR/dvipdfmx/dvipdfmx.cfg") -- or die("Cannot open $TEXMFSYSVAR/dvipdfmx/dvipdfmx.cfg"); -- while (<DVIPDFMCONFIGDIST>) { -- # current dvipdfmx.cfg already contains the right rungs incantation -- # so do just copy the file to texmf-var -- #if (m/^D /) { -- # print DVIPDFMCONFIGINST "%$_"; -- # print DVIPDFMCONFIGINST "\n%% GhostScript (TeX Live (Unix and Win32)):\n"; -- # print DVIPDFMCONFIGINST 'D "rungs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit"', "\n\n"; -- #} else { -- print DVIPDFMCONFIGINST; -- #} -- } -- close(DVIPDFMCONFIGDIST); -- close(DVIPDFMCONFIGINST); --} --# $PostInstall{"bin-dvipdfmx"} = \&do_bin_dvipdfmx; -- -- --# disabled --sub do_bin_kpathsea { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- copy ("$TEXDIR/texmf/web2c/mktex.cnf", -- "$TEXMFSYSVAR/web2c"); --} --# $PostInstall{"bin-kpathsea"} = \&do_bin_kpathsea; -- --# disabled --sub do_bin_pdftex { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # the old installer copied from CDDIR, but shouldn't this be installed -- # in ANY case since it is in bin-pdftex??? -- copy ("$TEXDIR/texmf/tex/generic/config/pdftexconfig.tex", -- "$TEXMFSYSVAR/tex/generic/config"); --} --# $PostInstall{"bin-pdftex"} = \&do_bin_pdftex; -- --# disabled --sub do_context { -- my ($TEXDIR, $TEXMFSYSVAR) = @_; -- if (!defined($TEXMFSYSVAR)) { -- $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`; -- chomp($TEXMFSYSVAR); -- } -- # old installer did this, should we do this, TOO???? -- copy ("$TEXDIR/texmf-dist/tex/context/config/cont-usr.tex", -- "$TEXMFSYSVAR/tex/context/config"); --} --# $PostInstall{"context"} = \&do_context; -- -- - 1; - - -Index: tlpkg/TeXLive/TLPSRC.pm -=================================================================== ---- tlpkg/TeXLive/TLPSRC.pm (revision 12198) -+++ tlpkg/TeXLive/TLPSRC.pm (working copy) -@@ -30,6 +30,7 @@ - srcpatterns => $params{'srcpatterns'}, - docpatterns => $params{'docpatterns'}, - binpatterns => $params{'binpatterns'}, -+ postactions => $params{'postactions'}, - executes => defined($params{'executes'}) ? $params{'executes'} : [], - depends => defined($params{'depends'}) ? $params{'depends'} : [], - }; -@@ -67,6 +68,7 @@ - my $catalogue = ""; - my (@executes, @depends); - my (@runpatterns, @docpatterns, @binpatterns, @srcpatterns); -+ my (@postactions); - my $started = 0; - my $finished = 0; - my $savedline = ""; -@@ -132,6 +134,9 @@ - } elsif ($line =~ /^depend\s+(.*)\s*$/) { - push @depends, $1 if ($1 ne ""); - next; -+ } elsif ($line =~ /^postaction\s+(.*)\s*$/) { -+ push @postactions, $1 if ($1 ne ""); -+ next; - } else { - tlwarn("$srcfile:$.: unknown tlpsrc directive, please fix: $line\n"); - } -@@ -149,6 +154,7 @@ - $self->docpatterns(@docpatterns) if @docpatterns; - $self->executes(@executes) if @executes; - $self->depends(@depends) if @depends; -+ $self->postactions(@postactions) if @postactions; - } - - -@@ -175,6 +181,11 @@ - print $fd "execute $_\n"; - } - } -+ if (defined($self->{'postactions'})) { -+ foreach (@{$self->{'postactions'}}) { -+ print $fd "postaction $_\n"; -+ } -+ } - if (defined($self->{'srcpatterns'}) && (@{$self->{'srcpatterns'}})) { - foreach (sort @{$self->{'srcpatterns'}}) { - print $fd "srcpattern $_\n"; -@@ -213,6 +224,7 @@ - $tlp->longdesc($self->{'longdesc'}) if (defined($self->{'longdesc'})); - $tlp->catalogue($self->{'catalogue'}) if (defined($self->{'catalogue'})); - $tlp->executes(@{$self->{'executes'}}) if (defined($self->{'executes'})); -+ $tlp->postactions(@{$self->{'postactions'}}) if (defined($self->{'postactions'})); - $tlp->depends(@{$self->{'depends'}}) if (defined($self->{'depends'})); - $tlp->revision(0); - my $filemax; -@@ -540,6 +552,11 @@ - if (@_) { @{ $self->{'executes'} } = @_ } - return @{ $self->{'executes'} }; - } -+sub postactions { -+ my $self = shift; -+ if (@_) { @{ $self->{'postactions'} } = @_ } -+ return @{ $self->{'postactions'} }; -+} - - format multilineformat = - longdesc ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~ -@@ -580,7 +597,7 @@ - - where I<key> can be C<name>, C<category>, C<shortdesc>, C<longdesc>, - C<catalogue>, C<runpattern>, C<srcpattern>, C<docpattern>, C<binpattern>, --C<execute>, or C<depend>. -+C<execute>, C<postaction>, or C<depend>. - - Continuation lines are supported via a trailing backslash. That is, if - the C<.tlpsrc> file contains two physical lines like this: -@@ -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> -+=item B<00texlive.installation> - - This package serves a double purpose: - -@@ -737,12 +754,49 @@ - C<lefthyphenmin>, C<righthyphenmin> (both integers), and C<synonyms> (a - comma-separated list of alias names for that hyphenation). - --=item C<execute BuildFormat> I<format> -+=item C<execute AddFormat name=I<fmt> engine=I<eng> [I<var>...]> - --build the format I<format>, as specified in the C<fmtutil.cnf> file. -+activates the format with name I<fmt> based on the engine I<eng>. The -+additional variables I<var> are: -+C<mode> which can only be equal to C<disable> in which case the format -+will only be mentioned but disabled (prefixed with C<#!>; -+C<patterns> which gives the patterns file, if not present C<-> is used; -+C<options> which gives the additional options for the C<fmtutil.cnf> file. - - =back - -+=item <postaction> -+ -+gives a free from entry of post install and removal actions to be -+executed. The difference to the C<execute> statement is that -+C<postaction> is concerned with system integration, i.e., adjusting -+things outside the installation directory, while C<execute> touches -+only things within the installation. -+ -+Currently the following C<postaction>s are understood: -+ -+=over 4 -+ -+=item C<postaction shortcut name=I<name> type=menu|desktop icon=I<path> cmd=I<cmd> args=I<args> hide=0|1> -+ -+On W32 creates a shortcut either in the main TeX Live menu or on the -+desktop. Please see the documentation of TeXLive::TLWinGoo for details -+on the parameters. -+ -+=item C<postaction filetype name=I<name> cmd=I<cmd>> -+ -+On W32 associates the file type I<name> with the command I<cmd>. -+ -+=item C<postaction fileassoc extension=I<.ext> filetype=I<name>> -+ -+On W32 declares files with the extenstion I<.ext> of file type I<name>. -+ -+=item C<postaction code I<arg>> -+ -+TODO TODO I don't know how we want to do that -+ -+=back -+ - =item C<(src|run|doc|bin)pattern> I<pattern> - - adds a pattern (next section) to the respective list of patterns. -Index: tlpkg/TeXLive/TLPOBJ.pm -=================================================================== ---- tlpkg/TeXLive/TLPOBJ.pm (revision 12198) -+++ tlpkg/TeXLive/TLPOBJ.pm (working copy) -@@ -29,6 +29,7 @@ - docfiles => defined($params{'docfiles'}) ? $params{'docfiles'} : [], - docsize => $params{'docsize'}, - executes => defined($params{'executes'}) ? $params{'executes'} : [], -+ postactions => defined($params{'postactions'}) ? $params{'postactions'} : [], - # note that binfiles is a HASH with keys of $arch! - binfiles => defined($params{'binfiles'}) ? $params{'binfiles'} : {}, - binsize => defined($params{'binsize'}) ? $params{'binsize'} : {}, -@@ -92,6 +93,7 @@ - ($lastcmd eq "docfiles") || - ($lastcmd eq "srcfiles") || - ($lastcmd eq "executes") || -+ ($lastcmd eq "postaction") || - ($lastcmd eq "depend") ) { - $line =~ s/^ /${lastcmd}continued /; - } else { -@@ -216,6 +218,10 @@ - push @{$self->{'executes'}}, "$2" unless "$2" eq ""; - $lastcmd = "execute"; - next; -+ } elsif ($line =~ /^postaction(continued)?\s*(.*)\s*/o) { -+ push @{$self->{'postactions'}}, "$2" unless "$2" eq ""; -+ $lastcmd = "postaction"; -+ next; - } elsif ($line =~ /^depend(continued)?\s*(.*)\s*/o) { - push @{$self->{'depends'}}, "$2" unless "$2" eq ""; - $lastcmd = "depend"; -@@ -316,6 +322,11 @@ - print $fd "execute $_\n"; - } - } -+ if (defined($self->{'postactions'})) { -+ foreach (@{$self->{'postactions'}}) { -+ print $fd "postaction $_\n"; -+ } -+ } - if (defined($self->{'containersize'})) { - print $fd "containersize $self->{'containersize'}\n"; - } -@@ -388,6 +399,11 @@ - print $fd "execute $_\n"; - } - } -+ if (defined($self->{'postactions'})) { -+ foreach (@{$self->{'postactions'}}) { -+ print $fd "postaction $_\n"; -+ } -+ } - 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"; - } -- } elsif ($e =~ m/^BuildFormat\s+([^\s]+)\s*$/) { -+ } elsif ($e =~ m/^AddFormat\s+([^\s]+)\s*$/) { - push @formats, $1; - } elsif ($e =~ m/^AddHyphen\s+(.*)\s*$/) { - push @dats, $1; -@@ -1026,6 +1042,11 @@ - if (@_) { $self->{'executes'} = [ @_ ] } - return @{ $self->{'executes'} }; - } -+sub postactions { -+ my $self = shift; -+ if (@_) { $self->{'postactions'} = [ @_ ] } -+ return @{ $self->{'postactions'} }; -+} - 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 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); - } -+ # -+ # Run the post installation code in the postaction tlpsrc entries -+ &TeXLive::TLUtils::do_postaction_code("install", $tlpobj); - } - 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 12198) -+++ tlpkg/TeXLive/TLUtils.pm (working copy) -@@ -56,6 +56,7 @@ - TeXLive::TLUtils::create_language_def($tlpdb,$dest,$localconf); - TeXLive::TLUtils::install_packages($from_tlpdb,$media,$to_tlpdb,$what,$opt_src, $opt_doc)>); - TeXLive::TLUtils::install_package($what, $filelistref, $target, $platform); -+ TeXLive::TLUtils::do_postaction_code($how, $tlpobj); - - =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; - } - -+=item C<do_postaction_code($how, $tlpobj)> - -+Evaluates the C<postaction> code in the C<$tlpobj> -+MISSING DOCUMENTATION TODO TODO -+ -+Returns 1 on success, and 0 on failure. -+ -+=cut -+ -+sub do_postaction_code { -+ my ($how, $tlpobj) = @_; -+ my $ret = 1; -+ if (!defined($tlpobj)) { -+ tlwarn("do_postaction_code: didn't get a tlpobj\n"); -+ return 0; -+ } -+ debug("running postaction $how code for " . $tlpobj->name . "\n") -+ if $tlpobj->postactions; -+ for my $pa ($tlpobj->postactions) { -+ if ($pa =~ m/^\s*shortcut\s+(.*)\s*$/) { -+ $ret &&= _do_postaction_shortcut($how, $tlpobj, $1); -+ } elsif ($pa =~ m/\s*filetype\s+(.*)\s*$/) { -+ $ret &&= _do_postaction_filetype($how, $tlpobj, $1); -+ } elsif ($pa =~ m/\s*fileassoc\s+(.*)\s*$/) { -+ $ret &&= _do_postaction_fileassoc($how, $tlpobj, $1); -+ } elsif ($pa =~ m/\s*code\s+(.*)\s*$/) { -+ $ret &&= _do_postaction_code($how, $tlpobj, $1); -+ } else { -+ tlwarn("do_postaction_code: don't know how to do $pa\n"); -+ $ret = 0; -+ } -+ } -+ # nothing to do -+ return $ret; -+} -+ -+sub _do_postaction_shortcut { -+ my ($how, $tlpobj, $pa) = @_; -+ return 1 unless win32(); -+ my @words = quotewords('\s+', 0, "$pa"); -+ my $type; -+ my $icon = ''; -+ my $cmd = ''; -+ my $args = ''; -+ my $name; -+ my $hide = '0'; -+ while (@words) { -+ $_ = shift @words; -+ if (/^type=(.*)$/) { -+ $type = $1; -+ if (($type ne "menu") && ($type ne "desktop")) { -+ tlwarn("type of shortcut postaction $type is unknown (menu, desktop)\n"); -+ return 0; -+ } -+ } elsif (/^name=(.*)$/) { -+ $name = $1; -+ } elsif (/^icon=(.*)$/) { -+ $icon = $1; -+ } elsif (/^cmd=(.*)$/) { -+ $cmd = $1; -+ } elsif (/^args=(.*)$/) { -+ $args = $1; -+ } elsif (/^hide=(.*)$/) { -+ $hide = $1; -+ if (($hide ne "0") && ($hide ne "1")) { -+ tlwarn("hide of shortcut postaction $hide is unknown (0, 1)\n"); -+ return 0; -+ } -+ } else { -+ tlwarn("Unknown tag for postaction shortcut $pa: $_\n"); -+ return 0; -+ } -+ } -+ if ($how eq "install") { -+ my $texdir = `kpsewhich -var-value=SELFAUTOPARENT`; -+ chomp($texdir); -+ my $texdir_bsl = conv_to_w32_path($texdir); -+ $icon =~ s!^TEXDIR/!$texdir/!; -+ $args =~ s!^TEXDIR/!$texdir/!; -+ $args = conv_to_w32_path($args); -+ if ($type eq "menu") { -+ add_menu_shortcut($TeXLive::TLConfig::WindowsMainMenuName, -+ $name, $icon, $cmd, $args, $hide); -+ } elsif ($type eq "desktop") { -+ add_desktop_shortcut($name, $icon, $cmd, $args, $hide); -+ } else { -+ tlwarn("Unknown type of shortcut: $type\n"); -+ return 0; -+ } -+ } elsif ($how eq "remove") { -+ if ($type eq "menu") { -+ remove_menu_shortcut($TeXLive::TLConfig::WindowsMainMenuName, $name); -+ } elsif ($type eq "desktop") { -+ remove_desktop_shortcut($name); -+ } else { -+ tlwarn("Unknown type of shortcut: $type\n"); -+ return 0; -+ } -+ } else { -+ tlwarn("Unknown mode $how\n"); -+ return 0; -+ } -+ return 1; -+} -+ - =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 12198) -+++ tlpkg/TeXLive/TLWinGoo.pm (working copy) -@@ -58,7 +58,6 @@ - $prog, $args, $batgui); - TeXLive::TLWinGoo::add_menu_shortcut($place, $name, $icon, - $prog, $args, $batgui); -- TeXLive::TLWinGoo::init_unshortbat($texdir); - TeXLive::TLWinGoo::remove_desktop_shortcut($name); - TeXLive::TLWinGoo::remove_menu_shortcut($place, $name); - -@@ -104,7 +103,6 @@ - &add_menu_shortcut - &remove_desktop_shortcut - &remove_menu_shortcut -- &init_unshortbat - &create_uninstaller - &unregister_uninstaller - ); -@@ -862,8 +860,7 @@ - - =pod - --=item C<add_desktop_shortcut($texdir, $name, $icon, -- $prog, $args, $batgui)> -+=item C<add_desktop_shortcut($name, $icon, $prog, $args, $batgui)> - - Add a desktop shortcut, with name $name and icon $icon, pointing to - program $prog with parameters $args (a string). Use a non-null -@@ -871,14 +868,10 @@ - batchfile. Then the inevitable command prompt will be hidden - rightaway, leaving only the gui program visible. - --The parameter $texdir is merely used to locate the batchfile --unshort.bat for uninstalling desktop shortcuts, which needs to be --updated. -- - =cut - - sub add_desktop_shortcut { -- my ($texdir, $name, $icon, $prog, $args, $batgui) = @_; -+ my ($name, $icon, $prog, $args, $batgui) = @_; - - # create shortcut - my ($shc, $shpath, $shfile); -@@ -889,15 +882,6 @@ - $shc->{'ShowCmd'} = $batgui ? SW_SHOWMINNOACTIVE : SW_SHOWNORMAL; - $shfile = desktop_path().'/'.$name.'.lnk'; - $shc->Save($shfile); -- -- # update batchfile for uninstalling shortcuts -- if (open UNSHORT, ">>$texdir/tlpkg/installer/unshort.bat") { -- $shfile =~ s!/!\\!g; -- print UNSHORT 'del "'.$shfile."\" 2>nul\n"; -- close UNSHORT; -- } else { -- warn "Cannot open $texdir/tlpkg/installer/unshort.bat for appending: $!"; -- } - } - - =pod -@@ -937,39 +921,16 @@ - - =pod - --=item C<init_unshortbat($texdir)> -- --Reinitialize unshort.bat, the shortcuts uninstaller. -- --=cut -- --sub init_unshortbat { -- my $texdirw = shift; -- my $menupath = menu_path(); -- $menupath =~ s!/!\\!g; -- -- # batchfile for uninstalling shortcuts -- if (open UNSHORT, ">$texdirw/tlpkg/installer/unshort.bat") { -- print UNSHORT 'rmdir /s /q "'.$menupath."\\TeX Live 2008\" 2>nul\n"; -- close UNSHORT; -- } else { -- warn "Cannot create $texdirw/tlpkg/installer/unshort.bat: $!"; -- } --} -- --=pod -- - =item C<remove_desktop_shortcut($name)> - --For uninstallation of an individual package. We leave unshort.bat --alone because redundant entries are no big deal. -+For uninstallation of an individual package. - - =cut - - sub remove_desktop_shortcut { - my $name = shift; - unlink desktop_path().'/'.$name.'.lnk'; --} -+} - - =pod - -@@ -1040,7 +1001,6 @@ - set PERL5LIB= - \"$td\\tlpkg\\tlperl\\bin\\perl.exe\" \"$td\\texmf\\scripts\\texlive\\uninstall-win32.pl\" - if errorlevel 1 exit --call \"$tdw\\tlpkg\\installer\\unshort.bat\" - copy \"$tdw\\tlpkg\\installer\\uninst2.bat\" \"\%TEMP\%\" - rem pause - \"\%TEMP\%\\uninst2.bat\" -Index: tlpkg/installer/install-menu-perltk.pl -=================================================================== ---- tlpkg/installer/install-menu-perltk.pl (revision 12198) -+++ tlpkg/installer/install-menu-perltk.pl (working copy) -@@ -62,7 +62,6 @@ - my $texmfhometext; - my $texdirtext; - my $langcoltext; --my $symlinktext; - my $optletterstate; - my $optfmtstate; - my $optsrcstate; -@@ -70,6 +69,7 @@ - my $letteryesno = ( $vars{'option_letter'} ? $text{'yes'} : $text{'no'} ); - my $fmtyesno = ( $vars{'option_fmt'} ? $text{'yes'} : $text{'no'} ); - my $srcyesno = ( $vars{'option_src'} ? $text{'yes'} : $text{'no'} ); -+my $sysintyesno = ( $vars{'option_sysint'} ? $text{'yes'} : $text{'no'} ); - my $docyesno = ( $vars{'option_doc'} ? $text{'yes'} : $text{'no'} ); - - $::run_menu = \&run_menu_perltk; -@@ -258,15 +258,13 @@ - $fr->Button(-text => $text{'toggle'}, -command => sub { toggle_and_set_opt_variable(\$vars{'option_src'}, \$srcyesno); })->grid(-row => $row, -column => 3, -sticky => "ew", -padx => "2m"); - } - -+ $row++; -+ $fr->Label(-text => $labels{'sysint'}, -anchor => 'w')->grid(-row => $row, -column => 1, -sticky => 'w'); -+ $fr->Label(-anchor => 'w', -textvariable => \$sysintyesno)->grid(-row => $row, -column => 2, -padx => "2m"); - if (unix()) { -- $row++; -- # Symlinks -- $fr->Label(-text => "------- $text{'sysint'} -------")->grid(-row => $row, -column => 1,-columnspan => 3); -- -- $row++; -- $fr->Label(-text => $labels{'symlink'}, -anchor => 'w')->grid(-row => $row, -column => 1, -sticky => 'w'); -- $symlinktext = $fr->Label(-anchor => 'w')->grid(-row => $row, -column => 2, -padx => "2m"); - $fr->Button(-text => $text{'change'}, -command => sub { menu_select_symlink(); })->grid(-row => $row, -column => 3, -sticky => "ew", -padx => "2m"); -+ } else { -+ $fr->Button(-text => $text{'toggle'}, -command => sub { toggle_and_set_opt_variable(\$vars{'option_sysint'}, \$sysintyesno); })->grid(-row => $row, -column => 3, -sticky => "ew", -padx => "2m"); - } - - # install/cancel buttons -@@ -596,7 +594,7 @@ - - sub menu_select_symlink { - our ($lbin,$lman,$linfo); -- our $osym = $vars{'option_symlinks'}; -+ our $osym = $vars{'option_sysint'}; - our ($binlab,$binb,$manlab,$manb,$infolab,$infob); - sub set_unset_buttons { - $lbin = ($osym ? $vars{'sys_bin'} : ''); -@@ -630,8 +628,8 @@ - $vars{'sys_info'} = $linfo; - $vars{'sys_man'} = $lman; - } -- $vars{'option_symlinks'} = $osym; -- menu_update_texts(); -+ $vars{'option_sysint'} = $osym; -+ toggle_and_set_opt_variable(\$vars{'option_sysint'}, \$sysintyesno); - } - my $sw = $mainwindow->Toplevel(-title => $labels{'symlink'}); - $sw->transient($mainwindow); -@@ -695,10 +693,6 @@ - $w->configure(-text => $t, @_); - } - --sub menu_set_symlink_text { -- menu_set_text($symlinktext, (($vars{'option_symlinks'})?$text{'yes'}:$text{'no'})); --} -- - sub menu_set_schemebutton_text { - menu_set_text($schemebutton, "$vars{'selected_scheme'}"); - } -@@ -762,7 +756,6 @@ - $optfmtstate = ($vars{'option_fmt'} ? $text{'yes'} : $text{'no'}); - $optsrcstate = ($vars{'option_src'} ? $text{'yes'} : $text{'no'}); - $optdocstate = ($vars{'option_doc'} ? $text{'yes'} : $text{'no'}); -- if (unix()) { menu_set_symlink_text; }; - } - - sub callback_select_scheme { -Index: tlpkg/installer/install-translations.pl -=================================================================== ---- tlpkg/installer/install-translations.pl (revision 12198) -+++ tlpkg/installer/install-translations.pl (working copy) -@@ -52,7 +52,7 @@ - } - - --our %text = (title => 'TeX Live 2008 Installation', -+our %text = (title => 'TeX Live 2009 Installation', - basicinfo => 'Basic Information', - custom => 'Further Customization', - dirsetup => "Directory setup", -@@ -93,7 +93,7 @@ - welcome => 'Welcome to TeX Live!', - next => 'Next >', - prev => '< Back', -- wizhello => "Welcome to the installation of TeX Live 2008\n" -+ wizhello => "Welcome to the installation of TeX Live 2009\n" - . "http://tug.org/texlive\n\n" - . "This wizard will guide you through the installation.\n\n" - . "For an advanced, customizable installation, please consult\n" -@@ -101,7 +101,7 @@ - destfolder => 'Destination folder:', - advcustom => 'Advanced customization', - pathinfo => "The destination folder will contain the installation.\nIt is strongly recommended to keep the year as the last component.", -- readyinst => "We are ready to install TeX Live 2008.\nThe following settings will be used.\nIf you want to change something please go back,\notherwise press the \"Install\" button.", -+ readyinst => "We are ready to install TeX Live 2009.\nThe following settings will be used.\nIf you want to change something please go back,\notherwise press the \"Install\" button.", - instshort => 'Install', - wizard => 'Go to Wizard', - ); -@@ -121,6 +121,7 @@ - optdoc => 'Install font/macro doc tree', - optsrc => 'Install font/macro source tree', - symlink => 'Create symlinks in system directories', -+ sysint => 'System integration', - ); - - if (($::lang ne "en") && ($::lang ne "C")) { -Index: tlpkg/installer/install-menu-text.pl -=================================================================== ---- tlpkg/installer/install-menu-text.pl (revision 12198) -+++ tlpkg/installer/install-menu-text.pl (working copy) -@@ -675,7 +675,7 @@ - - - sub options_menu { -- my $b_symlinks=button($vars{'option_symlinks'}); -+ my $b_sysint=button($vars{'option_sysint'}); - my $b_doc=button($vars{'option_doc'}); - my $b_src=button($vars{'option_src'}); - my $b_fmt=button($vars{'option_fmt'}); -@@ -685,9 +685,9 @@ - my $sys_man=$vars{'sys_man'}; - my $sys_info=$vars{'sys_info'}; - -- my $t_sys_bin=($vars{'option_symlinks'})? $vars{'sys_bin'}:''; -- my $t_sys_man=($vars{'option_symlinks'})? $vars{'sys_man'}:''; -- my $t_sys_info=($vars{'option_symlinks'})? $vars{'sys_info'}:''; -+ my $t_sys_bin=($vars{'option_sysint'})? $vars{'sys_bin'}:''; -+ my $t_sys_man=($vars{'option_sysint'})? $vars{'sys_man'}:''; -+ my $t_sys_info=($vars{'option_sysint'})? $vars{'sys_info'}:''; - - my %command=( - 'self' => \&options_menu, -@@ -709,14 +709,21 @@ - if ($vars{'src_splitting_supported'} and !$vars{'from_dvd'}) { - print " <S> install font/macro source tree: $b_src\n"; - } -- if (unix() && !$vars{'from_dvd'}) { -- print <<"EOF"; -- <L> create symlinks in standard directories: $b_symlinks -+ if (!$vars{'from_dvd'}) { -+ if (unix()) { -+ print <<"EOF"; -+ <L> create symlinks in standard directories: $b_sysint - binaries to: $t_sys_bin - manpages to: $t_sys_man - info to: $t_sys_info - EOF - ; -+ } else { -+ print <<"EOF"; -+ <L> do system integration: $b_sysint -+EOF -+; -+ } - } - other_options qw(R Q diskspace); - my $answer = prompt 'Enter command'; -@@ -726,8 +733,8 @@ - my $home = getenv('HOME'); - $home = getenv('USERPROFILE') if (win32()); - $home ||= '~'; -- toggle 'option_symlinks'; -- if ($vars{'option_symlinks'}) { -+ toggle 'option_sysint'; -+ if ($vars{'option_sysint'}) { - print "New value for binary directory [$sys_bin]: "; - chomp($answer=<STDIN>); - $vars{'sys_bin'} = "$answer" if (length $answer); -@@ -751,8 +758,15 @@ - } - return $command{'self'}; - } -+ } else { -+ if (("\u$answer" eq 'L') and !$vars{'from_dvd'}) { -+ my $home = getenv('HOME'); -+ $home = getenv('USERPROFILE') if (win32()); -+ $home ||= '~'; -+ toggle 'option_sysint'; -+ return $command{'self'}; -+ } - } -- - if ("\u$answer" eq 'P') { - toggle 'option_letter'; - return $command{'self'}; -@@ -802,7 +816,7 @@ - sub main_menu { - my $this_platform=platform_desc($vars{'this_platform'}); - -- my $b_symlinks=button($vars{'option_symlinks'}); -+ my $b_sysint=button($vars{'option_sysint'}); - my $b_doc=button($vars{'option_doc'}); - my $b_src=button($vars{'option_src'}); - my $b_fmt=button($vars{'option_fmt'}); -@@ -913,9 +927,7 @@ - if ($vars{'src_splitting_supported'}) { - print " $b_src install macro/font source tree\n"; - } -- if (unix()) { -- print " $b_symlinks create symlinks in standard directories\n"; -- } -+ print " $b_sysint system integration\n"; - } - - if ($vars{'from_dvd'}) { -Index: tlpkg/tlpsrc/bin-tex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-tex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-tex.tlpsrc (working copy) -@@ -1,7 +1,6 @@ - name bin-tex - category TLCore - depend bin-kpathsea --execute BuildFormat tex --runpattern f texmf/fmtutil/format.tex.cnf -+execute AddFormat name=tex engine=tex options="tex.ini" - docpattern f texmf/doc/man/man1/tex.* - binpattern f bin/${ARCH}/tex -Index: tlpkg/tlpsrc/bin-mex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-mex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-mex.tlpsrc (working copy) -@@ -2,10 +2,9 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat mex --execute BuildFormat utf8mex --runpattern f texmf/fmtutil/format.mex.cnf --runpattern f texmf/fmtutil/format.utf8mex.cnf -+execute AddFormat name=mex engine=pdftex patterns=mexconf.tex options="-translate-file=cp227.tcx *mex.ini" -+execute AddFormat name=pdfmex engine=pdftex patterns=mexconf.tex options="-translate-file=cp227.tcx *pdfmex.ini" -+execute AddFormat name=utf8mex engine=pdftex patterns=mexconf.tex options="-enc *utf8mex.ini" - binpattern f bin/${ARCH}/mex - binpattern f bin/${ARCH}/pdfmex - binpattern f bin/${ARCH}/utf8mex -Index: tlpkg/tlpsrc/texlive-de.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-de.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-de.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-de - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (de) (PDF)" cmd=TEXDIR/texmf-doc/doc/german/texlive-de/texlive-de.pdf -+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 12198) -+++ tlpkg/tlpsrc/00texlive.installer.tlpsrc (working copy) -@@ -7,7 +7,7 @@ - longdesc used *except* to build the installer archives, so it's ok. - longdesc - longdesc For information on the 00texlive prefix see --longdesc 00texlive-installation.config(.tlpsrc) -+longdesc 00texlive.installation(.tlpsrc) - category TLCore - runpattern f install-tl - runpattern f tlpkg/installer/install-tl.html -@@ -16,8 +16,8 @@ - #runpattern d tlpkg/TeXLive - runpattern d tlpkg/installer - # --# but no lzma binaries --runpattern !d tlpkg/installer/lzma -+# but no xz binaries -+runpattern !d tlpkg/installer/xz - runpattern !d tlpkg/installer/wget - # - # and no perl lib -@@ -35,8 +35,8 @@ - # shouldn't be in the installer packages - # binpattern f/win32 tl-portable.bat - binpattern f/win32 install-tl.bat.manifest --binpattern f/!win32 tlpkg/installer/lzma/lzmadec.${ARCH} -+binpattern f/!win32 tlpkg/installer/xz/xzdec.${ARCH} - binpattern f/!win32,i386-solaris,i386-linux,mips-irix,sparc-linux,alpha-linux,powerpc-linux,i386-freebsd,x86_64-linux tlpkg/installer/wget/wget.${ARCH} - binpattern f/win32 tlpkg/installer/wget/wget.exe - # why the above does not catch that one I don't know ... so add it --binpattern f/win32 tlpkg/installer/lzma/lzmadec.win32.exe -+binpattern f/win32 tlpkg/installer/xz/xzdec.win32.exe -Index: tlpkg/tlpsrc/pdftex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/pdftex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/pdftex.tlpsrc (working copy) -@@ -1,8 +1,9 @@ - name pdftex - category TLCore - depend bin-kpathsea --execute BuildFormat pdftex --runpattern f texmf/fmtutil/format.pdftex.cnf -+execute AddFormat name=etex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *etex.ini" -+execute AddFormat name=pdfetex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" -+execute AddFormat name=pdftex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" - runpattern f texmf/fonts/map/pdftex/updmap/* - runpattern f texmf/tex/generic/config/pdftex*.tex - runpattern f texmf/tex/generic/pdftex/* -Index: tlpkg/tlpsrc/bin-csplain.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-csplain.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-csplain.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-csplain - category TLCore - depend bin-tex --execute BuildFormat csplain --runpattern f texmf/fmtutil/format.csplain.cnf -+execute AddFormat name=csplain engine=pdftex options="-etex -translate-file=cp227.tcx csplain.ini" -+execute AddFormat name=pdfcsplain engine=pdftex options="-etex -translate-file=cp227.tcx csplain.ini" - binpattern f bin/${ARCH}/csplain - binpattern f bin/${ARCH}/pdfcsplain -Index: tlpkg/tlpsrc/bin-metapost.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-metapost.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-metapost.tlpsrc (working copy) -@@ -1,8 +1,8 @@ - name bin-metapost - category TLCore - depend bin-kpathsea --execute BuildFormat metapost --runpattern f texmf/fmtutil/format.metapost.cnf -+execute AddFormat name=mpost engine=mpost options="-translate-file=cp227.tcx mpost.mp" -+execute AddFormat name=mfplain engine=mpost options="-translate-file=cp227.tcx mfplain.ini" - docpattern f texmf/doc/man/man1/dmp.* - docpattern f texmf/doc/man/man1/dvitomp.* - docpattern f texmf/doc/man/man1/makempx.* -Index: tlpkg/tlpsrc/00texlive.config.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/00texlive.config.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/00texlive.config.tlpsrc (working copy) -@@ -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 release/2008 -+depend container_format/xz -+depend release/2009 -Index: tlpkg/tlpsrc/texlive-fr.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-fr.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-fr.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-fr - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (fr) (PDF)" cmd=TEXDIR/texmf-doc/doc/french/texlive-fr/texlive-fr.pdf -+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 12198) -+++ tlpkg/tlpsrc/texlive-zh-cn.tlpsrc (working copy) -@@ -1,2 +1,3 @@ - name texlive-zh-cn - category Documentation -+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 12198) -+++ tlpkg/tlpsrc/bin-dviout.win32.tlpsrc (working copy) -@@ -2,3 +2,4 @@ - category TLCore - binpattern d/win32 tlpkg/dviout - binpattern f bin/win32/dviout.vbs -+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 12198) -+++ tlpkg/tlpsrc/bin-context.tlpsrc (working copy) -@@ -1,9 +1,15 @@ - name bin-context - category TLCore - depend pdftex --execute BuildFormat context -+execute AddFormat name=cont-en engine=pdftex patterns=cont-usr.tex options="-8bit *cont-en.ini" -+execute AddFormat name=cont-cz mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-cz.ini" -+execute AddFormat name=cont-de mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-de.ini" -+execute AddFormat name=cont-nl mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-nl.ini" -+execute AddFormat name=cont-uk mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-uk.ini" -+execute AddFormat name=cont-en engine=xetex patterns=cont-usr.tex options="-8bit *cont-en.ini" -+execute AddFormat name=mptopdf engine=pdftex options="-translate-file=cp227.tcx mptopdf.tex" -+execute AddFormat name=metafun engine=mpost options="-translate-file=cp227.tcx metafun.mp" - runpattern f texmf-dist/tex/mptopdf/config/mptopdf.ini --runpattern f texmf/fmtutil/format.context.cnf - docpattern f texmf/doc/man/man1/ctxtools.* - docpattern f texmf/doc/man/man1/makempy.* - docpattern f texmf/doc/man/man1/mptopdf.* -Index: tlpkg/tlpsrc/bin-mltex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-mltex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-mltex.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-mltex - category TLCore - depend bin-latex --execute BuildFormat mltex --runpattern f texmf/fmtutil/format.mltex.cnf -+execute AddFormat name=mltex engine=pdftex options="-translate-file=cp227.tcx -mltex mltex.ini" -+execute AddFormat name=mllatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx -mltex mllatex.ini" - binpattern f bin/${ARCH}/mllatex - binpattern f bin/${ARCH}/mltex -Index: tlpkg/tlpsrc/luatex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/luatex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/luatex.tlpsrc (working copy) -@@ -1,8 +1,8 @@ - name luatex - category TLCore --execute BuildFormat luatex -+execute AddFormat name=luatex engine=luatex options="luatex.ini" -+execute AddFormat name=pdfluatex engine=luatex options="pdfluatex.ini" - docpattern d texmf-dist/doc/luatex --runpattern f texmf/fmtutil/format.luatex.cnf - binpattern f/!hppa-hpux bin/${ARCH}/luatex - binpattern f/!hppa-hpux bin/${ARCH}/pdfluatex - binpattern f/!hppa-hpux bin/${ARCH}/texlua -Index: tlpkg/tlpsrc/bin-cslatex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-cslatex.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-cslatex.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-cslatex - category TLCore - depend bin-latex --execute BuildFormat cslatex --runpattern f texmf/fmtutil/format.cslatex.cnf -+execute AddFormat name=cslatex engine=pdftex options="-etex -translate-file=cp227.tcx cslatex.ini" -+execute AddFormat name=pdfcslatex engine=pdftex options="-etex -translate-file=cp227.tcx cslatex.ini" - binpattern f bin/${ARCH}/cslatex - binpattern f bin/${ARCH}/pdfcslatex -Index: tlpkg/tlpsrc/bin-texdoc.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-texdoc.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-texdoc.tlpsrc (working copy) -@@ -12,3 +12,4 @@ - binpattern f bin/${ARCH}/texdoctk - binpattern f bin/win32/texdocc - binpattern f bin/win32/tl-w32-texdoc-wrapper.texlua -+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 12198) -+++ tlpkg/tlpsrc/bin-latex.tlpsrc (working copy) -@@ -4,12 +4,14 @@ - depend pdftex - depend latexconfig - depend latex-fonts --execute BuildFormat latex -+execute AddFormat name=latex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" -+execute AddFormat name=pdflatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" -+execute AddFormat name=lualatex engine=luatex patterns=language.dat options="lualatex.ini" -+execute AddFormat name=pdflualatex engine=luatex patterns=language.dat options="pdflualatex.ini" - binpattern f bin/${ARCH}/latex - binpattern f/!hppa-hpux bin/${ARCH}/lualatex - binpattern f bin/${ARCH}/pdflatex - binpattern f/!hppa-hpux bin/${ARCH}/pdflualatex - docpattern f texmf/doc/man/man1/latex.* - docpattern f texmf/doc/man/man1/pdflatex.* --runpattern f texmf/fmtutil/format.latex.cnf - runpattern d texmf/tex/latex/config -Index: tlpkg/tlpsrc/bin-omega.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-omega.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-omega.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-omega - category TLCore --execute BuildFormat omega --runpattern f texmf/fmtutil/format.omega.cnf -+execute AddFormat name=omega engine=omega options="omega.ini" -+execute AddFormat name=lambda engine=omega patterns=language.dat options="lambda.ini" - docpattern f texmf/doc/man/man1/lambda.* - docpattern f texmf/doc/man/man1/omega.* - binpattern f bin/${ARCH}/lambda -Index: tlpkg/tlpsrc/bin-tlpsv.win32.tlpsrc -=================================================================== ---- 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 - runpattern f texmf/scripts/texlive/psv.tlu - runpattern d tlpkg/tlpsv -+postaction shortcut type=menu name="PS_View" icon=TEXDIR/tlpkg/tlpsv/psv.exe cmd=TEXDIR/bin/win32/psv.bat hide=1 -+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 12198) -+++ tlpkg/tlpsrc/bin-xmltex.tlpsrc (working copy) -@@ -2,7 +2,7 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat xmltex --runpattern f texmf/fmtutil/format.xmltex.cnf -+execute AddFormat name=xmltex engine=pdftex patterns=language.dat options="&latex xmltex.ini" -+execute AddFormat name=pdfxmltex engine=pdftex patterns=language.dat options="&pdflatex pdfxmltex.ini" - binpattern f bin/${ARCH}/pdfxmltex - binpattern f bin/${ARCH}/xmltex -Index: tlpkg/tlpsrc/texlive-ru.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-ru.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-ru.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-ru - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (ru) (PDF)" cmd=TEXDIR/texmf-doc/doc/russian/texlive-ru/texlive-ru.pdf -+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 12198) -+++ tlpkg/tlpsrc/bin-texlive.tlpsrc (working copy) -@@ -1,27 +1,11 @@ - name bin-texlive - category TLCore - shortdesc executables and files maintained as part of TeX Live --longdesc This packages contains the binaries of the TeX Live tools (notably --longdesc tlmgr). Together with texlive.infra, it provides all the basic TeX --longdesc Live infrastructure. -+longdesc This packages contains the binaries of the TeX Live tools. - depend texlive.infra --runpattern f texmf/fmtutil/fmtutil-hdr.cnf - runpattern d texmf/scripts/texlive/lua --runpattern d texmf/scripts/texlive/tlmgrgui --runpattern !f texmf/scripts/texlive/tlmgrgui/tlmgrgui1.pl --runpattern !f texmf/scripts/texlive/tlmgrgui/gui-config1.pl --runpattern !f texmf/scripts/texlive/tlmgrgui/gui-arch1.pl --runpattern !f texmf/scripts/texlive/tlmgrgui/tlmgrgui-real.pl - runpattern f texmf/scripts/texlive/rungs.tlu - runpattern f texmf/scripts/texlive/test-tlpdb.tlu - runpattern f texmf/scripts/texlive/texconf.tlu --runpattern f texmf/scripts/texlive/tlmgr.pl --runpattern !f texmf/scripts/texlive/tlmgr1.pl --runpattern f texmf/scripts/texlive/uninstall-win32.pl --runpattern f texmf/web2c/updmap-hdr.cfg --docpattern f texmf/doc/man/man1/tlmgr.* --binpattern f bin/${ARCH}/tlmgr - binpattern f bin/${ARCH}/rungs --binpattern f bin/win32/tl-w32-wrapper.texlua - binpattern f bin/win32/symlinks4cygwin.sh --binpattern f/win32 texmf/scripts/texlive/updater-w32.bat -Index: tlpkg/tlpsrc/t2.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/t2.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/t2.tlpsrc (working copy) -@@ -1,5 +1,5 @@ - name t2 - category Package --execute BuildFormat cyramstex --execute BuildFormat cyrtex --execute BuildFormat cyrtexinfo -+execute AddFormat name=cyramstex mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyramstx.ini" -+execute AddFormat name=cyrtex mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyrtex.ini" -+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 12198) -+++ tlpkg/tlpsrc/bin-texsis.tlpsrc (working copy) -@@ -1,6 +1,5 @@ - name bin-texsis - category TLCore - depend bin-tex --execute BuildFormat texsis --runpattern f texmf/fmtutil/format.texsis.cnf -+execute AddFormat name=texsis engine=pdftex options="-translate-file=cp227.tcx texsis.ini" - binpattern f bin/${ARCH}/texsis -Index: tlpkg/tlpsrc/texlive-en.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-en.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-en.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-en - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (en) (PDF)" cmd=TEXDIR/texmf-doc/doc/english/texlive-en/texlive-en.pdf -+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 12198) -+++ tlpkg/tlpsrc/bin-physe.tlpsrc (working copy) -@@ -1,6 +1,5 @@ - name bin-physe - category TLCore - depend bin-tex --execute BuildFormat physe --runpattern f texmf/fmtutil/format.physe.cnf -+execute AddFormat name=physe engine=pdftex options="physe.ini" - binpattern f bin/${ARCH}/physe -Index: tlpkg/tlpsrc/bin-phyzzx.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-phyzzx.tlpsrc (working copy) -@@ -1,6 +1,5 @@ - name bin-phyzzx - category TLCore - depend bin-tex --execute BuildFormat phyzzx --runpattern f texmf/fmtutil/format.phyzzx.cnf -+execute AddFormat name=phyzzx engine=pdftex options="physe.ini" - binpattern f bin/${ARCH}/phyzzx -Index: tlpkg/tlpsrc/bin-eplain.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-eplain.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-eplain.tlpsrc (working copy) -@@ -1,8 +1,7 @@ - name bin-eplain - category TLCore - depend pdftex --execute BuildFormat eplain --runpattern f texmf/fmtutil/format.eplain.cnf -+execute AddFormat name=eplain engine=pdftex options="-translate-file=cp227.tcx *eplain.ini" - docpattern f texmf/doc/info/eplain.info - docpattern f texmf/doc/man/man1/eplain.* - binpattern f bin/${ARCH}/eplain -Index: tlpkg/tlpsrc/texlive-cz.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-cz.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-cz.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-cz - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (cz) (PDF)" cmd=TEXDIR/texmf-doc/doc/czechslovak/texlive-cz/texlive-cz.pdf -+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 12198) -+++ tlpkg/tlpsrc/bin-jadetex.tlpsrc (working copy) -@@ -2,7 +2,7 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat jadetex --runpattern f texmf/fmtutil/format.jadetex.cnf -+execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="&latex jadetex.ini" -+execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="&pdflatex pdfjadetex.ini" - binpattern f bin/${ARCH}/jadetex - binpattern f bin/${ARCH}/pdfjadetex -Index: tlpkg/tlpsrc/00texlive-installation.config.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/00texlive-installation.config.tlpsrc (working copy) -@@ -1,30 +0,0 @@ --name 00texlive-installation.config --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_create_symlinks:0 --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/texlive-pl.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive-pl.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive-pl.tlpsrc (working copy) -@@ -1,2 +1,4 @@ - name texlive-pl - category Documentation -+postaction shortcut type=menu name="TeX Live Manual (pl) (PDF)" cmd=TEXDIR/texmf-doc/doc/polish/texlive-pl/texlive-pl.pdf -+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 12198) -+++ tlpkg/tlpsrc/bin-amstex.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-amstex - category TLCore - depend bin-tex --execute BuildFormat amstex --runpattern f texmf/fmtutil/format.amstex.cnf -+execute AddFormat name=amstex engine=pdftex options="-translate-file=cp227.tcx *amstex.ini" -+execute AddFormat name=pdfamstex mode=disabled engine=pdftex options="-translate-file=cp227.tcx *pdfamstex.ini" - docpattern f texmf/doc/man/man1/amstex.* - binpattern f bin/${ARCH}/amstex -Index: tlpkg/tlpsrc/bin-aleph.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-aleph.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-aleph.tlpsrc (working copy) -@@ -1,7 +1,7 @@ - name bin-aleph - category TLCore - depend bin-omega --execute BuildFormat aleph --runpattern f texmf/fmtutil/format.aleph.cnf -+execute AddFormat name=aleph engine=aleph options=*aleph.ini -+execute AddFormat name=lamed engine=aleph patterns=language.dat options=*lambda.ini - binpattern f bin/${ARCH}/aleph - binpattern f bin/${ARCH}/lamed -Index: tlpkg/tlpsrc/00texlive.installation.tlpsrc -=================================================================== ---- 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 -+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 -+depend opt_install_docfiles:1 -+depend opt_install_srcfiles:1 -Index: tlpkg/tlpsrc/00texlive.core.tlpsrc -=================================================================== ---- 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 - longdesc full DVD image. - longdesc For information on the 00texlive prefix see --longdesc 00texlive-installation.config(.tlpsrc) -+longdesc 00texlive.installation(.tlpsrc) - runpattern d tlpkg/archive - runpattern d tlpkg/doc - runpattern d tlpkg/libexec -Index: tlpkg/tlpsrc/bin-metafont.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-metafont.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/bin-metafont.tlpsrc (working copy) -@@ -1,8 +1,7 @@ - name bin-metafont - category TLCore - depend bin-kpathsea --execute BuildFormat metafont --runpattern f texmf/fmtutil/format.metafont.cnf -+execute AddFormat name=mf engine=mf-nowin options="-translate-file=cp227.tcx mf.ini" - docpattern f texmf/doc/man/man1/mf-nowin.* - docpattern f texmf/doc/man/man1/mf.* - binpattern f bin/${ARCH}/mf -Index: tlpkg/tlpsrc/texlive.infra.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/texlive.infra.tlpsrc (revision 12198) -+++ tlpkg/tlpsrc/texlive.infra.tlpsrc (working copy) -@@ -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} -+# former tlmgr stuff -+runpattern f texmf/fmtutil/fmtutil-hdr.cnf -+runpattern d texmf/scripts/texlive/tlmgrgui -+runpattern f texmf/scripts/texlive/tlmgr.pl -+runpattern f texmf/scripts/texlive/uninstall-win32.pl -+runpattern f texmf/web2c/updmap-hdr.cfg -+docpattern f texmf/doc/man/man1/tlmgr.* -+binpattern f bin/${ARCH}/tlmgr -+binpattern f bin/win32/tl-w32-wrapper.texlua -+binpattern f/win32 texmf/scripts/texlive/updater-w32.bat -+# post actions -+postaction shortcut type=menu name="TeX Live Toplevel Readme Index" cmd=TEXDIR/index.html -+postaction shortcut type=menu name="TeX Live Manager" cmd=TEXDIR/bin/win32/tlmgr.bat args=gui hide=1 -+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 12198) -+++ tlpkg/bin/tl-update-tlcritical (working copy) -@@ -34,7 +34,7 @@ - # update normal containers. - echo "$0: running tl-update-containers (for critical packages)..." - tl-update-containers -location $tlcrit -all \ -- 00texlive-installation.config 00texlive.config bin-texlive texlive.infra -+ 00texlive.installation 00texlive.config texlive.infra - - # 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 12198) -+++ tlpkg/bin/tl-update-containers (working copy) -@@ -24,7 +24,7 @@ - use File::Path; - - # packages matching these re's will not be updated without --all. --my @critical_pkg_list = qw/bin-texlive texlive\.infra/; -+my @critical_pkg_list = qw/texlive\.infra/; - - our ($mydir, $vc_id); - my $opt_all = 0; -@@ -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 @@ - } - } - -- # The two packages 00texlive.config and 00texlive-installation.config -+ # The two packages 00texlive.config and 00texlive.installation - # are essential and have to be included in each and every case. - # So add them ... - my $tlpconfig = $tlpdb->get_package("00texlive.config"); - $nettlpdb->add_tlpobj($tlpconfig); -- my $tlpinstconfig = $tlpdb->get_package("00texlive-installation.config"); -+ my $tlpinstconfig = $tlpdb->get_package("00texlive.installation"); - $nettlpdb->add_tlpobj($tlpinstconfig); - - # 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) { -@@ -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 --C<texlive.infra> and C<bin-texlive>. (That is, C<tlmgr> itself needs -+C<texlive.infra>. (That is, C<tlmgr> itself needs - 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 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 - # or any later version. - # --# Creates a .run file for updating the texlive.infra and bin-texlive -+# Creates a .run file for updating the texlive.infra - # packages on Unix, similar to the .exe we create for Windows. Both are - # created in the nightly cron from tl-update-tlcritical. - -@@ -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.xz ; do - case "$i" in - *win32*) ;; -- *) 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 -- tlpobjs="$t_objdir/bin-texlive.tlpobj $t_objdir/texlive.infra.tlpobj" -+ tlpobjs="$t_objdir/texlive.infra.tlpobj" - for a in $ROOT/bin/*; do - test -d "$a" || continue # skip any cruft files - b=`basename $a` # just the architecture name - - # add the tlpobjs for this platform t the list. -- tlpobjs="$tlpobjs $t_objdir/bin-texlive.$b.tlpobj" - 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 12198) -+++ tlpkg/bin/tl-update-nsis (working copy) -@@ -40,13 +40,9 @@ - chomp (my $Master = `cd $mydir/../.. && pwd`); - my $tlpdb = TeXLive::TLPDB->new ("root" => $Master); - die("Cannot find tlpdb in $Master\n") unless defined($tlpdb); -- my $bintexlive = $tlpdb->get_package("bin-texlive"); -- my $bintexlivew32 = $tlpdb->get_package("bin-texlive.win32"); - my $texliveinfra = $tlpdb->get_package("texlive.infra"); - my $texliveinfraw32 = $tlpdb->get_package("texlive.infra.win32"); - my @allfiles = (); -- push @allfiles, $bintexlive->all_files; -- push @allfiles, $bintexlivew32->all_files if defined $bintexlivew32; - push @allfiles, $texliveinfra->all_files; - push @allfiles, $texliveinfraw32->all_files if defined $texliveinfraw32; - -@@ -58,7 +54,7 @@ - $removetlpobjdir = 1; - } - my $rev = 0; # we want the highest rev all these packages. -- for my $p ($bintexlive, $bintexlivew32, $texliveinfra, $texliveinfraw32) { -+ for my $p ($texliveinfra, $texliveinfraw32) { - if (defined $p) { - if ($p->revision > $rev) { - $rev = $p->revision; -@@ -95,7 +91,7 @@ - - Name "TeX Live Manager Update ${REV}" - OutFile "update-tlmgr-${REV}.exe" --InstallDir "$PROGRAMFILES\texlive\2008" -+InstallDir "$PROGRAMFILES\texlive\$TeXLive::TLConfig::ReleaseYear" - - RequestExecutionLevel "user" - -@@ -135,7 +131,7 @@ - } - } - print " ExecWait \'\"\$INSTDIR\\bin\\win32\\tlmgr.bat\" _include_tlpobj"; -- for my $p ($bintexlive, $bintexlivew32, $texliveinfra, $texliveinfraw32) { -+ for my $p ($texliveinfra, $texliveinfraw32) { - if (defined $p) { - print " \"\$INSTDIR\\tlpkg\\tlpobj\\", $p->name, ".tlpobj\""; - } -Index: tlpkg/etc/2009.combined.patch -=================================================================== ---- tlpkg/etc/2009.combined.patch (revision 12199) -+++ tlpkg/etc/2009.combined.patch (working copy) -@@ -19,6 +19,15 @@ - # - # '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; - } -@@ -3789,3148 +3798,3 @@ - if (defined $p) { - print " \"\$INSTDIR\\tlpkg\\tlpobj\\", $p->name, ".tlpobj\""; - } --Index: tlpkg/etc/2009.combined.patch --=================================================================== ----- 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 --- ---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 @@ -- 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 12198) --+++ 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; -- } --@@ -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 12198) --+++ 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 12198) -+++ 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; - } -@@ -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 12198) -+++ 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: diff --git a/Master/tlpkg/etc/2009.combined.patch.README b/Master/tlpkg/etc/2009.combined.patch.README deleted file mode 100644 index 901faaa0d2b..00000000000 --- a/Master/tlpkg/etc/2009.combined.patch.README +++ /dev/null @@ -1,75 +0,0 @@ -2009.combined.patch -=================== - -This patch collects all the stuff that we will change for 2009. Currently -implemented are: - -- switch from lzma to xz. Extensions are now .tar.xz, programs have to - be put into tlpkg/installer/xz/ - -- renaming of 00texlive-installation.config -> 00texlive.installation - WARNING: that needs to be checked that the old file is removed and the - new file (in tlpsrc) is *really* added!!!! - Better to do it by hand with svn move ... - -- move the tlmgr files to texlive.infra, and make bin-texlive not - critical anymore. This touches many files, not only the TLConfig @crit - array, but also many files in tlpkg/bin/ where bin-texlive is used - as critical - -- add TeXLive::TLConfig::ReleaseYear and in the installer compare the - release as coming from the remote tlpbd with the one from TLConfig, and - if they disagree (in fact only some matching is done) die. - -- removal of unshort.bat necessity: - remove from TLUtils everything related to unshort.bat - remove from TLWinGoo the necessity to pass $texdirw to add_desktop_shortcut - execute the TLPostAction PostRemoval and the postaction remove - in uninstall-w32.pl - remove the main menu in uninstall-w32.pl - define the name of the main menu in TLConfig.pm - -- rework of the fmtutil AddFormat execute line - no need for additional files - touches several tlpsrc - changes the parsing in TLPDB->fmtutil_cnf_lines - -- rename the option_symlink to option_sysint (for System integration), and - make it show up on windows (where it defaults to on) and Unix (where - it defaults to the value set in 00texlive.installation). - (TODO: fix 00texlive.installation to contain option_sysint/0) - Adapt text and GUI mode installer so that they use the option_sysint - stuff - Separate the system integration of the installation into a new function - TODO: we have to check opt_portable and opt_fromdvd!! Siep! - -- implement support for TLPSRC/TLPOBJ postaction line - move stuff from TLPostActions into the .tlpsrc files - format: - postaction shortcut name=name type=menu icon=... cmd=... args=... hide=0 - postaction shortcut name=name type=menu icon=... cmd=... args=... hide=0 - postaction shortcut name=name type=desktop icon=... cmd=... args=... hide=1 - postaction filetype name=TLPostScript cmd=... - postaction fileassoc extension=.ps filetype=TLPostScript - postaction code ...something till now undecided.... - - Execute the actions in install-tl (install), tlmgr:remove_package (remove), - and TLMedia.pm (install). - - . open question: how to implement the postaction code stuff. What about: - postaction code install=sub_name_a remove=sub_name_b file=texmf-dist/scripts/foo/bar/baz.pl - which will trigger the require of that script and at install time the - 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 -=========== -- if installation location is - blablabla/2009 - check for - blablabla/2008/tlpkg/texlive.tlpdb - and read in the collection settings (not the package ones) - diff --git a/Master/tlpkg/etc/2009.rework-AddFormat-lines.patch b/Master/tlpkg/etc/2009.rework-AddFormat-lines.patch deleted file mode 100644 index 2a99808ca49..00000000000 --- a/Master/tlpkg/etc/2009.rework-AddFormat-lines.patch +++ /dev/null @@ -1,432 +0,0 @@ -Index: tlpkg/TeXLive/TLPDB.pm -=================================================================== ---- tlpkg/TeXLive/TLPDB.pm (Revision 10956) -+++ tlpkg/TeXLive/TLPDB.pm (Arbeitskopie) -@@ -1022,28 +1022,67 @@ - containing only those formats present in the installation. - - =cut -+ - sub fmtutil_cnf_lines { - my $self = shift; -- my %fmtcnffiles; -- foreach my $p ($self->list_packages) { -- my $obj = $self->get_package ($p); -- die "No TeX Live package named $p, strange" if ! $obj; -+ my @fmtlines = (); -+ -+ foreach my $pkg ($self->list_packages) { -+ my $obj = $self->get_package ($pkg); -+ die "No TeX Live package named $pkg, too strange" if ! $obj; -+ my $first = 1; - foreach my $e ($obj->executes) { -- if ($e =~ m/BuildFormat (.*)$/) { -- $fmtcnffiles{$1} = 1; -- } -- # others are ignored here -+ if ($e =~ m/AddFormat\s+(.*)\s*/) { -+ my $name; -+ my $engine; -+ my $patterns = "-"; -+ my $options = ""; -+ my $mode = ""; -+ if ($first) { -+ push @fmtlines, "# from $pkg:\n"; -+ $first = 0; -+ } -+ foreach my $p (&TeXLive::TLUtils::quotewords('\s+', 0, "$1")) { -+ # foreach my $p (split(' ', $1)) { -+ my ($a, $b); -+ if ($p =~ m/^(name|engine|mode|patterns|options)=(.*)$/) { -+ $a = $1; -+ $b = $2; -+ } else { -+ die "Unknown format directive in $pkg: $e"; -+ } -+ if ($a eq "name") { -+ die "AddFormat line needs name=something: $pkg, $e" unless $b; -+ $name = $b; next; -+ } -+ if ($a eq "engine") { -+ die "AddFormat line needs engine=something: $pkg, $e" unless $b; -+ $engine = $b; next; -+ } -+ if ($a eq "patterns") { -+ $patterns = ( $b ? $b : "-"); -+ next; -+ } -+ if ($a eq "mode") { -+ if ($b eq "disabled") { -+ $mode = "#! "; -+ } else { -+ $mode = ""; -+ } -+ next; -+ } -+ if ($a eq "options") { -+ $options = ( $b ? $b : ""); -+ next; -+ } -+ # should not be reached at all -+ die "Unknown language directive in $pkg: $e"; -+ } -+ push @fmtlines, "$mode$name $engine $patterns $options\n"; -+ } - } - } -- my @formatlines; -- foreach my $f (sort keys %fmtcnffiles) { -- open(INFILE,"<$self->{'root'}/texmf/fmtutil/format.$f.cnf") -- or tlwarn("Cannot open $self->{'root'}/texmf/fmtutil/format.$f.cnf\nThe generated fmtutil.cnf file might be incomplete!\nError: $!\n"); -- @tmp = <INFILE>; -- close(INFILE); -- push @formatlines, @tmp; -- } -- return(@formatlines); -+ return @fmtlines; - } - - =item C<< $tlpdb->updmap_cfg_lines >> -Index: tlpkg/TeXLive/TLPSRC.pm -=================================================================== ---- tlpkg/TeXLive/TLPSRC.pm (Revision 10956) -+++ tlpkg/TeXLive/TLPSRC.pm (Arbeitskopie) -@@ -654,9 +654,14 @@ - C<lefthyphenmin>, C<righthyphenmin> (both integers), and C<synonyms> (a - comma-separated list of alias names for that hyphenation). - --=item C<execute BuildFormat> I<format> -+=item C<execute AddFormat name=I<fmt> engine=I<eng> [I<var>...]> - --build the format I<format>, as specified in the C<fmtutil.cnf> file. -+activates the format with name I<fmt> based on the engine I<eng>. The -+additional variables I<var> are: -+C<mode> which can only be equal to C<disable> in which case the format -+will only be mentioned but disabled (prefixed with C<#!>; -+C<patterns> which gives the patterns file, if not present C<-> is used; -+C<options> which gives the additional options for the C<fmtutil.cnf> file. - - =back - -Index: tlpkg/TeXLive/TLPOBJ.pm -=================================================================== ---- tlpkg/TeXLive/TLPOBJ.pm (Revision 10956) -+++ tlpkg/TeXLive/TLPOBJ.pm (Arbeitskopie) -@@ -874,7 +874,7 @@ - } else { - push @maps, "disable $3"; - } -- } elsif ($e =~ m/^BuildFormat\s+([^\s]+)\s*$/) { -+ } elsif ($e =~ m/^AddFormat\s+([^\s]+)\s*$/) { - push @formats, $1; - } elsif ($e =~ m/^AddHyphen\s+(.*)\s*$/) { - push @dats, $1; -Index: tlpkg/tlpsrc/bin-tex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-tex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-tex.tlpsrc (Arbeitskopie) -@@ -1,7 +1,6 @@ - name bin-tex - category TLCore - depend bin-kpathsea --execute BuildFormat tex --runpattern f texmf/fmtutil/format.tex.cnf -+execute AddFormat name=tex engine=tex options="tex.ini" - docpattern f texmf/doc/man/man1/tex.* - binpattern f bin/${ARCH}/tex -Index: tlpkg/tlpsrc/bin-mex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-mex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-mex.tlpsrc (Arbeitskopie) -@@ -2,10 +2,9 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat mex --execute BuildFormat utf8mex --runpattern f texmf/fmtutil/format.mex.cnf --runpattern f texmf/fmtutil/format.utf8mex.cnf -+execute AddFormat name=mex engine=pdftex patterns=mexconf.tex options="-translate-file=cp227.tcx *mex.ini" -+execute AddFormat name=pdfmex engine=pdftex patterns=mexconf.tex options="-translate-file=cp227.tcx *pdfmex.ini" -+execute AddFormat name=utf8mex engine=pdftex patterns=mexconf.tex options="-enc *utf8mex.ini" - binpattern f bin/${ARCH}/mex - binpattern f bin/${ARCH}/pdfmex - binpattern f bin/${ARCH}/utf8mex -Index: tlpkg/tlpsrc/pdftex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/pdftex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/pdftex.tlpsrc (Arbeitskopie) -@@ -1,8 +1,9 @@ - name pdftex - category TLCore - depend bin-kpathsea --execute BuildFormat pdftex --runpattern f texmf/fmtutil/format.pdftex.cnf -+execute AddFormat name=etex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *etex.ini" -+execute AddFormat name=pdfetex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" -+execute AddFormat name=pdftex engine=pdftex patterns=language.def options="-translate-file=cp227.tcx *pdfetex.ini" - runpattern f texmf/fonts/map/pdftex/updmap/* - runpattern f texmf/tex/generic/config/pdftex*.tex - runpattern f texmf/tex/generic/pdftex/* -Index: tlpkg/tlpsrc/bin-csplain.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-csplain.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-csplain.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-csplain - category TLCore - depend bin-tex --execute BuildFormat csplain --runpattern f texmf/fmtutil/format.csplain.cnf -+execute AddFormat name=csplain engine=pdftex options="-etex -translate-file=cp227.tcx csplain.ini" -+execute AddFormat name=pdfcsplain engine=pdftex options="-etex -translate-file=cp227.tcx csplain.ini" - binpattern f bin/${ARCH}/csplain - binpattern f bin/${ARCH}/pdfcsplain -Index: tlpkg/tlpsrc/bin-metapost.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-metapost.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-metapost.tlpsrc (Arbeitskopie) -@@ -1,8 +1,8 @@ - name bin-metapost - category TLCore - depend bin-kpathsea --execute BuildFormat metapost --runpattern f texmf/fmtutil/format.metapost.cnf -+execute AddFormat name=mpost engine=mpost options="-translate-file=cp227.tcx mpost.mp" -+execute AddFormat name=mfplain engine=mpost options="-translate-file=cp227.tcx mfplain.ini" - docpattern f texmf/doc/man/man1/dmp.* - docpattern f texmf/doc/man/man1/dvitomp.* - docpattern f texmf/doc/man/man1/makempx.* -Index: tlpkg/tlpsrc/bin-context.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-context.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-context.tlpsrc (Arbeitskopie) -@@ -1,9 +1,15 @@ - name bin-context - category TLCore - depend pdftex --execute BuildFormat context -+execute AddFormat name=cont-en engine=pdftex patterns=cont-usr.tex options="-8bit *cont-en.ini" -+execute AddFormat name=cont-cz mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-cz.ini" -+execute AddFormat name=cont-de mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-de.ini" -+execute AddFormat name=cont-nl mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-nl.ini" -+execute AddFormat name=cont-uk mode=disabled engine=pdftex patterns=cont-usr.tex options="-8bit *cont-uk.ini" -+execute AddFormat name=cont-en engine=xetex patterns=cont-usr.tex options="-8bit *cont-en.ini" -+execute AddFormat name=mptopdf engine=pdftex options="-translate-file=cp227.tcx mptopdf.tex" -+execute AddFormat name=metafun engine=mpost options="-translate-file=cp227.tcx metafun.mp" - runpattern f texmf-dist/tex/mptopdf/config/mptopdf.ini --runpattern f texmf/fmtutil/format.context.cnf - docpattern f texmf/doc/man/man1/ctxtools.* - docpattern f texmf/doc/man/man1/makempy.* - docpattern f texmf/doc/man/man1/mptopdf.* -Index: tlpkg/tlpsrc/bin-mltex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-mltex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-mltex.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-mltex - category TLCore - depend bin-latex --execute BuildFormat mltex --runpattern f texmf/fmtutil/format.mltex.cnf -+execute AddFormat name=mltex engine=pdftex options="-translate-file=cp227.tcx -mltex mltex.ini" -+execute AddFormat name=mllatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx -mltex mllatex.ini" - binpattern f bin/${ARCH}/mllatex - binpattern f bin/${ARCH}/mltex -Index: tlpkg/tlpsrc/luatex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/luatex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/luatex.tlpsrc (Arbeitskopie) -@@ -1,8 +1,8 @@ - name luatex - category TLCore --execute BuildFormat luatex -+execute AddFormat name=luatex engine=luatex options="luatex.ini" -+execute AddFormat name=pdfluatex engine=luatex options="pdfluatex.ini" - docpattern d texmf-dist/doc/luatex --runpattern f texmf/fmtutil/format.luatex.cnf - binpattern f/!hppa-hpux bin/${ARCH}/luatex - binpattern f/!hppa-hpux bin/${ARCH}/pdfluatex - binpattern f/!hppa-hpux bin/${ARCH}/texlua -Index: tlpkg/tlpsrc/bin-cslatex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-cslatex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-cslatex.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-cslatex - category TLCore - depend bin-latex --execute BuildFormat cslatex --runpattern f texmf/fmtutil/format.cslatex.cnf -+execute AddFormat name=cslatex engine=pdftex options="-etex -translate-file=cp227.tcx cslatex.ini" -+execute AddFormat name=pdfcslatex engine=pdftex options="-etex -translate-file=cp227.tcx cslatex.ini" - binpattern f bin/${ARCH}/cslatex - binpattern f bin/${ARCH}/pdfcslatex -Index: tlpkg/tlpsrc/bin-latex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-latex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-latex.tlpsrc (Arbeitskopie) -@@ -4,12 +4,14 @@ - depend pdftex - depend latexconfig - depend latex-fonts --execute BuildFormat latex -+execute AddFormat name=latex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" -+execute AddFormat name=pdflatex engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" -+execute AddFormat name=lualatex engine=luatex patterns=language.dat options="lualatex.ini" -+execute AddFormat name=pdflualatex engine=luatex patterns=language.dat options="pdflualatex.ini" - binpattern f bin/${ARCH}/latex - binpattern f/!hppa-hpux bin/${ARCH}/lualatex - binpattern f bin/${ARCH}/pdflatex - binpattern f/!hppa-hpux bin/${ARCH}/pdflualatex - docpattern f texmf/doc/man/man1/latex.* - docpattern f texmf/doc/man/man1/pdflatex.* --runpattern f texmf/fmtutil/format.latex.cnf - runpattern d texmf/tex/latex/config -Index: tlpkg/tlpsrc/bin-omega.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-omega.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-omega.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-omega - category TLCore --execute BuildFormat omega --runpattern f texmf/fmtutil/format.omega.cnf -+execute AddFormat name=omega engine=omega options="omega.ini" -+execute AddFormat name=lambda engine=omega patterns=language.dat options="lambda.ini" - docpattern f texmf/doc/man/man1/lambda.* - docpattern f texmf/doc/man/man1/omega.* - binpattern f bin/${ARCH}/lambda -Index: tlpkg/tlpsrc/bin-xmltex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-xmltex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-xmltex.tlpsrc (Arbeitskopie) -@@ -2,7 +2,7 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat xmltex --runpattern f texmf/fmtutil/format.xmltex.cnf -+execute AddFormat name=xmltex engine=pdftex patterns=language.dat options="&latex xmltex.ini" -+execute AddFormat name=pdfxmltex engine=pdftex patterns=language.dat options="&pdflatex pdfxmltex.ini" - binpattern f bin/${ARCH}/pdfxmltex - binpattern f bin/${ARCH}/xmltex -Index: tlpkg/tlpsrc/bin-texsis.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-texsis.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-texsis.tlpsrc (Arbeitskopie) -@@ -1,6 +1,5 @@ - name bin-texsis - category TLCore - depend bin-tex --execute BuildFormat texsis --runpattern f texmf/fmtutil/format.texsis.cnf -+execute AddFormat name=texsis engine=pdftex options="-translate-file=cp227.tcx texsis.ini" - binpattern f bin/${ARCH}/texsis -Index: tlpkg/tlpsrc/t2.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/t2.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/t2.tlpsrc (Arbeitskopie) -@@ -1,5 +1,5 @@ - name t2 - category Package --execute BuildFormat cyramstex --execute BuildFormat cyrtex --execute BuildFormat cyrtexinfo -+execute AddFormat name=cyramstex mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyramstx.ini" -+execute AddFormat name=cyrtex mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyrtex.ini" -+execute AddFormat name=cyrtexinfo mode=disabled engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *cyrtxinf.ini" -Index: tlpkg/tlpsrc/bin-physe.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-physe.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-physe.tlpsrc (Arbeitskopie) -@@ -1,6 +1,5 @@ - name bin-physe - category TLCore - depend bin-tex --execute BuildFormat physe --runpattern f texmf/fmtutil/format.physe.cnf -+execute AddFormat name=physe engine=pdftex options="physe.ini" - binpattern f bin/${ARCH}/physe -Index: tlpkg/tlpsrc/bin-phyzzx.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-phyzzx.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-phyzzx.tlpsrc (Arbeitskopie) -@@ -1,6 +1,5 @@ - name bin-phyzzx - category TLCore - depend bin-tex --execute BuildFormat phyzzx --runpattern f texmf/fmtutil/format.phyzzx.cnf -+execute AddFormat name=phyzzx engine=pdftex options="physe.ini" - binpattern f bin/${ARCH}/phyzzx -Index: tlpkg/tlpsrc/bin-eplain.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-eplain.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-eplain.tlpsrc (Arbeitskopie) -@@ -1,8 +1,7 @@ - name bin-eplain - category TLCore - depend pdftex --execute BuildFormat eplain --runpattern f texmf/fmtutil/format.eplain.cnf -+execute AddFormat name=eplain engine=pdftex options="-translate-file=cp227.tcx *eplain.ini" - docpattern f texmf/doc/info/eplain.info - docpattern f texmf/doc/man/man1/eplain.* - binpattern f bin/${ARCH}/eplain -Index: tlpkg/tlpsrc/bin-jadetex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-jadetex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-jadetex.tlpsrc (Arbeitskopie) -@@ -2,7 +2,7 @@ - category TLCore - depend pdftex - depend bin-tex --execute BuildFormat jadetex --runpattern f texmf/fmtutil/format.jadetex.cnf -+execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="&latex jadetex.ini" -+execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="&pdflatex pdfjadetex.ini" - binpattern f bin/${ARCH}/jadetex - binpattern f bin/${ARCH}/pdfjadetex -Index: tlpkg/tlpsrc/bin-amstex.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-amstex.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-amstex.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-amstex - category TLCore - depend bin-tex --execute BuildFormat amstex --runpattern f texmf/fmtutil/format.amstex.cnf -+execute AddFormat name=amstex engine=pdftex options="-translate-file=cp227.tcx *amstex.ini" -+execute AddFormat name=pdfamstex mode=disabled engine=pdftex options="-translate-file=cp227.tcx *pdfamstex.ini" - docpattern f texmf/doc/man/man1/amstex.* - binpattern f bin/${ARCH}/amstex -Index: tlpkg/tlpsrc/bin-aleph.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-aleph.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-aleph.tlpsrc (Arbeitskopie) -@@ -1,7 +1,7 @@ - name bin-aleph - category TLCore - depend bin-omega --execute BuildFormat aleph --runpattern f texmf/fmtutil/format.aleph.cnf -+execute AddFormat name=aleph engine=aleph options=*aleph.ini -+execute AddFormat name=lamed engine=aleph patterns=language.dat options=*lambda.ini - binpattern f bin/${ARCH}/aleph - binpattern f bin/${ARCH}/lamed -Index: tlpkg/tlpsrc/bin-metafont.tlpsrc -=================================================================== ---- tlpkg/tlpsrc/bin-metafont.tlpsrc (Revision 10956) -+++ tlpkg/tlpsrc/bin-metafont.tlpsrc (Arbeitskopie) -@@ -1,8 +1,7 @@ - name bin-metafont - category TLCore - depend bin-kpathsea --execute BuildFormat metafont --runpattern f texmf/fmtutil/format.metafont.cnf -+execute AddFormat name=mf engine=mf-nowin options="-translate-file=cp227.tcx mf.ini" - docpattern f texmf/doc/man/man1/mf-nowin.* - docpattern f texmf/doc/man/man1/mf.* - binpattern f bin/${ARCH}/mf diff --git a/Master/tlpkg/etc/allow_packages_to_be_relocatable.patch b/Master/tlpkg/etc/allow_packages_to_be_relocatable.patch deleted file mode 100644 index f5b5e523847..00000000000 --- a/Master/tlpkg/etc/allow_packages_to_be_relocatable.patch +++ /dev/null @@ -1,405 +0,0 @@ -Index: tlpkg/TeXLive/TLConfig.pm -=================================================================== ---- tlpkg/TeXLive/TLConfig.pm (revision 12914) -+++ tlpkg/TeXLive/TLConfig.pm (working copy) -@@ -30,6 +30,7 @@ - @CriticalPackagesList - @AllowedConfigOptions - $WindowsMainMenuName -+ $RelocPrefix - ); - @EXPORT = @EXPORT_OK; - } -@@ -65,11 +66,13 @@ - our $TeXLiveServerURL = "http://mirror.ctan.org"; - our $TeXLiveServerPath = "systems/texlive/tlnet/$ReleaseYear"; - our $TeXLiveURL = "$TeXLiveServerURL/$TeXLiveServerPath"; -+our $RelocPrefix = "texmf-dist"; - - our $WinSpecialUpdatePackagesRegexp = - '^(texlive\.infra|bin-tlperl\.win32$|bin-texlive)'; - - -+ - our @CriticalPackagesList = qw/texlive.infra bin-texlive/; - push(@CriticalPackagesList, "bin-tlperl.win32") if ($^O=~/^MSWin(32|64)$/i); - -@@ -175,6 +178,10 @@ - - A list of a config options that can be set in 00texlive.installation. - -+=item C<$TeXLive::TLConfig::RelocPrefix> -+ -+the texmf-tree name that can be relocated. -+ - =back - - =head1 SEE ALSO -Index: tlpkg/TeXLive/TLPOBJ.pm -=================================================================== ---- tlpkg/TeXLive/TLPOBJ.pm (revision 12914) -+++ tlpkg/TeXLive/TLPOBJ.pm (working copy) -@@ -6,7 +6,8 @@ - - package TeXLive::TLPOBJ; - --use TeXLive::TLConfig qw($DefaultCategory $CategoriesRegexp $MetaCategoriesRegexp $InfraLocation); -+use TeXLive::TLConfig qw($DefaultCategory $CategoriesRegexp -+ $MetaCategoriesRegexp $InfraLocation $RelocPrefix); - use TeXLive::TLUtils; - use TeXLive::TLTREE; - -@@ -22,6 +23,7 @@ - shortdesc => $params{'shortdesc'}, - longdesc => $params{'longdesc'}, - catalogue => $params{'catalogue'}, -+ relocated => $params{'relocated'}, - runfiles => defined($params{'runfiles'}) ? $params{'runfiles'} : [], - runsize => $params{'runsize'}, - srcfiles => defined($params{'srcfiles'}) ? $params{'srcfiles'} : [], -@@ -165,6 +167,10 @@ - $self->{'category'} = "$1"; - $lastcmd = "category"; - next; -+ } elsif ($line =~ /^relocated\s+([01])\s*/o) { -+ $self->relocated("$1"); -+ $lastcmd = "relocated"; -+ next; - } elsif ($line =~ /^revision\s+(.*)\s*/o) { - $self->{'revision'} = "$1"; - $lastcmd = "revision"; -@@ -305,6 +311,7 @@ - defined($self->{'catalogue'}) && print $fd "catalogue $self->{'catalogue'}\n"; - defined($self->{'shortdesc'}) && print $fd "shortdesc $self->{'shortdesc'}\n"; - defined($self->{'license'}) && print $fd "license $self->{'license'}\n"; -+ defined($self->{'relocated'}) && print $fd "relocated 1\n"; - # ugly hack to get rid of use FileHandle; see man perlform - #format_name $fd "multilineformat"; - select((select($fd),$~ = "multilineformat")[0]); -@@ -432,6 +439,37 @@ - } - } - -+sub cancel_common_texmf_tree { -+ my $self = shift; -+ my @docfiles = $self->docfiles; -+ for (@docfiles) { s:^$RelocPrefix/::; } -+ $self->docfiles(@docfiles); -+ my @runfiles = $self->runfiles; -+ for (@runfiles) { s:^$RelocPrefix/::; } -+ $self->runfiles(@runfiles); -+ my @srcfiles = $self->srcfiles; -+ for (@srcfiles) { s:^$RelocPrefix/::; } -+ $self->srcfiles(@srcfiles); -+ # if there are bin files they have definitely NOT the -+ # texmf-dist prefix, so we cannot cancel it anyway -+} -+ -+sub common_texmf_tree { -+ my $self = shift; -+ my $tltree; -+ my @files = $self->all_files; -+ foreach ($self->all_files) { -+ my $tmp; -+ ($tmp) = split m@/@; -+ if (defined($tltree) && ($tltree ne $tmp)) { -+ return; -+ } else { -+ $tltree = $tmp; -+ } -+ } -+ return $tltree; -+} -+ - - sub make_container { - my ($self,$type,$instroot,$destdir,$containername,$relative) = @_; -@@ -441,30 +479,18 @@ - if (!defined($containername)) { - $containername = $self->name; - } -- my @files = (); -+ my @files = $self->all_files; - my $compresscmd; - my $tlpobjdir = "$InfraLocation/tlpobj"; -- my %binf = %{$self->{'binfiles'}}; -- foreach (keys %binf) { -- push @files, @{$binf{$_}}; -- } -- push @files, $self->runfiles; -- push @files, $self->docfiles; -- push @files, $self->srcfiles; - @files = TeXLive::TLUtils::sort_uniq(@files); - # we do relative packages ONLY if the files do NOT span multiple - # texmf trees. check this here - my $tltree; - if ($relative) { -- foreach (@files) { -- my $tmp; -- ($tmp) = split m@/@; -- if (defined($tltree) && ($tltree ne $tmp)) { -- die ("$0: package $containername spans multiple trees, " -- . "relative generation not allowed"); -- } else { -- $tltree = $tmp; -- } -+ $tltree = $self->common_texmf_tree; -+ if (!defined($tltree)) { -+ die ("$0: package $containername spans multiple trees, " -+ . "relative generation not allowed"); - } - my @nf; - map { s@^$tltree/@@ ; push @nf, $_; } @files; -@@ -895,6 +921,11 @@ - if (@_) { $self->{'revision'} = shift } - return $self->{'revision'}; - } -+sub relocated { -+ my $self = shift; -+ if (@_) { $self->{'relocated'} = shift } -+ return ($self->{'relocated'} ? 1 : 0); -+} - sub catalogue { - my $self = shift; - if (@_) { $self->{'catalogue'} = shift } -@@ -1089,9 +1120,11 @@ - only differences are that the various C<*pattern> keys are invalid, and - instead there are the respective C<*files> keys described below. Furthermore - some more I<keys> is allowed: C<revision> which specifies the maximum of --all last changed revision of files contained in the package, and anything -+all last changed revision of files contained in the package, anything - starting with C<catalogue-> specifying information coming from the --TeX Catalogue. -+TeX Catalogue, and C<relocated> taking either 0 or 1 indicating that -+this packages has been relocated, i.e., in the containers the -+initial C<texmf-dist> directory has been stripped off. - - All these keys have in common that they are followed by a list of files - I<indented> by one space. They differ only in the first line itself -@@ -1264,6 +1297,12 @@ - - debugging function for comparison with C<tpm>/C<tlps>, will go away. - -+=item C<common_texmf_tree> -+ -+if all files of the package are from the same texmf tree, this tree -+is returned, otherwise an undefined value. That is also a check -+whether a package is relocatable. -+ - =item C<make_container($type,$instroot[, $destdir[, $containername[, $relative]]])> - - creates a container file of the all files in the C<TLPOBJ> -Index: tlpkg/TeXLive/TLMedia.pm -=================================================================== ---- tlpkg/TeXLive/TLMedia.pm (revision 12914) -+++ tlpkg/TeXLive/TLMedia.pm (working copy) -@@ -117,6 +117,7 @@ - # even if opt_doc is false - $real_opt_doc = 1; - } -+ my $reloc = 1 if $tlpobj->relocated; - my $container; - my @installfiles; - my $location = $self->location; -@@ -155,7 +156,7 @@ - } elsif (&media eq 'NET') { - $container = "$location/$Archive/$pkg.$DefaultContainerExtension"; - } -- $self->_install_package($container,\@installfiles,$totlpdb) || return(0); -+ $self->_install_package($container,$reloc,\@installfiles,$totlpdb) || return(0); - # if we are installing from CD or NET we have to fetch the respective - # source and doc packages $pkg.source and $pkg.doc and install them, too - if (($media eq 'NET') || ($media eq 'CD')) { -@@ -173,12 +174,12 @@ - if ($container_src_split && $opt_src && $tlpobj->srcfiles) { - my $srccontainer = $container; - $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/; -- $self->_install_package($srccontainer,\@installfiles,$totlpdb) || return(0); -+ $self->_install_package($srccontainer,$reloc,\@installfiles,$totlpdb) || return(0); - } - if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) { - my $doccontainer = $container; - $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/; -- $self->_install_package($doccontainer,\@installfiles,$totlpdb) || return(0); -+ $self->_install_package($doccontainer,$reloc,\@installfiles,$totlpdb) || return(0); - } - } - # we don't want to have wrong information in the tlpdb, so remove the -@@ -225,7 +226,7 @@ - # returns 1 on success and 0 on error - # - sub _install_package { -- my ($self, $what, $filelistref, $totlpdb) = @_; -+ my ($self, $what, $reloc, $filelistref, $totlpdb) = @_; - - my $media = $self->media; - my $target = $totlpdb->root; -@@ -255,6 +256,8 @@ - } elsif ($what =~ m,\.tar(\.xz)?$,) { - my $type = defined($1) ? "xz" : "tar"; - -+ $target .= "/$TeXLive::TLConfig::RelocPrefix" if $reloc; -+ - # this is the case when we install from CD or the NET, or a backup - # - # in all other cases we create temp files .tar.xz (or use the present -@@ -365,6 +368,7 @@ - my @goodfiles = (); - my @badfiles = (); - for my $f (@files) { -+ # in usermode we have to add texmf-dist again for comparison - if (defined($allfiles{$f})) { - # this file should be removed but is mentioned somewhere, too - push @badfiles, $f; -Index: tlpkg/TeXLive/TLUtils.pm -=================================================================== ---- tlpkg/TeXLive/TLUtils.pm (revision 12914) -+++ tlpkg/TeXLive/TLUtils.pm (working copy) -@@ -950,6 +950,7 @@ - my $starttime = time(); - foreach my $package (@packs) { - my $tlpobj = $tlpobjs{$package}; -+ my $reloc = $tlpobj->relocated; - $n++; - my $remtime = "??:??"; - my $tottime = "??:??"; -@@ -1016,7 +1017,7 @@ - } elsif ($media eq 'NET') { - $container = "$root/$Archive/$package.$DefaultContainerExtension"; - } -- if (!install_package($container, $tlpobj->containersize, -+ if (!install_package($container, $reloc, $tlpobj->containersize, - $tlpobj->containermd5, \@installfiles, - $totlpdb->root, $vars{'this_platform'})) { - # we already warn in install_package that something bad happened, -@@ -1038,7 +1039,7 @@ - if ($container_src_split && $opt_src && $tlpobj->srcfiles) { - my $srccontainer = $container; - $srccontainer =~ s/(\.tar\.xz|\.zip)$/.source$1/; -- if (!install_package($srccontainer, $tlpobj->srccontainersize, -+ if (!install_package($srccontainer, $reloc, $tlpobj->srccontainersize, - $tlpobj->srccontainermd5, \@installfiles, - $totlpdb->root, $vars{'this_platform'})) { - return 0; -@@ -1047,7 +1048,7 @@ - if ($container_doc_split && $real_opt_doc && $tlpobj->docfiles) { - my $doccontainer = $container; - $doccontainer =~ s/(\.tar\.xz|\.zip)$/.doc$1/; -- if (!install_package($doccontainer, -+ if (!install_package($doccontainer, $reloc, - $tlpobj->doccontainersize, - $tlpobj->doccontainermd5, \@installfiles, - $totlpdb->root, $vars{'this_platform'})) { -@@ -1084,7 +1085,7 @@ - } - - --=item C<install_package($what, $size, $md5, $filelistref, $target, $platform)> -+=item C<install_package($what, $reloc, $size, $md5, $filelistref, $target, $platform)> - - This function installs the files given in @$filelistref from C<$what> - into C<$target>. -@@ -1107,12 +1108,15 @@ - In both of these cases currently the list C<$@filelistref> currently - is not taken into account (should be fixed!). - -+if C<$reloc> is true the container (NET or CD mode) is packaged in a way -+that the initial texmf-dist is missing. -+ - Returns 1 on success and 0 on error. - - =cut - - sub install_package { -- my ($what, $whatsize, $whatmd5, $filelistref, $target, $platform) = @_; -+ my ($what, $reloc, $whatsize, $whatmd5, $filelistref, $target, $platform) = @_; - - my @filelist = @$filelistref; - -@@ -1139,6 +1143,9 @@ - # in all other cases we create temp files .tar.xz (or use the present - # one), xzdec them, and then call tar - -+ # if we are unpacking a relocated container we adjust the target -+ $target .= "/$TeXLive::TLConfig::RelocPrefix" if $reloc; -+ - my $fn = basename($what); - mkdirhier("$target/temp"); - my $xzfile = "$target/temp/$fn"; -Index: tlpkg/bin/tl-update-containers -=================================================================== ---- tlpkg/bin/tl-update-containers (revision 12914) -+++ tlpkg/bin/tl-update-containers (working copy) -@@ -43,6 +43,7 @@ - "location=s" => \$opt_location, - "no-setup" => \$opt_nosetup, - "recreate" => \$opt_recreate, -+ "relative" => \$opt_relative, - "version" => \$opt_version, - "help|?" => \$opt_help) or pod2usage(1); - -@@ -235,14 +236,34 @@ - debug("updating $pkg containers ...\n"); - # we have to make a copy otherwise the src/doc files in the original - # tlpobj are removed, and thus also in the tlpdb to be saved!!! -+ - my $objcopy = $obj->copy; -+ -+ # if we try to create relative containers we check the package -+ # for residing only in texmf-dist, and being relocatable, and -+ # not having a dependency on $pkg.ARCH -+ # TLPOBJ->common_texmf_tree returns the string of the -+ # common temxf tree or undefined, so we can use it in && -+ my $ctt = $objcopy->common_texmf_tree; -+ my $deps_on_arch = 0; -+ for ($objcopy->depends) { -+ if (m/^$pkg\.ARCH$/) { -+ $deps_on_arch = 1; -+ last; -+ } -+ } -+ my $do_relative = $opt_relative && # user option -+ !$deps_on_arch && # no $pkg.ARCH dep -+ $ctt && # see above -+ ($ctt eq $TeXLive::TLConfig::RelocPrefix); -+ # only for texmf-dist - if ($srcsplit) { - if (!$opt_dry) { - my $objsrc = $obj->srcfiles_package; - $objcopy->clear_srcfiles; - if ($objsrc) { - my ($s,$m) = $objsrc->make_container($type, $Master, $opt_containerdir, -- "$pkg.source", $opt_relative); -+ "$pkg.source", $do_relative); - if ($s > 0) { - # something was created - # important, we have to add it to the original $obj -@@ -266,7 +287,7 @@ - $objcopy->clear_docfiles; - if ($objdoc) { - my ($s,$m) = $objdoc->make_container($type, $Master, -- $opt_containerdir, "$pkg.doc", $opt_relative); -+ $opt_containerdir, "$pkg.doc", $do_relative); - if ($s > 0) { - # something was created - $obj->doccontainersize($s); -@@ -285,7 +306,7 @@ - } - if (!$opt_dry) { - my ($s,$m) = $objcopy->make_container($type, $Master, $opt_containerdir, -- $pkg, $opt_relative); -+ $pkg, $do_relative); - if ($s > 0) { - $obj->containersize($s); - } -@@ -293,6 +314,10 @@ - $obj->containermd5($m); - } - } -+ # if the container has been build relocatable we save that information -+ $obj->relocated($do_relative); -+ # and remove the common prefix from the files in the tlpobj -+ $obj->cancel_common_texmf_tree; - # add the updated (or new) TLPOBJ to NET TLPDB - # that way the other container sizes are not destroyed - $nettlpdb->add_tlpobj($obj) unless $opt_dry; |