Klemens Nanni wrote (2023-10-27 21:25 CEST): > On Fri, Oct 27, 2023 at 09:57:55AM +0100, Stuart Henderson wrote: > > (not related to the diff, but noticed while reviewing - some files > > aren't useful with the port as built anyway - dictd_popen.conf.in and > > dictd_plugin_dbi.conf could be @comment'ed - dict1.conf is in the > > server PLIST but it's actually a client config file). > > This means old dict-server conflicts with new dictd-client. > > # TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add dictd-client > Collision in dictd-client-1.13.1p0->1.13.1p1: the following files > already exist > /usr/local/share/examples/dictd/dict1.conf > (dictd-server-1.13.1p0 and dictd-client-1.13.1p1) > Couldn't find updates for dictd-client-1.13.1p0 > Couldn't install dictd-client-1.13.1p1 > > So I added conflicts between new old and old, which looks good for when > the result would actually conflict: > > # TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add -n dictd-server > Can't install dictd-server-1.13.1p1 because of conflicts > (dictd-client-1.13.1p0,dictd-server-1.13.1p0) > --- dictd-server-1.13.1p1 ------------------- > Can't install dictd-server-1.13.1p1: conflicts > Couldn't install dictd-server-1.13.1p1 > > # TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add -n dictd-client > Can't install dictd-client-1.13.1p1 because of conflicts > (dictd-client-1.13.1p0,dictd-server-1.13.1p0) > --- dictd-client-1.13.1p1 ------------------- > Can't install dictd-client-1.13.1p1: conflicts > Couldn't install dictd-client-1.13.1p1 > > But that also means I can't update both to new versions: > > # TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add > dictd-{client,server} > Can't install dictd-client-1.13.1p1 because of conflicts > (dictd-server-1.13.1p0,dictd-client-1.13.1p0) > Can't install dictd-server-1.13.1p1 because of conflicts > (dictd-client-1.13.1p0,dictd-server-1.13.1p0) > --- dictd-client-1.13.1p1 ------------------- > Can't install dictd-client-1.13.1p1: conflicts > --- dictd-server-1.13.1p1 ------------------- > Can't install dictd-server-1.13.1p1: conflicts > Couldn't install dictd-client-1.13.1p1 dictd-server-1.13.1p1 > > Dropping both @conflict markers also fails (less nicely), of course. > > How can we make an update like that? > Remove dict1.conf from -server, wait for update, add to -client?
I think you did everything right, but tested wrong. pkg_add will rightly complain about the conflict. I think you want to test "pkg_add -u" here, which works and attempts to upgrade client/server first. $ TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add -un dictd-client dictd-client-1.9.15p3+dictd-server-1.9.15p1->dictd-client+dictd-server-1.13.1p1: ok The following new rcscripts were installed: /etc/rc.d/dictd See rcctl(8) for details. $ TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all pkg_add -un dictd-server dictd-client-1.9.15p3+dictd-server-1.9.15p1->dictd-client+dictd-server-1.13.1p1: ok The following new rcscripts were installed: /etc/rc.d/dictd See rcctl(8) for details. > Index: Makefile > =================================================================== > RCS file: /cvs/ports/net/dictd/Makefile,v > diff -u -p -r1.18 Makefile > --- Makefile 27 Oct 2023 18:51:10 -0000 1.18 > +++ Makefile 27 Oct 2023 19:23:26 -0000 > @@ -6,8 +6,8 @@ DISTNAME= dictd-$V > > PKGNAME-main= dictd-client-$V > PKGNAME-server= dictd-server-$V > -REVISION-main=0 > -REVISION-server=0 > +REVISION-main= 1 > +REVISION-server=1 > > CATEGORIES= net education > > Index: pkg/PLIST-main > =================================================================== > RCS file: /cvs/ports/net/dictd/pkg/PLIST-main,v > diff -u -p -r1.3 PLIST-main > --- pkg/PLIST-main 26 Oct 2023 16:49:27 -0000 1.3 > +++ pkg/PLIST-main 27 Oct 2023 19:23:26 -0000 > @@ -1,3 +1,4 @@ > +@conflict dictd-server-<1.13.1p1 > @conflict p5-Net-Dict-* > @pkgpath net/dictd > @bin bin/dict > @@ -6,3 +7,5 @@ bin/dictl > @man man/man1/dict.1 > @man man/man1/dict_lookup.1 > @man man/man1/dictl.1 > +share/examples/dictd/ > +share/examples/dictd/dict1.conf > Index: pkg/PLIST-server > =================================================================== > RCS file: /cvs/ports/net/dictd/pkg/PLIST-server,v > diff -u -p -r1.4 PLIST-server > --- pkg/PLIST-server 27 Oct 2023 18:51:10 -0000 1.4 > +++ pkg/PLIST-server 27 Oct 2023 19:23:26 -0000 > @@ -1,3 +1,4 @@ > +@conflict dictd-client-<1.13.1p0 > @newgroup _dictd:639 > @newuser _dictd:639:_dictd::dictd Account:/nonexistent:/sbin/nologin > @rcscript ${RCDIR}/dictd > @@ -20,14 +21,13 @@ include/dictdplugin.h > share/examples/dictd/ > share/examples/dictd/dictd.conf > @sample ${SYSCONFDIR}/dictd.conf > -share/examples/dictd/dict1.conf > share/examples/dictd/dictd1.conf > share/examples/dictd/dictd2.conf > share/examples/dictd/dictd3.conf > share/examples/dictd/dictd4.conf > share/examples/dictd/dictd_complex.conf > share/examples/dictd/dictd_mime.conf > -share/examples/dictd/dictd_plugin_dbi.conf > -share/examples/dictd/dictd_popen.conf.in > +@comment share/examples/dictd/dictd_plugin_dbi.conf > +@comment share/examples/dictd/dictd_popen.conf.in > share/examples/dictd/dictd_site.txt > share/examples/dictd/dictd_virtual.conf >