NetBSD Problem Report #58155

From www@netbsd.org  Tue Apr 16 02:25:47 2024
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id A649E1A9238
	for <gnats-bugs@gnats.NetBSD.org>; Tue, 16 Apr 2024 02:25:47 +0000 (UTC)
Message-Id: <20240416022546.457DD1A923A@mollari.NetBSD.org>
Date: Tue, 16 Apr 2024 02:25:46 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: CONFLICTS doesn't work with multi-version packages
X-Send-Pr-Version: www-1.0

>Number:         58155
>Category:       pkg
>Synopsis:       CONFLICTS doesn't work with multi-version packages
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 16 02:30:01 +0000 2024
>Closed-Date:    
>Last-Modified:  Thu Apr 18 13:45:02 +0000 2024
>Originator:     Taylor R Campbell
>Release:        current
>Organization:
The PkgsrcBSD Confliction
>Environment:
>Description:
devel/meson/Makefile has:

CONFLICTS=	${PYPKGPREFIX}-meson-[0-9]*

Presumably, this is meant to apply to all versions of the former py-meson package, _on all versions of Python_.

However, it is only expanded with PYPKGPREFIX for the version of Python that devel/meson is built with.  So, e.g., in 2024Q1, we have:

$ pkg_info -f ./meson-1.4.0.tgz:
Information for meson-1.4.0.tgz:

Packing list:
        CWD to: /pkg/2024Q1
        Package conflicts with: py311-meson-[0-9]*
        Package name: meson-1.4.0
...

That is, meson-1.4.0.tgz is not recorded to conflict with py310-meson-* or py312-meson-* -- just py311-meson-*.
>How-To-Repeat:

>Fix:
Yes, please!

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->closed
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Tue, 16 Apr 2024 07:14:45 +0000
State-Changed-Why:
I've expanded the patterns manually.

In general, we have PYTHON_SELF_CONFLICT for this.


From: "Thomas Klausner" <wiz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58155 CVS commit: pkgsrc/devel/meson
Date: Tue, 16 Apr 2024 07:14:18 +0000

 Module Name:	pkgsrc
 Committed By:	wiz
 Date:		Tue Apr 16 07:14:18 UTC 2024

 Modified Files:
 	pkgsrc/devel/meson: Makefile

 Log Message:
 meson: expand CONFLICTS/SUPERSEDES

 Addresses PR 58155.


 To generate a diff of this commit:
 cvs rdiff -u -r1.63 -r1.64 pkgsrc/devel/meson/Makefile

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Taylor R Campbell <riastradh@NetBSD.org>
To: Thomas Klausner <wiz@NetBSD.org>
Cc: gnats-bugs@NetBSD.org, pkg-manager@NetBSD.org, pkgsrc-bugs@NetBSD.org,
	gnats-admin@NetBSD.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Tue, 16 Apr 2024 12:53:51 +0000

 > Date: Tue, 16 Apr 2024 07:14:45 +0000 (UTC)
 > From: wiz@NetBSD.org
 >=20
 > I've expanded the patterns manually.
 >=20
 > In general, we have PYTHON_SELF_CONFLICT for this.

 We may have a lot more cases of this to address -- I just picked meson
 as an example:

 $ git grep 'CONFLICTS.*[$]'
 audio/py-ao/Makefile:CONFLICTS=3D		${PYPKGPREFIX}-pyao-[0-9]*
 audio/py-daap/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-PythonDaap-[0-9]*
 comms/py-serial/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-pyserial-[0-9]*
 databases/phpmyadmin5/Makefile:CONFLICTS+=3D			${PHP_PKG_PREFIX}-phpmyadmin=
 -4..*
 databases/postgresql12/Makefile.common:CONFLICTS+=3D	postgresql[2-9][0-9]-$=
 {module}-[0-9]*
 databases/postgresql13/Makefile.common:CONFLICTS+=3D	postgresql[2-9][0-9]-$=
 {module}-[0-9]*
 databases/postgresql14/Makefile.common:CONFLICTS+=3D	postgresql[2-9][0-9]-$=
 {module}-[0-9]*
 databases/postgresql15/Makefile.common:CONFLICTS+=3D	postgresql[2-9][0-9]-$=
 {module}-[0-9]*
 databases/postgresql16/Makefile.common:CONFLICTS+=3D	postgresql[2-9][0-9]-$=
 {module}-[0-9]*
 databases/py-pypika-tortoise/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-pypika-[0=
 -9]*
 databases/py-pypika/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-pypika-tortoise-[0=
 -9]*
 devel/lua-bit32/Makefile:CONFLICTS+=3D	${LUA_PKGPREFIX}-bitlib-[0-9]*
 devel/meson/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-meson-[0-9]*
 devel/py-at-spi2/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-at-spi-[0-9]*
 devel/py-gobject/Makefile.common:CONFLICTS+=3D		${PYPKGPREFIX}-gtk2<2.8.4
 devel/py-gobject3/Makefile.common:CONFLICTS+=3D	${PYPKGPREFIX}-gtk2<2.8.4
 devel/py-gobject3/Makefile.common:CONFLICTS+=3D	${PYPKGPREFIX}-gobject<2.28=
 .6nb4
 devel/ruby-pkg-config/Makefile:CONFLICTS+=3D	${RUBY_PKGPREFIX}-gnome2-glib<=
 0.90.0
 editors/emacs-snapshot/modules.mk:_EMACS_CONFLICTS.emacs=3D		xemacs-${PKGBA=
 SE}-[0-9]*
 editors/emacs-snapshot/modules.mk:_EMACS_CONFLICTS.xemacs=3D	${PKGBASE:C|^x=
 emacs-||}-[0-9]*
 editors/emacs-snapshot/modules.mk:CONFLICTS+=3D	${_EMACS_CONFLICTS.${_EMACS=
 _FLAVOR}}
 emulators/suse121_linux/Makefile.common:CONFLICTS:=3D		${CONFLICTS:S/^suse_=
 /suse32_/}
 emulators/suse131_linux/Makefile.common:CONFLICTS:=3D		${CONFLICTS:S/^suse_=
 /suse32_/}
 emulators/suse15_linux/Makefile.common:CONFLICTS:=3D		${CONFLICTS:S/^suse_/=
 suse32_/}
 games/colchess-book-large/Makefile:CONFLICTS=3D		${CHESS_ENGINE}-book-[0-9]*
 games/exchess-book-medium/Makefile:CONFLICTS=3D		${CHESS_ENGINE}-book-small=
 -[0-9]*
 games/exchess-book-small/Makefile:CONFLICTS=3D		${CHESS_ENGINE}-book-medium=
 -[0-9]*
 graphics/py-Pillow/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-imaging-[0-9]*
 graphics/py-Pillow6/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-imaging-[0-9]*
 lang/lua/luaversion.mk:CONFLICTS+=3D	${PKGNAME:S/lua${_LUA_VERSION}/lua${v}=
 /:C/-[0-9].*$/-[0-9]*/}
 lang/python/pyversion.mk:CONFLICTS+=3D	${PKGNAME:S/py${_PYTHON_VERSION}/py$=
 {i}/:C/-[0-9].*$/-[0-9]*/}
 lang/python/pyversion.mk:	CONFLICTS MULTI PLIST_VARS BUILDLINK_API_DEPENDS.=
 ${PYPACKAGE}	\
 lang/ruby-cucumber-gherkin/Makefile:CONFLICTS+=3D	${RUBY_PKGPREFIX}-gherkin=
 -[0-9]*
 math/py-roman/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-docutils<=3D0.7
 mk/pkgformat/pkg/metadata.mk:_PKG_CREATE_ARGS+=3D	${"${CONFLICTS:M*}" !=3D =
 "":?-C ${CONFLICTS:Q}:}
 net/py-Socks/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-SocksiPy-branch-[0-9]*
 net/py-adns/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-adns-python-[0-9]*
 net/py-socksipy-branch/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-Socks-[0-9]*
 net/rabbiter/Makefile:CONFLICTS+=3D	${RUBY_PKGPREFIX}-rabbit<2.0.0
 pkgtools/pkglint4/files/makevars.map:CONFLICTS		InternalList of Dependency =
 [$package_list]
 security/passphrase/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-pyutil-[0-9]*
 security/php-ssh2-0/Makefile:CONFLICTS=3D	${PHP_PKG_PREFIX}-${MODNAME}>=3D1=
 .0
 security/php-ssh2/Makefile:CONFLICTS=3D	${PHP_PKG_PREFIX}-${MODNAME}<1.0
 textproc/py-gnosis-utils/Makefile:CONFLICTS+=3D	${PYPKGPREFIX}-Gnosis-Utils=
 -[0-9]*
 x11/py-gtk2/Makefile:CONFLICTS=3D	${PYPKGPREFIX}-gtk<0.6.10

