summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2022-02-20 22:57:45 +0000
committerNorbert Preining <preining@logic.at>2022-02-20 22:57:45 +0000
commite874b7454a07abdce47e0bbbf753f477536960c4 (patch)
tree8365bbd8b64ac4d8f6be2a567b75b3f50f396e7c
parenta26cc705681ec09b66fa35efdfeba52332d82fcb (diff)
install-tl: add --debug-fakenet
git-svn-id: svn://tug.org/texlive/trunk@62112 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/install-tl9
-rw-r--r--Master/tlpkg/TeXLive/TLUtils.pm10
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<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, $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<install_packages($from_tlpdb, $media, $to_tlpdb, $what, $opt_src, $opt_doc, $continue)>
+=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,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 {