Bug 252337 - print/texlive-base: Update to TeX Live 2020
Summary: print/texlive-base: Update to TeX Live 2020
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Hiroki Sato
URL:
Keywords:
Depends on:
Blocks: 251512
  Show dependency treegraph
 
Reported: 2021-01-01 20:53 UTC by Travis Hunter
Modified: 2021-01-21 10:57 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (hrs)


Attachments
diff of ports tree for texlive 2020 update (84.62 KB, patch)
2021-01-01 20:53 UTC, Travis Hunter
no flags Details | Diff
print_texlive-base.diff (96.02 KB, patch)
2021-01-16 21:47 UTC, vidwer+fbsdbugs
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Travis Hunter 2021-01-01 20:53:32 UTC
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
Comment 1 daniel.engberg.lists 2021-01-01 22:46:22 UTC
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
Comment 2 Travis Hunter 2021-01-02 14:38:07 UTC
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.
Comment 3 Tobias C. Berner freebsd_committer 2021-01-03 13:34:25 UTC
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
Comment 4 Travis Hunter 2021-01-03 18:44:44 UTC
(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.
Comment 5 vidwer+fbsdbugs 2021-01-16 21:35:16 UTC
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(-)
Comment 6 vidwer+fbsdbugs 2021-01-16 21:47:46 UTC
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
Comment 7 vidwer+fbsdbugs 2021-01-18 22:10:34 UTC
(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