summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/texlive/tlmgr.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/texlive/tlmgr.pl')
-rwxr-xr-xMaster/texmf-dist/scripts/texlive/tlmgr.pl57
1 files changed, 31 insertions, 26 deletions
diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl
index e7117c23c62..b26cf4733bb 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 (tl_w32()) {
+ $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 wndws tl_win32 tl_win64 dirname
mkdirhier copy debug tlcmp repository_to_array));
use TeXLive::TLPaper;
@@ -520,7 +524,7 @@ sub main {
# and on Windows our Config.pm can apparently interfere, so always
# skip it there. Or if users have NOPERLDOC set in the environment.
my @noperldoc = ();
- if (win32() || $ENV{"NOPERLDOC"}) {
+ if (wndws() || $ENV{"NOPERLDOC"}) {
@noperldoc = ("-noperldoc", "1");
} else {
if (!TeXLive::TLUtils::which("perldoc")) {
@@ -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 ((tl_w32() && (! -r "$Master/bin/win32/luatex.dll")) ||
+ (tl_w64() && (! -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");
@@ -1013,7 +1018,7 @@ sub handle_execute_actions {
if ($regenerate_language) {
for my $ext ("dat", "def", "dat.lua") {
my $lang = "language.$ext";
- if (! TeXLive::TLUtils::win32()) {
+ if (! TeXLive::TLUtils::wndws()) {
# Use full path for external command, except on Windows.
$lang = "$TEXMFSYSVAR/tex/generic/config/$lang";
}
@@ -1502,7 +1507,7 @@ sub action_path {
}
init_local_db();
my $winadminmode = 0;
- if (win32()) {
+ if (wndws()) {
#
# for w32 we do system wide vs user setting detection as follows:
# - if --w32mode is NOT given,
@@ -1561,9 +1566,9 @@ sub action_path {
}
my $ret = $F_OK;
if ($what =~ m/^add$/i) {
- if (win32()) {
+ if (wndws()) {
$ret |= TeXLive::TLUtils::w32_add_to_path(
- $localtlpdb->root . "/bin/win32",
+ $localtlpdb->root . tl_w32() ? "/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.
@@ -1576,9 +1581,9 @@ sub action_path {
$localtlpdb->option("sys_info"));
}
} elsif ($what =~ m/^remove$/i) {
- if (win32()) {
+ if (wndws()) {
$ret |= TeXLive::TLUtils::w32_remove_from_path(
- $localtlpdb->root . "/bin/win32",
+ $localtlpdb->root . tl_w32() ? "/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.
@@ -3291,7 +3296,7 @@ sub action_update {
}
$updated{$pkg} = 1;
next;
- } elsif (win32() && ($pkg =~ m/$CriticalPackagesRegexp/)) {
+ } elsif (wndws() && ($pkg =~ m/$CriticalPackagesRegexp/)) {
# we pretend that the update happened
# in order to calculate file changes properly
$updated{$pkg} = 1;
@@ -3410,7 +3415,7 @@ sub action_update {
# TODO
logpackage("failed update: $pkg ($rev -> $mediarevstr)");
tlwarn("$prg: Installation of new version of $pkg failed, trying to unwind.\n");
- if (win32()) {
+ if (wndws()) {
# w32 is notorious for not releasing a file immediately
# we experienced permission denied errors
my $newname = $unwind_package;
@@ -3557,7 +3562,7 @@ sub action_update {
my @found_pkgs = $localtlpdb->find_file($k);
if ($#found_pkgs >= 0) {
my $bad_file = 1;
- if (win32()) {
+ if (wndws()) {
# on w32 the packages have not been removed already,
# so we check that the only package listed in @found_pkgs
# is the one we are working on ($pkg)
@@ -3583,7 +3588,7 @@ sub action_update {
}
}
- if (!win32()) {
+ if (!wndws()) {
for my $f (@infra_files_to_be_removed) {
# TODO actually unlink the stuff
#unlink("$Master/$f");
@@ -3614,7 +3619,7 @@ sub action_update {
}
# infra update and tlmgr restart on w32 is done by the updater batch script
- if (win32() && $opts{'self'} && !$opts{"list"} && @critical) {
+ if (wndws() && $opts{'self'} && !$opts{"list"} && @critical) {
info("$prg: Preparing TeX Live infrastructure update...\n");
for my $f (@infra_files_to_be_removed) {
debug("file scheduled for removal $f\n");
@@ -3629,7 +3634,7 @@ sub action_update {
}
# only when we are not dry-running we restart the program
- if (!win32() && $restart_tlmgr && !$opts{"dry-run"} && !$opts{"list"}) {
+ if (!wndws() && $restart_tlmgr && !$opts{"dry-run"} && !$opts{"list"}) {
info("$prg: Restarting to complete update ...\n");
debug("restarting tlmgr @::SAVEDARGV\n");
# cleanup temp files before re-exec-ing tlmgr
@@ -4760,11 +4765,11 @@ sub action_option {
# ignore generate_update which is no longer used or needed.
next if ($o eq "generate_updmap");
# ignore some things which are w32 specific
- next if ($o eq "desktop_integration" && !win32());
- next if ($o eq "file_assocs" && !win32());
- next if ($o eq "w32_multi_user" && !win32());
+ next if ($o eq "desktop_integration" && !wndws());
+ next if ($o eq "file_assocs" && !wndws());
+ next if ($o eq "w32_multi_user" && !wndws());
#
- if (win32()) {
+ if (wndws()) {
next if ($o =~ m/^sys_/);
}
if (defined $TLPDBOptions{$o}) {
@@ -4828,7 +4833,7 @@ sub action_option {
# when running w32 do not allow that a non-admin users sets
# this from false to true
my $do_it = 0;
- if (win32()) {
+ if (wndws()) {
if (admin()) {
$do_it = 1;
} else {
@@ -5315,7 +5320,7 @@ Error message from creating MainWindow:
# Return zero if successful, nonzero if failure.
#
sub uninstall_texlive {
- if (win32()) {
+ if (wndws()) {
printf STDERR "Please use \"Add/Remove Programs\" from the Control Panel "
. "to uninstall TeX Live!\n";
return ($F_ERROR);
@@ -6156,7 +6161,7 @@ sub action_postaction {
tlwarn("$prg: action postaction needs as second argument one from 'shortcut', 'fileassoc', 'script'\n");
return;
}
- if (win32()) {
+ if (wndws()) {
if ($opts{"w32mode"}) {
if ($opts{"w32mode"} eq "user") {
if (TeXLive::TLWinGoo::admin()) {
@@ -6191,7 +6196,7 @@ sub action_postaction {
@todo = $localtlpdb->expand_dependencies("-only-arch", $localtlpdb, @todo);
}
if ($type =~ m/^shortcut$/i) {
- if (!win32()) {
+ if (!wndws()) {
tlwarn("$prg: action postaction shortcut only works on windows.\n");
return;
}
@@ -6205,7 +6210,7 @@ sub action_postaction {
}
}
} elsif ($type =~ m/^fileassoc$/i) {
- if (!win32()) {
+ if (!wndws()) {
tlwarn("$prg: action postaction fileassoc only works on windows.\n");
return;
}
@@ -6919,7 +6924,7 @@ sub init_local_db {
# - if we are on Windows, it does not start with Drive:[\/]
if (! ( $location =~ m!^(https?|ftp)://!i ||
$location =~ m!$TeXLive::TLUtils::SshURIRegex!i ||
- (win32() && (!(-e $location) || ($location =~ m!^.:[\\/]!) ) ) ) ) {
+ (wndws() && (!(-e $location) || ($location =~ m!^.:[\\/]!) ) ) ) ) {
# seems to be a local path, try to normalize it
my $testloc = abs_path($location);
# however, if we were given a url, that will get "normalized" to the