summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-07-26 22:01:36 +0000
committerNorbert Preining <preining@logic.at>2009-07-26 22:01:36 +0000
commit915e28f2278d4295b834deaa18048192845f9ec9 (patch)
treef7b2c08bc4dc97dda9c7512a53dc92ace612546f /Master
parent2a776538bbc4a9e1a242262c0145bf820e6105f6 (diff)
remove implemented patches
git-svn-id: svn://tug.org/texlive/trunk@14466 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/tlpkg/etc/2009.combined.patch7132
-rw-r--r--Master/tlpkg/etc/2009.combined.patch.README75
-rw-r--r--Master/tlpkg/etc/2009.rework-AddFormat-lines.patch432
-rw-r--r--Master/tlpkg/etc/allow_packages_to_be_relocatable.patch405
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;