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
> 

Reply via email to