From e874b7454a07abdce47e0bbbf753f477536960c4 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 20 Feb 2022 22:57:45 +0000 Subject: install-tl: add --debug-fakenet git-svn-id: svn://tug.org/texlive/trunk@62112 c570f23f-e606-0410-a88d-b1316a301751 --- Master/install-tl | 9 +++++++-- Master/tlpkg/TeXLive/TLUtils.pm | 10 ++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Master/install-tl b/Master/install-tl index 9206d8c06af..9ef35051bcb 100755 --- a/Master/install-tl +++ b/Master/install-tl @@ -305,6 +305,8 @@ $::opt_select_repository = 0; our $opt_in_place = 0; # don't set this to a value, see below my $opt_verify_downloads; +# debug options +my $opt_debug_fakenet = 0; # show all options even those not relevant for that arch $::opt_all_options = 0; @@ -369,6 +371,7 @@ GetOptions( "continue" => \$opt_continue, "custom-bin=s" => \$opt_custom_bin, "debug-translation" => \$::debug_translation, + "debug-fakenet" => \$opt_debug_fakenet, "fancyselector", "force-platform|force-arch=s" => \$opt_force_arch, "gui:s" => \$opt_gui, @@ -2153,6 +2156,8 @@ sub do_install_packages { } @criticalwhat = sort @criticalwhat; @what = sort @what; + # determine retrial behavior + my $retry = $opt_debug_fakenet || ($media eq "NET"); # temporary unset the localtlpdb options responsible for # running all kind of postactions, since install_packages # would call them without the PATH already set up @@ -2163,12 +2168,12 @@ sub do_install_packages { if (!install_packages($tlpdb,$media,$localtlpdb,\@criticalwhat, $vars{'tlpdbopt_install_srcfiles'}, $vars{'tlpdbopt_install_docfiles'}, - 0) + $retry, 0) || !install_packages($tlpdb,$media,$localtlpdb,\@what, $vars{'tlpdbopt_install_srcfiles'}, $vars{'tlpdbopt_install_docfiles'}, - $opt_continue)) { + $retry, $opt_continue)) { my $profile_name = "installation.profile"; create_profile($profile_name); tlwarn("Installation failed.\n"); diff --git a/Master/tlpkg/TeXLive/TLUtils.pm b/Master/tlpkg/TeXLive/TLUtils.pm index 2cd96368c4a..33b46665785 100644 --- a/Master/tlpkg/TeXLive/TLUtils.pm +++ b/Master/tlpkg/TeXLive/TLUtils.pm @@ -73,7 +73,7 @@ C - 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, $continue); + 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 +=item C 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,6 +1588,8 @@ 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. @@ -1596,7 +1598,7 @@ Returns 1 on success and 0 on error. =cut sub install_packages { - my ($fromtlpdb,$media,$totlpdb,$what,$opt_src,$opt_doc, $opt_continue) = @_; + 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; @@ -1654,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 { -- cgit v1.2.3