From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Tue, 16 Apr 2024 15:02:47 +0200

 On Tue, Apr 16, 2024 at 12:53:51PM +0000, Taylor R Campbell wrote:
 > > Date: Tue, 16 Apr 2024 07:14:45 +0000 (UTC)
 > > From: wiz@NetBSD.org
 > > 
 > > I've expanded the patterns manually.
 > > 
 > > In general, we have PYTHON_SELF_CONFLICT for this.
 > 
 > We may have a lot more cases of this to address -- I just picked meson
 > as an example:

 > $ git grep 'CONFLICTS.*[$]'

 I don't understand how you chose the regex.

 > audio/py-ao/Makefile:CONFLICTS=		${PYPKGPREFIX}-pyao-[0-9]*
 > audio/py-daap/Makefile:CONFLICTS=	${PYPKGPREFIX}-PythonDaap-[0-9]*
 > comms/py-serial/Makefile:CONFLICTS+=	${PYPKGPREFIX}-pyserial-[0-9]*
 > databases/py-pypika-tortoise/Makefile:CONFLICTS=	${PYPKGPREFIX}-pypika-[0-9]*
 > databases/py-pypika/Makefile:CONFLICTS=	${PYPKGPREFIX}-pypika-tortoise-[0-9]*
 > databases/phpmyadmin5/Makefile:CONFLICTS+=			${PHP_PKG_PREFIX}-phpmyadmin-4..*
 > devel/lua-bit32/Makefile:CONFLICTS+=	${LUA_PKGPREFIX}-bitlib-[0-9]*
 > devel/py-at-spi2/Makefile:CONFLICTS=	${PYPKGPREFIX}-at-spi-[0-9]*
 > devel/py-gobject/Makefile.common:CONFLICTS+=		${PYPKGPREFIX}-gtk2<2.8.4
 > devel/py-gobject3/Makefile.common:CONFLICTS+=	${PYPKGPREFIX}-gtk2<2.8.4
 > devel/py-gobject3/Makefile.common:CONFLICTS+=	${PYPKGPREFIX}-gobject<2.28.6nb4
 > devel/ruby-pkg-config/Makefile:CONFLICTS+=	${RUBY_PKGPREFIX}-gnome2-glib<0.90.0
 > graphics/py-Pillow/Makefile:CONFLICTS+=	${PYPKGPREFIX}-imaging-[0-9]*
 > graphics/py-Pillow6/Makefile:CONFLICTS+=	${PYPKGPREFIX}-imaging-[0-9]*
 > lang/ruby-cucumber-gherkin/Makefile:CONFLICTS+=	${RUBY_PKGPREFIX}-gherkin-[0-9]*
 > math/py-roman/Makefile:CONFLICTS+=	${PYPKGPREFIX}-docutils<=0.7
 > net/py-Socks/Makefile:CONFLICTS=	${PYPKGPREFIX}-SocksiPy-branch-[0-9]*
 > net/py-adns/Makefile:CONFLICTS=	${PYPKGPREFIX}-adns-python-[0-9]*
 > net/py-socksipy-branch/Makefile:CONFLICTS=	${PYPKGPREFIX}-Socks-[0-9]*
 > net/rabbiter/Makefile:CONFLICTS+=	${RUBY_PKGPREFIX}-rabbit<2.0.0
 > security/passphrase/Makefile:CONFLICTS+=	${PYPKGPREFIX}-pyutil-[0-9]*
 > security/php-ssh2-0/Makefile:CONFLICTS=	${PHP_PKG_PREFIX}-${MODNAME}>=1.0
 > security/php-ssh2/Makefile:CONFLICTS=	${PHP_PKG_PREFIX}-${MODNAME}<1.0
 > textproc/py-gnosis-utils/Makefile:CONFLICTS+=	${PYPKGPREFIX}-Gnosis-Utils-[0-9]*
 > x11/py-gtk2/Makefile:CONFLICTS=	${PYPKGPREFIX}-gtk<0.6.10

 These need manual expansion.

 > databases/postgresql12/Makefile.common:CONFLICTS+=	postgresql[2-9][0-9]-${module}-[0-9]*
 > databases/postgresql13/Makefile.common:CONFLICTS+=	postgresql[2-9][0-9]-${module}-[0-9]*
 > databases/postgresql14/Makefile.common:CONFLICTS+=	postgresql[2-9][0-9]-${module}-[0-9]*
 > databases/postgresql15/Makefile.common:CONFLICTS+=	postgresql[2-9][0-9]-${module}-[0-9]*
 > databases/postgresql16/Makefile.common:CONFLICTS+=	postgresql[2-9][0-9]-${module}-[0-9]*
 > editors/emacs-snapshot/modules.mk:_EMACS_CONFLICTS.emacs=		xemacs-${PKGBASE}-[0-9]*
 > editors/emacs-snapshot/modules.mk:_EMACS_CONFLICTS.xemacs=	${PKGBASE:C|^xemacs-||}-[0-9]*
 > editors/emacs-snapshot/modules.mk:CONFLICTS+=	${_EMACS_CONFLICTS.${_EMACS_FLAVOR}}
 > emulators/suse121_linux/Makefile.common:CONFLICTS:=		${CONFLICTS:S/^suse_/suse32_/}
 > emulators/suse131_linux/Makefile.common:CONFLICTS:=		${CONFLICTS:S/^suse_/suse32_/}
 > emulators/suse15_linux/Makefile.common:CONFLICTS:=		${CONFLICTS:S/^suse_/suse32_/}
 > games/colchess-book-large/Makefile:CONFLICTS=		${CHESS_ENGINE}-book-[0-9]*
 > games/exchess-book-medium/Makefile:CONFLICTS=		${CHESS_ENGINE}-book-small-[0-9]*
 > games/exchess-book-small/Makefile:CONFLICTS=		${CHESS_ENGINE}-book-medium-[0-9]*

 These should work?

 > devel/meson/Makefile:CONFLICTS=	${PYPKGPREFIX}-meson-[0-9]*

 Fixed.

 > lang/lua/luaversion.mk:CONFLICTS+=	${PKGNAME:S/lua${_LUA_VERSION}/lua${v}/:C/-[0-9].*$/-[0-9]*/}

 No idea.

 > lang/python/pyversion.mk:CONFLICTS+=	${PKGNAME:S/py${_PYTHON_VERSION}/py${i}/:C/-[0-9].*$/-[0-9]*/}

 This is the code for PYTHON_SELF_CONFLICT.

 > lang/python/pyversion.mk:	CONFLICTS MULTI PLIST_VARS BUILDLINK_API_DEPENDS.${PYPACKAGE}	\
 > mk/pkgformat/pkg/metadata.mk:_PKG_CREATE_ARGS+=	${"${CONFLICTS:M*}" != "":?-C ${CONFLICTS:Q}:}
 > pkgtools/pkglint4/files/makevars.map:CONFLICTS		InternalList of Dependency [$package_list]

 Misgrep.
  Thomas

