diff options
author | Norbert Preining <preining@logic.at> | 2022-04-18 05:56:03 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2022-04-18 05:56:03 +0000 |
commit | daa265a214b9e12e2a9bab636398c2dd699f7cd4 (patch) | |
tree | 5f5d6b6110b6006ad4085ccea50d96f685367b6c /Master/texmf-dist | |
parent | f6880ca55f0acfd2dac16f951b36ef7d3e1108b6 (diff) |
work on win64 support
git-svn-id: svn://tug.org/texlive/trunk@63066 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rwxr-xr-x | Master/texmf-dist/scripts/texlive/tlmgr.pl | 47 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/texlive/uninstall-win32.pl | 3 |
2 files changed, 35 insertions, 15 deletions
diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl index e7117c23c62..2b20fca380d 100755 --- a/Master/texmf-dist/scripts/texlive/tlmgr.pl +++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl @@ -51,7 +51,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 { @@ -96,7 +100,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; @@ -843,7 +847,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"); @@ -1563,7 +1568,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); # ignore this return value, since broadcase_env might return # nothing in case of errors, and there is no way around it. @@ -1578,7 +1583,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); # ignore this return value, since broadcase_env might return # nothing in case of errors, and there is no way around it. @@ -4940,6 +4945,9 @@ sub action_platform { my @extra_w32_packs = qw/tlperl.win32 tlgs.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 @@ -5011,14 +5019,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; } } } @@ -5075,6 +5088,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) { @@ -5499,7 +5518,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"); } @@ -6038,7 +6057,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 71aa86652a4..633e8ec9e9c 100755 --- a/Master/texmf-dist/scripts/texlive/uninstall-win32.pl +++ b/Master/texmf-dist/scripts/texlive/uninstall-win32.pl @@ -61,7 +61,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"); |