svn commit: r397889 - in head: Mk devel/tex-kpathsea devel/tex-kpathsea/files print/texlive-base print/texlive-base/files print/texlive-tlmgr print/texlive-tlmgr/files

Hiroki Sato hrs at FreeBSD.org
Fri Sep 25 21:42:29 UTC 2015


Author: hrs
Date: Fri Sep 25 21:42:25 2015
New Revision: 397889
URL: https://svnweb.freebsd.org/changeset/ports/397889

Log:
  Add preliminary support of tlmgr.
  
   - TLPDB and tlmgr.log are located in /var/db/tlpkg.
  
   - "tlmgr conf texmf" modifies /var/db/tlpkg/texmf.cnf.
     libkpathsea looks up it first if it exists and ignore the standard ones
     in PREFIX/share/texmf-dist/web2c/texmf.cnf or
     PREFIX/share/texmf-local/web2c/texmf.cnf.
  
   - "tlmgr update" can still break consistency of the installed texmf-*
     hierarchy by FreeBSD Ports Collection if it runs by root.

Added:
  head/print/texlive-base/files/patch-texk-texlive-linked_scripts-Makfile.in   (contents, props changed)
  head/print/texlive-tlmgr/files/
  head/print/texlive-tlmgr/files/patch-texlive-20150521-source-texk-texlive-linked_scripts-texlive-tlmgr.pl   (contents, props changed)
  head/print/texlive-tlmgr/files/patch-texlive-20150523-extra-tlpkg-TeXLive-TLUtils.pm   (contents, props changed)
Modified:
  head/Mk/bsd.tex.mk
  head/devel/tex-kpathsea/Makefile
  head/devel/tex-kpathsea/files/patch-texmf.cnf
  head/print/texlive-base/Makefile
  head/print/texlive-base/pkg-plist
  head/print/texlive-tlmgr/Makefile
  head/print/texlive-tlmgr/distinfo
  head/print/texlive-tlmgr/pkg-plist

Modified: head/Mk/bsd.tex.mk
==============================================================================
--- head/Mk/bsd.tex.mk	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/Mk/bsd.tex.mk	Fri Sep 25 21:42:25 2015	(r397889)
@@ -81,7 +81,7 @@ IGNORE=		"texlive" must not be defined i
 _USE_TEX_TEXMF_DEP=	${LOCALBASE}/${TEXMFDISTDIR}/README
 _USE_TEX_TEXMF_PORT=	print/${_USE_TEX_TEXMF_PKGNAME}
 _USE_TEX_TEXMF_PKGNAME=	texlive-texmf
-_USE_TEX_BASE_DEP=	tlmgr
+_USE_TEX_BASE_DEP=	texconfig
 _USE_TEX_BASE_PORT=	print/${_USE_TEX_BASE_PKGNAME}
 _USE_TEX_BASE_PKGNAME=	texlive-base
 _USE_TEX_GBKLATEX_DEP=	gbklatex

Modified: head/devel/tex-kpathsea/Makefile
==============================================================================
--- head/devel/tex-kpathsea/Makefile	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/devel/tex-kpathsea/Makefile	Fri Sep 25 21:42:25 2015	(r397889)
@@ -2,6 +2,7 @@
 
 PORTNAME=	kpathsea
 PORTVERSION=	6.2.1
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	ftp://tug.org/historic/systems/texlive/2015/
 PKGNAMEPREFIX=	tex-

Modified: head/devel/tex-kpathsea/files/patch-texmf.cnf
==============================================================================
--- head/devel/tex-kpathsea/files/patch-texmf.cnf	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/devel/tex-kpathsea/files/patch-texmf.cnf	Fri Sep 25 21:42:25 2015	(r397889)
@@ -1,5 +1,5 @@
---- texmf.cnf.orig	2015-04-12 15:20:30 UTC
-+++ texmf.cnf
+--- texmf.cnf.orig	2015-04-13 00:20:30.000000000 +0900
++++ texmf.cnf	2015-09-26 04:35:35.579765000 +0900
 @@ -51,7 +51,7 @@
  % Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
  % Kpathsea sets SELFAUTOLOC (the directory with the binary),
@@ -9,7 +9,7 @@
  
  % The main tree of distributed packages and programs:
  TEXMFDIST = $TEXMFROOT/texmf-dist
-@@ -61,7 +61,7 @@ TEXMFDIST = $TEXMFROOT/texmf-dist
+@@ -61,7 +61,7 @@
  TEXMFMAIN = $TEXMFDIST
  
  % Local additions to the distribution trees.
