On Sun, Dec 28, 2008 at 01:01:56PM +0100, Antoine Jacoutot wrote: > On Sun, 28 Dec 2008, Damien Miller wrote: > > > e.g. something like the following in lang/python/2.5/pkg/PLIST-main: > > > @conflict python-bz2-<=2.5.2p7 > > > > Ok, but I think it should be: > > > > @conflict python-bz2->2.5,<=2.5.2p7 > > @conflict python-expat->2.5,<=2.5.2p7 > > @conflict python-sqlite->2.5,<=2.5.2p7 > > > > Otherwise it would mess up the ability to install more than one python > > version simultaneously. > > ack > > > Is there any nice way to say that a package (e.g. python-2.6.1) replaces > > another package entirely (e.g. python-bz2-2.6)? > > You could use an @pkgpath marker. > e.g. in ports/lang/python/2.5/pkg/PLIST-main: > @pkgpath lang/python/2.5,-bz2
Could someone give me practical example why @pkgpath is needed for? I've tested `pkg_add -ui` with already installed driconf package which depends on old python-expat package. In PKG_PATH I've had only python-2.5.4 with all subpackages from current port (no driconf package with updated dependencies). Update was smooth, but pkg_add asks you about forward dependency mismatch. Tested same setup again updating to python-2.5.4p0 (with additional pkgpaths, see attachment) and what I can see conflict markers are enough for smooth upgrade in both cases, but here again pkg_add asks you about forward dependency mismatch. I would think that shouldn't be the case with additional pkgpaths. For me attached patch brings correctness to python ports, but in practice that doesn't give anything. So why @pkgpath marker is for? -- best regards q#
Index: 2.4/Makefile =================================================================== RCS file: /cvs/ports/lang/python/2.4/Makefile,v retrieving revision 1.20 diff -u -r1.20 Makefile --- 2.4/Makefile 1 Jan 2009 21:03:27 -0000 1.20 +++ 2.4/Makefile 2 Jan 2009 13:43:11 -0000 @@ -2,7 +2,7 @@ VERSION= 2.4 PATCHLEVEL= .6 -#PKG_PATCHLEVEL= +PKG_PATCHLEVEL= p0 SHARED_LIBS= python2.4 1.0 .if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "sparc64" Index: 2.4/pkg/PLIST-main =================================================================== RCS file: /cvs/ports/lang/python/2.4/pkg/PLIST-main,v retrieving revision 1.2 diff -u -r1.2 PLIST-main --- 2.4/pkg/PLIST-main 1 Jan 2009 21:03:27 -0000 1.2 +++ 2.4/pkg/PLIST-main 2 Jan 2009 13:43:11 -0000 @@ -4,6 +4,8 @@ @conflict python-bz2->=2.4,<2.5 @conflict python-expat->=2.4,<2.5 @pkgpath lang/python/2.4 +...@pkgpath lang/python/2.4,-bz2 +...@pkgpath lang/python/2.4,-expat %%mm%% bin/pydoc2.4 @bin bin/python2.4 Index: 2.5/Makefile =================================================================== RCS file: /cvs/ports/lang/python/2.5/Makefile,v retrieving revision 1.28 diff -u -r1.28 Makefile --- 2.5/Makefile 1 Jan 2009 21:03:27 -0000 1.28 +++ 2.5/Makefile 2 Jan 2009 13:43:11 -0000 @@ -2,7 +2,7 @@ VERSION= 2.5 PATCHLEVEL= .4 -#PKG_PATCHLEVEL= +PKG_PATCHLEVEL= p0 SHARED_LIBS= python2.5 1.0 .if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "sparc64" Index: 2.5/pkg/PLIST-main =================================================================== RCS file: /cvs/ports/lang/python/2.5/pkg/PLIST-main,v retrieving revision 1.9 diff -u -r1.9 PLIST-main --- 2.5/pkg/PLIST-main 1 Jan 2009 21:03:27 -0000 1.9 +++ 2.5/pkg/PLIST-main 2 Jan 2009 13:43:12 -0000 @@ -5,6 +5,9 @@ @conflict python-expat->=2.5,<2.6 @conflict python-sqlite->=2.5,<2.6 @pkgpath lang/python/2.5 +...@pkgpath lang/python/2.5,-bz2 +...@pkgpath lang/python/2.5,-expat +...@pkgpath lang/python/2.5,-sqlite bin/pydoc2.5 @comment bin/python-config @bin bin/python2.5 Index: 2.6/Makefile =================================================================== RCS file: /cvs/ports/lang/python/2.6/Makefile,v retrieving revision 1.3 diff -u -r1.3 Makefile --- 2.6/Makefile 1 Jan 2009 21:03:27 -0000 1.3 +++ 2.6/Makefile 2 Jan 2009 13:43:12 -0000 @@ -2,7 +2,7 @@ VERSION= 2.6 PATCHLEVEL= .1 -#PKG_PATCHLEVEL= +PKG_PATCHLEVEL= p0 SHARED_LIBS= python2.6 1.0 # PSUBDIR= python/${VERSION} Index: 2.6/pkg/PLIST-main =================================================================== RCS file: /cvs/ports/lang/python/2.6/pkg/PLIST-main,v retrieving revision 1.2 diff -u -r1.2 PLIST-main --- 2.6/pkg/PLIST-main 1 Jan 2009 21:03:27 -0000 1.2 +++ 2.6/pkg/PLIST-main 2 Jan 2009 13:43:12 -0000 @@ -3,6 +3,7 @@ @conflict python->=2.6,<2.7 @conflict python-bz2->=2.6,<2.7 @pkgpath lang/python/2.6 +...@pkgpath lang/python/2.6,-bz2 bin/2to3 @comment bin/pydoc bin/pydoc2.6