From 7490c4031eb53f351c26bc65ab79b3c1daf81457 Mon Sep 17 00:00:00 2001 From: Siep Kroonenberg Date: Thu, 7 Apr 2016 12:25:35 +0000 Subject: Updates for Windows, esp. making TL read-only for admin installs git-svn-id: svn://tug.org/texlive/trunk@40301 c570f23f-e606-0410-a88d-b1316a301751 --- Master/install-tl | 22 ++- Master/tlpkg/TeXLive/TLWinGoo.pm | 374 ++++++++++++++++++++------------------ Master/tlpkg/installer/tl-cmd.bat | 2 - Master/tlpkg/tlpostcode/xetex.pl | 4 +- 4 files changed, 222 insertions(+), 180 deletions(-) (limited to 'Master') diff --git a/Master/install-tl b/Master/install-tl index aa1365077f0..e2b445fa61c 100755 --- a/Master/install-tl +++ b/Master/install-tl @@ -83,6 +83,7 @@ if (win32) { &remove_desktop_shortcut &remove_menu_shortcut &create_uninstaller + &maybe_make_ro )); } @@ -720,12 +721,24 @@ sub do_installation { tlwarn("Nothing selected, nothing to install, exiting!\n"); exit 1; } + # maybe_make_ro tests for admin, local drive and NTFS before proceeding. + # setting the root read-only automatically locks everything below it. + # do TEXDIR now, before removing final slash + mkdirhier "$vars{'TEXDIR'}"; + if (win32()) { + TeXLive::TLWinGoo::maybe_make_ro ($vars{'TEXDIR'}); + } # remove final slash from TEXDIR even if it is the root of a drive $vars{'TEXDIR'} =~ s!/$!!; # do the actual installation make_var_skeleton "$vars{'TEXMFSYSVAR'}"; make_local_skeleton "$vars{'TEXMFLOCAL'}"; mkdirhier "$vars{'TEXMFSYSCONFIG'}"; + if (win32()) { + TeXLive::TLWinGoo::maybe_make_ro ($vars{'TEXMFSYSVAR'}); + TeXLive::TLWinGoo::maybe_make_ro ($vars{'TEXMFLOCAL'}); + TeXLive::TLWinGoo::maybe_make_ro ($vars{'TEXMFSYSCONFIG'}); + } if ($vars{'in_place'}) { $localtlpdb = $tlpdb; @@ -1020,6 +1033,7 @@ sub do_tlpdb_postactions { $vars{'option_desktop_integration'}, $vars{'option_post_code'}); } + if (win32) { TeXLive::TLWinGoo::update_assocs(); } info ("finished with package-specific postactions\n"); return 0; # xxxx errcount @@ -1644,7 +1658,9 @@ sub do_install_packages { tlwarn("Rerunning the installer will try to restart the installation.\n"); tlwarn("Or you can restart by running the installer with:\n"); if (win32()) { - tlwarn(" install-tl.bat --profile $profile_name [EXTRA-ARGS]\n"); + tlwarn(" install-tl-windows.bat --profile $profile_name [EXTRA-ARGS]\n" + ."or\n" + ." install-tl-advanced.bat --profile $profile_name [EXTRA-ARGS]\n"); } else { tlwarn(" install-tl --profile $profile_name [EXTRA-ARGS]\n"); } @@ -2147,7 +2163,9 @@ install-tl - TeX Live cross-platform installer install-tl [I