@@ -18,7 +18,15 @@
  
  % TEXMFSYSVAR, where *-sys store cached runtime data.
  TEXMFSYSVAR = $TEXMFROOT/texmf-var
-@@ -722,7 +722,7 @@ hash_extra = 600000
+@@ -495,6 +495,7 @@
+ $SELFAUTOLOC/texmf-dist/web2c,\
+ $SELFAUTOLOC/texmf/web2c,\
+ \
++/var/db/tlpkg,\
+ $SELFAUTODIR,\
+ $SELFAUTODIR/share/texmf-local/web2c,\
+ $SELFAUTODIR/share/texmf-dist/web2c,\
+@@ -722,7 +723,7 @@
  pool_size = 6250000
  % Minimum pool space after TeX's own strings; must be at least
  % 25000 less than pool_size, but doesn't need to be nearly that large.
@@ -27,7 +35,7 @@
  % Maximum number of strings.
  max_strings = 500000
  % min pool space left after loading .fmt
-@@ -732,7 +732,7 @@ pool_free = 47500
+@@ -732,7 +733,7 @@
  % expansion works by writing material into the buffer and reparsing the
  % line.  As a consequence, certain constructs require the buffer to be
  % very large, even though most documents can be handled with a small value.
@@ -36,7 +44,7 @@
  
  % Hyphenation trie.  The maximum possible is 4194303 (ssup_trie_size in
  % the sources), but we don't need that much.  The value here suffices
-@@ -743,7 +743,7 @@ trie_size = 1000000
+@@ -743,7 +744,7 @@
  
  hyph_size = 8191        % prime number of hyphenation exceptions, >610, <32767.
                          % http://primes.utm.edu/curios/page.php/8191.html

Modified: head/print/texlive-base/Makefile
==============================================================================
--- head/print/texlive-base/Makefile	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/print/texlive-base/Makefile	Fri Sep 25 21:42:25 2015	(r397889)
@@ -2,7 +2,7 @@
 
 PORTNAME=	texlive
 PORTVERSION=	20150521
-PORTREVISION=	5
+PORTREVISION=	6
 CATEGORIES=	print
 MASTER_SITES=	TEX_CTAN/systems/texlive/Source/
 PKGNAMESUFFIX=	-base

Added: head/print/texlive-base/files/patch-texk-texlive-linked_scripts-Makfile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/texlive-base/files/patch-texk-texlive-linked_scripts-Makfile.in	Fri Sep 25 21:42:25 2015	(r397889)
@@ -0,0 +1,10 @@
+--- texk/texlive/linked_scripts/Makefile.in.orig	2015-09-25 04:27:05.446437000 +0900
++++ texk/texlive/linked_scripts/Makefile.in	2015-09-25 04:27:13.904147000 +0900
+@@ -386,7 +386,6 @@
+ 	texlive/fmtutil.pl \
+ 	texlive/fmtutil-sys.sh \
+ 	texlive/rungs.tlu \
+-	texlive/tlmgr.pl \
+ 	texlive/updmap.pl \
+ 	texlive/updmap-sys.sh \
+ 	texliveonfly/texliveonfly.py \

Modified: head/print/texlive-base/pkg-plist
==============================================================================
--- head/print/texlive-base/pkg-plist	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/print/texlive-base/pkg-plist	Fri Sep 25 21:42:25 2015	(r397889)
@@ -226,7 +226,6 @@ bin/texliveonfly
 bin/texloganalyser
 bin/texmfstart
 bin/thumbpdf
-bin/tlmgr
 bin/tpic2pdftex
 bin/ttf2kotexfont
 bin/ttf2pk
@@ -484,7 +483,6 @@ man/man5/updmap.cfg.5.gz
 %%TEXMFDISTDIR%%/scripts/texlive/texconfig-sys.sh
 %%TEXMFDISTDIR%%/scripts/texlive/texconfig.sh
 %%TEXMFDISTDIR%%/scripts/texlive/texlinks.sh
-%%TEXMFDISTDIR%%/scripts/texlive/tlmgr.pl
 %%TEXMFDISTDIR%%/scripts/texlive/updmap-sys.sh
 %%TEXMFDISTDIR%%/scripts/texlive/updmap.pl
 %%TEXMFDISTDIR%%/scripts/texliveonfly/texliveonfly.py

Modified: head/print/texlive-tlmgr/Makefile
==============================================================================
--- head/print/texlive-tlmgr/Makefile	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/print/texlive-tlmgr/Makefile	Fri Sep 25 21:42:25 2015	(r397889)
@@ -2,28 +2,60 @@
 
 PORTNAME=	texlive
 PORTVERSION=	20150523
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	print perl5
-MASTER_SITES=	ftp://tug.org/historic/systems/texlive/2015/
+MASTER_SITES=	ftp://tug.org/historic/systems/texlive/2015/:tlmgr \
+		LOCAL/hrs:tlpkg
 PKGNAMESUFFIX=	-tlmgr
