3a7f997c09
Uses Debian's patch to force usermode and disable the use of tlpdb. Also make the tlmgr wrapper use exec
113 lines
3.6 KiB
Diff
113 lines
3.6 KiB
Diff
Modified from Debian's tlmgr patch.
|
|
Src: https://raw.githubusercontent.com/debian-tex/texlive-nonbin/9767c8ba4ea64d671eb98ddff550498cd2ac3d51/texlive-base/debian/patches/debian-tlmgr-usermode.
|
|
|
|
Modifications:
|
|
|
|
* Drop Debian specific wording.
|
|
* Drop unnessecary manpage changes.
|
|
* Change /usr/share path to what we use.
|
|
|
|
Modified by fosslinux.
|
|
|
|
--- texk/texlive/linked_scripts/texlive/tlmgr.pl
|
|
+++ texk/texlive/linked_scripts/texlive/tlmgr.pl
|
|
@@ -21,7 +21,7 @@
|
|
$tlmgrversion = "$tlmgrrevision ($datrev)";
|
|
|
|
our $Master;
|
|
-our $ismain;
|
|
+our $ismain = 1;
|
|
our $loadmediasrcerror;
|
|
our $packagelogfile;
|
|
our $packagelogged;
|
|
@@ -41,50 +41,8 @@
|
|
|
|
BEGIN {
|
|
$^W = 1;
|
|
- $ismain = (__FILE__ eq $0);
|
|
- # WARNING
|
|
- # The only use anticipated for tlmgr.pl as library for the 2009 release
|
|
- # is the Windows w32client prototype script.
|
|
- # Unix-specific problems with use as library will probably go undetected.
|
|
-
|
|
- # make subprograms (including kpsewhich) have the right path:
|
|
- my $kpsewhichname;
|
|
- if ($^O =~ /^MSWin/i) {
|
|
- # on w32 $0 and __FILE__ point directly to tlmgr.pl; they can be relative
|
|
- $Master = __FILE__;
|
|
- $Master =~ s!\\!/!g;
|
|
- $Master =~ s![^/]*$!../../..!
|
|
- unless ($Master =~ s!/texmf-dist/scripts/texlive/tlmgr\.pl$!!i);
|
|
- $bindir = "$Master/bin/win32";
|
|
- $kpsewhichname = "kpsewhich.exe";
|
|
- # path already set by wrapper batchfile
|
|
- } else {
|
|
- $Master = __FILE__;
|
|
- $Master =~ s,/*[^/]*$,,;
|
|
- if ($ismain) {
|
|
- $bindir = $Master;
|
|
- $Master = "$Master/../..";
|
|
- } else {
|
|
- # for the time being, this code will not be used or tested
|
|
- $Master = "$Master/../../..";
|
|
- # no code yet for $bindir; would have to detect platform
|
|
- }
|
|
- # make subprograms (including kpsewhich) have the right path:
|
|
- $ENV{"PATH"} = "$bindir:$ENV{PATH}";
|
|
- $kpsewhichname = "kpsewhich";
|
|
- }
|
|
- if (-r "$bindir/$kpsewhichname") {
|
|
- # if not in bootstrapping mode => kpsewhich exists, so use it to get $Master
|
|
- chomp($Master = `kpsewhich -var-value=SELFAUTOPARENT`);
|
|
- }
|
|
-
|
|
- # if we have no directory in which to find our modules,
|
|
- # no point in going on.
|
|
- if (! $Master) {
|
|
- die ("Could not determine directory of tlmgr executable, "
|
|
- . "maybe shared library woes?\nCheck for error messages above");
|
|
- }
|
|
-
|
|
+
|
|
+ $Master = "/usr/share/texmf-dist";
|
|
$::installerdir = $Master; # for config.guess et al., see TLUtils.pm
|
|
|
|
# make Perl find our packages first:
|
|
@@ -621,6 +579,13 @@
|
|
tldie("$prg: Try --help if you need it.\n");
|
|
}
|
|
|
|
+ # automatically switch to user mode on Void, and warn
|
|
+ if (!$opts{"usermode"} && $action ne "init-usertree") {
|
|
+ $opts{"usermode"} = 1;
|
|
+ print "WARNING: switching to user mode!\n";
|
|
+ print "WARNING: normal mode unsupported on Void Linux.\n";
|
|
+ }
|
|
+
|
|
#
|
|
# the main tree we will be working on
|
|
$::maintree = $Master;
|
|
@@ -6099,7 +6064,9 @@
|
|
# sets up the user tree for tlmgr in user mode
|
|
sub action_init_usertree {
|
|
# init_local_db but do not die if localtlpdb is not found!
|
|
- init_local_db(2);
|
|
+ # we don't ship tlpdb in the system, so don't even
|
|
+ # try to initialize it.
|
|
+ # init_local_db(2);
|
|
my $tlpdb = TeXLive::TLPDB->new;
|
|
my $usertree;
|
|
if ($opts{"usertree"}) {
|
|
@@ -6739,7 +6706,11 @@
|
|
if ($should_i_die == 2) {
|
|
return undef;
|
|
} else {
|
|
- die("cannot setup TLPDB in $::maintree");
|
|
+ if ($opts{'usermode'}) {
|
|
+ die("$prg: user mode not initialized, please run `tlmgr init-usertree`\n");
|
|
+ } else {
|
|
+ die("cannot setup TLPDB in $::maintree");
|
|
+ }
|
|
}
|
|
}
|
|
# setup the programs, for w32 we need the shipped wget/xz etc, so we
|