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
          http://tug.org/svn/texlive?view=revision&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:
--------------
    trunk/Master/install-tl
    trunk/Master/tlpkg/bin/tl-try-install

Added Paths:
-----------
    trunk/Master/tlpkg/dev/profiles/TLinfra+none.pro

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.)
 =============================================================================
 END_MISMATCH
   }
@@ -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}/");
     }
-
+    #
     calc_depends();
     save_options_into_tlpdb();
     # 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 @@
     "$TEXMFSYSVAR/tex/generic/config/language.dat.lua",
     "$TEXMFLOCAL/tex/generic/config/language-local.dat.lua");
 
-  $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
-http://tug.org/texlive/doc/install-tl.html
+https://tug.org/texlive/doc/install-tl.html
 (or in the output of install-tl --help).
 
 You can also rerun the installer with -select-repository
@@ -2025,14 +2025,22 @@
         $vars{$_} = $pro{$_};
         delete($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.",
     $::vars{'TEXDIR'});
   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
-L<http://tug.org/texlive/acquire.html>.
+L<https://tug.org/texlive/acquire.html>.
 
 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
-(L<http://tug.org/texlive/tlmgr.html>).
+(L<https://tug.org/texlive/tlmgr.html>).
 
 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
-L<http://tug.org/texlive/doc>.
+L<https://tug.org/texlive/doc>.
 
 
 =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
-(L<http://tug.org/texlive/doc/tlmgr.html#OPTIONS>).
+(L<https://tug.org/texlive/doc/tlmgr.html#OPTIONS>).
 
 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.,
-L<http://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION>
+L<https://tug.org/texlive/doc/tlmgr.html#CRYPTOGRAPHIC-VERIFICATION>
 
 =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>.
 
 
 =head1 ENVIRONMENT VARIABLES
@@ -3050,7 +3061,7 @@
 
 These override the normal choice of a download program; see the C<tlmgr>
 documentation, e.g.,
-L<http://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES>.
+L<https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES>.
 
 =item C<TEXLIVE_INSTALL_ENV_NOCHECK>
 
@@ -3099,7 +3110,7 @@
 =head1 AUTHORS AND COPYRIGHT
 
 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.
 
 $Id$

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
+#!/bin/sh
 # $Id$
 # Try a TL installation with various profiles into /tmp/ki. Public domain.
 
@@ -11,7 +11,9 @@
 #TEXLIVE_INSTALL_ENV_NOCHECK=1; export TEXLIVE_INSTALL_ENV_NOCHECK
 #TEXLIVE_INSTALL_NO_WELCOME=1; export TEXLIVE_INSTALL_NO_WELCOME
 
-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
+cust=--custom-bin=$wb
+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 ##
+native
\ 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