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

Reply via email to