texlive[69327] Master: Set HTTPS_CA_FILE for LWP to work on global

commits+preining at tug.org commits+preining at tug.org
Sun Jan 7 12:10:52 CET 2024


Revision: 69327
          https://tug.org/svn/texlive?view=revision&revision=69327
Author:   preining
Date:     2024-01-07 12:10:51 +0100 (Sun, 07 Jan 2024)
Log Message:
-----------
Set HTTPS_CA_FILE for LWP to work on global cert-free systems

Modified Paths:
--------------
    trunk/Master/install-tl
    trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
    trunk/Master/tlpkg/TeXLive/TLDownload.pm
    trunk/Master/tlpkg/TeXLive/TLUtils.pm

Modified: trunk/Master/install-tl
===================================================================
--- trunk/Master/install-tl	2024-01-07 04:37:44 UTC (rev 69326)
+++ trunk/Master/install-tl	2024-01-07 11:10:51 UTC (rev 69327)
@@ -914,7 +914,9 @@
   } elsif ($media eq "NET") {
     info("Distribution: net  (downloading)\n");
     info("Using URL: $TeXLiveURL\n");
-    TeXLive::TLUtils::setup_persistent_downloads() if $opt_persistent_downloads;
+    TeXLive::TLUtils::setup_persistent_downloads(
+      "$::installerdir/tlpkg/installer/curl/curl-ca-bundle.crt"
+    ) if $opt_persistent_downloads;
   } else {
     info("Distribution: $media\n");
   }

Modified: trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl	2024-01-07 04:37:44 UTC (rev 69326)
+++ trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl	2024-01-07 11:10:51 UTC (rev 69327)
@@ -690,7 +690,9 @@
   # if we are asked to use persistent connections try to start it here
   ddebug("tlmgr:main: do persistent downloads = $opts{'persistent-downloads'}\n");
   if ($opts{'persistent-downloads'}) {
-    TeXLive::TLUtils::setup_persistent_downloads() ;
+    TeXLive::TLUtils::setup_persistent_downloads(
+      "$Master/tlpkg/installer/curl/curl-ca-bundle.crt"
+    ) ;
   }
   if (!defined($::tldownload_server)) {
     debug("tlmgr:main: ::tldownload_server not defined\n");

Modified: trunk/Master/tlpkg/TeXLive/TLDownload.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLDownload.pm	2024-01-07 04:37:44 UTC (rev 69326)
+++ trunk/Master/tlpkg/TeXLive/TLDownload.pm	2024-01-07 11:10:51 UTC (rev 69327)
@@ -40,10 +40,11 @@
 sub new
 {
   my $class = shift;
+  my %params = @_;
   my $self = {};
   $self->{'initcount'} = 0;
   bless $self, $class;
-  $self->reinit();
+  $self->reinit(defined($params{'certificates'}) ? $params{'certificates'} : "");
   return $self;
 }
 
@@ -52,6 +53,7 @@
 
 sub reinit {
   my $self = shift;
+  my $certs = shift;
   
   # Irritatingly, as of around version 6.52, when env_proxy is set, LWP
   # started unconditionally complaining if the environment contains
@@ -68,6 +70,13 @@
     @env_proxy = ("env_proxy", 1);
   }
   #
+  # Set HTTPS_CA_FILE to the TL provided certificate bundle
+  # for systems that don't have a system-wide certificate bundle
+  # in particular MacOS.
+  if ((! exists $ENV{'HTTPS_CA_FILE'}) && $certs) {
+    $ENV{'HTTPS_CA_FILE'} = $certs
+  }
+  #
   my $ua = LWP::UserAgent->new(
     agent => "texlive/lwp",
     # use LWP::ConnCache, and keep 1 connection open

Modified: trunk/Master/tlpkg/TeXLive/TLUtils.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLUtils.pm	2024-01-07 04:37:44 UTC (rev 69326)
+++ trunk/Master/tlpkg/TeXLive/TLUtils.pm	2024-01-07 11:10:51 UTC (rev 69327)
@@ -4229,6 +4229,7 @@
 =cut
 
 sub setup_persistent_downloads {
+  my $certs = shift;
   if ($TeXLive::TLDownload::net_lib_avail) {
     ddebug("setup_persistent_downloads has net_lib_avail set\n");
     if ($::tldownload_server) {
@@ -4236,10 +4237,10 @@
         debug("stop retrying to initialize LWP after 10 failures\n");
         return 0;
       } else {
-        $::tldownload_server->reinit();
+        $::tldownload_server->reinit(certificates => $certs);
       }
     } else {
-      $::tldownload_server = TeXLive::TLDownload->new;
+      $::tldownload_server = TeXLive::TLDownload->new(certificates => $certs);
     }
     if (!defined($::tldownload_server)) {
       ddebug("TLUtils:setup_persistent_downloads: failed to get ::tldownload_server\n");



More information about the tex-live-commits mailing list.