From: Taylor R Campbell <riastradh@NetBSD.org>
To: Thomas Klausner <wiz@NetBSD.org>
Cc: gnats-bugs@NetBSD.org, pkg-manager@NetBSD.org, gnats-admin@NetBSD.org,
	pkgsrc-bugs@NetBSD.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Tue, 16 Apr 2024 13:53:00 +0000

 > Date: Tue, 16 Apr 2024 13:05:01 +0000 (UTC)
 > From: Thomas Klausner <wiz@NetBSD.org>
 > 
 > On Tue, Apr 16, 2024 at 12:53:51PM +0000, Taylor R Campbell wrote:
 > > We may have a lot more cases of this to address -- I just picked meson
 > > as an example:
 > 
 > > $ git grep 'CONFLICTS.*[$]'
 >  
 > I don't understand how you chose the regex.

 Just an approximation to find packages that might have multi-version
 conflicts.  As you saw, there are some false alarms too.

 > > audio/py-ao/Makefile:CONFLICTS=		${PYPKGPREFIX}-pyao-[0-9]*
 > > [...]
 > > x11/py-gtk2/Makefile:CONFLICTS=	${PYPKGPREFIX}-gtk<0.6.10
 >  
 > These need manual expansion.

 You mean something like this?

 	CONFLICTS=	py[0-9]*-pyao-[0-9]*
 	CONFLICTS=	py[0-9]*-gtk<0.6.10

 SGTM, if that works.

