summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tl-update-containers
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-22 18:45:33 +0000
committerKarl Berry <karl@freefriends.org>2019-11-22 18:45:33 +0000
commit3bfb3c1fbc17ce5f151761dc1f844e7d9525727c (patch)
tree9c39b718377aff87b2788872ef39bc2142145bd7 /Master/tlpkg/bin/tl-update-containers
parente2082e5d41210e95567367a2e36da1f3cafb9d05 (diff)
doc,sync
git-svn-id: svn://tug.org/texlive/trunk@52885 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/tl-update-containers')
-rwxr-xr-xMaster/tlpkg/bin/tl-update-containers44
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