texlive[49884] Master: install-tl (do_postinst_stuff): die if

commits+karl at tug.org commits+karl at tug.org
Thu Jan 31 20:24:19 CET 2019

Revision: 49884
Author:   karl
Date:     2019-01-31 20:24:19 +0100 (Thu, 31 Jan 2019)
Log Message:
install-tl (do_postinst_stuff): die if mktexlsr fails, don't just warn.
(read_profile): check for [01] value for binary_* and collection_*,
and for nonempty selected_scheme and path variables.
doc (unrelated, sorry): use https://tug.org urls.
tl-try-install: use realpath to resolve $0, include --custom-bin example.
TLinfra+none.pro: omit installing x86_64-linux.

Modified Paths:

Added Paths:

Modified: trunk/Master/install-tl
--- trunk/Master/install-tl	2019-01-31 18:24:45 UTC (rev 49883)
+++ trunk/Master/install-tl	2019-01-31 19:24:19 UTC (rev 49884)
@@ -500,7 +500,7 @@
   if ($@) {
     # that didn't work out, so warn the user and continue with text mode
     tlwarn("Cannot load Tk, maybe something is missing and\n");
-    tlwarn("maybe http://tug.org/texlive/distro.html#perltk can help.\n");
+    tlwarn("maybe https://tug.org/texlive/distro.html#perltk can help.\n");
     tlwarn("Error message from loading Tk:\n");
     tlwarn("  $@\n");
     tlwarn("Continuing in text mode...\n");
@@ -794,7 +794,7 @@
  repository: $texlive_release
 Perhaps you need to use a different CTAN mirror?
 (For more, see the output of install-tl --help, especially the
- -repository option.  Online via http://tug.org/texlive/doc.)
+ -repository option.  Online via https://tug.org/texlive/doc.)
@@ -903,8 +903,7 @@
   if ($vars{'selected_scheme'} ne "scheme-infraonly"
       && $vars{'n_collections_selected'} <= 0) {
-    tlwarn("Nothing selected, nothing to install, exiting!\n");
-    exit 1;
+    tldie("$0: Nothing selected, nothing to install, exiting!\n");
   # maybe_make_ro tests for admin, local drive and NTFS before proceeding.
   # making the root read-only automatically locks everything below it.
@@ -942,7 +941,7 @@
         && ! -e "$vars{TEXDIR}/release-texlive.txt") {
       copy("$::installerdir/release-texlive.txt", "$vars{TEXDIR}/");
+    #
     # we need to do that dir, since we use the TLPDB->install_package which
@@ -1126,7 +1125,7 @@
   my $errcount = 0;
   if (!$opt_in_place) {
-    $errcount += wsystem("running", 'mktexlsr', "$TEXDIR/texmf-dist");
+    wsystem("running", 'mktexlsr', "$TEXDIR/texmf-dist") && exit(1);
   # we have to generate the various config file. That could be done with
@@ -1165,8 +1164,9 @@
-  $errcount += wsystem("running", "mktexlsr",
-                       $TEXMFSYSVAR, $TEXMFSYSCONFIG, "$TEXDIR/texmf-dist");
+  wsystem("running", "mktexlsr",
+                     $TEXMFSYSVAR, $TEXMFSYSCONFIG, "$TEXDIR/texmf-dist")
+  && exit(1);
   if (-x "$plat_bindir/updmap-sys$progext") {
     $errcount += run_postinst_cmd("updmap-sys --nohash");
@@ -1196,7 +1196,7 @@
   # now rerun mktexlsr for updmap-sys and tlmgr paper letter updates.
-  $errcount += wsystem("re-running", "mktexlsr", $TEXMFSYSVAR,$TEXMFSYSCONFIG);
+  wsystem("re-running", "mktexlsr", $TEXMFSYSVAR, $TEXMFSYSCONFIG) && exit(1);
   if (win32() and !$vars{'instopt_portable'} and !$opt_in_place) {
     if ($vars{'tlpdbopt_desktop_integration'} != 2) {
@@ -1763,7 +1763,7 @@
 You may want to try specifying an explicit or different CTAN mirror;
 see the information and examples for the -repository option at
 (or in the output of install-tl --help).
 You can also rerun the installer with -select-repository
@@ -2025,14 +2025,22 @@
         $vars{$_} = $pro{$_};
-    } elsif (defined($path_keys{$_})
-             || m/^(selected_scheme$|binary|collection-)/) {
+    } elsif (defined($path_keys{$_}) || m/^selected_scheme$/) {
       if ($pro{$_}) {
         $vars{$_} = $pro{$_};
+        delete($pro{$_});
       } else {
-        tldie("$0: Profile key must not be empty, quitting: $_\n");
+        tldie("$0: Quitting, profile key for path $_ must not be empty.\n");
-      delete($pro{$_});
+    } elsif (m/^(binary|collection-)/) {
+      if ($pro{$_} =~ /^[01]$/) {
+        $vars{$_} = $pro{$_};
+        delete($pro{$_});
+      } else {
+        tldie("$0: Quitting, profile key for $_ must be 0 or 1, not: $pro{$_}\n");
+      }
   #require Data::Dumper;
@@ -2126,6 +2134,7 @@
 # for later complete removal we want to save some options and values
 # into the local tlpdb:
 # - should links be set, and if yes, the destination (bin,man,info)
 sub save_options_into_tlpdb {
   # if we are told to adjust the repository *and* we are *not*
   # installing from the network already, we adjust the repository
@@ -2149,7 +2158,9 @@
   if ($opt_custom_bin) {
     push @archs, "custom";
+  if (! @archs) {
+    tldie("$0: No binary platform specified/available, quitting.\n");
+  }
   # only if we forced the platform we do save this option into the tlpdb
   if (defined($opt_force_arch)) {
     $localtlpdb->setting ("platform", $::_platform_);
@@ -2525,7 +2536,7 @@
   push @::welcome_arr, __("Welcome to TeX Live!");
   push @::welcome_arr, "\n";
   push @::welcome_arr, __(
-    "See %s/index.html for links to documentation.\nThe TeX Live web site (http://tug.org/texlive/) contains any updates and corrections. TeX Live is a joint project of the TeX user groups around the world; please consider supporting it by joining the group best for you. The list of groups is available on the web at http://tug.org/usergroups.html.",
+    "See %s/index.html for links to documentation.\nThe TeX Live web site (https://tug.org/texlive/) contains any updates and corrections. TeX Live is a joint project of the TeX user groups around the world; please consider supporting it by joining the group best for you. The list of groups is available on the web at https://tug.org/usergroups.html.",
   if (!win32()) {
     push @::welcome_arr, "\n";
@@ -2635,7 +2646,7 @@
 media, including over the network, from local hard disk, a DVD, etc. The
 installer works on all platforms supported by TeX Live. For information
 on initially downloading TeX Live, see
 The basic idea of TeX Live installation is for you to choose one of the
 top-level I<schemes>, each of which is defined as a different set of
@@ -2655,13 +2666,13 @@
 Post-installation configuration, package updates, and more, are
 handled through B<tlmgr>(1), the TeX Live Manager
 The most up-to-date version of this installer documentation is on the
-Internet at L<http://tug.org/texlive/doc/install-tl.html>.
+Internet at L<https://tug.org/texlive/doc/install-tl.html>.
 For the full documentation of TeX Live, see
 =head1 OPTIONS
@@ -2706,7 +2717,7 @@
 The C<perltk> and C<wizard> modules, and thus also when calling with
 bare C<-gui> (with no I<module>), require the Perl/Tk module
-(L<http://tug.org/texlive/distro.html#perltk>); if Perl/Tk is not
+(L<https://tug.org/texlive/distro.html#perltk>); if Perl/Tk is not
 available, installation continues in text mode.
 The tcl GUI requires Tcl/Tk. This is part of Mac OS and is often
@@ -2736,12 +2747,12 @@
 Specify the package repository to be used as the source of the
 installation. In short, this can be a directory name or a url using
 http(s), ftp, or scp. The documentation for C<tlmgr> has the details
 For installation, the default is to pick a mirror automatically, using
 L<http://mirror.ctan.org/systems/texlive/tlnet>; the chosen mirror is
 used for the entire download. You can use the special argument C<ctan>
-as an abbreviation for this. (See L<http://ctan.org> for more about CTAN
+as an abbreviation for this. (See L<https://ctan.org> for more about CTAN
 and its mirrors.)
 After installation is complete, you can use that installation as the
@@ -2778,8 +2789,8 @@
 C<custom> before doing each.
 For more information on custom binaries, see
-L<http://tug.org/texlive/custom-bin.html>.  For general information on
-building TeX Live, see L<http://tug.org/texlive/build.html>.
+L<https://tug.org/texlive/custom-bin.html>.  For general information on
+building TeX Live, see L<https://tug.org/texlive/build.html>.
 =item B<-debug-translation>
@@ -2796,7 +2807,7 @@
 =item B<-help>, B<--help>, B<-?>
 Display this help and exit. (This help is also on the web at
-L<http://tug.org/texlive/doc/install-tl.html>). Sometimes the C<perldoc>
+L<https://tug.org/texlive/doc/install-tl.html>). Sometimes the C<perldoc>
 and/or C<PAGER> programs on the system have problems, possibly resulting
 in control characters being literally output. This can't always be
 detected, but you can set the C<NOPERLDOC> environment variable and
@@ -2853,7 +2864,7 @@
 verified against a cryptographic signature. This option disables such
 verification.  The full description is in the Crytographic Verification
 section of the C<tlmgr> documentation, e.g.,
 =item B<-non-admin>
@@ -3031,7 +3042,7 @@
 written, the names above are always used.
 For more details on all of the above options, consult the TeX Live
-installation manual, linked from L<http://tug.org/texlive/doc>.
+installation manual, linked from L<https://tug.org/texlive/doc>.
@@ -3050,7 +3061,7 @@
 These override the normal choice of a download program; see the C<tlmgr>
 documentation, e.g.,
@@ -3099,7 +3110,7 @@
 This script and its documentation were written for the TeX Live
-distribution (L<http://tug.org/texlive>) and both are licensed under the
+distribution (L<https://tug.org/texlive>) and both are licensed under the
 GNU General Public License Version 2 or later.

Modified: trunk/Master/tlpkg/bin/tl-try-install
--- trunk/Master/tlpkg/bin/tl-try-install	2019-01-31 18:24:45 UTC (rev 49883)
+++ trunk/Master/tlpkg/bin/tl-try-install	2019-01-31 19:24:19 UTC (rev 49884)
@@ -1,4 +1,4 @@
-#!/bin/sh -x
 # $Id$
 # Try a TL installation with various profiles into /tmp/ki. Public domain.
@@ -11,7 +11,9 @@
-mydir=`cd \`dirname "$0"\` && pwd`  # Master/tlpkg/bin
+real0=`realpath $0`
+mydir=`cd \`dirname "$real0"\` && pwd`  # Master/tlpkg/bin
+echo "mydir=$mydir"
 Master=`cd $mydir/../.. && pwd`
 # don't let cwd or existing PATH interfere
@@ -18,16 +20,17 @@
 cd "$HOME" || exit 1
 PATH=/usr/local/bin:/usr/bin:/bin # /usr/local/bin for good perl on tug
-#Master=$tm #`cd $mydir/../.. && pwd`
-thisrel=/usr/local/texlive/`date +%Y` # not necessarily, but whatever
-prevrel=/usr/local/texlive/`expr "$(date +%Y)" - 1`
-pro=--profile=${1-$Master/tlpkg/dev/profiles/TLinfra.pro} #infra min ... full
-exec time $Master/install-tl $pro
+set -x
+pro=--profile=${1-$Master/tlpkg/dev/profiles/TLinfra+none.pro} #infra min ... full
+#exec time $Master/install-tl $pro
+exec time $Master/install-tl $cust $pro
 exec time $lp/install-tl $pro
 exec time $lp/install-tl $pro --repo ftp://ftp.cstug.cz/pub/tex/local/tlpretest
 exec time $ln/install-tl $pro --repo ctan #--in-place
+thisrel=/usr/local/texlive/`date +%Y` # not necessarily, but whatever
+prevrel=/usr/local/texlive/`expr "$(date +%Y)" - 1`
 exec time $thisrel/install-tl $pro
 exec time $prevrel/install-tl $pro
 exit $?

Added: trunk/Master/tlpkg/dev/profiles/TLinfra+none.pro
--- trunk/Master/tlpkg/dev/profiles/TLinfra+none.pro	                        (rev 0)
+++ trunk/Master/tlpkg/dev/profiles/TLinfra+none.pro	2019-01-31 19:24:19 UTC (rev 49884)
@@ -0,0 +1,17 @@
+# $Id$
+# infrastructure only, with no binary sets (assuming current x86_64-linux).
+# to test --custom-bin (set to bin/win32 directory to exercise still
+# more cases), and as a pathological case in itself.
+selected_scheme scheme-infraonly
+TEXDIR /tmp/ki
+TEXMFHOME /tmp/ki/user/home
+TEXMFLOCAL /tmp/ki/texmf-local
+TEXMFSYSCONFIG /tmp/ki/sys/config
+TEXMFSYSVAR /tmp/ki/sys/var
+TEXMFCONFIG /tmp/ki/user/config
+TEXMFVAR /tmp/ki/user/var
+option_doc 0
+option_fmt 0
+option_src 0
+option_adjustrepo 0
+binary_x86_64-linux 0

Property changes on: trunk/Master/tlpkg/dev/profiles/TLinfra+none.pro
Added: svn:eol-style
## -0,0 +1 ##
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision
\ No newline at end of property

More information about the tex-live-commits mailing list