From: "Thomas Klausner" <wiz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58155 CVS commit: pkgsrc
Date: Wed, 17 Apr 2024 10:38:36 +0000

 Module Name:	pkgsrc
 Committed By:	wiz
 Date:		Wed Apr 17 10:38:36 UTC 2024

 Modified Files:
 	pkgsrc/audio/py-ao: Makefile
 	pkgsrc/audio/py-daap: Makefile
 	pkgsrc/comms/py-serial: Makefile
 	pkgsrc/databases/phpmyadmin5: Makefile
 	pkgsrc/databases/py-pypika: Makefile
 	pkgsrc/databases/py-pypika-tortoise: Makefile
 	pkgsrc/devel/lua-bit32: Makefile
 	pkgsrc/devel/py-at-spi2: Makefile
 	pkgsrc/devel/py-gobject: Makefile.common
 	pkgsrc/devel/py-gobject3: Makefile.common
 	pkgsrc/devel/ruby-pkg-config: Makefile
 	pkgsrc/graphics/py-Pillow: Makefile
 	pkgsrc/graphics/py-Pillow6: Makefile
 	pkgsrc/lang/ruby-cucumber-gherkin: Makefile
 	pkgsrc/math/py-roman: Makefile
 	pkgsrc/net/py-Socks: Makefile
 	pkgsrc/net/py-adns: Makefile
 	pkgsrc/net/py-socksipy-branch: Makefile
 	pkgsrc/net/rabbiter: Makefile
 	pkgsrc/security/passphrase: Makefile
 	pkgsrc/security/php-ssh2: Makefile
 	pkgsrc/security/php-ssh2-0: Makefile
 	pkgsrc/textproc/py-gnosis-utils: Makefile
 	pkgsrc/x11/py-gtk2: Makefile

 Log Message:
 *: fix some CONFLICTS lines

 Noted by riastradh@ in PR 58155.


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.24 pkgsrc/audio/py-ao/Makefile
 cvs rdiff -u -r1.19 -r1.20 pkgsrc/audio/py-daap/Makefile
 cvs rdiff -u -r1.11 -r1.12 pkgsrc/comms/py-serial/Makefile
 cvs rdiff -u -r1.3 -r1.4 pkgsrc/databases/phpmyadmin5/Makefile
 cvs rdiff -u -r1.25 -r1.26 pkgsrc/databases/py-pypika/Makefile
 cvs rdiff -u -r1.1 -r1.2 pkgsrc/databases/py-pypika-tortoise/Makefile
 cvs rdiff -u -r1.4 -r1.5 pkgsrc/devel/lua-bit32/Makefile
 cvs rdiff -u -r1.31 -r1.32 pkgsrc/devel/py-at-spi2/Makefile
 cvs rdiff -u -r1.22 -r1.23 pkgsrc/devel/py-gobject/Makefile.common
 cvs rdiff -u -r1.19 -r1.20 pkgsrc/devel/py-gobject3/Makefile.common
 cvs rdiff -u -r1.39 -r1.40 pkgsrc/devel/ruby-pkg-config/Makefile
 cvs rdiff -u -r1.80 -r1.81 pkgsrc/graphics/py-Pillow/Makefile
 cvs rdiff -u -r1.12 -r1.13 pkgsrc/graphics/py-Pillow6/Makefile
 cvs rdiff -u -r1.8 -r1.9 pkgsrc/lang/ruby-cucumber-gherkin/Makefile
 cvs rdiff -u -r1.16 -r1.17 pkgsrc/math/py-roman/Makefile
 cvs rdiff -u -r1.7 -r1.8 pkgsrc/net/py-Socks/Makefile
 cvs rdiff -u -r1.25 -r1.26 pkgsrc/net/py-adns/Makefile
 cvs rdiff -u -r1.7 -r1.8 pkgsrc/net/py-socksipy-branch/Makefile
 cvs rdiff -u -r1.15 -r1.16 pkgsrc/net/rabbiter/Makefile
 cvs rdiff -u -r1.10 -r1.11 pkgsrc/security/passphrase/Makefile
 cvs rdiff -u -r1.18 -r1.19 pkgsrc/security/php-ssh2/Makefile
 cvs rdiff -u -r1.6 -r1.7 pkgsrc/security/php-ssh2-0/Makefile
 cvs rdiff -u -r1.24 -r1.25 pkgsrc/textproc/py-gnosis-utils/Makefile
 cvs rdiff -u -r1.143 -r1.144 pkgsrc/x11/py-gtk2/Makefile

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Thomas Klausner <wiz@NetBSD.org>
To: Taylor R Campbell <riastradh@NetBSD.org>
Cc: gnats-bugs@NetBSD.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Wed, 17 Apr 2024 12:40:07 +0200

 On Tue, Apr 16, 2024 at 01:53:00PM +0000, Taylor R Campbell wrote:
 > > Date: Tue, 16 Apr 2024 13:05:01 +0000 (UTC)
 > > From: Thomas Klausner <wiz@NetBSD.org>
 > > 
 > > On Tue, Apr 16, 2024 at 12:53:51PM +0000, Taylor R Campbell wrote:
 > > > We may have a lot more cases of this to address -- I just picked meson
 > > > as an example:
 > > 
 > > > $ git grep 'CONFLICTS.*[$]'
 > >  
 > > I don't understand how you chose the regex.
 > 
 > Just an approximation to find packages that might have multi-version
 > conflicts.  As you saw, there are some false alarms too.
 > 
 > > > audio/py-ao/Makefile:CONFLICTS=		${PYPKGPREFIX}-pyao-[0-9]*
 > > > [...]
 > > > x11/py-gtk2/Makefile:CONFLICTS=	${PYPKGPREFIX}-gtk<0.6.10
 > >  
 > > These need manual expansion.
 > 
 > You mean something like this?
 > 
 > 	CONFLICTS=	py[0-9]*-pyao-[0-9]*
 > 	CONFLICTS=	py[0-9]*-gtk<0.6.10
 > 
 > SGTM, if that works.

 Yes, these work (tested locally) and I've fixed the ones that needed it.
  Thomas

