Created attachment 221172 [details] diff of ports tree for texlive 2020 update I've started the process of updating the version of TeX Live in the ports collection to 2020. It's still incomplete, but I have initial patches for: Mk/bsd.tex.mk devel/tex-kpathsea devel/tex-web2c print/tex-ptexenc print/texlive-tlmgr print/texlive-base My strategy has been one of aiming for continuity of current capabilities and "least surprise," so I've not refactored any of the infrastructure in bsd.tex.mk, or modified the way the tex packages are currently split up. I've only been updating the checksums, the patch files (to perform the same patch on the new sources, mostly just line number differences), and Makefiles to get the new sources to build. Since this is my first attempt at working on a port, and since this is a large component, I'm submitting these patches hoping for initial review of the effort, and a sanity check. There are a lot more packages, but I'll feel more comfortable moving on to those after getting some initial feedback on these. If anyone has suggestions on other ways to approach the update, I'd be happy to hear those as well! Thanks! Travis
Hi Travis! Fantastic news! I'm by no means an expert but I can give you a few pointers at least in general. devel/tex-kpathsea/Makefile PORTVERSION --> DISTVERSION PORTREVISION --> Remove (starts at 0 and can be omitted) For practical reasons and being a good "netizen" I think we should default to using mirrors and fall back to main site as last resort as this is also something upstream recommends. https://www.tug.org/texlive/acquire.html (applies to all Makefiles) http://ftp.math.utah.edu/pub/tex/historic/ https://ftp.tu-chemnitz.de/pub/tug/historic/ devel/tex-web2c/Makefile Remove PORTREVISION Adjust MASTER_SITES as mentioned previously print/tex-ptexenc/Makefile Same as web2c print/texlive-base/Makefile Remove PORTREVISION Adjust MASTER_SITES as mentioned previously References: PORTVERSION vs DISTVERSION "Table 5.2. Package Naming Examples" in Porters Handbook PORTREVISION "5.2.3.1. PORTREVISION" in Porters Handbook Best regards, Daniel
Thanks for the feedback, Daniel! I will make those changes. With respect to the mirrors, I will try to use the MASTER_SITE_TEX_CTAN list in bsd.sites.mk where possible, so thanks for pointing that out. As a user I always went straight to the tug.org site, but the CTAN network would be more appropriate when possible. I'll add a couple more sites to that list as well.
Moin moin Glad to see someone working on it again :) My personal plan for upgrading it [3] included switching to having "collection" packages. So for every entry in [1] which has 'category Collection', I would have created a port/package -- which would be roughly 35 packages, I think. Also switching to a Uses/Mk/tex.mk, with some USES=tex:collection1,collection2,... etc Note, there is also a stale differential, to upgrade it to 2019 [2]. mfg Tobias [1] http://mirror.ctan.org/systems/texlive/tlnet/tlpkg/texlive.tlpdb [2] https://reviews.freebsd.org/D16623 [3] https://github.com/freebsd/freebsd-ports-kde/tree/texlive-2020
(In reply to Tobias C. Berner from comment #3) Thanks for the response! I was aware of the previous (stale) update from uzsolt, but I found that review and patch more confusing than helpful. It went from 2018, then 2019, then a comment about 2020 being in progress... It was hard for me to follow, so I started on my own fresh. Your approach is interesting. Updating in place is possible with the current framework, using bsd.tex.mk, and updating each of the ports in place. I have some concerns about it though, as getting more of the component ports to build and play nicely is starting to feel more and more hack-y. I'm cherry-picking man-pages and scripts out of Makefiles in order to not conflict with man-pages and scripts installed by other tex-* ports, which doesn't sit right with me, so I'm rethinking my approach. The current framework is clever, but hard to maintain it seems. I cloned the freebsd-kde-ports repo and been looking at your texlive-2020 branch. I may regroup and go back and attempt something similar to your approach.
Hint: run make -C print/texlive-base/ package, until that works for you. Here's what I came up with (initially all I wanted was pdflatex with a recent draftwatermark package from print/tex-formats/) using git diff --stat: Mk/bsd.sites.mk | 8 ++----- Mk/bsd.tex.mk | 6 ++--- devel/tex-kpathsea/Makefile | 26 +++++++++++++++------- devel/tex-kpathsea/distinfo | 5 +++-- devel/tex-kpathsea/files/patch-Makefile.in | 78 ++++++----------------------------------------------------------- devel/tex-kpathsea/files/patch-texmf.cnf | 24 ++++++++++---------- devel/tex-kpathsea/pkg-plist | 23 ++++++++++--------- devel/tex-libtexlua/Makefile | 4 ++-- devel/tex-libtexlua/distinfo | 4 ++-- devel/tex-libtexluajit/Makefile | 4 ++-- devel/tex-libtexluajit/distinfo | 4 ++-- devel/tex-synctex/Makefile | 6 ++--- devel/tex-synctex/distinfo | 4 ++-- devel/tex-web2c/Makefile | 17 ++++++++++----- devel/tex-web2c/distinfo | 5 +++-- devel/tex-web2c/files/patch-Makefile.in | 22 +++++++++---------- devel/tex-web2c/files/patch-man-Makefile.in | 7 +++--- devel/tex-web2c/pkg-plist | 38 ++++++++++++++++++++++---------- japanese/tex-ptex/distinfo | 8 +++---- print/tex-aleph/distinfo | 8 +++---- print/tex-basic-engines/Makefile | 8 +++---- print/tex-basic-engines/distinfo | 4 ++-- print/tex-dvipdfmx/distinfo | 8 +++---- print/tex-dvipsk/distinfo | 8 +++---- print/tex-formats/Makefile | 4 ++-- print/tex-jadetex/Makefile | 4 ++-- print/tex-jadetex/distinfo | 4 ++-- print/tex-luatex/distinfo | 8 +++---- print/tex-ptexenc/Makefile | 8 +++---- print/tex-ptexenc/distinfo | 5 +++-- print/tex-ptexenc/files/patch-Makefile.in | 6 ++--- print/tex-ptexenc/files/patch-configure | 10 ++++----- print/tex-ptexenc/files/patch-ptexenc.c | 15 +++++++------ print/tex-ptexenc/pkg-plist | 4 ++-- print/tex-xetex/distinfo | 8 +++---- print/tex-xmltex/Makefile | 4 ++-- print/tex-xmltex/distinfo | 4 ++-- print/texlive-base/Makefile | 22 ++++++++++++++----- print/texlive-base/distinfo | 5 +++-- print/texlive-base/files/patch-Makefile.in | 6 ++--- print/texlive-base/files/patch-configure | 13 ++++++----- print/texlive-base/files/patch-texk-bibtex-x-Makefile.in | 17 ++++++++------- print/texlive-base/files/patch-texk-chktex-Makefile.in | 10 ++++----- print/texlive-base/files/patch-texk-cjkutils-Makefile.in | 6 ++--- print/texlive-base/files/patch-texk-dvisvgm-dvisvgm-1.9.2-src-FileFinder.cpp | 10 --------- print/texlive-base/files/patch-texk-dvisvgm-dvisvgm-1.9.2-src-Font.cpp | 10 --------- print/texlive-base/files/patch-texk-dvisvgm-dvisvgm-1.9.2-src-FontEncoding.cpp | 10 --------- print/texlive-base/files/patch-texk-dvisvgm-dvisvgm-1.9.2-src-Message.cpp | 10 --------- print/texlive-base/files/patch-texk-gsftopk-Makefile.in | 6 ++--- print/texlive-base/files/patch-texk-lcdf-typetools-lcdf-typetools-2.104-Makefile.in | 6 ++--- print/texlive-base/files/patch-texk-lcdf-typetools-lcdf-typetools-2.104-libefont-cff.cc | 4 ++-- print/texlive-base/files/patch-texk-lcdf-typetools-lcdf-typetools-2.104-libefont-t1interp.cc | 10 --------- print/texlive-base/files/patch-texk-texlive-linked_scripts-Makfile.in | 10 --------- print/texlive-base/files/patch-texk-texlive-linked_scripts-texlive-fmtutil-sys.sh | 2 +- print/texlive-base/files/patch-texk-texlive-linked_scripts-texlive-updmap-sys.sh | 2 +- print/texlive-base/files/patch-texk-texlive-tl_scripts-Makefile.in | 69 --------------------------------------------------------- print/texlive-base/files/patch-texk-texlive-tl_scripts-fmtutil.cnf | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------- print/texlive-base/files/patch-texk-texlive-tl_scripts-texconfig-sys.sh | 8 ------- print/texlive-base/files/patch-texk-ttf2pk2-Makefile.in | 6 ++--- print/texlive-base/files/patch-texk_ttf2pk2_pklib.c | 12 ---------- print/texlive-base/pkg-plist | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------- print/texlive-docs/distinfo | 4 ++-- print/texlive-texmf-source/distinfo | 4 ++-- print/texlive-texmf/Makefile | 6 ++--- print/texlive-texmf/distinfo | 4 ++-- print/texlive-tlmgr/Makefile | 29 ++++++++++++------------ print/texlive-tlmgr/distinfo | 13 ++++++----- print/texlive-tlmgr/files/patch-texlive-20150521-source-texk-texlive-linked_scripts-texlive-tlmgr.pl | 44 ++++++++++++++++++++----------------- print/texlive-tlmgr/files/patch-texlive-20150523-extra-tlpkg-TeXLive-TLUtils.pm | 8 +++---- print/texlive-tlmgr/pkg-plist | 3 ++- print/xpdfopen/distinfo | 8 +++---- 71 files changed, 518 insertions(+), 562 deletions(-)
Created attachment 221645 [details] print_texlive-base.diff usage: 1) apply diff from https://bz-attachments.freebsd.org/attachment.cgi?id=221172 to an unmodified /usr/ports/ 2) do a small revert to keep the patches the initial diff added to print/texlive-base/files/: git checkout Mk devel japanese print 3) apply this diff 4) make -C print/texlive-base
(In reply to Travis Hunter from comment #0) I felt free to create a Phabricator change. Perhaps we can collaborate. https://reviews.freebsd.org/D28227
Where is version from 2021: https://ctan.org/tex-archive/systems/texlive/Source texlive-20210324-source.tar.xz
(In reply to VVD from comment #8) bofh@ is working on some update at https://github.com/5u623l20/freebsd-ports/tree/tex
https://cgit.freebsd.org/ports/commit/?id=8374a33c804a728bf435da801571ae9905244f50