Wih the diff below devel/subversion can be built with FLAVOR=python3. My goal is to create a py3-subversion subpackage which contains the Python3 bindings for Subversion, but I'm probably doing something wrong or I am making wrong assumptions.
I end up with a flavoured -main package that's not actually needed: /usr/ports/packages/amd64/all/subversion-1.14.0-python3.tgz /usr/ports/packages/amd64/all/subversion-1.14.0.tgz All the other subpackages which are built by this port overlap between the python3 flavour and the default build: p5-SVN, ruby27-subversion, gnome-keyring-subversion, and ap2-subversion Using the python3 flavour only makes sense with MULTI_PACKAGES=-python. Conceptually I need a subpackage-specific flavour and it looks like this concept doesn't exist in the ports framework as such. This command attempts to install subversion-1.14.0-python3 instead of py3-subversion-1.14.0: $ env FLAVOR=python3 MULTI_PACKAGES=-python SUDO=doas make install ===> Installing subversion-1.14.0-python3 from /usr/ports/packages/amd64/all/ Can't install subversion-1.14.0-python3 because of conflicts (.libs-subversion-1 .13.0p1,subversion-1.14.0,.libs-subversion-1.11.1) --- subversion-1.14.0-python3 ------------------- Can't install subversion-1.14.0-python3: conflicts Couldn't install subversion-1.14.0-python3 After 'pkg_delete subversion' I can install the python3 bindings with: $ env FLAVOR=python3 SUDO=doas make install-all And the python3 bindings themselves are working: $ python3 Python 3.7.7 (default, May 28 2020, 14:54:22) [Clang 8.0.1 (tags/RELEASE_801/final)] on openbsd6 Type "help", "copyright", "credits" or "license" for more information. >>> import svn.fs >>> Ideally, only py-subversion and py3-subversion would conflict. Is there a better way to do this? Can someone show me the way? diff 354ab5270a9c1ea5e8e801a5aee04aca63f0be5e /usr/ports blob - 8994a43fea1367f40b5eb8b0c9d3a91cb48c72f3 file + devel/subversion/Makefile --- devel/subversion/Makefile +++ devel/subversion/Makefile @@ -12,7 +12,7 @@ DISTNAME= subversion-${VERSION:S/rc/-rc/} PKGNAME-main= subversion-${VERSION} FULLPKGNAME-perl= p5-SVN-${VERSION} FULLPKGPATH-perl= devel/subversion,-perl -FULLPKGNAME-python= py-subversion-${VERSION} +FULLPKGNAME-python= ${MODPY_PY_PREFIX}subversion-${VERSION} FULLPKGPATH-python= devel/subversion,-python FULLPKGNAME-ruby= ruby${MODRUBY_BINREV}-subversion-${VERSION} FULLPKGPATH-ruby= devel/subversion,-ruby @@ -25,10 +25,6 @@ MODRUBY_REV ?= 2.7 # Work around for SHARED_LIBS not picking up MODRUBY_BINREV from ruby module MODRUBY_BINREV= ${MODRUBY_REV:S/.//} -# Subversion supports either python2 or python3 bindings. Consumers in the -# ports tree are not yet ready for python3. So keep using python 2.7 for now. -MODPY_VERSION ?= 2.7 - SO_VERSION= 6.0 SVN_LIBS= svn_client-1 svn_delta-1 svn_diff-1 svn_fs-1 \ svn_fs_base-1 svn_fs_fs-1 svn_fs_util-1 svn_fs_x-1 \ @@ -57,7 +53,7 @@ MASTER_SITES= ${MASTER_SITE_APACHE:=subversion/} EXTRACT_SUFX= .tar.bz2 PSEUDO_FLAVORS= no_bindings no_ap2 no_perl no_python no_ruby no_gnome-keyring -FLAVORS= maintainer_mode +FLAVORS= maintainer_mode python3 FLAVOR?= .if ${FLAVOR:Mno_bindings} FLAVOR += no_perl no_python no_ruby blob - 10f71448f892f604a77d21e8a59dc1e1d0840cc2 file + devel/subversion/pkg/PLIST-python --- devel/subversion/pkg/PLIST-python +++ devel/subversion/pkg/PLIST-python @@ -1,11 +1,20 @@ @comment $OpenBSD: PLIST-python,v 1.11 2020/05/15 14:47:40 ajacoutot Exp $ @pkgpath devel/subversion,-python,gnome_keyring -@static-lib lib/libsvn_swig_${MODPY_PY_PREFIX}1.a -lib/libsvn_swig_${MODPY_PY_PREFIX}1.la -@lib lib/libsvn_swig_${MODPY_PY_PREFIX}1.so.${LIBsvn_swig_${MODPY_PY_PREFIX}1_VERSION} +@static-lib lib/libsvn_swig_py-1.a +lib/libsvn_swig_py-1.la +@lib lib/libsvn_swig_py-1.so.${LIBsvn_swig_py-1_VERSION} lib/python${MODPY_VERSION}/site-packages/libsvn/ lib/python${MODPY_VERSION}/site-packages/libsvn/__init__.py -lib/python${MODPY_VERSION}/site-packages/libsvn/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}delta.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}diff.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}fs.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}ra.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}repos.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/libsvn/${MODPY_PYCACHE}wc.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/libsvn/_client.a lib/python${MODPY_VERSION}/site-packages/libsvn/_client.la @so lib/python${MODPY_VERSION}/site-packages/libsvn/_client.so @@ -31,37 +40,30 @@ lib/python${MODPY_VERSION}/site-packages/libsvn/_wc.a lib/python${MODPY_VERSION}/site-packages/libsvn/_wc.la @so lib/python${MODPY_VERSION}/site-packages/libsvn/_wc.so lib/python${MODPY_VERSION}/site-packages/libsvn/client.py -lib/python${MODPY_VERSION}/site-packages/libsvn/client.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/core.py -lib/python${MODPY_VERSION}/site-packages/libsvn/core.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/delta.py -lib/python${MODPY_VERSION}/site-packages/libsvn/delta.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/diff.py -lib/python${MODPY_VERSION}/site-packages/libsvn/diff.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/fs.py -lib/python${MODPY_VERSION}/site-packages/libsvn/fs.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/ra.py -lib/python${MODPY_VERSION}/site-packages/libsvn/ra.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/repos.py -lib/python${MODPY_VERSION}/site-packages/libsvn/repos.pyc lib/python${MODPY_VERSION}/site-packages/libsvn/wc.py -lib/python${MODPY_VERSION}/site-packages/libsvn/wc.pyc lib/python${MODPY_VERSION}/site-packages/svn/ lib/python${MODPY_VERSION}/site-packages/svn/__init__.py -lib/python${MODPY_VERSION}/site-packages/svn/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}core.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}delta.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}diff.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}fs.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}ra.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}repos.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/svn/${MODPY_PYCACHE}wc.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/svn/client.py -lib/python${MODPY_VERSION}/site-packages/svn/client.pyc lib/python${MODPY_VERSION}/site-packages/svn/core.py -lib/python${MODPY_VERSION}/site-packages/svn/core.pyc lib/python${MODPY_VERSION}/site-packages/svn/delta.py -lib/python${MODPY_VERSION}/site-packages/svn/delta.pyc lib/python${MODPY_VERSION}/site-packages/svn/diff.py -lib/python${MODPY_VERSION}/site-packages/svn/diff.pyc lib/python${MODPY_VERSION}/site-packages/svn/fs.py -lib/python${MODPY_VERSION}/site-packages/svn/fs.pyc lib/python${MODPY_VERSION}/site-packages/svn/ra.py -lib/python${MODPY_VERSION}/site-packages/svn/ra.pyc lib/python${MODPY_VERSION}/site-packages/svn/repos.py -lib/python${MODPY_VERSION}/site-packages/svn/repos.pyc lib/python${MODPY_VERSION}/site-packages/svn/wc.py -lib/python${MODPY_VERSION}/site-packages/svn/wc.pyc