From: Joerg Sonnenberger <joerg@bec.de>
To: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
 campbell+netbsd@mumble.net, gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Wed, 17 Apr 2024 13:48:35 +0200

 This is a multi-part message in MIME format.

 --nextPart2769309.vuYhMxLoTh
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain; charset="utf-8"

 On Tuesday, April 16, 2024 3:55:01=E2=80=AFPM CEST Taylor R Campbell wrote:
 >  You mean something like this?
 > =20
 >  	CONFLICTS=3D	py[0-9]*-pyao-[0-9]*
 >  	CONFLICTS=3D	py[0-9]*-gtk<0.6.10
 > =20
 >  SGTM, if that works.

 Do NOT mix fnmatch pattern with Dewey. It doesn't work like that.

 Joerg

 --nextPart2769309.vuYhMxLoTh
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/html; charset="utf-8"

 <html>
 <head>
 <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8">
 </head>
 <body><p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0=
 ;">On Tuesday, April 16, 2024 3:55:01=E2=80=AFPM CEST Taylor R Campbell wro=
 te:</p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; You mean something like this?</p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; </p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; &nbsp;&nbsp;&nbsp; CONFLICTS=3D&nbsp;&nbsp;&nbsp; py[0-9]*-pyao-[0-=
 9]*</p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; &nbsp;&nbsp;&nbsp; CONFLICTS=3D&nbsp;&nbsp;&nbsp; py[0-9]*-gtk&lt;0=
 =2E6.10</p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; </p>
 <p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt=
 ;&nbsp; SGTM, if that works.</p>
 <br /><p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0=
 ;">Do NOT mix fnmatch pattern with Dewey. It doesn't work like that.</p>
 <br /><p style=3D"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0=
 ;">Joerg</p>
 </body>
 </html>
 --nextPart2769309.vuYhMxLoTh--



State-Changed-From-To: closed->open
State-Changed-By: gutteridge@NetBSD.org
State-Changed-When: Thu, 18 Apr 2024 01:59:28 +0000
State-Changed-Why:
This isn't resolved, seems there's more to be done.

From: Benny Siegert <bsiegert@gmail.com>
To: Joerg Sonnenberger <joerg@bec.de>
Cc: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org, 
	campbell+netbsd@mumble.net, gnats-bugs@netbsd.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Thu, 18 Apr 2024 09:34:03 +0200

 > Do NOT mix fnmatch pattern with Dewey. It doesn't work like that.

 How does it work? Please propose an alternative.

 -- 
 Benny

From: Jonathan Perkin <jperkin@mnx.io>
To: Benny Siegert <bsiegert@gmail.com>
Cc: Joerg Sonnenberger <joerg@bec.de>, pkg-manager@netbsd.org,
	gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
	campbell+netbsd@mumble.net, gnats-bugs@netbsd.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Thu, 18 Apr 2024 08:45:46 +0100

 * On 2024-04-18 at 08:34 BST, Benny Siegert wrote:

 >> Do NOT mix fnmatch pattern with Dewey. It doesn't work like that.
 >
 >How does it work? Please propose an alternative.

 If you are using a dewey (sic) match then there is only one alternative, 
 you must specify a fully-formed PKGBASE.

 I'd also like to point out that there are performance impacts when using 
 fnmatch as tools such as pkg_install and pkgin then have to traverse the 
 entire list of packages looking for matches, so it is always preferable 
 to specify a fully-formed PKGBASE where possible.

 -- 
 Jonathan Perkin   -   mnx.io   -   pkgsrc.smartos.org
 Open Source Complete Cloud   www.tritondatacenter.com

From: Thomas Klausner <wiz@gatalith.at>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Thu, 18 Apr 2024 09:55:59 +0200

 Just for the record, I've fixed the CONFLICTS joerg referenced.
  Thomas

