diff options
Diffstat (limited to 'Master/tlpkg')
-rw-r--r-- | Master/tlpkg/etc/tlrepo-from-minimals.pl | 111 |
1 files changed, 71 insertions, 40 deletions
diff --git a/Master/tlpkg/etc/tlrepo-from-minimals.pl b/Master/tlpkg/etc/tlrepo-from-minimals.pl index a6eb5eca56d..7dfec4dc34b 100644 --- a/Master/tlpkg/etc/tlrepo-from-minimals.pl +++ b/Master/tlpkg/etc/tlrepo-from-minimals.pl @@ -31,16 +31,20 @@ my %min_to_tl_arch = qw/freebsd i386-freebsd solaris-intel i386-solaris solaris-sparc sparc-solaris/; +my @scripts_to_link = qw/luatools mtxrun/; + my $help = 0; my $dist = "current"; my $dest = "web"; my $opt_luatex = 0; my $opt_modules = 0; -my $opt_context = 0; +my $opt_context = 1; my $opt_all = 0; my $opt_dontclean = 0; my $source = "."; my $opt_recreate = 0; +my $opt_nocontainers = 0; +my $upstreamsource = "$source/texlive"; TeXLive::TLUtils::process_logging_options(); GetOptions( @@ -53,6 +57,8 @@ GetOptions( "all" => \$opt_all, "dont-clean" => \$opt_dontclean, "recreate" => \$opt_recreate, + "nocontainers" => \$opt_nocontainers, + "upstream-source" => \$upstreamsource, "help|?" => \$help) or pod2usage(1); pod2usage(-exitstatus => 0, -verbose => 2) if $help; @@ -72,24 +78,33 @@ info("Using tmp dir $tmp\n"); if ($opt_context) { info("Copying files for ConTeXt ... "); system("mkdir -p $tmp/texmf-dist"); - system("cp -a $source/$dist/context/current/* $tmp/texmf-dist"); + system("cp -a $source/current/context/$dist/* $tmp/texmf-dist"); system("mkdir -p $tmp/tlpkg/tlpsrc"); - system("cp $source/tlpkg/tlpsrc/context.tlpsrc $tmp/tlpkg/tlpsrc"); - system("cp $source/tlpkg/tlpsrc/bin-context.tlpsrc $tmp/tlpkg/tlpsrc"); + get_from_ups("tlpkg/tlpsrc/context.tlpsrc", "$tmp/tlpkg/tlpsrc"); + get_from_ups("tlpkg/tlpsrc/bin-context.tlpsrc", "$tmp/tlpkg/tlpsrc"); for my $i (keys %min_to_tl_arch) { system("mkdir -p $tmp/bin/$min_to_tl_arch{$i}"); - system("cp -a $source/$dist/bin/context/$i/bin/* $tmp/bin/$min_to_tl_arch{$i}"); - if ($i eq "mswin") { - system("cp -a $tmp/bin/$min_to_tl_arch{$i}/mpost.exe $tmp/bin/$min_to_tl_arch{$i}/metafun.exe"); - } else { - system("ln -s mpost $tmp/bin/$min_to_tl_arch{$i}/metafun"); + system("cp -a $source/current/bin/context/$i/bin/* $tmp/bin/$min_to_tl_arch{$i}"); + # we have to fix the scripts to be links on unix systems + if ($i ne "mswin") { + for my $s (@scripts_to_link) { + system("ln -sf ../../texmf-dist/scripts/context/lua/$s.lua $tmp/bin/$min_to_tl_arch{$i}/$s"); + system("chmod 0755 $tmp/bin/$min_to_tl_arch{$i}/$s"); + } } + # metafun is not needed anymore, according to Mojca on the train + # to BachoTeX 2009 + #if ($i eq "mswin") { + # system("cp -a $tmp/bin/$min_to_tl_arch{$i}/mpost.exe $tmp/bin/$min_to_tl_arch{$i}/metafun.exe"); + #} else { + # system("ln -s mpost $tmp/bin/$min_to_tl_arch{$i}/metafun"); + #} # that is needed otherwise the dangling symlink is ignored - system("touch $tmp/bin/$min_to_tl_arch{$i}/mpost"); + #system("touch $tmp/bin/$min_to_tl_arch{$i}/mpost"); } - get_from_tug("texmf-dist/tex/mptopdf/config/mptopdf.ini", + get_from_ups("texmf-dist/tex/mptopdf/config/mptopdf.ini", "$tmp/texmf-dist/tex/mptopdf/config/mptopdf.ini"); - get_from_tug("texmf/fmtutil/format.context.cnf", + get_from_ups("texmf/fmtutil/format.context.cnf", "$tmp/texmf/fmtutil/format.context.cnf"); # # we want to create the .ini files for the used languages. We could @@ -98,10 +113,10 @@ if ($opt_context) { # # Copying would be: #for my $l (qw/cz de en fr it nl ro uk/) { - # get_from_tug("texmf-dist/tex/context/config/cont-$l.ini" + # get_from_ups("texmf-dist/tex/context/config/cont-$l.ini" # "$tmp/texmf-dist/tex/context/config/cont-$l.ini"); #} - for my $l (glob "$source/$dist/context/current/tex/context/base/cont-??.tex") { + for my $l (glob "$source/current/context/$dist/tex/context/base/cont-??.tex") { my $bn = TeXLive::TLUtils::basename($l); my $ll = $bn; $ll =~ s/cont-(..)\.tex/$1/; @@ -112,9 +127,9 @@ if ($opt_context) { if ($opt_modules) { info("Copying files for ConTeXt modules ... "); - system("cp -a $source/$dist/modules/all/* $tmp/texmf-dist"); + system("cp -a $source/current/modules/*/* $tmp/texmf-dist"); system("mkdir -p $tmp/tlpkg/tlpsrc"); - system("cp $source/tlpkg/tlpsrc/context-*.tlpsrc $tmp/tlpkg/tlpsrc"); + system("cp $source/texlive/tlpkg/tlpsrc/context-*.tlpsrc $tmp/tlpkg/tlpsrc"); # we didn't copy the context-letter and context-taspresent because # they are not present in the context minimals info("done\n"); @@ -124,7 +139,7 @@ if ($opt_luatex) { info("Copying files for luatex ... "); for my $i (keys %min_to_tl_arch) { system("mkdir -p $tmp/bin/$min_to_tl_arch{$i}"); - system("cp -a $source/$dist/bin/luatex/$i/bin/* $tmp/bin/$min_to_tl_arch{$i}"); + system("cp -a $source/current/bin/luatex/$i/bin/* $tmp/bin/$min_to_tl_arch{$i}"); if ($i eq "mswin") { system("cp -a $tmp/bin/$min_to_tl_arch{$i}/luatex.exe $tmp/bin/$min_to_tl_arch{$i}/pdfluatex.exe"); } else { @@ -132,8 +147,8 @@ if ($opt_luatex) { } } system("mkdir -p $tmp/tlpkg/tlpsrc"); - system("cp $source/tlpkg/tlpsrc/luatex.tlpsrc $tmp/tlpkg/tlpsrc"); - get_from_tug("texmf/fmtutil/format.luatex.cnf", + get_from_ups("tlpkg/tlpsrc/luatex.tlpsrc", "$tmp/tlpkg/tlpsrc"); + get_from_ups("texmf/fmtutil/format.luatex.cnf", "$tmp/texmf/fmtutil/format.luatex.cnf"); info("done\n"); } @@ -141,11 +156,11 @@ if ($opt_luatex) { # copy the tlpkg stuff info("Copying files for infrastructure ... "); -get_from_tug("tlpkg/TeXLive", "$tmp/tlpkg/TeXLive"); -get_from_tug("tlpkg/bin", "$tmp/tlpkg/bin"); -system("cp $source/tlpkg/tlpsrc/00texlive.config.tlpsrc $tmp/tlpkg/tlpsrc"); +get_from_ups("tlpkg/TeXLive", "$tmp/tlpkg/TeXLive"); +get_from_ups("tlpkg/bin", "$tmp/tlpkg/bin"); +get_from_ups("tlpkg/tlpsrc/00texlive.config.tlpsrc", "$tmp/tlpkg/tlpsrc"); # should we get that from TUG, too? -get_from_tug("tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc", +get_from_ups("tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc", "$tmp/tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc"); info("done\n"); @@ -155,7 +170,7 @@ system("perl $tmp/tlpkg/bin/tlpsrc2tlpdb -from-files -with-win-pattern-warning - info("done\n"); # get the current texlive.tlpdb from the tug server -get_from_tug("tlpkg/texlive.tlpdb", "$tmp/texlive-dist.tlpdb"); +get_from_ups("tlpkg/texlive.tlpdb", "$tmp/texlive-dist.tlpdb"); my $tltlpdb = TeXLive::TLPDB->new; $tltlpdb->from_file("$tmp/texlive-dist.tlpdb"); die("Cannot read original tlpdb from $tmp/texlive-dist.tlpdb") unless defined($tltlpdb); @@ -163,14 +178,27 @@ die("Cannot read original tlpdb from $tmp/texlive-dist.tlpdb") unless defined($t my $mitlpdb = TeXLive::TLPDB->new(root => "$tmp"); die("Cannot read minimals tlpdb from $tmp/tlpkg/texlive.tlpdb") unless defined($mitlpdb); +my $webtlpdb; +if (!$opt_recreate) { + $webtlpdb = TeXLive::TLPDB->new(root => "$dest"); +} +$webtlpdb = $mitlpdb unless defined($webtlpdb); + for my $p ($mitlpdb->list_packages) { next if ($p =~ m/^00texlive/); my $mitlp = $mitlpdb->get_package($p); die "Cannot get $p from minimals tlpdb" unless defined($mitlp); my $tltlp = $tltlpdb->get_package($p); die "Cannot get $p from original tlpdb" unless defined($tltlp); + my $webtlp = $webtlpdb->get_package($p); + die "Cannot get $p from web tlpdb" unless defined($webtlp); # fix the revision by adding 1 to the revision as currently shipped by TL - $mitlp->revision($tltlp->revision + 1); + # or my increasing the version from the minimals tlpdb + if ($webtlp->revision > $tltlp->revision) { + $mitlp->revision($webtlp->revision + 1); + } else { + $mitlp->revision($tltlp->revision + 1); + } # the following is actually replacing the original tlpobj $mitlpdb->add_tlpobj($mitlp); @@ -217,17 +245,18 @@ for my $p ($mitlpdb->list_packages) { $mitlpdb->save; -# create the containers -info("Creating containers ... "); -my $cmd = "perl $tmp/tlpkg/bin/tl-update-containers -location $dest -no-setup"; -$cmd .= " -recreate" if $opt_recreate; -system($cmd); -info("done\ņ"); - -if (!$opt_dontclean) { - info("Cleaning tmp directory (probably dangerous!!!) ... "); - system("rm -rf \"$tmp\""); - info ("done\n"); +if (!$opt_nocontainers) { + # create the containers + info("Creating containers ... "); + my $cmd = "perl $tmp/tlpkg/bin/tl-update-containers -location $dest -no-setup"; + $cmd .= " -recreate" if $opt_recreate; + system($cmd); + info("done\ņ"); + if (!$opt_dontclean) { + info("Cleaning tmp directory (probably dangerous!!!) ... "); + system("rm -rf \"$tmp\""); + info ("done\n"); + } } info("Finished!\n"); @@ -263,13 +292,15 @@ sub compare_lists { return(@diff); } -sub get_from_tug { +sub get_from_ups { my ($what, $dest) = @_; my $dn = TeXLive::TLUtils::dirname($dest); system("mkdir -p $dn"); - #system("rsync .... Master/$what $dest"); - info("WARNING: we are not actually fetching $what from tug, but copying!\n"); - system("cp -a /src/TeX/texlive-svn/Master/$what $dest"); + if (-r "tl-override/$what") { + system("cp -a tl-override/$what $dest"); + } else { + system("cp -a $source/texlive/$what $dest"); + } } ### Local Variables: |