From 3bfb3c1fbc17ce5f151761dc1f844e7d9525727c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 22 Nov 2019 18:45:33 +0000 Subject: doc,sync git-svn-id: svn://tug.org/texlive/trunk@52885 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/bin/tl-update-containers | 44 +++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'Master/tlpkg/bin') 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. =head1 DESCRIPTION -This program compares the packages in the C found -relative to this script (typicallly the development tree) with those in -the C found in the specified I (typically -the network distribution tree, tlnet). +This program compares the package revision numbers in the +C found in the C<-master> tree (typically the development +checkout from which this script is run) with those in the +C found in the specified I (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 is updated accordingly. If I does not have a C, the script aborts unless C<-recreate> is specified. -This is called from the L script, which is run nightly. +This is called from the L script. A separate script, +L, updates the revision numbers in C +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 -- cgit v1.2.3