From: Jonathan Perkin <jperkin@mnx.io>
To: Benny Siegert <bsiegert@gmail.com>
Cc: Joerg Sonnenberger <joerg@bec.de>, pkg-manager@netbsd.org,
	gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
	campbell+netbsd@mumble.net, gnats-bugs@netbsd.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Thu, 18 Apr 2024 08:54:24 +0100

 Sorry, I also meant to add, one way to handle this would be for 
 pyversion.mk to provide a variable that lists all of the current known 
 versions of python for an alternate match, so something like:

    PYTHON_VERSION_LIST=	py27,py38,py39,py310,py311,py312

 and then packages can use it like:

    CONFLICTS+= {${PYTHON_VERSION_LIST}}-gtk<0.6.10

 It's not pretty, and again would be less performant than listing them 
 all explicitly, but would be syntactically correct and avoid having to 
 update many many packages every time python versions change.

 -- 
 Jonathan Perkin   -   mnx.io   -   pkgsrc.smartos.org
 Open Source Complete Cloud   www.tritondatacenter.com

From: Jonathan Perkin <jperkin@mnx.io>
To: Benny Siegert <bsiegert@gmail.com>
Cc: Joerg Sonnenberger <joerg@bec.de>, pkg-manager@netbsd.org,
	gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
	campbell+netbsd@mumble.net, gnats-bugs@netbsd.org