-DISTNAME=	${PORTNAME}-${PORTVERSION}-extra
+DISTFILES=	${PORTNAME}-${PORTVERSION}-extra${EXTRACT_SUFX}:tlmgr \
+		${PORTNAME}-20150521-source${EXTRACT_SUFX}:tlmgr \
+		${TLPKG_FILE}.xz:tlpkg
 DIST_SUBDIR=	TeX
+EXTRACT_ONLY=	${PORTNAME}-${PORTVERSION}-extra${EXTRACT_SUFX}
 
 MAINTAINER=	hrs at FreeBSD.org
 COMMENT=	TeXLive manager modules
 
-CONFLICTS=	texlive-infra-[0-9]*
+RUN_DEPENDS=	tex-kpathsea>=6.2.1_1:${PORTSDIR}/devel/tex-kpathsea
+
+CONFLICTS=	texlive-infra-[0-9]* texlive-base-20150521_[12345]
 
 USES=		perl5 tar:xz
 USE_PERL5=	run
-USE_TEX=	yes
+USE_TEX=	kpathsea
+PATCH_WRKSRC=	${WRKDIR}
 NO_BUILD=	yes
 
+TLPKG_FILE=	${PORTNAME}-20150924.tlpdb
+EXTRACT_AFTER_ARGS_SOURCE= \
+	| ${TAR} -xf - -C ${WRKDIR} \
+	    --no-same-permission --no-same-owner \
+	    ${PORTNAME}-20150521-source/texk/texlive/linked_scripts/texlive
+
+post-extract:
+	${CAT} ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-20150521-source${EXTRACT_SUFX} \
+	    ${EXTRACT_AFTER_ARGS_SOURCE}
+
 do-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/${TEXMFDISTDIR}/scripts/texlive
+	${INSTALL_SCRIPT} \
+	    ${WRKDIR}/${PORTNAME}-20150521-source/texk/texlive/linked_scripts/texlive/tlmgr.pl \
+	    ${STAGEDIR}${PREFIX}/${TEXMFDISTDIR}/scripts/texlive
+	cd ${STAGEDIR}${PREFIX}/bin && \
+	    ${LN} -s ../${TEXMFDISTDIR}/scripts/texlive/tlmgr.pl tlmgr
 	@${MKDIR} ${STAGEDIR}${PREFIX}/${SITE_PERL_REL}/TeXLive
