summaryrefslogtreecommitdiff
path: root/Master/texmf/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/scripts')
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl366
-rw-r--r--Master/texmf/scripts/texlive/tlmgrgui/gui-config.pl164
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgrgui/tlmgrgui.pl15
-rw-r--r--Master/texmf/scripts/texlive/uninstall-win32.pl13
4 files changed, 290 insertions, 268 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index 23368a4f323..397c95ae950 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -9,10 +9,6 @@
# - in GUI mode updating texlive.infra DOES work without
# the warning, but it does NOT force to restart the GUI. THAT IS BAD!!!
#
-# - when tlmgr2.pl is shipped globally as tlmgr.pl we can switch the
-# installer from using either texconfig paper or texlua ... to
-# tlmgr paper letter which will work on all platforms transparently.
-#
# - tlmgr should have a "progress" bar for the update --all and install
# etc options, echoing number of total packages etc etc.
#
@@ -52,6 +48,7 @@ BEGIN {
# if not in bootstrapping mode => kpsewhich exists, so use it to get $Master
chomp($Master = `kpsewhich -var-value=SELFAUTOPARENT`);
}
+ $::installerdir = $Master;
#
# make Perl find our packages first:
@@ -209,7 +206,6 @@ if (defined($action) && ($action =~ m/^help/i)) {
}
if (defined($action) && ($action =~ m/^print-arch$/i)) {
- $::installerdir = $Master;
print TeXLive::TLUtils::platform(), "\n";
exit 0;
}
@@ -483,7 +479,7 @@ sub handle_execute_actions {
# format-regenerate is used when the paper size changes. In that
- # case, if option_create_formats is set, we simply want to generate
+ # case, if option("create_formats") is set, we simply want to generate
#
{
my %done_formats;
@@ -506,7 +502,7 @@ sub handle_execute_actions {
for my $m (keys %{$::execute_actions{'disable'}{'formats'}}) {
$do_full = 1;
}
- my $opt_fmt = $localtlpdb->option_create_formats;
+ my $opt_fmt = $localtlpdb->option("create_formats");
if ($do_full) {
info("regenerating fmtutil.cnf in $TEXMFSYSVAR\n");
TeXLive::TLUtils::create_fmtutil($localtlpdb,
@@ -572,7 +568,7 @@ sub handle_execute_actions {
# Use full path for external command, except on Windows.
$lang = "$TEXMFSYSVAR/tex/generic/config/$lang";
}
- if ($localtlpdb->option_create_formats && !$::regenerate_all_formats) {
+ if ($localtlpdb->option("create_formats") && !$::regenerate_all_formats) {
$errors += do_cmd_and_check("fmtutil-sys --byhyphen $lang");
}
}
@@ -890,10 +886,10 @@ sub action_symlinks {
}
init_local_db();
if ($what =~ m/^add$/i) {
- $localtlpdb->add_symlinks();
+ $localtlmedia->add_symlinks();
} elsif ($what =~ m/^remove$/i) {
# remove symlinks
- $localtlpdb->remove_symlinks();
+ $localtlmedia->remove_symlinks();
} else {
# that should not happen
tlwarn("that should not happen, action_symlinks what=$what\n");
@@ -1157,8 +1153,8 @@ sub write_w32_updater {
my $container_doc_split = $mediatlpdb->config_doc_container;
# get options about src/doc splitting from $totlpdb
# TT: should we use local options to decide about install of doc & src?
- my $opt_src = $localtlpdb->option_install_srcfiles;
- my $opt_doc = $localtlpdb->option_install_docfiles;
+ my $opt_src = $localtlpdb->option("install_srcfiles");
+ my $opt_doc = $localtlpdb->option("install_docfiles");
my $root = $localtlpdb->root;
my $temp = "$root/temp";
my $repo = $mediatlpdb->root . "/$Archive";
@@ -1178,7 +1174,8 @@ sub write_w32_updater {
$localtlp = $localtlpdb->get_package($pkg);
$oldrev = $localtlp->revision;
$newrev = $mediatlp->revision;
- # we do install documenation files for category Documentation even if option_install_docfiles is false
+ # we do install documenation files for category Documentation even if
+ # option("install_docfiles") is false
$opt_real_doc = ($mediatlp->category =~ m/documentation/i) ? 1 : $opt_doc;
@pkg_parts = ($pkg);
push(@pkg_parts, "$pkg.source") if ($container_src_split && $opt_src && $mediatlp->srcfiles);
@@ -1552,8 +1549,8 @@ sub action_update {
# for size calculation we also want w32 special packages
if (@new || @updated || @w32_updated) {
%sizes = %{$tlmediatlpdb->sizes_of_packages(
- $localtlpdb->option_install_srcfiles,
- $localtlpdb->option_install_docfiles,
+ $localtlpdb->option("install_srcfiles"),
+ $localtlpdb->option("install_docfiles"),
@new, @updated, @w32_updated)};
} else {
$sizes{'__TOTAL__'} = 0;
@@ -1951,175 +1948,131 @@ sub action_option {
$what = "show" unless defined($what);
init_local_db();
if ($what =~ m/^show$/i) {
- print "Default installation location (location): ",
- $localtlpdb->option_location, "\n";
- print "Create formats on installation (formats): ",
- ($localtlpdb->option_create_formats ? "yes" : "no"), "\n";
- print "Install documentation files (docfiles): ",
- ($localtlpdb->option_install_docfiles ? "yes": "no"), "\n";
- print "Install source files (srcfiles): ",
- ($localtlpdb->option_install_srcfiles ? "yes": "no"), "\n";
- print "Destination for symlinks for binaries (sys_bin): ",
- $localtlpdb->option_sys_bin, "\n"
- if $localtlpdb->option_sys_bin;
- print "Destination for symlinks for man pages (sys_man): ",
- $localtlpdb->option_sys_man, "\n"
- if $localtlpdb->option_sys_man;
- print "Destination for symlinks for info docs (sys_info): ",
- $localtlpdb->option_sys_info, "\n"
- if $localtlpdb->option_sys_info;
- print "Directory for backups (backupdir): ",
- $localtlpdb->option("backupdir"), "\n"
- if $localtlpdb->option("backupdir");
- print "Number of backups to keep (autobackup): ",
- $localtlpdb->option("autobackup"), "\n"
- if $localtlpdb->option("autobackup");
- } elsif ($what =~ m/^location$/i) {
- # changes the default location
- my $loc = shift @ARGV;
- if ($loc) {
- # support "ctan" on the cmd line, and don't abs_path it!
- if ($loc =~ m/^ctan$/i) {
- $loc = "$TeXLive::TLConfig::TeXLiveURL";
- }
- if ($loc !~ m!^(http|ftp)://!i) {
- # seems to be a local path, try to normalize it
- my $testloc = abs_path($loc);
- # however, if we were given a url, that will get "normalized" to the
- # empty string, it not being a path. Restore the original value if so.
- $loc = $testloc if $testloc;
- }
- info("tlmgr: setting default installation location to $loc\n");
- $localtlpdb->option_location($loc);
- $localtlpdb->save;
- } else {
- info("Default installation location: ",
- $localtlpdb->option_location, "\n");
- }
- } elsif ($what =~ m/^docfiles$/i) {
- # changes the default docfiles
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: defaulting to", ($loc ? "" : " not"),
- " installing documentation files.\n");
- $localtlpdb->option_install_docfiles($loc);
- $localtlpdb->save;
- } else {
- info("Install documentation files: ",
- $localtlpdb->option_install_docfiles, "\n");
- }
- } elsif ($what =~ m/^srcfiles$/i) {
- # changes the default srcfiles
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: defaulting to", ($loc ? "" : " not"),
- " installing source files.\n");
- $localtlpdb->option_install_srcfiles($loc);
- $localtlpdb->save;
- } else {
- info("Install source files: ",
- $localtlpdb->option_install_srcfiles, "\n");
- }
- } elsif ($what =~ m/^formats$/i) {
- # changes the default formats
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: defaulting to", ($loc ? "" : " not"),
- " generating format files on installation.\n");
- $localtlpdb->option_create_formats($loc);
- $localtlpdb->save;
- } else {
- info("Create formats on installation: ",
- $localtlpdb->option_create_formats, "\n");
- }
- } elsif ($what =~ m/^sys_man$/i) {
- # changes the default sys_man
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: setting destination for symlinks to man pages to $loc\n");
- $localtlpdb->option_sys_man ($loc);
- $localtlpdb->save;
- } else {
- info("Destination for symlinks to man pages: ",
- $localtlpdb->option_sys_man, "\n");
- }
- } elsif ($what =~ m/^sys_info$/i) {
- # changes the default sys_info
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: setting destination for symlinks to info pages to $loc\n");
- $localtlpdb->option_sys_info ($loc);
- $localtlpdb->save;
- } else {
- info("Default destination for symlinks to info pages: ",
- $localtlpdb->option_sys_info, "\n");
- }
- } elsif ($what =~ m/^sys_bin$/i) {
- # changes the default sys_bin
- my $loc = shift @ARGV;
- if (defined($loc)) {
- info("tlmgr: setting destination for symlinks to binaries to $loc\n");
- $localtlpdb->option_sys_bin ($loc);
- $localtlpdb->save;
- } else {
- info("Default destination for symlinks to binaries: ",
- $localtlpdb->option_sys_bin, "\n");
- }
- } elsif ($what =~ m/^backupdir$/i) {
- my $val = shift @ARGV;
- if (defined($val)) {
- info("tlmgr: setting option $what to $val.\n");
- if (! -d $val) {
- info("tlmgr: the directory $val does not exists, it has to be created\n");
- info("tlmgr: before backups can be done automatically.\n");
- }
- $localtlpdb->option($what,$val);
- $localtlpdb->save;
- } else {
- info("Option $what = ", $localtlpdb->option($what), "\n");
- }
- } elsif ($what =~ m/^autobackup$/i) {
- my $val = shift @ARGV;
- if (defined($val)) {
- if ($val =~ m/-?[0-9]+/) {
- if ($val < -1) {
- tlwarn "Value $val for autobackup not supported, must be >= -1\n";
- return;
- }
- } elsif ($val =~ m/^infty$/i) {
- $val = -1;
+ for my $o (keys %{$localtlpdb->options}) {
+ # ignore some things which are win32 specific
+ next if ($o eq "desktop_integration" && !win32());
+ next if ($o eq "file_assocs" && !win32());
+ next if ($o eq "w32_multi_user" && !win32());
+ if (win32()) {
+ next if ($o =~ m/^sys_/);
+ }
+ if (defined $TLPDBOptionDesc{$o}) {
+ info("$TLPDBOptionDesc{$o} ($TLPDBOptionTlmgrName{$o}): " .
+ $localtlpdb->option($o) . "\n");
} else {
- tlwarn "Value $val for autobackup not supported, must be >= -1\n";
- return;
+ tlwarn ("option $o not supported\n");
}
- info("tlmgr: setting option $what to $val");
- $localtlpdb->option($what,$val);
- $localtlpdb->save;
- } else {
- $val = $localtlpdb->option($what);
- info("Option $what = $val");
}
- if ($val == -1) {
- info(" (make and keep infinitely many backups)\n");
- } elsif ($val == 0) {
- info(" (don't keep any backups)\n");
- } else {
- info(" (make and keep $val backups)\n");
- }
- } elsif (member($what, @AllowedConfigOptions)) {
- # for all further options not handled above, we check whether they
- # appear in the list of allowed options; if they do, we set/read
- # the values, otherwise we warn.
- my $val = shift @ARGV;
- if (defined($val)) {
- info("tlmgr: setting option $what to $val.\n");
- $localtlpdb->option($what,$val);
- $localtlpdb->save;
- } else {
- info("Option $what = ", $localtlpdb->option($what), "\n");
+ } elsif ($what =~ m/^showall$/i) {
+ my %loc = %{$localtlpdb->options};
+ for my $o (keys %TLPDBOptionDesc) {
+ info("$TLPDBOptionDesc{$o} ($TLPDBOptionTlmgrName{$o}): " .
+ (defined($loc{$o}) ? $loc{$o} : "(not set)") . "\n");
}
} else {
- tlwarn "Option $what is currently not supported.\n";
+ my $found = 0;
+ for my $opt (keys %TLPDBOptionTlmgrName) {
+ if ($what eq $TLPDBOptionTlmgrName{$opt}) {
+ $found = 1;
+ # the option argument matches the name
+ my $val = shift @ARGV;
+ if (defined($val)) {
+ # set new value
+ # here we have to care for some special cases
+ if ($what eq $TLPDBOptionTlmgrName{"location"}) {
+ # support "ctan" on the cmd line, and don't abs_path it!
+ if ($val =~ m/^ctan$/i) {
+ $val = "$TeXLive::TLConfig::TeXLiveURL";
+ }
+ if ($val !~ m!^(http|ftp)://!i) {
+ # seems to be a local path, try to normalize it
+ my $testloc = abs_path($val);
+ # however, if we were given a url, that will get "normalized"
+ # to the empty string, it not being a path.
+ # Restore the original value if so.
+ $val = $testloc if $testloc;
+ }
+ info("tlmgr: setting default installation location to $val\n");
+ $localtlpdb->option($opt, $val);
+ } elsif ($what eq $TLPDBOptionTlmgrName{"backupdir"}) {
+ info("tlmgr: setting option $what to $val.\n");
+ if (! -d $val) {
+ info("tlmgr: the directory $val does not exists, it has to be created\n");
+ info("tlmgr: before backups can be done automatically.\n");
+ }
+ $localtlpdb->option($opt, $val);
+ } elsif ($what eq $TLPDBOptionTlmgrName{"w32_multi_user"}) {
+ # when running w32 do not allow that a non-admin users sets
+ # this from false to true
+ if (win32() && !admin() && !$val) {
+ tlwarn("tlmgr: non-admin user cannot set $TLPDBOptionTlmgrName{'w32_multi_user'} option to true\n");
+ } else {
+ if ($val) {
+ info("tlmgr: setting option $what to 1.\n");
+ $localtlpdb->option($opt, 1);
+ } else {
+ info("tlmgr: setting option $what to 0.\n");
+ $localtlpdb->option($opt, 0);
+ }
+ }
+ } else {
+ # default case, switch for different types
+ if ($TLPDBOptionType{$opt} eq "b") {
+ if ($val) {
+ info("tlmgr: setting option $what to 1.\n");
+ $localtlpdb->option($opt, 1);
+ } else {
+ info("tlmgr: setting option $what to 0.\n");
+ $localtlpdb->option($opt, 0);
+ }
+ } elsif ($TLPDBOptionType{$opt} eq "p") {
+ info("tlmgr: setting option $what to $val.\n");
+ $localtlpdb->option($opt, $val);
+ } elsif ($TLPDBOptionType{$opt} eq "u") {
+ info("tlmgr: setting option $what to $val.\n");
+ $localtlpdb->option($opt, $val);
+ } elsif ($TLPDBOptionType{$opt} =~ m/^n(:((-)?\d+)?..((-)?\d+)?)?$/) {
+ my $isgood = 1;
+ my $n = int($val);
+ my $low;
+ my $up;
+ if (defined($1)) {
+ # range given
+ if (defined($2)) {
+ # lower border
+ if ($2 > $n) {
+ tlwarn("value $n for $what out of range ($TLPDBOptionType{$opt})\n");
+ $isgood = 0;
+ }
+ }
+ if (defined($4)) {
+ # upper border
+ if ($4 < $n) {
+ tlwarn("value $n for $what out of range ($TLPDBOptionType{$opt})\n");
+ $isgood = 0;
+ }
+ }
+ }
+ if ($isgood) {
+ info("tlmgr: setting option $what to $n.\n");
+ $localtlpdb->option($opt, $n);
+ }
+ } else {
+ tlwarn ("Unknown type of option $opt: $TLPDBOptionType{$opt}\n");
+ }
+ }
+ $localtlpdb->save;
+ } else {
+ # show current value
+ info ("$TLPDBOptionDesc{$opt} ($TLPDBOptionTlmgrName{$opt}): " .
+ $localtlpdb->option($opt) . "\n");
+ }
+ last;
+ }
+ }
+ if (!$found) {
+ tlwarn("tlmgr: option $what not supported!\n");
+ }
}
return;
}
@@ -2198,10 +2151,10 @@ sub action_arch {
info("install: tlpsv.win32\n");
$tlmediasrc->install_package("tlpsv.win32", $localtlpdb);
}
- # update the option_archs list of installed archs
- my @larchs = $localtlpdb->option_available_architectures;
+ # update the option("available_architectures") list of installed archs
+ my @larchs = $localtlpdb->setting("available_architectures");
push @larchs, @todoarchs;
- $localtlpdb->option_available_architectures(@larchs);
+ $localtlpdb->setting("available_architectures",@larchs);
$localtlpdb->save;
} else {
die "Unknown option for arch: $what";
@@ -2351,7 +2304,7 @@ sub action_uninstall {
}
print ("Ok, removing the whole installation:\n");
init_local_db();
- $localtlpdb->remove_symlinks;
+ $localtlmedia->remove_symlinks;
# now do remove the rest
system("rm", "-rf", "$Master/texmf-dist");
system("rm", "-rf", "$Master/texmf-doc");
@@ -2409,9 +2362,10 @@ sub action_recreate_tlpdb {
# we have to find out the default arch
# if there is only one dir in $Master/bin then we are settled,
# otherwise we expect the user to pass a correct arch string
- if ($^O =~ /^MSWin(32|64)$/i) {
- push @deps, "platform:win32";
- } else {
+ if (!TeXLive::TLUtils::member(TeXLive::TLUtils::platform(), @archs)) {
+ # hmm that is bad, the platform as detected is not in the list
+ # of installed platforms, so the option --arch has to be given
+ # if only one is installed use that one
if ($#archs == 0) {
# only one arch available, fine, use it as default
push @deps, "platform:$archs[0]";
@@ -2557,7 +2511,7 @@ sub check_files {
# we need the -use-svn version only for the check-file-coverage
# replacement anyway, so it will be used on tug, which is neither w32 nor
# darwin.
- my $arch = $localtlpdb->option_platform;
+ my $arch = $localtlmedia->platform();
return $ret if ($arch eq "win32" || $arch eq "universal-darwin");
# do check that all files in the trees are covered
@@ -2920,8 +2874,7 @@ sub init_local_db {
die("cannot find tlpdb in $Master") unless (defined($localtlpdb));
# setup the programs, for w32 we need the shipped wget/xz etc, so we
# pass the location of these files to setup_programs.
- if (!setup_programs("$Master/tlpkg/installer",
- $localtlpdb->option_platform)) {
+ if (!setup_programs("$Master/tlpkg/installer", $localtlmedia->platform)) {
tlwarn("Couldn't set up the necessary programs.\nInstallation of packages is not supported.\nPlease report to texlive\@tug.org.\n");
if (defined($should_i_die) && $should_i_die) {
finish(1);
@@ -2930,7 +2883,7 @@ sub init_local_db {
}
}
# let cmd line options override the settings in localtlpdb
- my $loc = $localtlpdb->option_location;
+ my $loc = $localtlpdb->option("location");
if (defined($loc)) {
$location = $loc;
}
@@ -3485,27 +3438,34 @@ written to the terminal.
=item B<option [show]>
+=item B<option showall>
+
=item B<option I<key> [I<value>]>
=back
The first form shows the global TeX Live settings currently saved in the
-TLPDB.
+TLPDB with a short description and the C<key> used for changing it in
+paranthesis.
+
+The second form acts like the first, but also shows options which can
+be defined but are not currently set to any value.
-In the second form, if I<value> is not given, the setting for I<key> is
+In the third form, if I<value> is not given, the setting for I<key> is
displayed. If I<value> is present, I<key> is set to I<value>.
-Possible values for I<key> are:
-
- C<location> (default installation location),
- C<formats> (create formats at installation time),
- C<docfiles> (install documentation files),
- C<srcfiles> (install source files),
- C<backupdir> (default directory for backups),
- C<autobackup> (number of backups to keep).
- C<sys_bin> (location where binaries are linked to by action symlinks)
- C<sys_man> (location where man pages are linked to by action symlinks)
- C<sys_info> (location where info pages are linked to by action symlinks)
+Possible values for I<key> are (but see B<tlmgr option showall> for
+the definitive list):
+
+ location (default installation location),
+ formats (create formats at installation time),
+ docfiles (install documentation files),
+ srcfiles (install source files),
+ backupdir (default directory for backups),
+ autobackup (number of backups to keep).
+ sys_bin (location where binaries are linked to by action symlinks)
+ sys_man (location where man pages are linked to by action symlinks)
+ sys_info (location where info pages are linked to by action symlinks)
One common use of C<option> is if you originally installed from DVD, and
want to permanently change the installation to get further updates from
diff --git a/Master/texmf/scripts/texlive/tlmgrgui/gui-config.pl b/Master/texmf/scripts/texlive/tlmgrgui/gui-config.pl
index bc910bad907..c5746ac7954 100644
--- a/Master/texmf/scripts/texlive/tlmgrgui/gui-config.pl
+++ b/Master/texmf/scripts/texlive/tlmgrgui/gui-config.pl
@@ -10,42 +10,49 @@
our $back_config = $back->add("config",-label => ___"config");
$screens{"config"} = $back_config;
-my $default_location = $localtlpdb->option_location;
-my $default_formats = ($localtlpdb->option_create_formats ? ___"yes" : ___"no");
-my $default_docfiles = ($localtlpdb->option_install_docfiles ? ___"yes" : ___"no");
-my $default_srcfiles = ($localtlpdb->option_install_srcfiles ? ___"yes" : ___"no");
-my $default_backupdir = $localtlpdb->option("backupdir");
-my $default_autobackup = $localtlpdb->option("autobackup");
+my %defaults;
+for my $key (keys %TeXLive::TLConfig::TLPDBOptionTlmgrName) {
+ if ($TeXLive::TLConfig::TLPDBOptionType{$key} eq "b") {
+ $defaults{$key} = ($localtlpdb->option($key) ? ___"yes" : ___"no");
+ } else {
+ $defaults{$key} = $localtlpdb->option($key);
+ }
+}
# this will be loaded only on unix systems!
#
+my @config_set_l;
+my @config_set_m;
+my @config_set_r;
my $back_config_set = $back_config->Labelframe(-text => ___"defaultsettings");
$back_config_set->pack(-fill => "both", -padx => "2m", -pady => "2m");
-my $back_config_set_l1 = $back_config_set->Label(-text => ___"defaultsource", -anchor => "w");
-my $back_config_set_m1 = $back_config_set->Label(-textvariable => \$default_location);
-my $back_config_set_r1 = $back_config_set->Button(-text => ___"change",
+push @config_set_l,
+ $back_config_set->Label(-text => ___"defaultsource", -anchor => "w");
+push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{"location"});
+push @config_set_r,
+ $back_config_set->Button(-text => ___"change",
-command => sub { menu_default_location(); });
-my $back_config_set_l2 = $back_config_set->Label(-text => ___"createformats", -anchor => "w");
-my $back_config_set_m2 = $back_config_set->Label(-textvariable => \$default_formats);
-my $back_config_set_r2 = $back_config_set->Button(-text => ___"toggle",
- -command => sub { toggle_setting("formats"); });
-my $back_config_set_l3 = $back_config_set->Label(-text => ___"installdoc", -anchor => "w");
-my $back_config_set_m3 = $back_config_set->Label(-textvariable => \$default_docfiles);
-my $back_config_set_r3 = $back_config_set->Button(-text => ___"toggle",
- -command => sub { toggle_setting("docfiles"); });
-
-my $back_config_set_l4 = $back_config_set->Label(-text => ___"installsrc", -anchor => "w");
-my $back_config_set_m4 = $back_config_set->Label(-textvariable => \$default_srcfiles);
-my $back_config_set_r4 = $back_config_set->Button(-text => ___"toggle",
- -command => sub { toggle_setting("srcfiles"); });
+for my $key (qw/create_formats install_docfiles install_srcfiles/) {
+ push @config_set_l,
+ $back_config_set->Label(-text => ___($key), -anchor => "w");
+ push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{$key});
+ push @config_set_r,
+ $back_config_set->Button(-text => ___"toggle",
+ -command => sub { toggle_setting($key); });
+}
-my $back_config_set_l5 = $back_config_set->Label(-text => ___"backupdir", -anchor => "w");
-my $back_config_set_m5 = $back_config_set->Label(-textvariable => \$default_backupdir);
-my $back_config_set_r5 = $back_config_set->Button(-text => ___"change",
+push @config_set_l,
+ $back_config_set->Label(-text => ___"backupdir", -anchor => "w");
+push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{"backupdir"});
+push @config_set_r,
+ $back_config_set->Button(-text => ___"change",
-command => sub {
my $dir = $back_config->chooseDirectory();
if (defined($dir) && ($default_backupdir ne $dir)) {
@@ -56,23 +63,58 @@ my $back_config_set_r5 = $back_config_set->Button(-text => ___"change",
}
});
-my $back_config_set_l6 = $back_config_set->Label(-text => ___"autobackup", -anchor => "w");
-my $back_config_set_m6 = $back_config_set->Label(-textvariable => \$default_autobackup);
-my $back_config_set_r6 = $back_config_set->Button(-text => ___"change",
+push @config_set_l,
+ $back_config_set->Label(-text => ___"autobackup", -anchor => "w");
+push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{"autobackup"});
+push @config_set_r,
+ $back_config_set->Button(-text => ___"change",
-command => sub { select_autobackup($p); }, -anchor => "w");
-$back_config_set_l1->grid( $back_config_set_m1, $back_config_set_r1,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
-$back_config_set_l2->grid( $back_config_set_m2, $back_config_set_r2,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
-$back_config_set_l3->grid( $back_config_set_m3, $back_config_set_r3,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
-$back_config_set_l4->grid( $back_config_set_m4, $back_config_set_r4,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
-$back_config_set_l5->grid( $back_config_set_m5, $back_config_set_r5,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
-$back_config_set_l6->grid( $back_config_set_m6, $back_config_set_r6,
- -padx => "2m", -pady => "2m", -sticky => "nwe");
+if (!win32()) {
+ for my $key (qw/sys_bin sys_info sys_man/) {
+ push @config_set_l,
+ $back_config_set->Label(-text => ___($key), -anchor => "w");
+ push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{$key});
+ push @config_set_r,
+ $back_config_set->Button(-text => ___"change",
+ -command => sub {
+ my $dir = $back_config->chooseDirectory();
+ if (defined($dir) && ($defaults{$key} ne $dir)) {
+ # see warning concerning UTF8 or other encoded dir names!!
+ $localtlpdb->option($key, $dir);
+ $defaults{$key} = $dir;
+ $localtlpdb->save;
+ }
+ });
+ }
+}
+
+if (win32()) {
+ for my $key (qw/desktop_integration file_assocs w32_multi_user/) {
+ push @config_set_l,
+ $back_config_set->Label(-text => ___($key), -anchor => "w");
+ push @config_set_m,
+ $back_config_set->Label(-textvariable => \$defaults{$key});
+ push @config_set_r,
+ $back_config_set->Button(-text => ___"change",
+ -command => sub {
+ my $dir = $back_config->chooseDirectory();
+ if (defined($dir) && ($defaults{$key} ne $dir)) {
+ # see warning concerning UTF8 or other encoded dir names!!
+ $localtlpdb->option($key, $dir);
+ $defaults{$key} = $dir;
+ $localtlpdb->save;
+ }
+ });
+ }
+}
+
+for my $i (0..$#config_set_l) {
+ $config_set_l[$i]->grid( $config_set_m[$i], $config_set_r[$i],
+ -padx => "1m", -pady => "1m", -sticky => "nwe");
+}
#############
@@ -183,6 +225,26 @@ $back_config_act->Button(-text => ___"updatemaps",
})->pack(-expand => 1, -fill => "x",
-padx => "2m", -pady => "2m");
+if (!win32()) {
+ $back_config_act->Button(-text => ___"updatesymlinks",
+ -command => sub {
+ $mw->Busy(-recurse => 1);
+ info("Updating symlinks ...\n");
+ $localtlmedia->add_symlinks();
+ $mw->Unbusy;
+ })->pack(-expand => 1, -fill => "x",
+ -padx => "2m", -pady => "2m");
+
+ $back_config_act->Button(-text => ___"removesymlinks",
+ -command => sub {
+ $mw->Busy(-recurse => 1);
+ info("Updating symlinks ...\n");
+ $localtlmedia->remove_symlinks();
+ $mw->Unbusy;
+ })->pack(-expand => 1, -fill => "x",
+ -padx => "2m", -pady => "2m");
+}
+
$back_config_act->pack(-side => 'right', -fill => "both", -padx => "2m", -pady => "2m", -expand => 1, -ipadx => "2m", -ipady => "2m");
@@ -218,7 +280,7 @@ sub menu_default_location {
my $f = $sw->Frame;
my $okbutton = $f->Button(-text => ___"ok",
-command => sub { $default_location = $entry->get;
- $localtlpdb->option_location($default_location);
+ $localtlpdb->option("location", $default_location);
$localtlpdb->save;
$sw->destroy })->pack(-side => 'left',-padx => "2m", -pady => "2m");
my $cancelbutton = $f->Button(-text => ___"cancel",
@@ -230,19 +292,9 @@ sub menu_default_location {
sub toggle_setting() {
my ($key) = @_;
- if ($key eq "formats") {
- my $new = ($localtlpdb->option_create_formats ? 0 : 1);
- $localtlpdb->option_create_formats($new);
- $default_formats = ($new ? ___"yes" : ___"no");
- } elsif ($key eq "srcfiles") {
- my $new = ($localtlpdb->option_install_srcfiles ? 0 : 1);
- $localtlpdb->option_install_srcfiles($new);
- $default_srcfiles = ($new ? ___"yes" : ___"no");
- } elsif ($key eq "docfiles") {
- my $new = ($localtlpdb->option_install_docfiles ? 0 : 1);
- $localtlpdb->option_install_docfiles($new);
- $default_docfiles = ($new ? ___"yes" : ___"no");
- }
+ my $new = ($localtlpdb->option($key) ? 0 : 1);
+ $localtlpdb->option($key, $new);
+ $defaults{$key} = ($new ? ___"yes" : ___"no");
$localtlpdb->save;
}
@@ -281,7 +333,7 @@ sub select_autobackup {
my $foo = $back_config->Toplevel(-title => ___"autobackup");
$foo->transient($mw);
$foo->grab();
- my $var = $default_autobackup;
+ my $var = $defaults{"autobackup"};
my $opt = $foo->BrowseEntry(-label => ___"autobackup",
-variable => \$var);
my @al;
@@ -299,7 +351,7 @@ sub select_autobackup {
-command => sub {
$var =~ s/ .*$//;
$localtlpdb->option("autobackup", $var);
- $default_autobackup = $var;
+ $defaults{"autobackup"} = $var;
$localtlpdb->save;
$foo->destroy;
}
diff --git a/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui.pl b/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui.pl
index f06a35c393d..dae5c3f3460 100755
--- a/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui.pl
+++ b/Master/texmf/scripts/texlive/tlmgrgui/tlmgrgui.pl
@@ -42,7 +42,7 @@ $TRANS{'en'} = {
newdefaultsrc => "New default installation source",
choosedir => "Choose Directory",
config => "Configuration",
- createformats => "Create formats on installation",
+ create_formats => "Create formats on installation",
currentsource => "Current installation source: ",
debug => "Debug",
defaultsource => "Default installation source",
@@ -55,8 +55,13 @@ $TRANS{'en'} = {
nodepballoon => "For collections: install or remove will not install/remove the dependencies",
infoitem => "Information on the selected item",
install => "Installation",
- installdoc => "Install macro/font docs",
- installsrc => "Install macro/font sources",
+ install_docfiles => "Install macro/font docs",
+ install_srcfiles => "Install macro/font sources",
+ sys_bin => "Link destination for programs",
+ sys_man => "Link destination for man pages",
+ sys_info => "Link destination for info docs",
+ updatesymlinks => "Update symbolic links",
+ removesymlinks => "Remove symbolic links",
installsel => "Install selected",
load => "Load",
warningtxt => "The database of the installation source has not been loaded.\n\nPlease use the \"Load\" (and possibly \"Change\") button to do so.",
@@ -225,9 +230,9 @@ die("cannot find tlpdb!") unless (defined($localtlpdb));
our @alllocalpackages = setup_list(0,$localtlpdb->list_packages);
our @updatepackages;
-setup_programs("$Master/tlpkg/installer", $localtlpdb->option_platform);
+setup_programs("$Master/tlpkg/installer", $localtlmedia->platform);
-my $loc = $localtlpdb->option_location;
+my $loc = $localtlpdb->option("location");
if (defined($loc)) {
$location = $loc;
}
diff --git a/Master/texmf/scripts/texlive/uninstall-win32.pl b/Master/texmf/scripts/texlive/uninstall-win32.pl
index 01b7a85a4b5..cfc3ff9bee1 100644
--- a/Master/texmf/scripts/texlive/uninstall-win32.pl
+++ b/Master/texmf/scripts/texlive/uninstall-win32.pl
@@ -49,17 +49,22 @@ sub doit {
if (!defined($localtlpdb)) {
tlwarn("Cannot load the TLPDB from $Master, are you sure there is an installation?\n");
} else {
+ # set the mode for windows uninstall according to the setting in
+ # tlpdb
+ if (TeXLive::TLWinGoo::admin() && !$localtlpdb->option("w32_multi_user")) {
+ non_admin();
+ }
for my $pkg ($localtlpdb->list_packages) {
&TeXLive::TLUtils::do_postaction("remove", $localtlpdb->get_package($pkg),
- $localtlpdb->option_file_assocs,
- $localtlpdb->option_desktop_integration,
- $localtlpdb->option_post_code);
+ $localtlpdb->option("file_assocs"),
+ $localtlpdb->option("desktop_integration"),
+ $localtlpdb->option("post_code"));
}
}
my $menupath = &TeXLive::TLWinGoo::menu_path();
$menupath =~ s!/!\\!g;
`rmdir /q "$menupath\\$TeXLive::TLConfig::WindowsMainMenuName" 2>nul`;
- my $mode = ($localtlpdb->option_w32_multi_user) ? 'system' : 'user';
+ my $mode = ($localtlpdb->option("w32_multi_user")) ? 'system' : 'user';
adjust_reg_path_for_texlive('remove', "$Master/bin/win32", $mode);
# unsetenv_reg("TEXBINDIR");
# from_dvd case: