Quite a few python modules are now py3-only, and more are switching over to that. The current ports setup where we use MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3} and no FLAVOR isn't really very good, especially where dependencies are concerned with the error-prone combination of "py2+3 ports using ${MODPY_FLAVOR}" and "py3-only ports with just the port path/name".
Before more are moved across I'd like to settle on a proper method. I've been discussing this with jasper@ (with some previous knowledge from adding a similar multi-version to pecl-* ports) and propose moving to a setup with: FLAVOR= python3 FLAVORS= python3 (and keep the ,python3 flavour in ../Makefile i.e. "SUBDIR += py-Foo,python3"). This also makes it easier to handle updates as we don't need to mess about with @pkgpath markers. To demonstrate here's a diff that Jasper put together for py-napalm and deps. The new version of py-netmiko is now py3-only, py-napalm depends on this so needs to also move to py3-only, and py-IOSXR doesn't absolutely need to move but it's not used for anything else in-tree so might as well come along for the ride. I'll add some commentary inline. : Index: net/Makefile : =================================================================== : RCS file: /cvs/ports/net/Makefile,v : retrieving revision 1.1167 : diff -u -p -r1.1167 Makefile : --- net/Makefile 31 Jan 2020 23:34:42 -0000 1.1167 : +++ net/Makefile 12 Feb 2020 19:14:28 -0000 : @@ -545,7 +545,6 @@ : SUBDIR += pure-ftpd,virtual_chroot : SUBDIR += purple-rocketchat : SUBDIR += putty : - SUBDIR += py-IOSXR : SUBDIR += py-IOSXR,python3 : SUBDIR += py-IP : SUBDIR += py-IP,python3 : @@ -604,7 +603,6 @@ : SUBDIR += py-netaddr,python3 : SUBDIR += py-netifaces : SUBDIR += py-netifaces,python3 : - SUBDIR += py-netmiko : SUBDIR += py-netmiko,python3 : SUBDIR += py-nmap : SUBDIR += py-nxos obvious, drop py2 builds : Index: devel/quirks/Makefile : =================================================================== : RCS file: /cvs/ports/devel/quirks/Makefile,v : retrieving revision 1.841 : diff -u -p -r1.841 Makefile : --- devel/quirks/Makefile 12 Feb 2020 14:34:05 -0000 1.841 : +++ devel/quirks/Makefile 12 Feb 2020 19:14:28 -0000 : @@ -5,7 +5,7 @@ CATEGORIES = devel databases : DISTFILES = : : # API.rev : -PKGNAME = quirks-3.232 : +PKGNAME = quirks-3.233 : PKG_ARCH = * : MAINTAINER = Marc Espie <es...@openbsd.org> : : Index: devel/quirks/files/Quirks.pm : =================================================================== : RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v : retrieving revision 1.859 : diff -u -p -r1.859 Quirks.pm : --- devel/quirks/files/Quirks.pm 12 Feb 2020 14:34:05 -0000 1.859 : +++ devel/quirks/files/Quirks.pm 12 Feb 2020 19:14:28 -0000 : @@ -339,6 +339,9 @@ my $stem_extensions = { : 'ilmbase' => 'OpenEXR', : 'openexr-viewers' => 'OpenEXR-tools', : 'libvirt-python' => 'py-libvirt', : + 'py-netmiko' => 'py3-netmiko', : + 'py-napalm' => 'py3-napalm', : + 'py-IOSXR' => 'py3-IOSXR', : }; : : my $obsolete_reason = { Just merge py-foo into py3-foo automatically. This was done with some py3 conversions in the past: files/Quirks.pm: 'py-nmap' => 'py3-nmap', files/Quirks.pm: 'py-link-grammar' => 'py3-link-grammar', files/Quirks.pm: 'py-buildbot-www' => 'py3-buildbot-www', files/Quirks.pm: 'py-buildbot-pkg' => 'py3-buildbot-pkg', files/Quirks.pm: 'py-buildbot-grid-view' => 'py3-buildbot-grid-view', files/Quirks.pm: 'py-buildbot-console-view' => 'py3-buildbot-console-view', files/Quirks.pm: 'py-buildbot-waterfall-view' => 'py3-buildbot-waterfall-view', files/Quirks.pm: 'py-pafy' => 'py3-pafy', files/Quirks.pm: 'py-zeroconf' => 'py3-zeroconf', files/Quirks.pm: 'py-xmldiff' => 'py3-xmldiff', In cases where there are bin/ scripts where the py2 version will have a hard conflict with the py3 version it *has* to be done this way. In other cases there is a possible alternative: list in $obsolete_reasons and have the user manually delete the py2 version if they don't want it. This has been done for some ports more recently (e.g. py-semver) but I don't think we should generally continue with it. Admittedly it *is* more friendly to an user writing their own py2 scripts using modules from ports, but the common use case for packages is a standard package user who just has things installed as a dependency of something else. In that case after a pkg_add -u they get e.g. Obsolete package: py-semver-2.8.1p0 (python2 port superseded by python3 version) and it sits around until they manually remove it. So for the standard case I think we should just merge. : Index: net/py-netmiko/Makefile : =================================================================== : RCS file: /cvs/ports/net/py-netmiko/Makefile,v : retrieving revision 1.10 : diff -u -p -r1.10 Makefile : --- net/py-netmiko/Makefile 13 Nov 2019 20:13:39 -0000 1.10 : +++ net/py-netmiko/Makefile 12 Feb 2020 19:14:28 -0000 : @@ -2,7 +2,7 @@ : : COMMENT = simplify Paramiko connections to network devices : : -MODPY_EGG_VERSION = 2.4.2 : +MODPY_EGG_VERSION = 3.0.0 : DISTNAME= netmiko-${MODPY_EGG_VERSION} : PKGNAME = py-${DISTNAME} : : @@ -19,17 +19,12 @@ MODPY_PI = Yes : MODPY_SETUPTOOLS = Yes : : FLAVORS = python3 : -FLAVOR ?= : +FLAVOR = python3 Just hardcode the flavour here so "make" directly in the port dir works sanely. Note this means that MODPY_VERSION=${MODPY_DEFAULT_VERSION_3} is not required. : : RUN_DEPENDS = devel/py-serial${MODPY_FLAVOR} \ : security/py-paramiko${MODPY_FLAVOR} \ : security/py-scp${MODPY_FLAVOR} \ : textproc/py-textfsm${MODPY_FLAVOR} \ : textproc/py-yaml${MODPY_FLAVOR} : - : -.if !${FLAVOR:Mpython3} : -RUN_DEPENDS += devel/py-enum34 \ : - net/py-ipaddress : -.endif Clean up the obsolete deps. : : .include <bsd.port.mk> : Index: net/py-netmiko/distinfo : =================================================================== : RCS file: /cvs/ports/net/py-netmiko/distinfo,v : retrieving revision 1.7 : diff -u -p -r1.7 distinfo : --- net/py-netmiko/distinfo 13 Nov 2019 20:13:39 -0000 1.7 : +++ net/py-netmiko/distinfo 12 Feb 2020 19:14:28 -0000 : @@ -1,2 +1,2 @@ : -SHA256 (netmiko-2.4.2.tar.gz) = 5rDLmK+1H9H7HQTQJNdXKgtSl9+gvRhAXuNlgN7qZaE= : -SIZE (netmiko-2.4.2.tar.gz) = 88802 : +SHA256 (netmiko-3.0.0.tar.gz) = rDPxfE6y/PgzHCpdADMb8enONnK0Dlc2wXzbYs6Sdhs= : +SIZE (netmiko-3.0.0.tar.gz) = 282994 : Index: net/py-netmiko/pkg/PLIST : =================================================================== : RCS file: /cvs/ports/net/py-netmiko/pkg/PLIST,v : retrieving revision 1.8 : diff -u -p -r1.8 PLIST : --- net/py-netmiko/pkg/PLIST 13 Nov 2019 20:13:39 -0000 1.8 : +++ net/py-netmiko/pkg/PLIST 12 Feb 2020 19:14:28 -0000 : @@ -1,4 +1,6 @@ : @comment $OpenBSD: PLIST,v 1.8 2019/11/13 20:13:39 jasper Exp $ : +@conflict py-netmiko-* : +@pkgpath net/py-netmiko Works with the quirks changes above to allow automatically replacing py-netmiko with py3-netmiko. In this particular case there aren't really conflicting files but I think it makes sense to do that as standard (in cases where there are scripts in bin/ without a suffix then there would be a conflict - easier to just always include it so people looking for examples to crib from have an easier time). : lib/python${MODPY_VERSION}/site-packages/netmiko/ : lib/python${MODPY_VERSION}/site-packages/netmiko-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/ : lib/python${MODPY_VERSION}/site-packages/netmiko-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO : @@ -12,7 +14,6 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}base_connection.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}cisco_base_connection.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}netmiko_globals.${MODPY_PYC_MAGIC_TAG}pyc : -lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}py23_compat.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}scp_functions.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}scp_handler.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/${MODPY_PYCACHE}snmp_autodetect.${MODPY_PYC_MAGIC_TAG}pyc : @@ -47,9 +48,7 @@ lib/python${MODPY_VERSION}/site-packages : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/${MODPY_PYCACHE}/ : lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/${MODPY_PYCACHE}alcatel_aos_ssh.${MODPY_PYC_MAGIC_TAG}pyc : -lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/${MODPY_PYCACHE}alcatel_sros_ssh.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/alcatel_aos_ssh.py : -lib/python${MODPY_VERSION}/site-packages/netmiko/alcatel/alcatel_sros_ssh.py : lib/python${MODPY_VERSION}/site-packages/netmiko/apresia/ : lib/python${MODPY_VERSION}/site-packages/netmiko/apresia/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/apresia/${MODPY_PYCACHE}/ : @@ -85,8 +84,8 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/${MODPY_PYCACHE}/ : lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : -lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/${MODPY_PYCACHE}ciena_saos_ssh.${MODPY_PYC_MAGIC_TAG}pyc : -lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/ciena_saos_ssh.py : +lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/${MODPY_PYCACHE}ciena_saos.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/ciena/ciena_saos.py : lib/python${MODPY_VERSION}/site-packages/netmiko/cisco/ : lib/python${MODPY_VERSION}/site-packages/netmiko/cisco/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/cisco/${MODPY_PYCACHE}/ : @@ -142,7 +141,9 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/${MODPY_PYCACHE}/ : lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/${MODPY_PYCACHE}eltex_esr_ssh.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/${MODPY_PYCACHE}eltex_ssh.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/eltex_esr_ssh.py : lib/python${MODPY_VERSION}/site-packages/netmiko/eltex/eltex_ssh.py : lib/python${MODPY_VERSION}/site-packages/netmiko/endace/ : lib/python${MODPY_VERSION}/site-packages/netmiko/endace/__init__.py : @@ -219,7 +220,9 @@ lib/python${MODPY_VERSION}/site-packages : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/${MODPY_PYCACHE}/ : lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/${MODPY_PYCACHE}juniper.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/${MODPY_PYCACHE}juniper_screenos.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/juniper.py : +lib/python${MODPY_VERSION}/site-packages/netmiko/juniper/juniper_screenos.py : lib/python${MODPY_VERSION}/site-packages/netmiko/keymile/ : lib/python${MODPY_VERSION}/site-packages/netmiko/keymile/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/keymile/${MODPY_PYCACHE}/ : @@ -261,6 +264,12 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/netmiko/netapp/${MODPY_PYCACHE}netapp_cdot_ssh.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/netapp/netapp_cdot_ssh.py : lib/python${MODPY_VERSION}/site-packages/netmiko/netmiko_globals.py : +lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/ : +lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/__init__.py : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/${MODPY_PYCACHE}nokia_sros_ssh.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/nokia/nokia_sros_ssh.py : lib/python${MODPY_VERSION}/site-packages/netmiko/oneaccess/ : lib/python${MODPY_VERSION}/site-packages/netmiko/oneaccess/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/oneaccess/${MODPY_PYCACHE}/ : @@ -285,7 +294,6 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO : lib/python${MODPY_VERSION}/site-packages/netmiko/pluribus/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/pluribus/${MODPY_PYCACHE}pluribus_ssh.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/pluribus/pluribus_ssh.py : -lib/python${MODPY_VERSION}/site-packages/netmiko/py23_compat.py : lib/python${MODPY_VERSION}/site-packages/netmiko/quanta/ : lib/python${MODPY_VERSION}/site-packages/netmiko/quanta/__init__.py : ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/quanta/${MODPY_PYCACHE}/ : @@ -304,6 +312,12 @@ ${MODPY_COMMENT}lib/python${MODPY_VERSIO : lib/python${MODPY_VERSION}/site-packages/netmiko/ruckus/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/ruckus/${MODPY_PYCACHE}ruckus_fastiron.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/netmiko/ruckus/ruckus_fastiron.py : +lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/ : +lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/__init__.py : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/${MODPY_PYCACHE}ruijie_os.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/netmiko/ruijie/ruijie_os.py : lib/python${MODPY_VERSION}/site-packages/netmiko/scp_functions.py : lib/python${MODPY_VERSION}/site-packages/netmiko/scp_handler.py : lib/python${MODPY_VERSION}/site-packages/netmiko/snmp_autodetect.py Standard PLIST regen. : Index: net/napalm/Makefile.inc : =================================================================== : RCS file: /cvs/ports/net/napalm/Makefile.inc,v : retrieving revision 1.3 : diff -u -p -r1.3 Makefile.inc : --- net/napalm/Makefile.inc 21 Dec 2019 14:21:13 -0000 1.3 : +++ net/napalm/Makefile.inc 12 Feb 2020 19:14:28 -0000 : @@ -6,5 +6,8 @@ MODULES += lang/python : MODPY_PI ?= Yes : MODPY_SETUPTOOLS ?= Yes : : +FLAVORS = python3 : +FLAVOR = python3 : + : # Apache 2.0 : PERMIT_PACKAGE ?= Yes : Index: net/napalm/py-napalm/Makefile : =================================================================== : RCS file: /cvs/ports/net/napalm/py-napalm/Makefile,v : retrieving revision 1.5 : diff -u -p -r1.5 Makefile : --- net/napalm/py-napalm/Makefile 21 Dec 2019 14:21:13 -0000 1.5 : +++ net/napalm/py-napalm/Makefile 12 Feb 2020 19:14:28 -0000 : @@ -3,7 +3,7 @@ : COMMENT = network automation abstraction layer : : MODPY_EGG_VERSION = 2.3.3 : -REVISION = 0 : +REVISION = 1 : DISTNAME = napalm-${MODPY_EGG_VERSION} : PKGNAME = py-${DISTNAME} : : Index: net/napalm/py-napalm/pkg/PLIST : =================================================================== : RCS file: /cvs/ports/net/napalm/py-napalm/pkg/PLIST,v : retrieving revision 1.3 : diff -u -p -r1.3 PLIST : --- net/napalm/py-napalm/pkg/PLIST 7 Sep 2018 20:19:51 -0000 1.3 : +++ net/napalm/py-napalm/pkg/PLIST 12 Feb 2020 19:14:28 -0000 : @@ -1,4 +1,6 @@ : @comment $OpenBSD: PLIST,v 1.3 2018/09/07 20:19:51 jasper Exp $ : +@conflict py-napalm-* : +@pkgpath net/napalm/py-napalm : bin/cl_napalm_configure : bin/cl_napalm_test : bin/cl_napalm_validate In this case previously it was py2-only and is now py3-only. Therefore the scripts do conflict so the @conflict line is non-optional. : @@ -12,70 +14,76 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/requires.txt : lib/python${MODPY_VERSION}/site-packages/napalm-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt : lib/python${MODPY_VERSION}/site-packages/napalm/_SUPPORTED_DRIVERS.py : -lib/python${MODPY_VERSION}/site-packages/napalm/_SUPPORTED_DRIVERS.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/${MODPY_PYCACHE}_SUPPORTED_DRIVERS.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/ : lib/python${MODPY_VERSION}/site-packages/napalm/base/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}canonical_map.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}helpers.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}mock.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}netmiko_helpers.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/${MODPY_PYCACHE}validate.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/base.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/base.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/canonical_map.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/canonical_map.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/ : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}cl_napalm.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}cl_napalm_configure.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}cl_napalm_test.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}cl_napalm_validate.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/${MODPY_PYCACHE}helpers.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_configure.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_configure.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_test.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_test.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_validate.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/cl_napalm_validate.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/helpers.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/clitools/helpers.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/constants.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/constants.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/exceptions.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/exceptions.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/helpers.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/helpers.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/mock.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/mock.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/netmiko_helpers.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/netmiko_helpers.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/ : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}conftest.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}double.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}getters.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}helpers.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/test/${MODPY_PYCACHE}models.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/base.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/base.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/conftest.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/conftest.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/double.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/double.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/getters.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/getters.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/helpers.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/helpers.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/test/models.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/test/models.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/ : lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/${MODPY_PYCACHE}jinja_filters.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/${MODPY_PYCACHE}py23_compat.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/${MODPY_PYCACHE}string_parsers.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/jinja_filters.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/jinja_filters.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/py23_compat.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/py23_compat.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/string_parsers.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/utils/string_parsers.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/base/validate.py : -lib/python${MODPY_VERSION}/site-packages/napalm/base/validate.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/eos/ : lib/python${MODPY_VERSION}/site-packages/napalm/eos/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/eos/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/eos/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/eos/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/eos/${MODPY_PYCACHE}eos.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/eos/eos.py : -lib/python${MODPY_VERSION}/site-packages/napalm/eos/eos.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/eos/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/eos/templates/delete_ntp_servers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/eos/templates/delete_snmp_config.j2 : @@ -85,7 +93,8 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/eos/templates/snmp_config.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/ : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/textfsm_templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/textfsm_templates/bgp_detail.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/textfsm_templates/ntp_peers.tpl : @@ -93,9 +102,10 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/eos/utils/textfsm_templates/vrf.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/ios/ : lib/python${MODPY_VERSION}/site-packages/napalm/ios/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/ios/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/ios/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/ios/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/ios/${MODPY_PYCACHE}ios.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/ios/ios.py : -lib/python${MODPY_VERSION}/site-packages/napalm/ios/ios.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/ios/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/ios/templates/delete_ntp_peers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/ios/templates/delete_ntp_servers.j2 : @@ -113,11 +123,12 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/ios/utils/textfsm_templates/show_lldp_neighbors_detail.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/ : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/${MODPY_PYCACHE}iosxr.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/constants.py : -lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/constants.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/iosxr.py : -lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/iosxr.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/templates/delete_ntp_peers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/templates/delete_ntp_servers.j2 : @@ -133,11 +144,12 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/iosxr/templates/snmp_config.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/junos/ : lib/python${MODPY_VERSION}/site-packages/napalm/junos/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/junos/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/junos/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/junos/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/junos/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/junos/${MODPY_PYCACHE}junos.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/junos/constants.py : -lib/python${MODPY_VERSION}/site-packages/napalm/junos/constants.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/junos/junos.py : -lib/python${MODPY_VERSION}/site-packages/napalm/junos/junos.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/junos/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/junos/templates/delete_ntp_peers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/junos/templates/delete_ntp_servers.j2 : @@ -153,15 +165,17 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/junos/templates/snmp_config.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/ : lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/${MODPY_PYCACHE}junos_views.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/junos_views.py : -lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/junos_views.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/junos/utils/junos_views.yml : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/nxos/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos/${MODPY_PYCACHE}nxos.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/nxos.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos/nxos.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/templates/delete_ntp_peers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/templates/delete_ntp_servers.j2 : @@ -174,16 +188,18 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/templates/snmp_config.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/textfsm_templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/textfsm_templates/lldp_neighbors.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/textfsm_templates/snmp_config.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/nxos/utils/textfsm_templates/users.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/${MODPY_PYCACHE}nxos_ssh.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/nxos_ssh.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/nxos_ssh.pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/templates/delete_ntp_peers.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/templates/delete_ntp_servers.j2 : @@ -196,7 +212,8 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/templates/snmp_config.j2 : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/__init__.py : -lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/__init__.pyc : +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/${MODPY_PYCACHE}/ : +lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/textfsm_templates/ : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/textfsm_templates/lldp_neighbors.tpl : lib/python${MODPY_VERSION}/site-packages/napalm/nxos_ssh/utils/textfsm_templates/snmp_config.tpl : Index: net/py-IOSXR/Makefile : =================================================================== : RCS file: /cvs/ports/net/py-IOSXR/Makefile,v : retrieving revision 1.4 : diff -u -p -r1.4 Makefile : --- net/py-IOSXR/Makefile 21 Dec 2019 14:21:13 -0000 1.4 : +++ net/py-IOSXR/Makefile 12 Feb 2020 19:14:28 -0000 : @@ -5,7 +5,7 @@ COMMENT = library to manage IOS-XR devi : MODPY_EGG_VERSION = 0.53 : DISTNAME = pyIOSXR-${MODPY_EGG_VERSION} : PKGNAME = py-${DISTNAME:S/py//} : -REVISION = 1 : +REVISION = 2 : : CATEGORIES = net : : @@ -13,11 +13,12 @@ CATEGORIES = net : PERMIT_PACKAGE = Yes : : MODULES = lang/python : -FLAVORS = python3 : -FLAVOR ?= : : MODPY_PI = Yes : MODPY_SETUPTOOLS = Yes : + : +FLAVORS = python3 : +FLAVOR = python3 : : RUN_DEPENDS = net/py-netmiko${MODPY_FLAVOR} \ : textproc/py-lxml${MODPY_FLAVOR} : Index: net/py-IOSXR/pkg/PLIST : =================================================================== : RCS file: /cvs/ports/net/py-IOSXR/pkg/PLIST,v : retrieving revision 1.1.1.1 : diff -u -p -r1.1.1.1 PLIST : --- net/py-IOSXR/pkg/PLIST 25 Apr 2018 14:19:26 -0000 1.1.1.1 : +++ net/py-IOSXR/pkg/PLIST 12 Feb 2020 19:14:28 -0000 : @@ -1,4 +1,6 @@ : @comment $OpenBSD: PLIST,v 1.1.1.1 2018/04/25 14:19:26 jasper Exp $ : +@conflict net/py-IOSXR-* : +@pkgpath net/py-IOSXR : lib/python${MODPY_VERSION}/site-packages/pyIOSXR/ : lib/python${MODPY_VERSION}/site-packages/pyIOSXR-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/ : lib/python${MODPY_VERSION}/site-packages/pyIOSXR-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO Simple 2+3 -> 3-only conversion. Obviously there are currently a number of py3-only ports which should end up using the same flavour scheme (and dependency lines to fix), if there are not objections I can either review diffs or take care of those myself. There is a possible future direction I've been considering of moving py2 ports from "unflavoured" to "FLAVOR=python2" (and possibly splitting python3 into multiple versions e.g. python37/python38 as we do with ruby). I'm unsure if it's worthwhile at the moment, but this method of converting to py3-only at least doesn't get in the way of doing that later.