-	${INSTALL_DATA} ${WRKSRC}/tlpkg/TeXLive/*.pm \
+	${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-${PORTVERSION}-extra/tlpkg/TeXLive/*.pm \
 	    ${STAGEDIR}${PREFIX}/${SITE_PERL_REL}/TeXLive
 	@${MKDIR} ${STAGEDIR}${PREFIX}/${TEXMFDISTDIR}
 	${TOUCH} ${STAGEDIR}${PREFIX}/${TEXMFDISTDIR}/.texlive-tlmgr
+	${MKDIR} ${STAGEDIR}/var/db/tlpkg
+	${TOUCH} ${STAGEDIR}/var/db/tlpkg/tlmgr.log
+	${XZCAT} ${DISTDIR}/${DIST_SUBDIR}/${TLPKG_FILE}.xz \
+	    > ${STAGEDIR}/var/db/tlpkg/texlive.tlpdb
+	${INSTALL_DATA} ${LOCALBASE}/share/texmf-dist/web2c/texmf.cnf \
+	    ${STAGEDIR}/var/db/tlpkg
+	${MKDIR} ${STAGEDIR}/var/db/tlpkg/backups
+	${MKDIR} ${STAGEDIR}/var/db/tlpkg/tlpobj
+	${LN} -s /var/db/tlpkg ${STAGEDIR}${PREFIX}/share/tlpkg
 
 .include <bsd.port.mk>

Modified: head/print/texlive-tlmgr/distinfo
==============================================================================
--- head/print/texlive-tlmgr/distinfo	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/print/texlive-tlmgr/distinfo	Fri Sep 25 21:42:25 2015	(r397889)
@@ -1,2 +1,6 @@
 SHA256 (TeX/texlive-20150523-extra.tar.xz) = d1282d91943ead1f7c50345c475115aab5459f003cec9eaad80122f5988270b6
 SIZE (TeX/texlive-20150523-extra.tar.xz) = 369436
+SHA256 (TeX/texlive-20150521-source.tar.xz) = ed9bcd7bdce899c3c27c16a8c5c3017c4f09e1d7fd097038351b72497e9d4669
+SIZE (TeX/texlive-20150521-source.tar.xz) = 45459552
+SHA256 (TeX/texlive-20150924.tlpdb.xz) = 827e4a9446c5657d6714ef5b9be81fad5731b47d9b1b58df7eacc922aca9fb30
+SIZE (TeX/texlive-20150924.tlpdb.xz) = 1112660

Added: head/print/texlive-tlmgr/files/patch-texlive-20150521-source-texk-texlive-linked_scripts-texlive-tlmgr.pl
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/texlive-tlmgr/files/patch-texlive-20150521-source-texk-texlive-linked_scripts-texlive-tlmgr.pl	Fri Sep 25 21:42:25 2015	(r397889)
@@ -0,0 +1,86 @@
+--- texlive-20150521-source/texk/texlive/linked_scripts/texlive/tlmgr.pl.orig	2015-05-11 21:37:36 UTC
++++ texlive-20150521-source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+@@ -72,7 +72,7 @@ BEGIN {
+   }
+   if (-r "$bindir/$kpsewhichname") {
+     # if not in bootstrapping mode => kpsewhich exists, so use it to get $Master
+-    chomp($Master = `kpsewhich -var-value=SELFAUTOPARENT`);
++    chomp($Master = `kpsewhich -var-value=TEXMFROOT`);
+   }
+   $::installerdir = $Master;
+ 
+@@ -581,13 +581,16 @@ for the full story.\n";
+   # besides doing normal logging if -logfile is specified, we try to log
+   # package related actions (install, remove, update) to
+   # the package-log file TEXMFSYSVAR/web2c/tlmgr.log
++  # 
++  # *** FreeBSD specific: FreeBSD port uses /var/db/tlpkg/tlmgr.log.
++  #
+   $packagelogged = 0;  # how many msgs we logged
+   chomp (my $texmfsysvar = `kpsewhich -var-value=TEXMFSYSVAR`);
+   $packagelogfile = $opts{"package-logfile"};
+   if ($opts{"usermode"}) {
+     $packagelogfile ||= "$::maintree/web2c/tlmgr.log";
+   } else {
+-    $packagelogfile ||= "$texmfsysvar/web2c/tlmgr.log";
++    $packagelogfile ||= "/var/db/tlpkg/tlmgr.log";
+   }
+   #
+   # Try to open the packagelog file, but do NOT die when that does not work
+@@ -650,8 +653,8 @@ sub give_version {
+   if (!defined($::version_string)) {
+     $::version_string = "";
+     $::version_string .= "tlmgr revision $tlmgrrevision\n";
+-    $::version_string .= "tlmgr using installation: $Master\n";
+-    if (open (REL_TL, "$Master/release-texlive.txt")) {
++    $::version_string .= "tlmgr using installation: $Master/tlpkg\n";
++    if (open (REL_TL, "$Master/tlpkg/release-texlive.txt")) {
+       # print first and last lines, which have the TL version info.
+       my @rel_tl = <REL_TL>;
+       $::version_string .= $rel_tl[0];
+@@ -2085,7 +2088,7 @@ sub write_w32_updater {
+   my $opt_src = $localtlpdb->option("install_srcfiles");
+   my $opt_doc = $localtlpdb->option("install_docfiles");
+   my $root = $localtlpdb->root;
+-  my $temp = "$root/temp";
++  my $temp = "$root/tlpkg/temp";
+   TeXLive::TLUtils::mkdirhier($temp);
+   tlwarn("Backup option not implemented for infrastructure update.\n") if ($opts{"backup"});
+   if ($media eq 'local_uncompressed') {
+@@ -4663,19 +4666,19 @@ sub action_uninstall {
+   system("rm", "-rf", "$Master/texmf-var");
+   system("rm", "-rf", "$Master/tlpkg");
+   system("rm", "-rf", "$Master/bin");
+-  system("rm", "-rf", "$Master/readme-html.dir");
+-  system("rm", "-rf", "$Master/readme-txt.dir");
++  system("rm", "-rf", "$Master/tlpkg/readme-html.dir");
++  system("rm", "-rf", "$Master/tlpkg/readme-txt.dir");
+   for my $f (qw/doc.html index.html LICENSE.CTAN LICENSE.TL README
+                 README.usergroups release-texlive.txt texmf.cnf/) {
+-    system("rm", "-f", "$Master/$f");
++    system("rm", "-f", "$Master/tlpkg/$f");
+   }
+-  if (-d "$Master/temp") {
+-    system("rmdir", "--ignore-fail-on-non-empty", "$Master/temp");
++  if (-d "$Master/tlpkg/temp") {
++    system("rmdir", "--ignore-fail-on-non-empty", "$Master/tlpkg/temp");
+   }
+-  unlink("$Master/install-tl.log");
++  unlink("$Master/tlpkg/install-tl.log");
+   # should we do that????
+-  system("rm", "-rf", "$Master/texmf-config");
+-  system("rmdir", "--ignore-fail-on-non-empty", "$Master");
++  # system("rm", "-rf", "$Master/texmf-config");
++  # system("rmdir", "--ignore-fail-on-non-empty", "$Master");
+ }
+ 
+ 
+@@ -5466,7 +5469,7 @@ sub action_conf {
+       $fn || ( $fn = "$TEXMFCONFIG/tlmgr/config" ) ;
+       $cf = TeXLive::TLConfFile->new($fn, "#", "=");
+     } elsif ($arg eq "texmf") {
+-      $fn || ( $fn = "$Master/texmf.cnf" ) ;
++      $fn || ( $fn = "$Master/tlpkg/texmf.cnf" ) ;
+       $cf = TeXLive::TLConfFile->new($fn, "[%#]", "=");
+     } elsif ($arg eq "updmap") {
+       $fn || ( chomp ($fn = `kpsewhich updmap.cfg`) ) ;

Added: head/print/texlive-tlmgr/files/patch-texlive-20150523-extra-tlpkg-TeXLive-TLUtils.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/print/texlive-tlmgr/files/patch-texlive-20150523-extra-tlpkg-TeXLive-TLUtils.pm	Fri Sep 25 21:42:25 2015	(r397889)
@@ -0,0 +1,32 @@
+--- texlive-20150523-extra/tlpkg/TeXLive/TLUtils.pm.orig	2015-05-06 20:30:33 UTC
++++ texlive-20150523-extra/tlpkg/TeXLive/TLUtils.pm
+@@ -228,22 +228,14 @@ subsequent calls just return that value.
+ 
+ sub platform {
+   unless (defined $::_platform_) {
+-    if ($^O =~ /^MSWin/i) {
+-      $::_platform_ = "win32";
+-    } else {
+-      my $config_guess = "$::installerdir/tlpkg/installer/config.guess";
+-
+-      # We cannot rely on #! in config.guess but have to call /bin/sh
+-      # explicitly because sometimes the 'noexec' flag is set in
+-      # /etc/fstab for ISO9660 file systems.
+-      chomp (my $guessed_platform = `/bin/sh '$config_guess'`);
+-
+-      # For example, if the disc or reader has hardware problems.
+-      die "$0: could not run $config_guess, cannot proceed, sorry"
+-        if ! $guessed_platform;
+-
++      chomp(my $uname_m = `uname -m`);
++      chomp(my $uname_r = `uname -r`);
++      chomp(my $uname_s = `uname -s`);
++      $uname_r =~ s/-.*$//;
++      $uname_s = lc($uname_s);
++      $guessed_platform = sprintf("%s-unknown-%s%s", $uname_m,
++          $uname_s, $uname_r);
+       $::_platform_ = platform_name($guessed_platform);
+-    }
+   }
+   return $::_platform_;
+ }

Modified: head/print/texlive-tlmgr/pkg-plist
==============================================================================
--- head/print/texlive-tlmgr/pkg-plist	Fri Sep 25 21:41:39 2015	(r397888)
+++ head/print/texlive-tlmgr/pkg-plist	Fri Sep 25 21:42:25 2015	(r397889)
@@ -1,3 +1,5 @@
+bin/tlmgr
+share/tlpkg
 %%SITE_PERL%%/TeXLive/TLConfFile.pm
 %%SITE_PERL%%/TeXLive/TLConfig.pm
 %%SITE_PERL%%/TeXLive/TLDownload.pm
@@ -10,3 +12,10 @@
 %%SITE_PERL%%/TeXLive/TLWinGoo.pm
 %%SITE_PERL%%/TeXLive/TeXCatalogue.pm
 %%TEXMFDISTDIR%%/.texlive-tlmgr
+%%TEXMFDISTDIR%%/scripts/texlive/tlmgr.pl
+/var/db/tlpkg/texlive.tlpdb
+/var/db/tlpkg/texmf.cnf
+/var/db/tlpkg/tlmgr.log
+ at dir /var/db/tlpkg/backups
+ at dir /var/db/tlpkg/tlpobj
+ at dir /var/db/tlpkg


More information about the svn-ports-all mailing list