Created attachment 219021 [details] Patch file Update to 2.0.0, which fixes runtime error "AttributeError: module 'base64' has no attribute 'decodestring'" with python 3.9. Changes: https://dnspython.readthedocs.io/en/stable/whatsnew.html
Hello. Version 2.x removes compatibility with python 2.7, so I'd keep the current version till the python 2.7 removal in ports.
(In reply to Ruslan Makhmatkhanov from comment #1) Yes, version 2.0.0 supports python 3.6 or later. But as I explained version 1.6.0 does not work with python 3.9. That is, there is no version that works with both python 2.7 and 3.9. So we must select which to support. Python 3.9 is latest stable version and will be support until approximately October 2025. On the other hand python 2.7 has already reached its EoL and is scheduled to be removed from ports tree after the end of this year, and it is only about 2 months later. Furthermore a lot of ports that works only with python 2.7 had already been removed from ports tree. Then are there any reason that only this port stick to 2.7 and keep broken with 3.9?
Are there ports in the tree that depending both upon dnspython and python2.7? If yes, that update will broke them. If not, it is definitely safe to update now. Since python 3.9 is not default, I see no reason to do the update before all 2.7-consumers of dnspython would gone.
Hi Ruslan, Would you mind if I create a py-dnspython2 now and later remove it once 2.7 is gone? I am in dire need of it. Kind Regards, Moin
(In reply to Muhammad Moinur Rahman from comment #4) I prefer to repo-copy this port to dns/py-dnspython1 for python 2.7 only ports.
(In reply to Yasuhiro KIMURA from comment #5) That would actually require lots of other commits. Hence I don't want to walk in that way.
(In reply to Muhammad Moinur Rahman from comment #4) Hi. Yes, please do (via repocopy). I did a quick research and it looks like straight update will at least break these ports immediately: databases/py-swift deskutils/calibre dns/knock dns/py-namebench mail/mailman
(In reply to Ruslan Makhmatkhanov from comment #7) Thanks. Will commit at night.
A commit references this bug: Author: bofh Date: Mon Nov 2 11:40:12 UTC 2020 New revision: 553898 URL: https://svnweb.freebsd.org/changeset/ports/553898 Log: [NEW] dns/py-dnspython2: DNS toolkit for Python - 2.X branch dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. WWW: http://www.dnspython.org/ PR: 250566 Reported by: yasu@utahime.org Approved by: rm Changes: head/dns/Makefile head/dns/py-dnspython2/ head/dns/py-dnspython2/Makefile head/dns/py-dnspython2/distinfo