texlive[53075] Master: work on win64 support

commits+preining at tug.org commits+preining at tug.org
Tue Dec 10 07:17:17 CET 2019


Revision: 53075
          http://tug.org/svn/texlive?view=revision&revision=53075
Author:   preining
Date:     2019-12-10 07:17:16 +0100 (Tue, 10 Dec 2019)
Log Message:
-----------
work on win64 support

Modified Paths:
--------------
    trunk/Master/install-tl
    trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
    trunk/Master/texmf-dist/scripts/texlive/uninstall-win32.pl
    trunk/Master/tlpkg/TeXLive/TLConfig.pm
    trunk/Master/tlpkg/TeXLive/TLPDB.pm
    trunk/Master/tlpkg/TeXLive/TLPSRC.pm
    trunk/Master/tlpkg/TeXLive/TLUtils.pm
    trunk/Master/tlpkg/TeXLive/TLWinGoo.pm
    trunk/Master/tlpkg/bin/tl-compare-tlpdbs
    trunk/Master/tlpkg/bin/tl-update-4ht
    trunk/Master/tlpkg/bin/tl-update-bindir
    trunk/Master/tlpkg/bin/tl-update-install-pkg
    trunk/Master/tlpkg/bin/tl-update-nsis
    trunk/Master/tlpkg/bin/tl-update-tlcritical
    trunk/Master/tlpkg/installer/install-menu-perltk.pl
    trunk/Master/tlpkg/installer/install-menu-text.pl
    trunk/Master/tlpkg/installer/tl-cmd.bat
    trunk/Master/tlpkg/installer/tl-tray-menu.ini
    trunk/Master/tlpkg/libexec/ctan2tds

Modified: trunk/Master/install-tl
===================================================================
--- trunk/Master/install-tl	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/install-tl	2019-12-10 06:17:16 UTC (rev 53075)
@@ -1350,7 +1350,8 @@
   my $ret = 0;
   info ("running path adjustment actions\n");
   if (win32()) {
-    TeXLive::TLUtils::w32_add_to_path($vars{'TEXDIR'}.'/bin/win32',
+    my $subpath = win32() ? "win32" : "win64";
+    TeXLive::TLUtils::w32_add_to_path($vars{'TEXDIR'} . $subpath,
       $vars{'tlpdbopt_w32_multi_user'});
     broadcast_env();
   } else {
@@ -1693,6 +1694,11 @@
     $install{"tlgs.win32"} = 1;
     $install{"tlpsv.win32"} = 1;
   }
+  if (grep(/^win64$/, at archs)) {
+    $install{"tlperl.win64"} = 1;
+    $install{"tlgs.win64"} = 1;
+    $install{"tlpsv.win64"} = 1;
+  }
 
   # loop over all the packages until it is getting stable
   my $changed = 1;
@@ -1719,12 +1725,15 @@
           foreach $a (@archs) {
             $install{"$foo.$a"} = 1 if defined($tlpdb->get_package("$foo.$a"));
           }
-        } elsif ($p_dep =~ m/^(.*)\.win32$/) {
+        } elsif ($p_dep =~ m/^(.*)\.win(32|64)$/) {
           # a win32 package should *only* be installed if we are installing
           # the win32 arch
           if (grep(/^win32$/, at archs)) {
             $install{$p_dep} = 1;
           }
+          if (grep(/^win64$/, at archs)) {
+            $install{$p_dep} = 1;
+          }
         } else {
           $install{$p_dep} = 1;
         }
@@ -1881,7 +1890,7 @@
       ++$vars{'n_collections_selected'};
     }
   }
-  if ($vars{"binary_win32"}) {
+  if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
     $vars{"collection-wintools"} = 1;
     ++$vars{'n_collections_selected'};
   }
@@ -2436,7 +2445,7 @@
   # set to 1 only those which are required by the scheme
   # since now scheme asks for collection-wintools we set its vars value
   # to 1 in case we are installing win32 binaries
-  if ($vars{"binary_win32"}) {
+  if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
     $vars{"collection-wintools"} = 1;
     ++$vars{'n_collections_selected'};
   }

Modified: trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl	2019-12-10 06:17:16 UTC (rev 53075)
@@ -54,7 +54,11 @@
     $Master =~ s!\\!/!g;
     $Master =~ s![^/]*$!../../..!
       unless ($Master =~ s!/texmf-dist/scripts/texlive/tlmgr\.pl$!!i);
