void-packages/srcpkgs/texlive/patches/tlmgr.patch
Đoàn Trần Công Danh 4f75cf25fd srcpkgs/t*: convert patches to -Np1
```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.-][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.-][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

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.
--- a/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/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