diff options
Diffstat (limited to 'Build/source/texk/tests/TeXLive')
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLConfig.pm | 22 | ||||
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLUtils.pm | 28 |
2 files changed, 39 insertions, 11 deletions
diff --git a/Build/source/texk/tests/TeXLive/TLConfig.pm b/Build/source/texk/tests/TeXLive/TLConfig.pm index b4a9a4c6875..f285471bd2e 100644 --- a/Build/source/texk/tests/TeXLive/TLConfig.pm +++ b/Build/source/texk/tests/TeXLive/TLConfig.pm @@ -1,3 +1,4 @@ +# $Id: TLConfig.pm 62186 2022-02-26 17:51:21Z karl $ # TeXLive::TLConfig.pm - module exporting configuration values # Copyright 2007-2021 Norbert Preining # This file is licensed under the GNU General Public License version 2 @@ -6,7 +7,7 @@ use strict; use warnings; package TeXLive::TLConfig; -my $svnrev = '$Revision: 61229 $'; +my $svnrev = '$Revision: 62186 $'; my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown"; sub module_revision { return $_modulerevision; } @@ -40,6 +41,7 @@ BEGIN { $TeXLiveURL @CriticalPackagesList $CriticalPackagesRegexp + @InstallExtraRequiredPackages $WindowsMainMenuName $RelocPrefix $RelocTree @@ -60,7 +62,7 @@ BEGIN { # the year of our release, will be used in the location of the # network packages, and in menu names, and other places. -our $ReleaseYear = 2021; +our $ReleaseYear = 2022; # users can upgrade from this year to the current year; might be the # same as the release year, or any number of releases earlier. @@ -121,6 +123,16 @@ if ($^O =~ /^MSWin/i) { $CriticalPackagesRegexp = '^(texlive\.infra|tlperl\.win32$)'; } + +# Extra package that are required for installation and installed +# during the first run of the installer. +# texlive-scripts are necessary for mktexlsr, updmap, fmtutil, ... +# the installation cannot continue without those +our @InstallExtraRequiredPackages = qw/texlive-scripts kpathsea hyphen-base/; +if ($^O =~ /^MSWin/i) { + push @InstallExtraRequiredPackages, "luatex"; +} + # our @AcceptedFallbackDownloaders = qw/curl wget/; our %FallbackDownloaderProgram = ( 'wget' => 'wget', 'curl' => 'curl'); @@ -357,6 +369,12 @@ C<systems/texlive/tlnet/>. A list of all those packages which we do not update regularly since they are too central, currently texlive.infra and (for Windows) tlperl.win32. +=item C<@TeXLive::TLConfig::InstallExtraRequiredPackages> + +A list of packages that are required in addition to those from +C<@CriticalPackagesList> for the installer to be able to conclude +installation. + =item C<$TeXLive::TLConfig::RelocTree> The texmf-tree name that can be relocated, defaults to C<texmf-dist>. diff --git a/Build/source/texk/tests/TeXLive/TLUtils.pm b/Build/source/texk/tests/TeXLive/TLUtils.pm index 9bade5c9bb0..94ab56a3d0e 100644 --- a/Build/source/texk/tests/TeXLive/TLUtils.pm +++ b/Build/source/texk/tests/TeXLive/TLUtils.pm @@ -1,4 +1,4 @@ -# $Id: TLUtils.pm 61960 2022-02-09 21:43:08Z karl $ +# $Id: TLUtils.pm 62112 2022-02-20 22:57:45Z preining $ # TeXLive::TLUtils.pm - the inevitable utilities for TeX Live. # Copyright 2007-2022 Norbert Preining, Reinhard Kotucha # This file is licensed under the GNU General Public License version 2 @@ -8,7 +8,7 @@ use strict; use warnings; package TeXLive::TLUtils; -my $svnrev = '$Revision: 61960 $'; +my $svnrev = '$Revision: 62112 $'; my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown"; sub module_revision { return $_modulerevision; } @@ -73,7 +73,7 @@ C<TeXLive::TLUtils> - TeX Live infrastructure miscellany TeXLive::TLUtils::create_language_def($tlpdb,$dest,$localconf); TeXLive::TLUtils::create_language_lua($tlpdb,$dest,$localconf); TeXLive::TLUtils::time_estimate($totalsize, $donesize, $starttime) - TeXLive::TLUtils::install_packages($from_tlpdb,$media,$to_tlpdb,$what,$opt_src, $opt_doc)>); + TeXLive::TLUtils::install_packages($from_tlpdb,$media,$to_tlpdb,$what,$opt_src, $opt_doc, $retry, $continue); TeXLive::TLUtils::do_postaction($how, $tlpobj, $do_fileassocs, $do_menu, $do_desktop, $do_script); TeXLive::TLUtils::announce_execute_actions($how, @executes, $what); TeXLive::TLUtils::add_symlinks($root, $arch, $sys_bin, $sys_man, $sys_info); @@ -502,7 +502,7 @@ sub platform_desc { 'amd64-midnightbsd'=> 'MidnightBSD on x86_64', 'amd64-netbsd' => 'NetBSD on x86_64', 'armel-linux' => 'GNU/Linux on ARM', - 'armhf-linux' => 'GNU/Linux on ARMv6/RPi', + 'armhf-linux' => 'GNU/Linux on RPi(32-bit) and ARMv7', 'hppa-hpux' => 'HP-UX', 'i386-cygwin' => 'Cygwin on Intel x86', 'i386-darwin' => 'MacOSX legacy (10.5-10.6) on Intel x86', @@ -1579,7 +1579,7 @@ sub time_estimate { } -=item C<install_packages($from_tlpdb, $media, $to_tlpdb, $what, $opt_src, $opt_doc)> +=item C<install_packages($from_tlpdb, $media, $to_tlpdb, $what, $opt_src, $opt_doc, $retry, $continue)> Installs the list of packages found in C<@$what> (a ref to a list) into the TLPDB given by C<$to_tlpdb>. Information on files are taken from @@ -1588,12 +1588,17 @@ the TLPDB C<$from_tlpdb>. C<$opt_src> and C<$opt_doc> specify whether srcfiles and docfiles should be installed (currently implemented only for installation from uncompressed media). +If C<$retry> is trueish, retry failed packages a second time. + +If C<$continue> is trueish, installation failure of non-critical packages +will be ignored. + Returns 1 on success and 0 on error. =cut sub install_packages { - my ($fromtlpdb,$media,$totlpdb,$what,$opt_src,$opt_doc) = @_; + my ($fromtlpdb,$media,$totlpdb,$what,$opt_src,$opt_doc, $opt_retry, $opt_continue) = @_; my $container_src_split = $fromtlpdb->config_src_container; my $container_doc_split = $fromtlpdb->config_doc_container; my $root = $fromtlpdb->root; @@ -1651,7 +1656,7 @@ sub install_packages { # (and not installing from disk). if (!$fromtlpdb->install_package($package, $totlpdb)) { tlwarn("TLUtils::install_packages: Failed to install $package\n"); - if ($media eq "NET") { + if ($opt_retry) { tlwarn(" $package will be retried later.\n"); push @packs_again, $package; } else { @@ -1670,7 +1675,12 @@ sub install_packages { info("$infostr\n"); # return false if download failed again if (!$fromtlpdb->install_package($package, $totlpdb)) { - return 0; + if ($opt_continue) { + push @::installation_failed_packages, $package; + tlwarn("Failed to install $package, but continue anyway!\n"); + } else { + return 0; + } } $donesize += $tlpsizes{$package}; } @@ -4080,7 +4090,7 @@ END_NO_SSL # sub query_ctan_mirror_curl { my $max_trial = 3; - my $warg = (win32() ? "-w %{url_effective} " : "-w '%{url_effective}' "); + my $warg = (win32() ? '-w "%{url_effective}" ' : "-w '%{url_effective}' "); for (my $i = 1; $i <= $max_trial; $i++) { # -L -> follow redirects # -s -> silent |