-    $bindir = "$Master/bin/win32";
+    if (win32_32()) {
+      $bindir = "$Master/bin/win32";
+    } else {
+      $bindir = "$Master/bin/win64";
+    }
     $kpsewhichname = "kpsewhich.exe";
     # path already set by wrapper batchfile
   } else {
@@ -105,7 +109,7 @@
 use TeXLive::TLDownload;
 use TeXLive::TLConfFile;
 use TeXLive::TLCrypto;
-TeXLive::TLUtils->import(qw(member info give_ctan_mirror win32 dirname
+TeXLive::TLUtils->import(qw(member info give_ctan_mirror win32 win32_32 dirname
                             mkdirhier copy debug tlcmp repository_to_array));
 use TeXLive::TLPaper;
 
@@ -814,7 +818,8 @@
   if ($opts{"dry-run"}) {
     $ret = $F_OK;
     $out = "";
-  } elsif (win32() && (! -r "$Master/bin/win32/luatex.dll")) {
+  } elsif ((win32_32() && (! -r "$Master/bin/win32/luatex.dll")) ||
+           (win32_64() && (! -r "$Master/bin/win64/luatex.dll"))) {
     # deal with the case where only scheme-infrastructure is installed
     # on Windows, thus no luatex.dll is available and the wrapper cannot be started
     tlwarn("Cannot run wrapper due to missing luatex.dll\n");
@@ -1477,7 +1482,7 @@
   if ($what =~ m/^add$/i) {
     if (win32()) {
       $ret |= TeXLive::TLUtils::w32_add_to_path(
-        $localtlpdb->root . "/bin/win32",
+        $localtlpdb->root . win32_32() ? "/bin/win32" : "/bin/win64",
         $winadminmode);
       $ret |= TeXLive::TLWinGoo::broadcast_env();
     } else {
@@ -1490,7 +1495,7 @@
   } elsif ($what =~ m/^remove$/i) {
     if (win32()) {
       $ret |= TeXLive::TLUtils::w32_remove_from_path(
-        $localtlpdb->root . "/bin/win32",
+        $localtlpdb->root . win32_32() ? "/bin/win32" : "/bin/win64",
         $winadminmode);
       $ret |= TeXLive::TLWinGoo::broadcast_env();
     } else {
@@ -4808,6 +4813,9 @@
   my @extra_w32_packs = qw/tlperl.win32 tlgs.win32 tlpsv.win32
                            collection-wintools
                            dviout.win32 wintools.win32/;
+  my @extra_w64_packs = qw/tlperl.win64 tlgs.win64 tlpsv.win64
+                           collection-wintools
+                           dviout.win64 wintools.win64/;
   if ($^O =~ /^MSWin/i) {
     warn("action `platform' not supported on Windows\n");
     # return an error here so that we don't go into post-actions
@@ -4879,14 +4887,19 @@
         }
       }
     }
+    my @extrapacks;
     if (TeXLive::TLUtils::member('win32', @todoarchs)) {
-      # install the necessary w32 stuff
-      for my $p (@extra_w32_packs) {
-        info("install: $p\n");
-        if (!$opts{'dry-run'}) {
-          if (! $remotetlpdb->install_package($p, $localtlpdb)) {
-            $ret |= $F_ERROR;
-          }
+      push @extrapacks, @extra_w32_packs;
+    }
+    if (TeXLive::TLUtils::member('win64', @todoarchs)) {
+      push @extrapacks, @extra_w64_packs;
+    }
+    # install the necessary w32 stuff
+    for my $p (@extrapacks) {
+      info("install: $p\n");
+      if (!$opts{'dry-run'}) {
+        if (! $remotetlpdb->install_package($p, $localtlpdb)) {
+          $ret |= $F_ERROR;
         }
       }
     }
@@ -4943,6 +4956,12 @@
         $localtlpdb->remove_package($p) if (!$opts{"dry-run"});
       }
     }
+    if (TeXLive::TLUtils::member('win64', @todoarchs)) {
+      for my $p (@extra_w64_packs) {
+        info("remove: $p\n");
+        $localtlpdb->remove_package($p) if (!$opts{"dry-run"});
+      }
+    }
     if (!$opts{"dry-run"}) {
       # try to remove bin/$a dirs
       for my $a (@todoarchs) {
@@ -5320,7 +5339,7 @@
 
   # if we are on W32, die (no find).  
   my $arch = $localtlpdb->platform();
-  if ($arch eq "win32") {
+  if (($arch eq "win32") || ($arch eq "win64")) {
     tldie("$prg: sorry, cannot check this on Windows.\n");
   }
 
@@ -5837,7 +5856,7 @@
     # For each package, check that it is a dependency of some collection.
     if (! exists $coll_deps{$pkg}) {
       # Except that schemes and our ugly Windows packages are ok.
-      push (@no_dep, $pkg) unless $pkg =~/^scheme-|\.win32$/;
+      push (@no_dep, $pkg) unless $pkg =~/^scheme-|\.win(32|64)$/;
     }
 
     # For each dependency, check that we have a package.

Modified: trunk/Master/texmf-dist/scripts/texlive/uninstall-win32.pl
===================================================================
--- trunk/Master/texmf-dist/scripts/texlive/uninstall-win32.pl	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/texmf-dist/scripts/texlive/uninstall-win32.pl	2019-12-10 06:17:16 UTC (rev 53075)
@@ -55,7 +55,8 @@
   `rmdir /s /q "$menupath\\$TeXLive::TLConfig::WindowsMainMenuName" 2>nul`;
 
   # remove bindir from PATH settings
-  TeXLive::TLUtils::w32_remove_from_path("$Master/bin/win32", 
+  TeXLive::TLUtils::w32_remove_from_path(
+    TeXLive::TLUtils::win32_32 ? "$Master/bin/win32" : "$Master/bin/win64", 
     $localtlpdb->option("w32_multi_user"));
 
   # unsetenv_reg("TEXBINDIR");

Modified: trunk/Master/tlpkg/TeXLive/TLConfig.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLConfig.pm	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/TeXLive/TLConfig.pm	2019-12-10 06:17:16 UTC (rev 53075)
@@ -110,7 +110,8 @@
 our $CriticalPackagesRegexp = '^(texlive\.infra)';
 if ($^O =~ /^MSWin/i) {
   push (@CriticalPackagesList, "tlperl.win32");
-  $CriticalPackagesRegexp = '^(texlive\.infra|tlperl\.win32$)';
+  push (@CriticalPackagesList, "tlperl.win64");
+  $CriticalPackagesRegexp = '^(texlive\.infra|tlperl\.win(32|64)$)';
 }
 
 #
@@ -345,7 +346,7 @@
 =item C<@TeXLive::TLConfig::CriticalPackagesRegexp>
 
 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.
+are too central, currently texlive.infra and (for Windows) tlperl.win(32|64).
 
 =item C<$TeXLive::TLConfig::RelocTree>
 

Modified: trunk/Master/tlpkg/TeXLive/TLPDB.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLPDB.pm	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/TeXLive/TLPDB.pm	2019-12-10 06:17:16 UTC (rev 53075)
@@ -918,6 +918,12 @@
           if (grep(/^win32$/, at archs)) {
             $install{$p_dep} = 0;
           }
+        } elsif ($p_dep =~ m/^(.*)\.win64$/) {
+          # a win32 package should *only* be installed if we are installing
+          # the win64 arch
+          if (grep(/^win64$/, at archs)) {
+            $install{$p_dep} = 0;
+          }
         } else {
           $install{$p_dep} = 0 unless $only_arch;
         }

Modified: trunk/Master/tlpkg/TeXLive/TLPSRC.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLPSRC.pm	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/TeXLive/TLPSRC.pm	2019-12-10 06:17:16 UTC (rev 53075)
@@ -129,7 +129,7 @@
     # - normal texlive specific packages: ^texlive.*\..*$
     # - configuration texlive specific packages: ^00texlive.*\..*$
     if ($line =~ /^name\s/) {
-      $line =~ /^name\s+([-\w]+(\.win32)?|(00)?texlive\..*)$/;
+      $line =~ /^name\s+([-\w]+(\.win(32|64))?|(00)?texlive\..*)$/;
       $foundnametag 
         && die "$srcfile:$lineno: second name directive not allowed: $line"
                . "(have $name)\n";
@@ -423,6 +423,9 @@
     if ($finalp =~ m! bin/win32/!) {
       @todoarchs = qw/win32/;
     }
+    if ($finalp =~ m! bin/win64/!) {
+      @todoarchs = qw/win64/;
+    }
     # now @todoarchs contains only those archs for which we want
     # to match the pattern
     foreach my $arch (@todoarchs) {
@@ -429,7 +432,7 @@
       # get only those files matching the pattern
       my @archfiles = $tltree->get_matching_files('bin',$finalp, $pkgname, $arch);
       if (!@archfiles) {
-        if (($arch ne "win32") || defined($::tlpsrc_pattern_warn_win)) {
+        if ((($arch ne "win32") && ($arch ne "win64")) || defined($::tlpsrc_pattern_warn_win)) {
           tlwarn("$self->{name} ($arch): no hit on binpattern $finalp\n");
         }
       }
@@ -466,7 +469,7 @@
       # get only those files matching the pattern
       my @archfiles = $tltree->get_matching_files('bin', $finalp, $pkgname, $arch);
       if (!@archfiles) {
-        if (($arch ne "win32") || defined($::tlpsrc_pattern_warn_win)) {
+        if ((($arch ne "win32") && ($arch ne "win64")) || defined($::tlpsrc_pattern_warn_win)) {
           tlwarn("$self->{name} ($arch): no hit on negative binpattern $finalp\n")
             unless $::tlpsrc_pattern_no_warn_negative;
             # see comments in libexec/place script.

Modified: trunk/Master/tlpkg/TeXLive/TLUtils.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLUtils.pm	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/TeXLive/TLUtils.pm	2019-12-10 06:17:16 UTC (rev 53075)
@@ -25,6 +25,8 @@
   TeXLive::TLUtils::platform();
   TeXLive::TLUtils::platform_name($canonical_host);
   TeXLive::TLUtils::platform_desc($platform);
+  TeXLive::TLUtils::win32_32();
+  TeXLive::TLUtils::win32_64();
   TeXLive::TLUtils::win32();
   TeXLive::TLUtils::unix();
 
@@ -217,7 +219,7 @@
   );
   @EXPORT = qw(setup_programs download_file process_logging_options
                tldie tlwarn info log debug ddebug dddebug debug_hash
-               win32 xchdir xsystem run_cmd system_pipe sort_archs);
+               win32 win32_32 win32_64 xchdir xsystem run_cmd system_pipe sort_archs);
 }
 
 use Cwd;
@@ -251,6 +253,7 @@
   unless (defined $::_platform_) {
     if ($^O =~ /^MSWin/i) {
       $::_platform_ = "win32";
+      # TODO make sure we check how to detect win64!!!
     } else {
       my $config_guess = "$::installerdir/tlpkg/installer/config.guess";
 
@@ -409,7 +412,8 @@
     'sparc-linux'      => 'GNU/Linux on Sparc',
     'sparc-solaris'    => 'Solaris on Sparc',
     'universal-darwin' => 'MacOSX universal binaries',
-    'win32'            => 'Windows',
+    'win32'            => 'Windows 32bit',
+    'win64'            => 'Windows 64bit',
     'x86_64-cygwin'    => 'Cygwin on x86_64',
     'x86_64-darwin'       => 'MacOSX current (10.12-) on x86_64',
     'x86_64-darwinlegacy' => 'MacOSX legacy (10.6-) on x86_64',
@@ -431,9 +435,44 @@
 }
 
 
+=item C<win32_32>
+
+Return C<1> if platform is Windows32 and C<0> otherwise.  The test is
+currently based on the value of Perl's C<$^O> variable.
+
+=cut
+
+sub win32_32 {
+  if ($^O =~ /^MSWin/i) {
+    # TODO check 32bit
+    return 1;
+  } else {
+    return 0;
+  }
+  # the following needs config.guess, which is quite bad ...
+  # return (&platform eq "win32")? 1:0;
+}
+=item C<win32_64>
+
+Return C<1> if platform is Windows64 and C<0> otherwise.  The test is
+currently based on the value of Perl's C<$^O> variable.
+
+=cut
+
+sub win32_64 {
+  if ($^O =~ /^MSWin/i) {
+    # TODO check 64bit
+    return 1;
+  } else {
+    return 0;
+  }
+  # the following needs config.guess, which is quite bad ...
+  # return (&platform eq "win32")? 1:0;
+}
+
 =item C<win32>
 
-Return C<1> if platform is Windows and C<0> otherwise.  The test is
+Return C<1> if platform is Windows32 or 64 and C<0> otherwise.  The test is
 currently based on the value of Perl's C<$^O> variable.
 
 =cut
@@ -449,6 +488,9 @@
 }
 
 
+
+
+
 =item C<unix>
 
 Return C<1> if platform is UNIX and C<0> otherwise.
@@ -456,7 +498,7 @@
 =cut
 
 sub unix {
-  return (&platform eq "win32")? 0:1;
+  return (&platform eq "win32" || &platform eq "win64" )? 0:1;
 }
 
 

Modified: trunk/Master/tlpkg/TeXLive/TLWinGoo.pm
===================================================================
--- trunk/Master/tlpkg/TeXLive/TLWinGoo.pm	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/TeXLive/TLWinGoo.pm	2019-12-10 06:17:16 UTC (rev 53075)
@@ -1197,6 +1197,7 @@
   my $td = $td_fw;
   $td =~ s!/!\\!g;
 
+  # TODO win64 support!!!
   my $tdmain = `"$td\\bin\\win32\\kpsewhich" -var-value=TEXMFMAIN`;
   $tdmain =~ s!/!\\!g;
   chomp $tdmain;

Modified: trunk/Master/tlpkg/bin/tl-compare-tlpdbs
===================================================================
--- trunk/Master/tlpkg/bin/tl-compare-tlpdbs	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-compare-tlpdbs	2019-12-10 06:17:16 UTC (rev 53075)
@@ -20,7 +20,7 @@
 
 # packages ignored unless --all is given
 # see @critical_pkg_list in tl-update-containers
-my @add_ignored_packs = qw/texlive.infra tlperl.win32/;
+my @add_ignored_packs = qw/texlive.infra tlperl.win32 tlperl.win64/;
 
 our ($mydir, $vc_id);
 my $opt_version = 0;
@@ -116,7 +116,7 @@
 
 =item B<--all>
 
-Also compare packages C<texlive.infra> and C<tlperl.win32>, which are
+Also compare packages C<texlive.infra> and C<tlperl.win(32|64)>, which are
 ignored by default.
 
 =item B<--help>

Modified: trunk/Master/tlpkg/bin/tl-update-4ht
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-4ht	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-update-4ht	2019-12-10 06:17:16 UTC (rev 53075)
@@ -27,6 +27,7 @@
 
 #
 diff -u1 $tm/bin/win32 bin/win32/ | fgrep -v "Only in /home" >/tmp/u; v /tmp/u  #tex4ht, t4ht
+diff -u1 $tm/bin/win64 bin/win64/ | fgrep -v "Only in /home" >/tmp/u; v /tmp/u  #tex4ht, t4ht
 #\cp -pf bin/win32/* /home/texlive/karl/Master/bin/win32/
 #
 diff -u1 .. src | fgrep -v "Only in .." >/tmp/u; v /tmp/u
@@ -66,7 +67,7 @@
 #(cd $tm/texmf-dist/tex4ht/ && svn add `cat /tmp/c`)
 
 # check results:
-svn status .. $tm/bin/win32 \
+svn status .. $tm/bin/win32 $tm/bin/win64 \
   $tm/texmf-dist/tex/generic/tex4ht \
   $tm/texmf-dist/tex4ht \
   $tm/texmf-dist/scripts/tex4ht

Modified: trunk/Master/tlpkg/bin/tl-update-bindir
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-bindir	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-update-bindir	2019-12-10 06:17:16 UTC (rev 53075)
@@ -178,6 +178,7 @@
    sparc-solaris)
     default_bin_loc=$download_loc
     $grab http://dl.contextgarden.net/build/texlive/$tlplat.tar.xz;;
+   win64)
    win32)
     # default_bin_loc=$tmpdir/tl.$tlplat.zip
     # $grab http://members2.jcom.home.ne.jp/wt1357ak/tl2009w32-02.zip;;

Modified: trunk/Master/tlpkg/bin/tl-update-install-pkg
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-install-pkg	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-update-install-pkg	2019-12-10 06:17:16 UTC (rev 53075)
@@ -156,7 +156,7 @@
 
 my %tlpbin = %{$tlpinst->binfiles};
 for my $a (keys %tlpbin) {
-  next if ($a =~ m/win32/);
+  next if ($a =~ m/win(32|64)/);
   push (@unix, @{$tlpbin{$a}});
 }
 
@@ -165,6 +165,9 @@
 if (defined $tlpbin{"win32"}) {
   push (@win32, @{$tlpbin{"win32"}});
 }
+if (defined $tlpbin{"win64"}) {
+  push (@win32, @{$tlpbin{"win64"}});
+}
 
 

 # main.

Modified: trunk/Master/tlpkg/bin/tl-update-nsis
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-nsis	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-update-nsis	2019-12-10 06:17:16 UTC (rev 53075)
@@ -41,10 +41,11 @@
   
   my $texliveinfra = $tlpdb->get_package("texlive.infra");
   my $texliveinfraw32 = $tlpdb->get_package("texlive.infra.win32");
-  #
+  my $texliveinfraw64 = $tlpdb->get_package("texlive.infra.win64");
   my @allfiles = ();
   push(@allfiles, $texliveinfra->all_files);
   push(@allfiles, $texliveinfraw32->all_files) if defined $texliveinfraw32;
+  push(@allfiles, $texliveinfraw64->all_files) if defined $texliveinfraw64;
   
   # create the tlpobj files, and directory if necessary.
   my $tlpobjdir = "$InfraLocation/tlpobj";
@@ -53,7 +54,7 @@
     &TeXLive::TLUtils::mkdirhier($abs_tlpobjdir);
   }
   my $rev = 0; # get the highest rev of all our packages
-  for my $p ($texliveinfra, $texliveinfraw32) {
+  for my $p ($texliveinfra, $texliveinfraw32, $texliveinfraw64) {
     if (defined $p) {
       if ($p->revision > $rev) {
         $rev = $p->revision;
@@ -133,6 +134,7 @@
       print "  File $mm\\$dd\\$f\n";
     }
   }
+  # TODO win64 SUPPORT
   print "  ExecWait \'\"\$INSTDIR\\bin\\win32\\tlmgr.bat\" _include_tlpobj";
   for my $p ($texliveinfra, $texliveinfraw32) {
     if (defined $p) {

Modified: trunk/Master/tlpkg/bin/tl-update-tlcritical
===================================================================
--- trunk/Master/tlpkg/bin/tl-update-tlcritical	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/bin/tl-update-tlcritical	2019-12-10 06:17:16 UTC (rev 53075)
@@ -82,7 +82,7 @@
   # update normal containers.
   echo "$0: running tl-update-containers (for critical packages)..."
   tl-update-containers -location $tlcrit $recreate -all \
-    00texlive.installation 00texlive.config texlive.infra tlperl.win32 \
+    00texlive.installation 00texlive.config texlive.infra tlperl.win32 tlperl.win64 \
     $moredis
 else
   # this is an option so that if the repository already contains

Modified: trunk/Master/tlpkg/installer/install-menu-perltk.pl
===================================================================
--- trunk/Master/tlpkg/installer/install-menu-perltk.pl	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/installer/install-menu-perltk.pl	2019-12-10 06:17:16 UTC (rev 53075)
@@ -1160,7 +1160,7 @@
 }
 
 sub callback_select_systems() {
-  if ($vars{"binary_win32"}) {
+  if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
     $vars{"collection-wintools"} = 1;
   } else {
     $vars{"collection-wintools"} = 0;

Modified: trunk/Master/tlpkg/installer/install-menu-text.pl
===================================================================
--- trunk/Master/tlpkg/installer/install-menu-text.pl	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/installer/install-menu-text.pl	2019-12-10 06:17:16 UTC (rev 53075)
@@ -327,7 +327,7 @@
       print "Unknown command: $answer\n\n";
     }
   }
-  if ($vars{"binary_win32"}) {
+  if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
     $vars{"collection-wintools"} = 1;
   } else {
     $vars{"collection-wintools"} = 0;
@@ -375,7 +375,7 @@
 
   select_scheme($vars{'selected_scheme'});
 
-  if ($vars{"binary_win32"}) {
+  if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
     $vars{"collection-wintools"} = 1;
   } else {
     $vars{"collection-wintools"} = 0;

Modified: trunk/Master/tlpkg/installer/tl-cmd.bat
===================================================================
--- trunk/Master/tlpkg/installer/tl-cmd.bat	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/installer/tl-cmd.bat	2019-12-10 06:17:16 UTC (rev 53075)
@@ -8,6 +8,7 @@
 @echo off
 setlocal enableextensions
 
+rem TODO need to fix for win64 !!!!
 rem Add bin dir to beginning of PATH only if it is not already there
 for /f "tokens=1,2 delims=;" %%I in ("%~dp0..\..\bin\win32;%PATH%") do if not "%%~fI"=="%%~fJ" set "PATH=%%~fI;%PATH%"
 

Modified: trunk/Master/tlpkg/installer/tl-tray-menu.ini
===================================================================
--- trunk/Master/tlpkg/installer/tl-tray-menu.ini	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/installer/tl-tray-menu.ini	2019-12-10 06:17:16 UTC (rev 53075)
@@ -25,4 +25,4 @@
 ;Your own choice of portable editor:
 ;&My editor=..\my_editor\my_editor.exe
 Notepad="%windir%\system32\notepad.exe"
-&Command Prompt=cmd /k "title TeX Live"
\ No newline at end of file
+&Command Prompt=cmd /k "title TeX Live"

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2019-12-10 00:54:31 UTC (rev 53074)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2019-12-10 06:17:16 UTC (rev 53075)
@@ -3975,7 +3975,7 @@
       my $platdir = "$TOPDEST/bin/$p";
       &xmkdir ($platdir);
       #
-      if ($p ne "win32") {
+      if (($p ne "win32") && ($p ne "win64")) {
         my $linktarget = "../../$DEST_TREE/scripts/$package/$s";
         &SYSTEM ("ln -s $linktarget $platdir/$linkname");
         #
@@ -5805,6 +5805,7 @@
   # biber uses different platform names.
   my %tl_platform = (
     "MSWIN32"            => "win32",
+    "MSWIN64"            => "win64",
     "amd64-freebsd"      => "amd64-freebsd",
     "cygwin32"           => "i386-cygwin",
     "cygwin64"           => "x86_64-cygwin",
@@ -5956,7 +5957,9 @@
   # Build linked_scripts dir.  The executables are cherry-picked from
   # ConTeXt's stubs directory.
   my $w32_bindir = "$TOPDEST/bin/win32";
+  my $w64_bindir = "$TOPDEST/bin/win64";
   &xmkdir ($w32_bindir);
+  &xmkdir ($w64_bindir);
   #
   my $pkg_subdir = "stubs/unix"; # where hans keeps them
   &xchdir ("$DEST/scripts/$package/$pkg_subdir");
@@ -5967,11 +5970,13 @@
     &bindirs_symlink ($exec);
     &build_scripts_copy ($exec, $pkg_subdir);
     &SYSTEM ("$CP ../mswin/$exec.exe $w32_bindir/");
+    &SYSTEM ("$CP ../mswin/$exec.exe $w64_bindir/");
     push (@exec, $exec);
   }
   # mtxrun on Windows needs more than just the .exe.
   &xchdir ("../mswin");
   &SYSTEM ("$CP mtxrun.dll mtxrun.lua $w32_bindir/");
+  &SYSTEM ("$CP mtxrun.dll mtxrun.lua $w64_bindir/");
    
   print "still POST$package - man pages\n";
   &xchdir ("$DEST/doc/$package/scripts");
@@ -6011,6 +6016,7 @@
   chomp (my @platforms = `cd $Master/bin && ls`);  
   for my $p (@platforms) {
     next if $p eq "win32";  # windows handled separately
+    next if $p eq "win64";  # windows handled separately
     my $platdir = "$TOPDEST/bin/$p";
     &xmkdir ($platdir);
     &SYSTEM ("ln -s $linktarget $platdir/$linkname");
@@ -6488,6 +6494,7 @@
   # commonalities doesn't make sense.  Sigh.
   print "POST$package - user-level executables\n";
   my $w32_bindir = "$TOPDEST/bin/win32";
+  my $w64_bindir = "$TOPDEST/bin/win64";
   &xmkdir ($w32_bindir);
   #
   my $pkg_subdir = "perl"; # where hans keeps it
@@ -6505,6 +6512,7 @@
   my $build_tldir = "texk/texlive";
   my $w32_wrapper = "$Build/$build_tldir/w32_wrapper/runscript.exe";
   &SYSTEM ("$CP $w32_wrapper $w32_bindir/mptopdf.exe");
+  &SYSTEM ("$CP $w32_wrapper $w64_bindir/mptopdf.exe");
   #
   print "still POST$package - man page\n";
   &xchdir ("$DEST/doc/context/scripts/mkii");



More information about the tex-live-commits mailing list