diff options
author | Karl Berry <karl@freefriends.org> | 2022-03-06 22:54:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-03-06 22:54:07 +0000 |
commit | b7504722a871105077970aa70b1196ab28abd171 (patch) | |
tree | 9c549017040ad4590e4acb34a260d301a32efeec | |
parent | d14659024262ce1947535afbdec7b3fffa5620fa (diff) |
irrelevant sync (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62485 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLConfig.pm | 20 | ||||
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLUtils.pm | 26 |
2 files changed, 37 insertions, 9 deletions
diff --git a/Build/source/texk/tests/TeXLive/TLConfig.pm b/Build/source/texk/tests/TeXLive/TLConfig.pm index b4a9a4c6875..87de81470a4 100644 --- a/Build/source/texk/tests/TeXLive/TLConfig.pm +++ b/Build/source/texk/tests/TeXLive/TLConfig.pm @@ -1,3 +1,4 @@ +# $Id: TLConfig.pm 62096 2022-02-20 13:57:50Z preining $ # 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: 62096 $'; 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 @@ -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..0f128ce8bb9 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); @@ -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 |