From 18c4429cf72d87571e5eb085609186b6dd1f10b9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 7 Apr 2019 01:25:25 +0000 Subject: doc,sync git-svn-id: svn://tug.org/texlive/trunk@50834 c570f23f-e606-0410-a88d-b1316a301751 --- .../texk/texlive/linked_scripts/texlive/tlmgr.pl | 41 ++++++++++------- .../texlive/linked_scripts/tlshell/tlshell.tcl | 52 ++++++++++++++++++---- .../source/texk/texlive/w32_wrapper/runscript.tlu | 6 +-- 3 files changed, 73 insertions(+), 26 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index 27e210b45ad..eb63c89b1c2 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl @@ -1,12 +1,12 @@ #!/usr/bin/env perl -# $Id: tlmgr.pl 50692 2019-04-01 15:01:10Z preining $ +# $Id: tlmgr.pl 50796 2019-04-05 22:43:08Z karl $ # # Copyright 2008-2019 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. -my $svnrev = '$Revision: 50692 $'; -my $datrev = '$Date: 2019-04-01 17:01:10 +0200 (Mon, 01 Apr 2019) $'; +my $svnrev = '$Revision: 50796 $'; +my $datrev = '$Date: 2019-04-06 00:43:08 +0200 (Sat, 06 Apr 2019) $'; my $tlmgrrevision; my $tlmgrversion; my $prg; @@ -2520,7 +2520,7 @@ sub auto_remove_install_force_packages { # # for some packages (texworks, psview, ...) we only have w32 packages # in the repository, but it is possible that alternative repositories - # ship binaries for some platforms (like texworks for linux on tlcontrib) + # ship binaries for some platforms (like texworks for GNU/Linux on tlcontrib) # currently updating from tlnet will remove these alternative .ARCH # packages because they are not listed anywhere locally, so they # are considered as disappearing. @@ -7603,6 +7603,9 @@ example, running starts you directly at the update screen. If no action is given, the GUI will be started at the main screen. +Note that the new GUIs, tlshell and tlcockpit, are started up as +separate programs. + =for comment Keep language list in sync with install-tl. =item B<--gui-lang> I @@ -7617,6 +7620,8 @@ Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese (zh_CN), and traditional Chinese (zh_TW). +Tlshell shares its message catalog with tlmgr. + =item B<--debug-translation> In GUI mode, this switch tells C to report any untranslated (or @@ -9283,16 +9288,22 @@ A summary of the C actions is given above. =head1 GUI FOR TLMGR The graphical user interface for C requires Perl/Tk -L. For Windows the -necessary modules are shipped within TeX Live, for all other (i.e., -Unix-based) systems Perl/Tk (as well as Perl of course) has to be -installed outside of TL. L -has a list of invocations for some distros. - -The GUI is started with the invocation C; assuming Tk is -loadable, the graphical user interface will be shown. The main window -contains a menu bar, the main display, and a status area where messages -normally shown on the console are displayed. +L. For Unix-based +systems Perl/Tk (as well as Perl of course) has to be installed +outside of TL. L has a +list of invocations for some distros. For Windows the necessary +modules are no longer shipped within TeX Live, so you'll have to have an +external Perl available that includes them. + +We are talking here about the GUI built into tlmgr itself, not about the +other tlmgr GUIs, which are: tlshell (Tcl/Tk-based), tlcockpit +(Java-based) and, only on Macs, TeX Live Utility. These are invoked as +separate programs. + +The GUI mode of tlmgr is started with the invocation C; +assuming Tk is loadable, the graphical user interface will be shown. +The main window contains a menu bar, the main display, and a status +area where messages normally shown on the console are displayed. Within the main display there are three main parts: the C area, the list of packages, and the action buttons. @@ -9769,7 +9780,7 @@ This script and its documentation were written for the TeX Live distribution (L) and both are licensed under the GNU General Public License Version 2 or later. -$Id: tlmgr.pl 50692 2019-04-01 15:01:10Z preining $ +$Id: tlmgr.pl 50796 2019-04-05 22:43:08Z karl $ =cut # test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html diff --git a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl index e0f2497c422..451b2cfa52d 100755 --- a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl +++ b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl @@ -29,8 +29,9 @@ if {$::tcl_platform(platform) ne "windows"} { unset dirs } -# declarations and utilities shared with install-tl-gui.tcl set ::instroot [exec kpsewhich -var-value=TEXMFROOT] + +# declarations and utilities shared with install-tl-gui.tcl source [file join $::instroot "tlpkg" "tltcl" "tltcl.tcl"] # now is a good time to ask tlmgr for the _TL_ name of our platform @@ -217,6 +218,9 @@ proc selective_dis_enable {} { foreach b [list .mrk_inst .mrk_upd] { $b state disabled } + if {$::tcl_platform(platform) eq "windows"} { + .upd_all state disabled + } } elseif {!$::need_update_tlmgr} { .upd_tlmgr state disabled } @@ -1513,12 +1517,16 @@ proc restore_backups_dialog {} { ##### package-related ##### -proc update_self_q {} { - set ans [tk_messageBox -type okcancel -icon info -message \ - [string cat [__ "If update fails, try on a command-line:"] \ - "\ntlmgr update --self\n" \ - [__ "Use an administrative command prompt for an admin install."]]] - return [expr {$ans eq "ok"}] +proc update_self_w32 {} { + if $::multiuser { + set mess \ + [__ "Close this shell and run in an administrative command-prompt:"] + } else { + set mess [__ "Close this shell and run in a command-prompt:"] + } + set mess [string cat $mess "\n\ntlmgr update --self"] + tk_messageBox -message $mess + return } proc update_tlmgr {} { @@ -1526,7 +1534,10 @@ proc update_tlmgr {} { tk_messageBox -message [__ "Nothing to do!"] return } - if {$::tcl_platform(platform) eq "windows" && ! [update_self_q]} return + if {$::tcl_platform(platform) eq "windows"} { + update_self_w32 + return + } run_cmd "update --self" 1 vwait ::done_waiting # tlmgr restarts itself automatically @@ -1539,6 +1550,9 @@ proc update_tlmgr {} { proc update_all {} { set updated_tlmgr 0 if $::need_update_tlmgr { + if {$::tcl_platform(platform) eq "windows"} { + return ; # just to be sure; 'update all' button should be disabled + } run_cmd "update --self" 1 vwait ::done_waiting # tlmgr restarts itself automatically @@ -2091,6 +2105,11 @@ proc populate_main {} { # right frame ppack [ttk::frame .topfr] -in .topf -side right -anchor ne + if {$::tcl_platform(platform) eq "windows"} { + pack [ttk::label .topfr.ladmin] -side top -anchor e + } + pack [ttk::label .topfr.lroot] -side top -anchor e + .topfr.lroot configure -text [__ "Root at %s" $::instroot] pack [ttk::label .topfr.linfra] -side top -anchor e pack [ttk::label .topfr.lshell] -side top -anchor e @@ -2284,7 +2303,24 @@ proc initialize {} { populate_main + # testing writablilty earlier led to sizing problems + if {! [file writable $::instroot]} { + set ans [tk_messageBox -type yesno -icon warning -message \ + [__ "%s is not writable. You can probably not do much. + Are you sure you want to continue?" $::instroot]] + if {$ans ne "yes"} {exit} + } + start_tlmgr + if {$::tcl_platform(platform) eq "windows"} { + run_cmd_waiting "option multiuser" + set ::multiuser 0 + foreach l $::out_log { + if [regexp {^\s*multiuser\s+([01])\s*$} $l d ::multiuser] break + } + .topfr.ladmin configure -text \ + [expr {$::multiuser ? [__ "Multi-user"] : [__ "Single-user"]}] + } get_repos_from_tlmgr .topfl.lrepos configure -text [print_repos] get_packages_info_local diff --git a/Build/source/texk/texlive/w32_wrapper/runscript.tlu b/Build/source/texk/texlive/w32_wrapper/runscript.tlu index 0f94c5603aa..41af1ade8c8 100755 --- a/Build/source/texk/texlive/w32_wrapper/runscript.tlu +++ b/Build/source/texk/texlive/w32_wrapper/runscript.tlu @@ -1,7 +1,7 @@ -local svnrevision = string.match("$Revision: 49485 $", "%d+") or "0" -local svndate = string.match("$Date: 2018-12-23 16:28:08 +0100 (Sun, 23 Dec 2018) $", "[-%d]+") or "2009-12-04" +local svnrevision = string.match("$Revision: 50675 $", "%d+") or "0" +local svndate = string.match("$Date: 2019-03-31 21:31:37 +0200 (Sun, 31 Mar 2019) $", "[-%d]+") or "2009-12-04" local bannerstr = "runscript wrapper utility (rev. " .. svnrevision .. ", " .. svndate .. ")\n" .. "usage: runscript script-name [arguments]\n" .. @@ -642,7 +642,7 @@ local scripts4tlperl = { ['fmtutil-sys'] = true, } local try_extern_perl = (kpse.var_value('TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL') == '1') and - not (guimode or is_restricted_progname or scripts4tlperl[progname]) + not (is_restricted_progname or scripts4tlperl[progname]) local PERLEXE = try_extern_perl and search_path('perl.exe', PATH) local extperl_warn if not PERLEXE then -- cgit v1.2.3