diff options
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/README | 10 | ||||
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLConfig.pm | 22 | ||||
-rw-r--r-- | Build/source/texk/tests/TeXLive/TLUtils.pm | 28 |
3 files changed, 45 insertions, 15 deletions
diff --git a/Build/source/README b/Build/source/README index c79f740ddba..388fbcd2948 100644 --- a/Build/source/README +++ b/Build/source/README @@ -34,15 +34,17 @@ aarch64-linux: armhf-linux: Raspbian/Raspberry Pi OS (Debian Buster) - gcc (Raspbian 8.3.0-6+rpi1) 8.3.0 + gcc version 10.2.1 20210110 (Raspbian 10.2.1-6+rpi1) ./Build --enable-xindy CLISP=${BUILD_ROOT_DIR}/clisp/clisp-build/clisp} + armhf-linux binaries are created and tested on RPi; + they run on RPi, as well as ARMv7 CPUs, but are untested on non-RPi + ARMv6 machines. i386-cygwin, x86_64-cygwin: gcc-10.2.0, cygwin-3.1.7 TL_CONFIGURE_ARGS="--enable-xindy --enable-shared CLISP=/path/to/clisp.exe LDFLAGS='-Wl,--no-insert-timestamp -Wl,--stack,0x800000'" \ ./Build - i386-freebsd, amd64-freebsd: Built on contextgarden, see below. FreeBSD 11.4 @@ -50,7 +52,7 @@ i386-freebsd, amd64-freebsd: i386-linux: see travis below. i386-netbsd, amd64-netbsd: - NetBSD/amd64 9.1 + NetBSD/amd64 9.2 gcc version 7.5.0 (nb4 20200810) TL_MAKE=gmake CC=gcc CXX=g++ \ CFLAGS=-D_NETBSD_SOURCE \ @@ -80,7 +82,7 @@ x86_64-linux, x86_64-linuxmusl: CentOS 7 Docker image with musl libc 1.1.5, plus gcc10: yum -y install centos-release-scl-rh - yum -y install devtoolset-10-gcc-c++ + yum -y install devtoolset-9-gcc-c++ yum install -y fontconfig-devel libX11-devel libXmu-devel libXaw-devel Binaries are taken from the CI testing via github; see the source/.github/* files for details on how to build, 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 |