On Mon, Feb 04 2019, Edd Barrett <[email protected]> wrote: > Hi, > > On Sat, Feb 02, 2019 at 12:25:55AM +0100, Matthias Kilian wrote: >> > - In tex live, put synctex into its own subpackage and LIB_DEPEND it. >> > - In tex live, move synctex into -mktexlsr. Evince already LIB_DEPENDS >> > this. >> > - Patch evince to always use its internal copy. >> > >> > FWIW, I'm leaning towards the first option. >> >> First or third. > > Alright, so here's a diff which makes the new -syntex subpackage in > texlive and another which adjusts evince to use it. See attached. > > I've tested `pkg_add -u` and all seems well. It seems the inequality > conflict constraint is essential, otherwise `pkg_add -u` isn't smart > enough to avoid collisions. Please check my work carefully.
> Index: pkg/PLIST-synctex > =================================================================== > RCS file: pkg/PLIST-synctex > diff -N pkg/PLIST-synctex > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/PLIST-synctex 4 Feb 2019 17:39:55 -0000 > @@ -0,0 +1,15 @@ > +@comment $OpenBSD$ > +@conflict teTeX_base-* > +@conflict pdfjam-* > +@conflict ht-<2 > +@conflict texlive_texmf-buildset-<2018 > +@conflict texlive_base-<2018p1 The last line looks fine but I doubt that you need to copy the other @conflict lines. Were the -synctex files once provided by one of those packages? Note that you can't just put this in, you also need to bump some RUN_DEPENDS (and thus REVISION) in texlive/texmf/Makefile, else pkg_create will complain: --8<-- ===> Building package for texlive_texmf-docs-2018p0 Create /usr/ports/packages/amd64/no-arch/texlive_texmf-docs-2018p0.tgz Creating package texlive_texmf-docs-2018p0 checking dependencies|print/texlive/base,-main Error: Dependency texlive_base-2018p0 doesn't match FULLPKGNAME: texlive_base-2018p1 checksumming... Error: @depend print/texlive/base,-main:texlive_base-2018p0:texlive_base-2018p1 pattern texlive_base-2018p0 doesn't match default texlive_base-2018p1 Fatal error: can't continue at /usr/libdata/perl5/OpenBSD/PkgCreate.pm line 1675. *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2027 '/usr/ports/packages/amd64/no-arch/texlive_texmf-docs-2018p0.tgz') *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2488 '_internal-package') *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2467 'package') *** Error 1 in /usr/ports/print/texlive/texmf (/usr/ports/infrastructure/mk/bsd.port.mk:3459 'repackage') -->8-- As already discussed, I don't understand how it helps for those depends to be that strict. Aren't files more commonly moved between texlive/texmf subpackages, rather than from texlive/base to texlive/texmf? Unless I'm missing something, we may easily avoid the problem by only stating minimal versions: less chances for errors and less churn for pkg_add -u. Please find a diff below. > As far as I can see, you cannot build evince without synctex, so even > the light flavor has to pull in synctex. Well, as mentioned by kili there's also the option to force evince to always use its internal copy. This means one more copy of synctex to watch for security/portability issues, but on the other hand this would decouple evince and texlive updates. Not a bad idea given the recent, undocumented API/ABI break in libsynctex... https://github.com/jlaurens/synctex/issues/23 Thoughts / ok? Index: Makefile =================================================================== RCS file: /cvs/ports/print/texlive/texmf/Makefile,v retrieving revision 1.56 diff -u -p -r1.56 Makefile --- Makefile 24 Jan 2019 16:38:41 -0000 1.56 +++ Makefile 5 Feb 2019 03:04:38 -0000 @@ -24,8 +24,9 @@ PKGNAME-docs = texlive_texmf-docs-${V} PKGNAME-context = texlive_texmf-context-${V} PKGNAME-buildset = texlive_texmf-buildset-${V} -REVISION-main = 0 -REVISION-docs = 0 +REVISION-main = 1 +REVISION-docs = 1 +REVISION-buildset = 0 NO_BUILD = Yes NO_TEST = Yes @@ -42,16 +43,16 @@ MODRUBY_RUNDEP = No MODPY_BUILDDEP = No MODPY_RUNDEP = No -RUN_DEPENDS-main += texlive_base-${V}p0:print/texlive/base,-main \ +RUN_DEPENDS-main += texlive_base->=${V}p0:print/texlive/base,-main \ ${FULLPKGNAME-buildset}:print/texlive/texmf,-buildset RUN_DEPENDS-full = ${FULLPKGNAME-main}:print/texlive/texmf,-main \ ${MODPY_RUN_DEPENDS} \ ${_MODLUA_RUNDEPENDS} RUN_DEPENDS-context += ${FULLPKGNAME-full}:print/texlive/texmf,-full \ ${MODRUBY_RUNDEPENDS} -RUN_DEPENDS-docs += texlive_base-${V}p0:print/texlive/base,-main \ +RUN_DEPENDS-docs += texlive_base->=${V}p0:print/texlive/base,-main \ x11/p5-Tk -RUN_DEPENDS-buildset += texlive_mktexlsr-${V}:print/texlive/base,-mktexlsr +RUN_DEPENDS-buildset += texlive_mktexlsr->=${V}:print/texlive/base,-mktexlsr MULTI_PACKAGES = -context -docs -full -main -buildset -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
