On 2020/02/06 21:26, Mikolaj Kucharski wrote:
> Hi,
>
> Forgot to add that I've tested Stuart's diff with `pkg_add -u -n`
> and it worked. I didn't do real update (without -n), but I think
> it should work.
It does, I tested that before sending it out.
> On Mon, Feb 03, 2020 at 10:13:25PM +0000, Stuart Henderson wrote:
> > My attempt at a diff is below, it works for me in tests updating from
> > a system with 3.6+subpackages.
> >
> > I use ${VERSION_SPEC} in the PLIST for the "same-version" conflicts
> > needed to override "@option no-default-conflict", those should be in all
> > PLISTs, and use a separate conflict entry for the ones there to handle
> > the update from old MODPY_DEFAULT_VERSION_3. I've also added some
> > commentary to the place in python.port.mk where people will look
> > if switching the version to save people having to figure it out again
> > when we move to 3.8-as-default.
>
> ...
>
> > > I'll work up an alternative diff and send out after tests.
> > >
> >
> >
> > Index: Makefile.inc
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/Makefile.inc,v
> > retrieving revision 1.133
> > diff -u -p -r1.133 Makefile.inc
> > --- Makefile.inc 11 Nov 2019 17:47:41 -0000 1.133
> > +++ Makefile.inc 3 Feb 2020 21:56:47 -0000
> > @@ -130,6 +130,8 @@ MAKE_FLAGS += LD_LIBRARY_PATH=${WRKSRC}
> > MAKE_FLAGS += LDFLAGS='-L${WRKSRC} -L${LOCALBASE}/lib/'
> > FAKE_FLAGS += RANLIB=:
> >
> > +SUBST_VARS += VERSION_SPEC
> > +
> > # Python itself is clean, but some extensions e.g. py-cryptography
> > # and QtWebKit require W|X mappings.
> > USE_WXNEEDED = Yes
> > Index: python.port.mk
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/python.port.mk,v
> > retrieving revision 1.119
> > diff -u -p -r1.119 python.port.mk
> > --- python.port.mk 19 Dec 2019 02:42:46 -0000 1.119
> > +++ python.port.mk 3 Feb 2020 21:56:47 -0000
> > @@ -9,6 +9,22 @@ CATEGORIES += lang/python
> > MODPY_DEFAULT_VERSION_2 = 2.7
> > MODPY_DEFAULT_VERSION_3 = 3.7
> >
> > +# If switching the default version:
> > +# - In the old default version, @comment the non-suffixed bin/XXX files
> > (python3,
> > +# pydoc3, etc) and bump REVISION
> > +# - In the new version, uncomment these same files
> > +# - In the new version, add @conflict on the old REVISION of the old
> > version
> > +
> > +# If later *removing* an old version:
> > +# - *move* the numbered @conflict python-*->=3.2,<3.7 to the new version
> > +# and update e.g. to @conflict python-*->=3.2,<3.8
> > +# - *move* the @pkgpath markers to the new version and add a new one for
> > +# the old version you have just retired.
> > +
> > +# In all cases:
> > +# - keep the @conflict python-*-${VERSION_SPEC} PLIST lines as-is, they are
> > +# there to override the "@option no-default-conflict".
> > +
> > .if !defined(MODPY_VERSION)
> >
> > FLAVOR ?=
> > Index: 3.7/Makefile
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/Makefile,v
> > retrieving revision 1.13
> > diff -u -p -r1.13 Makefile
> > --- 3.7/Makefile 28 Dec 2019 18:35:39 -0000 1.13
> > +++ 3.7/Makefile 3 Feb 2020 21:56:47 -0000
> > @@ -10,10 +10,12 @@ PATCHLEVEL = .6
> > SHARED_LIBS = python3.7m 0.0
> > VERSION_SPEC = >=3.7,<3.8
> >
> > +REVISION = 0
> > +
> > CONFIGURE_ARGS += --with-ensurepip=no
> > CONFIGURE_ARGS += --enable-loadable-sqlite-extensions
> >
> > -CONFIGURE_STYLE = autoconf
> > +CONFIGURE_STYLE = autoconf
> >
> > PORTROACH = limit:^3\.7
> >
> > Index: 3.7/pkg/PLIST-gdbm
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/pkg/PLIST-gdbm,v
> > retrieving revision 1.4
> > diff -u -p -r1.4 PLIST-gdbm
> > --- 3.7/pkg/PLIST-gdbm 11 Dec 2019 19:55:40 -0000 1.4
> > +++ 3.7/pkg/PLIST-gdbm 3 Feb 2020 21:56:47 -0000
> > @@ -1,7 +1,11 @@
> > @comment $OpenBSD: PLIST-gdbm,v 1.4 2019/12/11 19:55:40 sthen Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-gdbm->=3.7,<3.8
> > -@pkgpath lang/python3.5,-gdbm
> > -@pkgpath lang/python3.6,-gdbm
> > +@conflict python-gdbm-${VERSION_SPEC}
> > +@conflict python-gdbm->=3.2,<3.7
> > +@pkgpath lang/python/3.2,-gdbm
> > +@pkgpath lang/python/3.3,-gdbm
> > +@pkgpath lang/python/3.4,-gdbm
> > +@pkgpath lang/python/3.5,-gdbm
> > +@pkgpath lang/python/3.6,-gdbm
> > @so lib/python3.7/lib-dynload/_gdbm.so
> > Index: 3.7/pkg/PLIST-idle
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/pkg/PLIST-idle,v
> > retrieving revision 1.5
> > diff -u -p -r1.5 PLIST-idle
> > --- 3.7/pkg/PLIST-idle 11 Dec 2019 19:55:40 -0000 1.5
> > +++ 3.7/pkg/PLIST-idle 3 Feb 2020 21:56:47 -0000
> > @@ -1,11 +1,14 @@
> > @comment $OpenBSD: PLIST-idle,v 1.5 2019/12/11 19:55:40 sthen Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-idle->=3.7,<3.8
> > +@conflict python-idle-${VERSION_SPEC}
> > +@conflict python-idle->=3.2,<3.7
> > +@pkgpath lang/python/3.2,-idle
> > +@pkgpath lang/python/3.3,-idle
> > +@pkgpath lang/python/3.4,-idle
> > +@pkgpath lang/python/3.5,-idle
> > +@pkgpath lang/python/3.6,-idle
> > @conflict python->=3.6,<3.6.8p0
> > -@conflict python-idle->=3.6,<3.6.8p2
> > -@pkgpath lang/python3.5,-idle
> > -@pkgpath lang/python3.6,-idle
> > bin/idle3
> > bin/idle3.7
> > lib/python3.7/idlelib/
> > Index: 3.7/pkg/PLIST-main
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/pkg/PLIST-main,v
> > retrieving revision 1.9
> > diff -u -p -r1.9 PLIST-main
> > --- 3.7/pkg/PLIST-main 28 Dec 2019 18:35:39 -0000 1.9
> > +++ 3.7/pkg/PLIST-main 3 Feb 2020 21:56:47 -0000
> > @@ -1,11 +1,14 @@
> > @comment $OpenBSD: PLIST-main,v 1.9 2019/12/28 18:35:39 kmos Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python->=3.7,<3.8
> > -@conflict python->=3,<3.6.8p2
> > -@pkgpath lang/python3.5,-main
> > -@pkgpath lang/python3.6,-main
> > -@comment bin/2to3
> > +@conflict python-${VERSION_SPEC}
> > +@conflict python->=3.2,<3.7
> > +@pkgpath lang/python/3.2,-main
> > +@pkgpath lang/python/3.3,-main
> > +@pkgpath lang/python/3.4,-main
> > +@pkgpath lang/python/3.5,-main
> > +@pkgpath lang/python/3.6,-main
> > +bin/2to3
> > bin/2to3-3.7
> > bin/pydoc3
> > bin/pydoc3.7
> > Index: 3.7/pkg/PLIST-tests
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/pkg/PLIST-tests,v
> > retrieving revision 1.5
> > diff -u -p -r1.5 PLIST-tests
> > --- 3.7/pkg/PLIST-tests 28 Dec 2019 18:35:39 -0000 1.5
> > +++ 3.7/pkg/PLIST-tests 3 Feb 2020 21:56:47 -0000
> > @@ -1,10 +1,14 @@
> > @comment $OpenBSD: PLIST-tests,v 1.5 2019/12/28 18:35:39 kmos Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-tests->=3.7,<3.8
> > +@conflict python-tests-${VERSION_SPEC}
> > @conflict python->=3.6,<3.6.8p0
> > -@pkgpath lang/python3.5,-tests
> > -@pkgpath lang/python3.6,-tests
> > +@conflict python-tests->=3.2,<3.7
> > +@pkgpath lang/python/3.2,-tests
> > +@pkgpath lang/python/3.3,-tests
> > +@pkgpath lang/python/3.4,-tests
> > +@pkgpath lang/python/3.5,-tests
> > +@pkgpath lang/python/3.6,-tests
> > lib/python3.7/test/
> > lib/python3.7/test/Sine-1000Hz-300ms.aif
> > lib/python3.7/test/__init__.py
> > Index: 3.7/pkg/PLIST-tkinter
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.7/pkg/PLIST-tkinter,v
> > retrieving revision 1.4
> > diff -u -p -r1.4 PLIST-tkinter
> > --- 3.7/pkg/PLIST-tkinter 11 Dec 2019 19:55:40 -0000 1.4
> > +++ 3.7/pkg/PLIST-tkinter 3 Feb 2020 21:56:47 -0000
> > @@ -1,9 +1,13 @@
> > @comment $OpenBSD: PLIST-tkinter,v 1.4 2019/12/11 19:55:40 sthen Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-tkinter->=3.7,<3.8
> > -@pkgpath lang/python3.5,-tkinter
> > -@pkgpath lang/python3.6,-tkinter
> > +@conflict python-tkinter-${VERSION_SPEC}
> > +@conflict python-tkinter->=3.2,<3.7
> > +@pkgpath lang/python/3.2,-tkinter
> > +@pkgpath lang/python/3.3,-tkinter
> > +@pkgpath lang/python/3.4,-tkinter
> > +@pkgpath lang/python/3.5,-tkinter
> > +@pkgpath lang/python/3.6,-tkinter
> > @so lib/python3.7/lib-dynload/_tkinter.so
> > lib/python3.7/tkinter/
> > lib/python3.7/tkinter/__init__.py
> > Index: 3.8/pkg/PLIST-gdbm
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.8/pkg/PLIST-gdbm,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 PLIST-gdbm
> > --- 3.8/pkg/PLIST-gdbm 11 Nov 2019 17:47:42 -0000 1.2
> > +++ 3.8/pkg/PLIST-gdbm 3 Feb 2020 21:56:47 -0000
> > @@ -1,5 +1,5 @@
> > @comment $OpenBSD: PLIST-gdbm,v 1.2 2019/11/11 17:47:42 ajacoutot Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-gdbm->=3.8,<3.9
> > +@conflict python-gdbm-${VERSION_SPEC}
> > @so lib/python3.8/lib-dynload/_gdbm.so
> > Index: 3.8/pkg/PLIST-idle
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.8/pkg/PLIST-idle,v
> > retrieving revision 1.1
> > diff -u -p -r1.1 PLIST-idle
> > --- 3.8/pkg/PLIST-idle 7 Nov 2019 16:14:09 -0000 1.1
> > +++ 3.8/pkg/PLIST-idle 3 Feb 2020 21:56:47 -0000
> > @@ -1,7 +1,7 @@
> > @comment $OpenBSD: PLIST-idle,v 1.1 2019/11/07 16:14:09 kmos Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-idle->=3.8,<3.9
> > +@conflict python-idle-${VERSION_SPEC}
> > @comment bin/idle3
> > bin/idle3.8
> > lib/python3.8/idlelib/
> > Index: 3.8/pkg/PLIST-main
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.8/pkg/PLIST-main,v
> > retrieving revision 1.3
> > diff -u -p -r1.3 PLIST-main
> > --- 3.8/pkg/PLIST-main 28 Dec 2019 18:34:39 -0000 1.3
> > +++ 3.8/pkg/PLIST-main 3 Feb 2020 21:56:47 -0000
> > @@ -1,7 +1,7 @@
> > @comment $OpenBSD: PLIST-main,v 1.3 2019/12/28 18:34:39 kmos Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python->=3.8,<3.9
> > +@conflict python-${VERSION_SPEC}
> > @comment bin/2to3
> > bin/2to3-3.8
> > @comment bin/pydoc3
> > Index: 3.8/pkg/PLIST-tests
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.8/pkg/PLIST-tests,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 PLIST-tests
> > --- 3.8/pkg/PLIST-tests 28 Dec 2019 18:34:39 -0000 1.2
> > +++ 3.8/pkg/PLIST-tests 3 Feb 2020 21:56:47 -0000
> > @@ -1,7 +1,7 @@
> > @comment $OpenBSD: PLIST-tests,v 1.2 2019/12/28 18:34:39 kmos Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-tests->=3.8,<3.9
> > +@conflict python-tests-${VERSION_SPEC}
> > lib/python3.8/ctypes/test/
> > lib/python3.8/ctypes/test/__init__.py
> > lib/python3.8/ctypes/test/__main__.py
> > Index: 3.8/pkg/PLIST-tkinter
> > ===================================================================
> > RCS file: /cvs/ports/lang/python/3.8/pkg/PLIST-tkinter,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 PLIST-tkinter
> > --- 3.8/pkg/PLIST-tkinter 11 Nov 2019 17:47:42 -0000 1.2
> > +++ 3.8/pkg/PLIST-tkinter 3 Feb 2020 21:56:47 -0000
> > @@ -1,7 +1,7 @@
> > @comment $OpenBSD: PLIST-tkinter,v 1.2 2019/11/11 17:47:42 ajacoutot Exp $
> > @option no-default-conflict
> > @option is-branch
> > -@conflict python-tkinter->=3.8,<3.9
> > +@conflict python-tkinter-${VERSION_SPEC}
> > @so lib/python3.8/lib-dynload/_tkinter.so
> > lib/python3.8/tkinter/
> > lib/python3.8/tkinter/__init__.py
>
> --
> Regards,
> Mikolaj
>