Hello,
The latest version of dnspython drops support for py2, but there
are a number of packages that are currently py2 only. I'd like to
propose splitting py-dnspython into py2 and py3 specific versions
to allow the latest py3-only version to be used.
Following the model of the py2-Pillow/py-Pillow split, I have:
* py2-dnspython.tgz: a "new" port which is locked to py2
* py-dnspython.diff: the updated version of the port which is now py3
only
* dnspython_reverse_deps.diff: updating all ports that rely on the
current version of dnspython
* mail/mailman
* net/samba
* security/knockpy
* textproc/calibre
* www/linkchecker
* www/py-formencode (I added a small patch to maintain the flavors)
I've tried not to botch this. :) Those six have been make test-ed where
supported and at least make build-ed. Nothing untoward came up in those
Feedback, comments, questions?
Maintainers of security/knockpy and net/samba cc'd
Lucas
Other notes:
* mail/mailman could use latest dnspython if the port was updated for
mailman3. However, the web interface would still require py2. This
would probably need to be a split package.
* https://www.gnu.org/software/mailman/requirements.html
* https://www.gnu.org/software/mailman/download.html
* net/samba apparently also has support for py3, but I don't know what
it would take for the port to get to that point. Beyond my current
experience level :)
* https://wiki.samba.org/index.php/Python3
* https://bugzilla.samba.org/show_bug.cgi?id=10028
* textproc/calibre: py3 support debuted with Calibre 5, released just
a few months ago. Similar to net/samba, not sure what it takes to get
there
* https://calibre-ebook.com/new-in/fourteen
* www/linkchecker could use the latest dnspython if we used HEAD in
upstream, but that's something for later.
* https://github.com/linkchecker/linkchecker/blob/master/setup.py#L381
* databases/web2ldap would be a consumer of the latest dnspython which
is what prompted this whole thing
Index: Makefile
===
RCS file: /cvs/ports/net/py-dnspython/Makefile,v
retrieving revision 1.30
diff -u -p -r1.30 Makefile
--- Makefile3 Jul 2020 21:13:01 - 1.30
+++ Makefile26 Nov 2020 21:40:11 -
@@ -2,8 +2,7 @@
COMMENT= DNS toolkit for Python
-MODPY_EGG_VERSION= 1.16.0
-REVISION= 3
+MODPY_EGG_VERSION= 2.0.0
DISTNAME= dnspython-${MODPY_EGG_VERSION}
PKGNAME= py-${DISTNAME}
CATEGORIES=net
@@ -13,10 +12,13 @@ HOMEPAGE= http://www.dnspython.org/
# BSD
PERMIT_PACKAGE=Yes
-MASTER_SITES= ${HOMEPAGE}kits/${MODPY_EGG_VERSION}/
+GH_ACCOUNT=rthalley
+GH_PROJECT=dnspython
+GH_TAGNAME=v${MODPY_EGG_VERSION}
+MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3}
+FLAVOR=python3
FLAVORS= python3
-FLAVOR?=
MODULES= lang/python
MODPY_SETUPTOOLS= Yes
@@ -25,9 +27,10 @@ MODPY_PYTEST=Yes
TEST_DEPENDS= security/py-ecdsa${MODPY_FLAVOR}
-.if !${FLAVOR:Mpython3}
-TEST_DEPENDS+= devel/py-typing
-.endif
+RUN_DEPENDS= net/py-idna${MODPY_FLAVOR} \
+ security/py-cryptography${MODPY_FLAVOR} \
+ www/py-requests${MODPY_FLAVOR} \
+ www/py-requests-toolbelt${MODPY_FLAVOR}
TEST_ENV+= PYTHONPATH="${WRKSRC}"
Index: distinfo
===
RCS file: /cvs/ports/net/py-dnspython/distinfo,v
retrieving revision 1.12
diff -u -p -r1.12 distinfo
--- distinfo19 Dec 2018 09:59:45 - 1.12
+++ distinfo26 Nov 2020 21:40:11 -
@@ -1,2 +1,2 @@
-SHA256 (dnspython-1.16.0.tar.gz) = S/XFwSpEeO54YKsXZlnPZMSJnudnUtgmsIL4r3I8XPk=
-SIZE (dnspython-1.16.0.tar.gz) = 150524
+SHA256 (dnspython-2.0.0.tar.gz) = Z84tUKUfuQcYQ5mTDCipu3mlC+LFzvgIQYj8R7AIr0w=
+SIZE (dnspython-2.0.0.tar.gz) = 221903
Index: pkg/PLIST
===
RCS file: /cvs/ports/net/py-dnspython/pkg/PLIST,v
retrieving revision 1.11
diff -u -p -r1.11 PLIST
--- pkg/PLIST 5 Feb 2019 20:57:44 - 1.11
+++ pkg/PLIST 26 Nov 2020 21:40:11 -
@@ -4,15 +4,21 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/dns/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/dns/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/dns/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/dns/${MODPY_PYCACHE}_compat.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/dns/${MODPY_PYCACHE}_asyncbackend.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/dns/${MODPY_PYCACHE}_asyncio_backend.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/d