Bug 226983 - print/texlive-full: Missing dependency with SOURCE=ON: print/texlive-texmf-source
Summary: print/texlive-full: Missing dependency with SOURCE=ON: print/texlive-texmf-so...
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords: easy, needs-qa
Depends on:
Blocks:
 
Reported: 2018-03-27 15:03 UTC by Trond Endrestøl
Modified: 2022-02-19 02:27 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (hrs)
zirias: maintainer-feedback? (tex)
koobs: merge-quarterly?


Attachments
Mk/bsd.tex.mk: make TEX=source depend on the package instead of a file (650 bytes, patch)
2021-10-14 14:41 UTC, Felix Palmen
no flags Details | Diff
Mk/bsd.tex.mk: make TEX=source depend on an existing file (636 bytes, patch)
2022-01-19 09:41 UTC, Rainer Hurling
rhurlin: maintainer-approval? (tex)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Trond Endrestøl 2018-03-27 15:03:13 UTC
The scenario goes like this:

print/texlive-full is configured with DOCS and SOURCE both turned on.
make run-depends-list contains print/texlive-texmf-source and 22 additional dependencies.
ports-mgmt/synth compares the recorded runtime dependencies of the generated package against the port's runtime dependencies, and surprisingly finds a discrepancy.
print/texlive-texmf-source is missing from the recorded runtime dependencies.
Thus, the package is rejected and deleted, which cascades to local metaports depending on print/texlive-full.
Deselecting SOURCE makes synth happy.

I know the defaults are DOCS on and SOURCE off, but I think Mk/bsd.tex.mk should handle the above. Feel free to disagree.
Comment 1 Felix Palmen freebsd_committer freebsd_triage 2021-10-14 14:41:35 UTC
Created attachment 228697 [details]
Mk/bsd.tex.mk: make TEX=source depend on the package instead of a file

Not sure whether this is the correct approach, but it seems to fix the problem, see also: https://forums.freebsd.org/threads/texlive-full-always-recompiles.82432/
Comment 2 Felix Palmen freebsd_committer freebsd_triage 2021-10-14 15:55:01 UTC
Additional info after some research:

The problem was introduced with https://svnweb.freebsd.org/ports?view=revision&revision=366827

Splitting the ports, ${LOCALBASE}/${TEXMFDISTDIR}/source/.keep_me was used for the dependency on texlive-texmf-source, although it was still part of the package texlive-texmf. So, the package only got the dependency on texlive-texmf and e.g. poudriere will always detect a "new dependency" on texlive-texmf-source, forcing a rebuild.

Depending on the package seems like a straight-forward solution to me, but maybe there would be a better one?
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2021-10-31 22:42:17 UTC
^Triage: Maintainer timeout, open to take
Comment 4 Felix Palmen freebsd_committer freebsd_triage 2022-01-18 00:34:40 UTC
Another 3 months later, anyone care to review this tiny change? Thanks.
Comment 5 Rainer Hurling freebsd_committer freebsd_triage 2022-01-19 08:08:25 UTC
Hi Felix,
Thanks for your patch.

