summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-11 13:46:41 +0900
committerNorbert Preining <norbert@preining.info>2020-04-25 22:43:43 +0900
commit9b35a913dd8d865721e66310498da41653f5af7e (patch)
tree45c839a3ccf2505ffdb12011458898f3b860efa1
parent803980524c9abc5919a821b170590ea0e1d11650 (diff)
work on win64 support
-rwxr-xr-xMaster/install-tl17
-rwxr-xr-xMaster/texmf-dist/scripts/texlive/tlmgr.pl47
-rwxr-xr-xMaster/texmf-dist/scripts/texlive/uninstall-win32.pl3
-rw-r--r--Master/tlpkg/TeXLive/TLConfig.pm5
-rw-r--r--Master/tlpkg/TeXLive/TLPDB.pm6
-rw-r--r--Master/tlpkg/TeXLive/TLPSRC.pm9
-rw-r--r--Master/tlpkg/TeXLive/TLUtils.pm50
-rw-r--r--Master/tlpkg/TeXLive/TLWinGoo.pm1
-rwxr-xr-xMaster/tlpkg/bin/tl-compare-tlpdbs4
-rwxr-xr-xMaster/tlpkg/bin/tl-update-4ht3
-rwxr-xr-xMaster/tlpkg/bin/tl-update-bindir1
-rwxr-xr-xMaster/tlpkg/bin/tl-update-install-pkg5
-rwxr-xr-xMaster/tlpkg/bin/tl-update-nsis6
-rwxr-xr-xMaster/tlpkg/bin/tl-update-tlcritical2
-rw-r--r--Master/tlpkg/installer/install-menu-perltk.pl2
-rw-r--r--Master/tlpkg/installer/install-menu-text.pl4
-rwxr-xr-xMaster/tlpkg/installer/tl-cmd.bat1
-rw-r--r--Master/tlpkg/installer/tl-tray-menu.ini2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds10
19 files changed, 138 insertions, 40 deletions
diff --git a/Master/install-tl b/Master/install-tl
index 875589cc949..b0cd3dddf1b 100755
--- a/Master/install-tl
+++ b/Master/install-tl
@@ -1358,7 +1358,8 @@ sub do_path_adjustments {
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 {
@@ -1701,6 +1702,11 @@ sub calc_depends {
$install{"tlgs.win32"} = 1;
$install{"tlpsv.win32"} = 1;
}
+ if (grep(/^win64$/,@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;
@@ -1727,12 +1733,15 @@ sub calc_depends {
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$/,@archs)) {
$install{$p_dep} = 1;
}
+ if (grep(/^win64$/,@archs)) {
+ $install{$p_dep} = 1;
+ }
} else {
$install{$p_dep} = 1;
}
@@ -1889,7 +1898,7 @@ sub initialize_collections {
++$vars{'n_collections_selected'};
}
}
- if ($vars{"binary_win32"}) {
+ if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
$vars{"collection-wintools"} = 1;
++$vars{'n_collections_selected'};
}
@@ -2446,7 +2455,7 @@ sub select_scheme {
# 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'};
}
diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl
index 20cf640a562..d8edaaf756c 100755
--- a/Master/texmf-dist/scripts/texlive/tlmgr.pl
+++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl
@@ -54,7 +54,11 @@ BEGIN {
$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::TLWinGoo;
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;
@@ -820,7 +824,8 @@ sub do_cmd_and_check {
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");
@@ -1492,7 +1497,7 @@ sub action_path {
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 {
@@ -1505,7 +1510,7 @@ sub action_path {
} 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 {
@@ -4831,6 +4836,9 @@ sub action_platform {
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
@@ -4902,14 +4910,19 @@ sub action_platform {
}
}
}
+ 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;
}
}
}
@@ -4966,6 +4979,12 @@ sub action_platform {
$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) {
@@ -5347,7 +5366,7 @@ sub init_tltree {
# 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");
}
@@ -5877,7 +5896,7 @@ sub check_depends {
# 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.
diff --git a/Master/texmf-dist/scripts/texlive/uninstall-win32.pl b/Master/texmf-dist/scripts/texlive/uninstall-win32.pl
index d82bd38184f..4c6e8c6c7a5 100755
--- a/Master/texmf-dist/scripts/texlive/uninstall-win32.pl
+++ b/Master/texmf-dist/scripts/texlive/uninstall-win32.pl
@@ -55,7 +55,8 @@ sub doit {
`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");
diff --git a/Master/tlpkg/TeXLive/TLConfig.pm b/Master/tlpkg/TeXLive/TLConfig.pm
index b2ec57215c7..47fdc82cd48 100644
--- a/Master/tlpkg/TeXLive/TLConfig.pm
+++ b/Master/tlpkg/TeXLive/TLConfig.pm
@@ -116,7 +116,8 @@ our @CriticalPackagesList = qw/texlive.infra/;
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)$)';
}
#
@@ -351,7 +352,7 @@ C<systems/texlive/tlnet/>.
=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>
diff --git a/Master/tlpkg/TeXLive/TLPDB.pm b/Master/tlpkg/TeXLive/TLPDB.pm
index d5c0f6cb463..9880e6d370e 100644
--- a/Master/tlpkg/TeXLive/TLPDB.pm
+++ b/Master/tlpkg/TeXLive/TLPDB.pm
@@ -877,6 +877,12 @@ sub expand_dependencies {
if (grep(/^win32$/,@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$/,@archs)) {
+ $install{$p_dep} = 0;
+ }
} else {
$install{$p_dep} = 0 unless $only_arch;
}
diff --git a/Master/tlpkg/TeXLive/TLPSRC.pm b/Master/tlpkg/TeXLive/TLPSRC.pm
index d25f4803135..929f1799f9b 100644
--- a/Master/tlpkg/TeXLive/TLPSRC.pm
+++ b/Master/tlpkg/TeXLive/TLPSRC.pm
@@ -160,7 +160,7 @@ sub from_file {
# - 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";
@@ -488,13 +488,16 @@ sub make_tlpobj {
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) {
# 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");
}
}
@@ -531,7 +534,7 @@ sub make_tlpobj {
# 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.
diff --git a/Master/tlpkg/TeXLive/TLUtils.pm b/Master/tlpkg/TeXLive/TLUtils.pm
index ab1f6c99ddc..755500182f8 100644
--- a/Master/tlpkg/TeXLive/TLUtils.pm
+++ b/Master/tlpkg/TeXLive/TLUtils.pm
@@ -25,6 +25,8 @@ C<TeXLive::TLUtils> - utilities used in TeX Live infrastructure
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();
@@ -219,7 +221,7 @@ BEGIN {
@EXPORT = qw(setup_programs download_file process_logging_options
tldie tlwarn info log debug ddebug dddebug debug
debug_hash_str 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;
@@ -253,6 +255,7 @@ sub platform {
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";
@@ -425,7 +428,8 @@ sub platform_desc {
'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.13-) on x86_64',
'x86_64-darwinlegacy' => 'MacOSX legacy (10.6-) on x86_64',
@@ -448,9 +452,44 @@ sub platform_desc {
}
+=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
@@ -466,6 +505,9 @@ sub win32 {
}
+
+
+
=item C<unix>
Return C<1> if platform is UNIX and C<0> otherwise.
@@ -473,7 +515,7 @@ Return C<1> if platform is UNIX and C<0> otherwise.
=cut
sub unix {
- return (&platform eq "win32")? 0:1;
+ return (&platform eq "win32" || &platform eq "win64" )? 0:1;
}
diff --git a/Master/tlpkg/TeXLive/TLWinGoo.pm b/Master/tlpkg/TeXLive/TLWinGoo.pm
index 030cec04965..0e1c8d4b31b 100644
--- a/Master/tlpkg/TeXLive/TLWinGoo.pm
+++ b/Master/tlpkg/TeXLive/TLWinGoo.pm
@@ -1199,6 +1199,7 @@ sub create_uninstaller {
my $td = $td_fw;
$td =~ s!/!\\!g;
+ # TODO win64 support!!!
my $tdmain = `"$td\\bin\\win32\\kpsewhich" -var-value=TEXMFMAIN`;
$tdmain =~ s!/!\\!g;
chomp $tdmain;
diff --git a/Master/tlpkg/bin/tl-compare-tlpdbs b/Master/tlpkg/bin/tl-compare-tlpdbs
index 4632280e9fb..5b1b99ea9f2 100755
--- a/Master/tlpkg/bin/tl-compare-tlpdbs
+++ b/Master/tlpkg/bin/tl-compare-tlpdbs
@@ -20,7 +20,7 @@ use Pod::Usage;
# 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 @@ tl-compare-tlpdbs [I<option>]... <TLPDB1> [<TLPDB2>]
=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>
diff --git a/Master/tlpkg/bin/tl-update-4ht b/Master/tlpkg/bin/tl-update-4ht
index ae774316009..8436845aa83 100755
--- a/Master/tlpkg/bin/tl-update-4ht
+++ b/Master/tlpkg/bin/tl-update-4ht
@@ -27,6 +27,7 @@ for s in ht htcontext htmex httexi; do
#
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 @@ comm -13 /tmp/now /tmp/new >/tmp/c; wc -l /tmp/c
#(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
diff --git a/Master/tlpkg/bin/tl-update-bindir b/Master/tlpkg/bin/tl-update-bindir
index c654bd3ab7a..4cb5dd67f9b 100755
--- a/Master/tlpkg/bin/tl-update-bindir
+++ b/Master/tlpkg/bin/tl-update-bindir
@@ -178,6 +178,7 @@ for tlplat in $tlplats; do
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;;
diff --git a/Master/tlpkg/bin/tl-update-install-pkg b/Master/tlpkg/bin/tl-update-install-pkg
index d0800750e06..bdfa07171bc 100755
--- a/Master/tlpkg/bin/tl-update-install-pkg
+++ b/Master/tlpkg/bin/tl-update-install-pkg
@@ -158,7 +158,7 @@ if ($opt_texlivedocs) {
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}});
}
@@ -167,6 +167,9 @@ push (@win32, @unix);
if (defined $tlpbin{"win32"}) {
push (@win32, @{$tlpbin{"win32"}});
}
+if (defined $tlpbin{"win64"}) {
+ push (@win32, @{$tlpbin{"win64"}});
+}
# main.
diff --git a/Master/tlpkg/bin/tl-update-nsis b/Master/tlpkg/bin/tl-update-nsis
index 0b121f48228..3490924190e 100755
--- a/Master/tlpkg/bin/tl-update-nsis
+++ b/Master/tlpkg/bin/tl-update-nsis
@@ -41,10 +41,11 @@ sub main {
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 @@ sub main {
&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 @@ EOF
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) {
diff --git a/Master/tlpkg/bin/tl-update-tlcritical b/Master/tlpkg/bin/tl-update-tlcritical
index a5e2a6f128f..ce0031495e6 100755
--- a/Master/tlpkg/bin/tl-update-tlcritical
+++ b/Master/tlpkg/bin/tl-update-tlcritical
@@ -82,7 +82,7 @@ if $opt_do_containers; then
# 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
diff --git a/Master/tlpkg/installer/install-menu-perltk.pl b/Master/tlpkg/installer/install-menu-perltk.pl
index 905ffc8be67..c6fbfb316dc 100644
--- a/Master/tlpkg/installer/install-menu-perltk.pl
+++ b/Master/tlpkg/installer/install-menu-perltk.pl
@@ -1160,7 +1160,7 @@ sub callback_select_collection {
}
sub callback_select_systems() {
- if ($vars{"binary_win32"}) {
+ if ($vars{"binary_win32"} || $vars{"binary_win64"}) {
$vars{"collection-wintools"} = 1;
} else {
$vars{"collection-wintools"} = 0;
diff --git a/Master/tlpkg/installer/install-menu-text.pl b/Master/tlpkg/installer/install-menu-text.pl
index a31ab8819df..8f07fd1724d 100644
--- a/Master/tlpkg/installer/install-menu-text.pl
+++ b/Master/tlpkg/installer/install-menu-text.pl
@@ -327,7 +327,7 @@ sub binary_menu {
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 @@ sub scheme_menu {
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;
diff --git a/Master/tlpkg/installer/tl-cmd.bat b/Master/tlpkg/installer/tl-cmd.bat
index 747d3088239..bc9fdc372c4 100755
--- a/Master/tlpkg/installer/tl-cmd.bat
+++ b/Master/tlpkg/installer/tl-cmd.bat
@@ -8,6 +8,7 @@ rem Public domain
@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%"
diff --git a/Master/tlpkg/installer/tl-tray-menu.ini b/Master/tlpkg/installer/tl-tray-menu.ini
index dcf38226604..1f5f14664be 100644
--- a/Master/tlpkg/installer/tl-tray-menu.ini
+++ b/Master/tlpkg/installer/tl-tray-menu.ini
@@ -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"
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 032a98174e6..d9ec33d1efa 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -4086,7 +4086,7 @@ sub doscripts {
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");
#
@@ -5914,6 +5914,7 @@ sub POSTbiber {
# biber uses different platform names.
my %tl_platform = (
"MSWIN32" => "win32",
+ "MSWIN64" => "win64",
"amd64-freebsd" => "amd64-freebsd",
"cygwin32" => "i386-cygwin",
"cygwin64" => "x86_64-cygwin",
@@ -6065,7 +6066,9 @@ sub POSTcontext {
# 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");
@@ -6076,11 +6079,13 @@ sub POSTcontext {
&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");
@@ -6120,6 +6125,7 @@ sub bindirs_symlink {
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");
@@ -6628,6 +6634,7 @@ sub POSTmptopdf {
# 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
@@ -6645,6 +6652,7 @@ sub POSTmptopdf {
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");