diff options
author | Karl Berry <karl@freefriends.org> | 2019-11-22 18:45:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-11-22 18:45:33 +0000 |
commit | 3bfb3c1fbc17ce5f151761dc1f844e7d9525727c (patch) | |
tree | 9c39b718377aff87b2788872ef39bc2142145bd7 /Master/tlpkg | |
parent | e2082e5d41210e95567367a2e36da1f3cafb9d05 (diff) |
doc,sync
git-svn-id: svn://tug.org/texlive/trunk@52885 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg')
-rwxr-xr-x | Master/tlpkg/bin/tl-update-containers | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/Master/tlpkg/bin/tl-update-containers b/Master/tlpkg/bin/tl-update-containers index 3ce3fcb31e4..38173526582 100755 --- a/Master/tlpkg/bin/tl-update-containers +++ b/Master/tlpkg/bin/tl-update-containers @@ -1,12 +1,15 @@ #!/usr/bin/env perl # $Id$ -# Copyright 2008-2018 Norbert Preining +# Copyright 2008-2019 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # -# Generate archive file(s) for the packages specified on the cmdline -# (doesn't really work, not documented), or all (except some critical -# packages) if none specified. +# Generate TeX Live container file(s) for all packages, +# except excluding (by default) critical infrastructure packages. +# +# Packages can be specified on the command line, but this is not +# advertised because it does not work reliably, and has never been +# necessary to fix. BEGIN { $vc_id = '$Id$'; @@ -251,9 +254,8 @@ sub main { } else { tlwarn("$0: Skipping critical $pkg\n"); - # we assume that the packages in @critical_pkg_list always - # exist, so if they are there then the number of updated packages - # should be reduced. + # we assume that the critical packages always exist, so reduce + # the number of updated packages. $count{'updated'}--; # the following line skips all other regexp checks on critical @@ -367,7 +369,7 @@ sub main { `rm $opt_containerdir/$op.*` unless $opt_dry; } } - # next we remove those containers which have been gone! + # next we remove containers for packages that have been deleted. REMOVEPACK: for my $op (@removepacks) { foreach my $manualpkgre (@critical_pkg_list) { # we match the initial string of the package name, so that all the @@ -407,15 +409,14 @@ sub main { return 0 if $opt_dry; - # STRANGE: It seems that calling -recreate did not save the - # docfiles into the texlive.tlpdb, no idea why. So update should now - # do that. + # checksum and signatures for tlpdb. $nettlpdb->save; system("$::progs{'xz'} --force -k -z $opt_location/tlpkg/texlive.tlpdb"); chomp (my $olddir = `pwd`); if (chdir("$opt_location/tlpkg/")) { xsystem("md5sum texlive.tlpdb > texlive.tlpdb.md5"); - xsystem("$TeXLive::TLConfig::ChecksumProgram texlive.tlpdb > texlive.tlpdb.$TeXLive::TLConfig::ChecksumExtension"); + xsystem("$TeXLive::TLConfig::ChecksumProgram texlive.tlpdb" + . ">texlive.tlpdb.$TeXLive::TLConfig::ChecksumExtension"); # remove signature, otherwise gpg breaks xsystem("rm -f texlive.tlpdb.$TeXLive::TLConfig::ChecksumExtension.asc"); if (! $opt_nosign) { @@ -432,7 +433,7 @@ sub main { foreach my $p ($nettlpdb->list_packages) { next if $p =~ /00texlive/; if (! -r "$opt_containerdir/$p.tar.xz") { - tlwarn("$0: container for $p is missing, strange\n"); + tlwarn("$0: container for $p is missing, should not happen!\n"); } } } @@ -440,12 +441,11 @@ sub main { return 0; } - __END__ =head1 NAME -tl-update-containers - create, update, or remove TL containers +tl-update-containers - create, update, remove TL containers =head1 SYNOPSIS @@ -513,10 +513,11 @@ pseudo-package C<00texlive.config>. See L<TeXLive::TLPDB>. =head1 DESCRIPTION -This program compares the packages in the C<texlive.tlpdb> found -relative to this script (typicallly the development tree) with those in -the C<texlive.tlpdb> found in the specified I<containerdir> (typically -the network distribution tree, tlnet). +This program compares the package revision numbers in the +C<texlive.tlpdb> found in the C<-master> tree (typically the development +checkout from which this script is run) with those in the +C<texlive.tlpdb> found in the specified I<containerdir> (typically the +network distribution tree, tlnet). If a local tlpdb package is newer (i.e., a higher revision number), the container(s) for the package are updated. When the package exists in @@ -527,7 +528,10 @@ in I<containerdir> is updated accordingly. If I<containerdir> does not have a C<texlive.tlpdb>, the script aborts unless C<-recreate> is specified. -This is called from the L<tl-update-tlnet> script, which is run nightly. +This is called from the L<tl-update-tlnet> script. A separate script, +L<tl-update-tlpdb>, updates the revision numbers in C<texlive.tlpdb> +based on the revisions of the individual files. (Both are run in the +nightly TL update cron, among plenty of others.) To reiterate the above: this program works by comparing revision numbers in the tlpdb files, not the contents of files. Thus, if the content of |