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
>