For me it only works as expected (in Poudriere) when the date comparison is >= 20150521 instead of 20150523.
Comment 6 Felix Palmen freebsd_committer freebsd_triage 2022-01-19 08:35:17 UTC
(In reply to Rainer Hurling from comment #5)
Uh! Thanks, that was a stupid error, I didn't notice the source package actually has a later "version number" than the texlive base package.

One thing I wonder is: wouldn't it be better to leave the version out of bsd.tex.mk altogether? I just added it because there are other version checks as well, but somehow, that looks like a fragile thing to do (will be forgotten on updates anyways)?
Comment 7 Felix Palmen freebsd_committer freebsd_triage 2022-01-19 08:42:21 UTC
Wait, now I get you say it's the *other* way around. With my patch, the dependency will be on version 20150523 (or later), and that *is* the actual version of the texlive-texmf-source package. So,I don't see why this would not work? That's strange!

Still, could just replace this with a '>0', so any version would be fine for the dependency.
Comment 8 Rainer Hurling freebsd_committer freebsd_triage 2022-01-19 09:41:09 UTC
Created attachment 231152 [details]
Mk/bsd.tex.mk: make TEX=source depend on an existing file

> One thing I wonder is: wouldn't it be better to leave the version out of bsd.tex.mk
> altogether? I just added it because there are other version checks as well, but
> somehow, that looks like a fragile thing to do (will be forgotten on updates anyways)?

It seems, Poudriere behaves right without a version also.

> Wait, now I get you say it's the *other* way around. With my patch, the dependency
> will be on version 20150523 (or later), and that *is* the actual version of the
> texlive-texmf-source package. So,I don't see why this would not work? That's strange!


Since I'm not sure if it makes sense at all to put a package instead of a file into the _DEPS line (all other _DEPS always contain concrete files), I tried another approach:

I picked out a file from the filelist of print/texlive-texmf-source which is most likely to be permanently included in the package and used it in Mk/bsd.tex.mk instead of .keep_me. And lo and behold, that seems to work without any problems.

Probably this approach is more in the spirit of the framework. But it would be good if someone else from the tex team could say something about it.
Comment 9 Felix Palmen freebsd_committer freebsd_triage 2022-01-19 10:04:03 UTC
(In reply to Rainer Hurling from comment #8)
> Since I'm not sure if it makes sense at all to put a package instead of a file
> into the _DEPS line (all other _DEPS always contain concrete files), I tried
> another approach:
As I understand it, you should depend on a specific file if *this* file is actually needed to fulfill the dependency (e.g. some binary or shared lib).

If what you really need is a package, you should depend on the package. I think this makes more sense here (but, maybe, without any version).

Compare for example commit 799f2a37692af2674ed108314ab6963c8a2fe0d7.
Comment 10 commit-hook freebsd_committer freebsd_triage 2022-02-19 02:26:56 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8374a33c804a728bf435da801571ae9905244f50

commit 8374a33c804a728bf435da801571ae9905244f50
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2022-02-19 02:19:20 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2022-02-19 02:25:00 +0000

    tex* : Update version 20150521=>20210325

    - Update MASTER_SITES_TEX_CTAN from https://tug.org/historic/
    - Update texlua to use texlua53 library
    - Deprecate CSLaTeX format
    - Remove aleph as per Upstream
    - Add common variables TEXLIVE_YEAR and TEXLIVE_VERSION to be used in
      all ports related to tex*
    - Fix dependency of print/texlive-texmf-source [1]
    - devel/tex-kpathsea: Update version 6.2.1=>6.3.3
    - devel/tex-libtexlua: Update version 5.2.4=>5.3.6
    - devel/tex-libtexluajit: Update version 2.0.3=>2.1.0
    - devel/tex-synctex: Update version 1.17.0=>2.0.0
    - devel/tex-web2c: Update version 20150521=>20210325
    - editors/texworks: Fix build with newer tex version
    - print/tex-basic-engines: Update version 20150521=>20210325
    - print/tex-dvipdfmax: Update version 20150521=>20210325
    - print/tex-dvipsk: Update version 5.995=>20210325.1
    - print/tex-formats: Update version 20150521=>20210325
    - print/tex-jadetex:
    - print/tex-luatex: Update version 0.80.0=>1.12.0
      * Convert to dynamic pkg-plist
    - print/tex-ptexenc: Update version 1.3.3=>1.3.9
    - print/tex-xetex: Update version 0.99992=>0.99993
      * Convert to dynamic pkg-plist
    - print/texlive-base: Update version 20150521=>20210325
    - print/texlive-docs: Update version 20150521=>20210325
      * Convert to dynamic pkg-plist
    - print/texlive-full: Update version 20150521=>20210325
    - print/texlive-texmf-source: Update version 20150521=>20210325
    - print/texlive-texmf: Update version 20150521=>20210325
      * Convert to dynamic pkg-plist
    - print/texlive-tlmgr: Update version 20150521=>20210325
    - print/xpdfopen: Transfer MAINTAINER to tex@ as xpdfopen is an
      integral part of tex after poppler support has been deprecated from
      tex [2]
    - textproc/dblatex: Update version 0.3.11=>0.3.12
      * Take MAINTAINERship
    - textproc/gastex: Fix build
    - textproc/metauml: Fix build

    PR:             226983 [1]
    Reported by:    Trond.Endrestol@ximalas.info [1]
    Reviewed by:    tcberner (private repo)
    Approved by:    hrs (maintainer-timeout) [2]
    Relnotes: https://tug.org/texlive/doc/texlive-en/texlive-en.html#news
    Sponsored by:   Nepustil.net

 MOVED                                              |     1 +
 Mk/bsd.sites.mk                                    |    11 +-
 Mk/bsd.tex.mk                                      |    74 +-
 UPDATING                                           |    13 +
 devel/tex-kpathsea/Makefile                        |    27 +-
 devel/tex-kpathsea/distinfo                        |     5 +-
 devel/tex-kpathsea/files/patch-Makefile.in         |    78 +-
 devel/tex-kpathsea/files/patch-texmf.cnf           |    28 +-
 devel/tex-kpathsea/pkg-plist                       |    30 +-
 devel/tex-libtexlua/Makefile                       |    20 +-
 devel/tex-libtexlua/distinfo                       |     5 +-
 devel/tex-libtexlua/pkg-plist                      |    20 +-
 devel/tex-libtexluajit/Makefile                    |    30 +-
 devel/tex-libtexluajit/distinfo                    |     5 +-
 devel/tex-libtexluajit/pkg-plist                   |     2 +-
 devel/tex-synctex/Makefile                         |    42 +-
 devel/tex-synctex/distinfo                         |     5 +-
 devel/tex-synctex/files/patch-Makefile.in          |    42 +-
 devel/tex-synctex/files/patch-configure            |   518 +-
 devel/tex-synctex/files/patch-man-Makefile.in      |    29 +-
 devel/tex-synctex/pkg-plist                        |     5 +-
 devel/tex-web2c/Makefile                           |    77 +-
 devel/tex-web2c/distinfo                           |     5 +-
 devel/tex-web2c/files/patch-Makefile.in            |    20 +-
 devel/tex-web2c/files/patch-man-Makefile.in        |     7 +-
 devel/tex-web2c/pkg-plist                          |    38 +-
 editors/texworks/Makefile                          |     5 +-
 japanese/tex-ptex/Makefile                         |    57 +-
 japanese/tex-ptex/distinfo                         |     9 +-
 japanese/tex-ptex/files/patch-Makefile.in          |    53 +-
 japanese/tex-ptex/files/patch-configure            |   500 +-
 japanese/tex-ptex/pkg-plist (gone)                 |  4159 -
 print/Makefile                                     |     1 -
 print/tex-aleph/Makefile (gone)                    |    82 -
 print/tex-aleph/distinfo (gone)                    |     4 -
 print/tex-aleph/files/patch-Makefile.in (gone)     |    60 -
 print/tex-aleph/files/patch-configure (gone)       |   429 -
 print/tex-aleph/files/patch-man-Makefile.in (gone) |    24 -
 print/tex-aleph/pkg-descr (gone)                   |     4 -
 print/tex-aleph/pkg-plist (gone)                   |    92 -
 print/tex-basic-engines/Makefile                   |    58 +-
 print/tex-basic-engines/distinfo                   |     5 +-
 print/tex-basic-engines/files/patch-Makefile.in    |    36 +-
 .../tex-basic-engines/files/patch-man-Makefile.in  |    44 +-
 print/tex-basic-engines/pkg-plist                  |     4 +-
 print/tex-dvipdfmx/Makefile                        |    17 +-
 print/tex-dvipdfmx/distinfo                        |     9 +-
 print/tex-dvipdfmx/files/patch-Makefile.in         |    18 +-
 print/tex-dvipdfmx/pkg-plist                       |   219 +
 print/tex-dvipsk/Makefile                          |    75 +-
 print/tex-dvipsk/distinfo                          |     9 +-
 print/tex-dvipsk/pkg-plist (gone)                  |  2407 -
 print/tex-formats/Makefile                         |    10 +-
 print/tex-jadetex/Makefile                         |     6 +-
 print/tex-jadetex/distinfo                         |     5 +-
 print/tex-luatex/Makefile                          |    42 +-
 print/tex-luatex/distinfo                          |     9 +-
 print/tex-luatex/files/patch-Makefile.in           |    90 +-
 print/tex-luatex/files/patch-configure             |   369 +-
 .../files/patch-luatexdir_font_luatexfont.h        |    10 +-
 .../files/patch-luatexdir_image_writeimg.h (gone)  |    11 -
 .../files/patch-luatexdir_image_writeimg.w (gone)  |    11 -
 .../files/patch-luatexdir_pdf_pdftables.h (gone)   |    11 -
 .../files/patch-luatexdir_tex_textoken.w (gone)    |    11 -
 print/tex-luatex/files/patch-pdftoepdf.w (gone)    |    19 -
 print/tex-luatex/pkg-plist (gone)                  |   994 -
 print/tex-ptexenc/Makefile                         |     7 +-
 print/tex-ptexenc/distinfo                         |     5 +-
 print/tex-ptexenc/files/patch-Makefile.in          |     4 +-
 print/tex-ptexenc/files/patch-configure            |    10 +-
 print/tex-ptexenc/files/patch-ptexenc.c            |    60 +-
 print/tex-ptexenc/pkg-plist                        |     4 +-
 print/tex-xetex/Makefile                           |    53 +-
 print/tex-xetex/distinfo                           |     9 +-
 print/tex-xetex/files/patch-Makefile.in            |    42 +-
 print/tex-xetex/files/patch-configure              |   144 +-
 print/tex-xetex/pkg-plist (gone)                   |   704 -
 print/tex-xmltex/Makefile                          |     6 +-
 print/tex-xmltex/distinfo                          |     5 +-
 print/texlive-base/Makefile                        |    51 +-
 print/texlive-base/distinfo                        |     5 +-
 print/texlive-base/files/patch-Makefile.in         |     6 +-
 print/texlive-base/files/patch-configure           |    18 +-
 .../files/patch-texk-bibtex-x-Makefile.in          |    19 +-
 .../files/patch-texk-chktex-Makefile.in            |    10 +-
 .../files/patch-texk-cjkutils-Makefile.in          |     8 +-
 ...dvisvgm-dvisvgm-1.9.2-src-FileFinder.cpp (gone) |    10 -
 ...-texk-dvisvgm-dvisvgm-1.9.2-src-Font.cpp (gone) |    10 -
 ...isvgm-dvisvgm-1.9.2-src-FontEncoding.cpp (gone) |    10 -
 ...xk-dvisvgm-dvisvgm-1.9.2-src-Message.cpp (gone) |    10 -
 .../files/patch-texk-gsftopk-Makefile.in           |     6 +-
 ...cdf-typetools-2.104-libefont-t1interp.cc (gone) |    10 -
 ...h-texk-texlive-linked_scripts-Makfile.in (gone) |    10 -
 ...ve-linked_scripts-texlive-fmtutil-sys.sh (gone) |     8 -
 ...ive-linked_scripts-texlive-updmap-sys.sh (gone) |     8 -
 ...atch-texk-texlive-tl_scripts-Makefile.in (gone) |    69 -
 .../patch-texk-texlive-tl_scripts-fmtutil.cnf      |   123 +-
 ...texk-texlive-tl_scripts-texconfig-sys.sh (gone) |     8 -
 .../files/patch-texk-ttf2pk2-Makefile.in           |     6 +-
 .../texlive-base/files/patch-texk_dvipng_configure |    12 +-
 .../files/patch-texk_dvisvgm_configure             |    12 +-
 ...xk_dvisvgm_dvisvgm-src_src_FileFinder.cpp (new) |    10 +
 ...tch-texk_dvisvgm_dvisvgm-src_src_Font.cpp (new) |    10 +
 ..._dvisvgm_dvisvgm-src_src_FontEncoding.cpp (new) |    10 +
 ...-texk_dvisvgm_dvisvgm-src_src_Message.cpp (new) |    10 +
 ..._lcdf-typetools_lcdf-typetools-src_Makefile.in} |     6 +-
 ...f-typetools_lcdf-typetools-src_libefont_cff.cc} |     4 +-
 ...s_lcdf-typetools-src_libefont_t1interp.cc (new) |    10 +
 ...-texk_texlive_linked__scripts_Makefile.in (new) |    20 +
 ...atch-texk_texlive_linked__scripts_pdfjam_pdfjam |    32 +-
 ...atch-texk_texlive_tl__support_Makefile.in (new) |    20 +
 .../files/patch-texk_ttf2pk2_configure             |    12 +-
 .../files/patch-texk_ttf2pk2_pklib.c (gone)        |    12 -
 print/texlive-base/pkg-plist                       |   203 +-
 print/texlive-docs/Makefile                        |   108 +-
 print/texlive-docs/distinfo                        |     5 +-
 print/texlive-docs/pkg-plist (gone)                | 31442 -------
 print/texlive-full/Makefile                        |     2 +-
 print/texlive-texmf-source/Makefile                |    57 +-
 print/texlive-texmf-source/distinfo                |     5 +-
 print/texlive-texmf-source/pkg-plist (gone)        |  5226 --
 print/texlive-texmf/Makefile                       |   552 +-
 print/texlive-texmf/distinfo                       |     7 +-
 print/texlive-texmf/pkg-plist (gone)               | 85680 -------------------
 print/texlive-tlmgr/Makefile                       |    39 +-
 print/texlive-tlmgr/distinfo                       |    13 +-
 ...exlive-20210325-extra_tlpkg_TeXLive_TLUtils.pm} |    23 +-
 ..._texk_texlive_linked__scripts_texlive_tlmgr.pl} |    57 +-
 print/texlive-tlmgr/pkg-plist                      |     3 +-
 print/xpdfopen/Makefile                            |    23 +-
 print/xpdfopen/distinfo                            |     7 +-
 textproc/dblatex/Makefile                          |    22 +-
 textproc/dblatex/distinfo                          |     6 +-
 textproc/gastex/pkg-plist                          |     4 +-
 textproc/metauml/pkg-plist                         |     4 +-
 135 files changed, 3118 insertions(+), 133123 deletions(-)