Subject: Re: pkg/58155 (CONFLICTS doesn't work with multi-version packages)
Date: Thu, 18 Apr 2024 09:49:51 +0100

 And, for completeness sake as there are complaints we're not being 
 helpful enough here, you can verify this yourselves using "pkg_admin 
 pmatch", for example:

   Dewey match with fully-formed PKGBASE works:

    $ pkg_admin pmatch 'py311-gtk<2.0' py311-gtk-0.9 && echo match || echo no match
    match

   fnmatch on both PKGBASE and PKGVERSION works:

    $ pkg_admin pmatch 'py*-gtk-[0-9]*' py311-gtk-0.9 && echo match || echo no match
    match

   Dewey match with fnmatch in PKGBASE does NOT work:

    $ pkg_admin pmatch 'py*-gtk<2.0' py311-gtk-0.9 && echo match || echo no match
    no match

   Dewey match with alternates in PKGBASE does work:

    $ pkg_admin pmatch '{py27,py311}-gtk<2.0' py311-gtk-0.9 && echo match || echo no match
    match

 Hope that helps,

 -- 
 Jonathan Perkin   -   mnx.io   -   pkgsrc.smartos.org
 Open Source Complete Cloud   www.tritondatacenter.com

From: Thomas Klausner <wiz@gatalith.at>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: pkg/58155: CONFLICTS doesn't work with multi-version packages
Date: Thu, 18 Apr 2024 15:42:54 +0200

 --s7be3vZb+oI84mkW
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline

 I think after the attached commit all current problems are resolved.
  Thomas


 --s7be3vZb+oI84mkW
 Content-Type: message/rfc822
 Content-Disposition: inline

 Return-Path: <bounces-pkgsrc-changes-owner-wiz=netbsd.org@NetBSD.org>
 Delivered-To: wiz@gatalith.at
 Received: from gatalith.at
 	by gatalith.at with LMTP
 	id XnlWBTe5H2bwFAAA4iLUCg
 	(envelope-from <bounces-pkgsrc-changes-owner-wiz=netbsd.org@NetBSD.org>)
 	for <wiz@gatalith.at>; Wed, 17 Apr 2024 13:57:43 +0200
 Received: from mail.netbsd.org (mail.NetBSD.org [IPv6:2001:470:a085:999::25])
 	by gatalith.at (Postfix) with ESMTPS id 4A0EF39089C
 	for <wiz@gatalith.at>; Wed, 17 Apr 2024 13:57:42 +0200 (CEST)
 Received: by mail.netbsd.org (Postfix)
 	id B493484EF0; Wed, 17 Apr 2024 11:57:39 +0000 (UTC)
 Delivered-To: wiz@netbsd.org
 Received: by mail.netbsd.org (Postfix, from userid 605)
 	id 36FC484EC4; Wed, 17 Apr 2024 11:57:39 +0000 (UTC)
 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org;
 	s=20240131; t=1713355059;
 	bh=vGg8Wn+uGdtDLpWx5RX4Vbl7/UqG8p9LSdV+vJ8wCWE=;
 	h=Date:From:Subject:To:Reply-To:List-Id:List-Unsubscribe;
 	b=bOPfIuZOO8FuyARKKsW/0dMYsD8XU7XX7pEdr9e2VdXt7mL/seCZ4CqysZbNhY+6D
 	 +sA4ni0JSHDptC9d5uz8V9qE1znpkfdZAkB1c4uKzHQaDqrBG69uozv7jKsaEJYgG0
 	 NPqg2AFeYO6LWbwyTmfc8PqV5lXgdQjtoc7oCDls=
 Delivered-To: pkgsrc-changes@NetBSD.org
 Received: from localhost (localhost [127.0.0.1])
 	by mail.netbsd.org (Postfix) with ESMTP id 23AB584EC3
 	for <pkgsrc-changes@NetBSD.org>; Wed, 17 Apr 2024 11:57:38 +0000 (UTC)
 X-Virus-Scanned: amavisd-new at netbsd.org
 Authentication-Results: mail.netbsd.org (amavisd-new);
 	dkim=pass (1024-bit key) header.d=netbsd.org
 Received: from mail.netbsd.org ([127.0.0.1])
 	by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025)
 	with ESMTP id s4f4ksEC0evL for <pkgsrc-changes@netbsd.org>;
 	Wed, 17 Apr 2024 11:57:37 +0000 (UTC)
 Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197])
 	by mail.netbsd.org (Postfix) with ESMTP id 378DB84D01
 	for <pkgsrc-changes@NetBSD.org>; Wed, 17 Apr 2024 11:57:37 +0000 (UTC)
 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netbsd.org;
 	s=20240131; t=1713355057;
 	bh=vGg8Wn+uGdtDLpWx5RX4Vbl7/UqG8p9LSdV+vJ8wCWE=;
 	h=Date:From:Subject:To:Reply-To;
 	b=aUpP/oyHJPTWmMvHGWauB/7X2A/kct09570USZ/swfld3z8/9dFm8Up57VBln44w8
 	 t9I+DFEJDKMKlVhYTkcCG7jLGimuv6OrF+5yg4t3qOV7A6R6FAeYfh5gABQ14sABsT
 	 izpfUxi7Pf9QGEqkyT2HgyU2kcK0yqKSYB55QD14=
 Received: by cvs.NetBSD.org (Postfix, from userid 500)
 	id 28DB2FA2C; Wed, 17 Apr 2024 11:57:37 +0000 (UTC)
 Content-Transfer-Encoding: 7bit
 Content-Type: multipart/mixed; boundary="_----------=_1713355057108570"
 MIME-Version: 1.0
 Date: Wed, 17 Apr 2024 11:57:37 +0000
 From: "Thomas Klausner" <wiz@netbsd.org>
 Subject: CVS commit: pkgsrc
 To: pkgsrc-changes@NetBSD.org
 Reply-To: wiz@netbsd.org
 X-Mailer: log_accum
 Message-Id: <20240417115737.28DB2FA2C@cvs.NetBSD.org>
 Sender: pkgsrc-changes-owner@NetBSD.org
 List-Id: <pkgsrc-changes.NetBSD.org>
 Precedence: bulk
 List-Unsubscribe: <mailto:majordomo@NetBSD.org?subject=Unsubscribe%20pkgsrc-changes&body=unsubscribe%20pkgsrc-changes>

 This is a multi-part message in MIME format.

 --_----------=_1713355057108570
 Content-Disposition: inline
 Content-Transfer-Encoding: 8bit
 Content-Type: text/plain; charset="US-ASCII"

 Module Name:	pkgsrc
 Committed By:	wiz
 Date:		Wed Apr 17 11:57:37 UTC 2024

 Modified Files:
 	pkgsrc/devel/py-gobject: Makefile.common
 	pkgsrc/devel/py-gobject3: Makefile.common
 	pkgsrc/devel/ruby-pkg-config: Makefile
 	pkgsrc/math/py-roman: Makefile
 	pkgsrc/net/rabbiter: Makefile
 	pkgsrc/x11/py-gtk2: Makefile

 Log Message:
 *: fix some CONFLICTS

 Remove some that are for packages more than ten year old,
 fix rest.


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.24 pkgsrc/devel/py-gobject/Makefile.common
 cvs rdiff -u -r1.20 -r1.21 pkgsrc/devel/py-gobject3/Makefile.common
 cvs rdiff -u -r1.40 -r1.41 pkgsrc/devel/ruby-pkg-config/Makefile
 cvs rdiff -u -r1.17 -r1.18 pkgsrc/math/py-roman/Makefile
 cvs rdiff -u -r1.16 -r1.17 pkgsrc/net/rabbiter/Makefile
 cvs rdiff -u -r1.144 -r1.145 pkgsrc/x11/py-gtk2/Makefile

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.


 --_----------=_1713355057108570
 Content-Disposition: inline
 Content-Length: 4341
 Content-Transfer-Encoding: binary
 Content-Type: text/x-diff; charset=us-ascii

 Modified files:

 Index: pkgsrc/devel/py-gobject/Makefile.common
 diff -u pkgsrc/devel/py-gobject/Makefile.common:1.23 pkgsrc/devel/py-gobject/Makefile.common:1.24
 --- pkgsrc/devel/py-gobject/Makefile.common:1.23	Wed Apr 17 10:38:34 2024
 +++ pkgsrc/devel/py-gobject/Makefile.common	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile.common,v 1.23 2024/04/17 10:38:34 wiz Exp $
 +# $NetBSD: Makefile.common,v 1.24 2024/04/17 11:57:36 wiz Exp $
  #
  # used by devel/py-gobject/Makefile
  # used by devel/py-gobject-shared/Makefile
 @@ -25,4 +25,4 @@ DISTINFO_FILE=		${.CURDIR}/../../devel/p

  PKGCONFIG_OVERRIDE+=	pygobject-2.0.pc.in
  PY_PATCHPLIST=		yes
 -CONFLICTS+=		py[0-9]*-gtk2<2.8.4
 +CONFLICTS+=		py27-gtk2<2.8.4

 Index: pkgsrc/devel/py-gobject3/Makefile.common
 diff -u pkgsrc/devel/py-gobject3/Makefile.common:1.20 pkgsrc/devel/py-gobject3/Makefile.common:1.21
 --- pkgsrc/devel/py-gobject3/Makefile.common:1.20	Wed Apr 17 10:38:34 2024
 +++ pkgsrc/devel/py-gobject3/Makefile.common	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile.common,v 1.20 2024/04/17 10:38:34 wiz Exp $
 +# $NetBSD: Makefile.common,v 1.21 2024/04/17 11:57:36 wiz Exp $
  # used by devel/py-gobject3/Makefile
  # used by devel/py-gobject3-common/Makefile

 @@ -17,5 +17,5 @@ USE_TOOLS+=	pkg-config
  DISTINFO_FILE=	../../devel/py-gobject3/distinfo
  #PATCHDIR=	../../devel/py-gobject3/patches

 -CONFLICTS+=	py[0-9]*-gtk2<2.8.4
 -CONFLICTS+=	py[0-9]*-gobject<2.28.6nb4
 +CONFLICTS+=	py27-gtk2<2.8.4
 +CONFLICTS+=	py27-gobject<2.28.6nb4

 Index: pkgsrc/devel/ruby-pkg-config/Makefile
 diff -u pkgsrc/devel/ruby-pkg-config/Makefile:1.40 pkgsrc/devel/ruby-pkg-config/Makefile:1.41
 --- pkgsrc/devel/ruby-pkg-config/Makefile:1.40	Wed Apr 17 10:38:34 2024
 +++ pkgsrc/devel/ruby-pkg-config/Makefile	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile,v 1.40 2024/04/17 10:38:34 wiz Exp $
 +# $NetBSD: Makefile,v 1.41 2024/04/17 11:57:36 wiz Exp $

  DISTNAME=	pkg-config-1.5.6
  CATEGORIES=	devel
 @@ -8,8 +8,6 @@ HOMEPAGE=	https://github.com/ruby-gnome/
  COMMENT=	Pure Ruby implementation of pkg-config
  LICENSE=	gnu-lgpl-v2.1

 -CONFLICTS+=	ruby[0-9]*-gnome2-glib<0.90.0
 -
  USE_LANGUAGES=	# none

  CONFIGURE_ARGS+=	--siteruby=${PREFIX}/${RUBY_VENDORLIB_BASE} \

 Index: pkgsrc/math/py-roman/Makefile
 diff -u pkgsrc/math/py-roman/Makefile:1.17 pkgsrc/math/py-roman/Makefile:1.18
 --- pkgsrc/math/py-roman/Makefile:1.17	Wed Apr 17 10:38:35 2024
 +++ pkgsrc/math/py-roman/Makefile	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile,v 1.17 2024/04/17 10:38:35 wiz Exp $
 +# $NetBSD: Makefile,v 1.18 2024/04/17 11:57:36 wiz Exp $

  DISTNAME=	roman-4.1
  PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
 @@ -10,8 +10,6 @@ HOMEPAGE=	https://github.com/zopefoundat
  COMMENT=	Integer to Roman numerals converter for Python
  LICENSE=	zpl-2.1

 -CONFLICTS+=	py[0-9]*-docutils<=0.7
 -
  USE_LANGUAGES=	# none

  PYTHON_VERSIONS_INCOMPATIBLE=	27

 Index: pkgsrc/net/rabbiter/Makefile
 diff -u pkgsrc/net/rabbiter/Makefile:1.16 pkgsrc/net/rabbiter/Makefile:1.17
 --- pkgsrc/net/rabbiter/Makefile:1.16	Wed Apr 17 10:38:35 2024
 +++ pkgsrc/net/rabbiter/Makefile	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile,v 1.16 2024/04/17 10:38:35 wiz Exp $
 +# $NetBSD: Makefile,v 1.17 2024/04/17 11:57:36 wiz Exp $

  DISTNAME=	rabbiter-2.0.1
  PKGREVISION=	2
 @@ -15,8 +15,6 @@ DEPENDS+=	${RUBY_PKGPREFIX}-rabbit>=2.0.
  DEPENDS+=	${RUBY_PKGPREFIX}-twitter_oauth-[0-9]*:../../security/ruby-twitter_oauth
  DEPENDS+=	${RUBY_PKGPREFIX}-twitter-stream>=0.1.16:../../net/ruby-twitter-stream

 -CONFLICTS+=	ruby[0-9]*-rabbit<2.0.0
 -
  USE_RUBY_SETUP=		yes
  USE_RUBY_SETUP_PKG=	yes


 Index: pkgsrc/x11/py-gtk2/Makefile
 diff -u pkgsrc/x11/py-gtk2/Makefile:1.144 pkgsrc/x11/py-gtk2/Makefile:1.145
 --- pkgsrc/x11/py-gtk2/Makefile:1.144	Wed Apr 17 10:38:36 2024
 +++ pkgsrc/x11/py-gtk2/Makefile	Wed Apr 17 11:57:36 2024
 @@ -1,4 +1,4 @@
 -# $NetBSD: Makefile,v 1.144 2024/04/17 10:38:36 wiz Exp $
 +# $NetBSD: Makefile,v 1.145 2024/04/17 11:57:36 wiz Exp $

  DISTNAME=	pygtk-2.24.0
  PKGNAME=	${PYPKGPREFIX}-${DISTNAME:S/pygtk/gtk2/}
 @@ -12,7 +12,7 @@ HOMEPAGE=	http://www.pygtk.org/
  COMMENT=	Python bindings for GTK+2
  LICENSE=	gnu-lgpl-v2.1

 -CONFLICTS=	py[0-9]*-gtk<0.6.10
 +CONFLICTS=	py27-gtk<0.6.10

  # IOError: [Errno 2] No such file or directory: 'gtk-types.defs'
  MAKE_JOBS_SAFE=	no


 --_----------=_1713355057108570--


 --s7be3vZb+oI84mkW--

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2024 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.