Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-py3dns for openSUSE:Factory checked in at 2024-01-10 21:51:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-py3dns (Old) and /work/SRC/openSUSE:Factory/.python-py3dns.new.21961 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-py3dns" Wed Jan 10 21:51:55 2024 rev:3 rq:1137811 version:4.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-py3dns/python-py3dns.changes 2019-09-11 10:39:38.867228021 +0200 +++ /work/SRC/openSUSE:Factory/.python-py3dns.new.21961/python-py3dns.changes 2024-01-10 21:52:17.036156909 +0100 @@ -1,0 +2,16 @@ +Tue Jan 9 21:30:53 UTC 2024 - Dirk Müller <[email protected]> + +- update to 4.0.0: + * Bump major version due to incompatible change + * Remove class DnsAsyncRequest, asyncore is removed from Python + 3.12 and it would require a substial rewrite - + If you need async DNS, use aiodns instead. (LP: #2003329) + * Switch build system from setuptools with setup.py to flit + * If /etc/resolv.conf, assume DNS server is '127.0.0.1', this + changes the existing behavior - in previous releases there + would be a FileNotFoundError. +- drop python3-py3dns-handle-absent-resolv.patch, + python3-py3dns-py3_friendly_warning.patch: solved upstream + differently + +------------------------------------------------------------------- Old: ---- py3dns-3.2.1.tar.gz python3-py3dns-handle-absent-resolv.patch python3-py3dns-py3_friendly_warning.patch New: ---- py3dns-4.0.0.tar.gz BETA DEBUG BEGIN: Old: would be a FileNotFoundError. - drop python3-py3dns-handle-absent-resolv.patch, python3-py3dns-py3_friendly_warning.patch: solved upstream Old:- drop python3-py3dns-handle-absent-resolv.patch, python3-py3dns-py3_friendly_warning.patch: solved upstream differently BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-py3dns.spec ++++++ --- /var/tmp/diff_new_pack.S4jyDq/_old 2024-01-10 21:52:17.536175067 +0100 +++ /var/tmp/diff_new_pack.S4jyDq/_new 2024-01-10 21:52:17.536175067 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-py3dns # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,19 +16,17 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define skip_python2 1 Name: python-py3dns -Version: 3.2.1 +Version: 4.0.0 Release: 0 Summary: Python module for DNS (Domain Name Service) License: CNRI-Python Group: Development/Languages/Python URL: https://launchpad.net/py3dns Source: https://files.pythonhosted.org/packages/source/p/py3dns/py3dns-%{version}.tar.gz -Patch0: python3-py3dns-handle-absent-resolv.patch -Patch1: python3-py3dns-py3_friendly_warning.patch -BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module flit-core} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch @@ -40,14 +38,13 @@ symbolic constants used by DNS (dnstype, dnsclass, dnsopcode). %prep -%setup -q -n py3dns-%{version} -%autopatch -p1 +%autosetup -p1 -n py3dns-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %check @@ -57,5 +54,6 @@ %files %{python_files} %license LICENSE %doc README* CHANGES -%{python_sitelib}/* +%{python_sitelib}/DNS +%{python_sitelib}/py3dns-%{version}.dist-info ++++++ py3dns-3.2.1.tar.gz -> py3dns-4.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/CHANGES new/py3dns-4.0.0/CHANGES --- old/py3dns-3.2.1/CHANGES 2019-09-04 14:14:51.000000000 +0200 +++ new/py3dns-4.0.0/CHANGES 2023-07-01 23:05:20.511201100 +0200 @@ -1,3 +1,13 @@ +4.0.0 Sat, Jul 1, 2023 + * Bump major version due to incompatible change + * Remove class DnsAsyncRequest, asyncore is removed from Python 3.12 and it + would require a substial rewrite - If you need async DNS, use aiodns + instead. (LP: #2003329) + * Switch build system from setuptools with setup.py to flit + * If /etc/resolv.conf, assume DNS server is '127.0.0.1', this changes the + existing behavior - in previous releases there would be a + FileNotFoundError. + 3.2.1 Wed, Sep 4, 2019 * Add support for setting timeout for convenience methods in DNS.lazy * Fixed DNS.req resulttype error format (LP: #1842423) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/DNS/Base.py new/py3dns-4.0.0/DNS/Base.py --- old/py3dns-3.2.1/DNS/Base.py 2019-09-04 12:19:11.000000000 +0200 +++ new/py3dns-4.0.0/DNS/Base.py 2023-07-01 22:39:28.319523300 +0200 @@ -14,7 +14,6 @@ import socket, string, types, time, select import errno from . import Type,Class,Opcode -import asyncore # # This random generator is used for transaction ids and port selection. This # is important to prevent spurious results from lost packets, and malicious @@ -50,8 +49,12 @@ def ParseResolvConf(resolv_path="/etc/resolv.conf"): "parses the /etc/resolv.conf file and sets defaults for name servers" - with open(resolv_path, 'r') as stream: - return ParseResolvConfFromIterable(stream) + try: + with open(resolv_path, 'r') as stream: + return ParseResolvConfFromIterable(stream) + except FileNotFoundError: + return(defaults['server'].append('127.0.0.1')) + def ParseResolvConfFromIterable(lines): "parses a resolv.conf formatted stream and sets defaults for name servers" @@ -94,7 +97,6 @@ """ high level Request object """ def __init__(self,*name,**args): self.donefunc=None - self.py3async=None self.defaults = {} self.argparse(name,args) self.defaults = self.args @@ -274,10 +276,7 @@ self.sendTCPRequest(server) except socket.error as reason: raise SocketError(reason) - if self.py3async: - return None - else: - return self.response + return self.response def req(self,*name,**args): " needs a refactoring " @@ -326,10 +325,7 @@ self.sendTCPRequest(server) except socket.error as reason: raise SocketError(reason) - if self.py3async: - return None - else: - return self.response + return self.response def sendUDPRequest(self, server): "refactor me" @@ -347,21 +343,18 @@ # TODO. Handle timeouts &c correctly (RFC) self.time_start=time.time() self.conn() - if not self.py3async: - self.s.send(self.request) + self.s.send(self.request) + r=self.processUDPReply() + # Since we bind to the source port and connect to the + # destination port, we don't need to check that here, + # but do make sure it's actually a DNS request that the + # packet is in reply to. + while (r.header['id'] != self.tid or + self.from_address[1] != self.port): r=self.processUDPReply() - # Since we bind to the source port and connect to the - # destination port, we don't need to check that here, - # but do make sure it's actually a DNS request that the - # packet is in reply to. - while r.header['id'] != self.tid \ - or self.from_address[1] != self.port: - r=self.processUDPReply() - self.response = r - # FIXME: check waiting async queries + self.response = r finally: - if not self.py3async: - self.s.close() + self.s.close() except socket.error as e: # Keep trying more nameservers, but preserve the first error # that occurred so it can be reraised in case none of the @@ -418,40 +411,6 @@ if not self.response and first_socket_error: raise first_socket_error -#class DnsAsyncRequest(DnsRequest): -class DnsAsyncRequest(DnsRequest,asyncore.dispatcher_with_send): - " an asynchronous request object. out of date, probably broken " - def __init__(self,*name,**args): - DnsRequest.__init__(self, *name, **args) - # XXX todo - if 'done' in args and args['done']: - self.donefunc=args['done'] - else: - self.donefunc=self.showResult - #self.realinit(name,args) # XXX todo - self.py3async=1 - def conn(self): - self.getSource() - self.connect((self.ns,self.port)) - self.time_start=time.time() - if 'start' in self.args and self.args['start']: - asyncore.dispatcher.go(self) - def socketInit(self,a,b): - self.create_socket(a,b) - asyncore.dispatcher.__init__(self) - self.s=self - def handle_read(self): - if self.args['protocol'] == 'udp': - self.response=self.processUDPReply() - if self.donefunc: - self.donefunc(*(self,)) - def handle_connect(self): - self.send(self.request) - def handle_write(self): - pass - def showResult(self,*s): - self.response.show() - def ParseOSXSysConfig(): "Retrieves the current Mac OS X resolver settings using the scutil(8) command." import os, re diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/DNS/__init__.py new/py3dns-4.0.0/DNS/__init__.py --- old/py3dns-3.2.1/DNS/__init__.py 2019-09-04 11:43:56.000000000 +0200 +++ new/py3dns-4.0.0/DNS/__init__.py 2023-07-01 21:23:56.276977500 +0200 @@ -10,7 +10,7 @@ # __init__.py for DNS class. -__version__ = '3.2.1' +__version__ = '4.0.0' try: import ipaddress diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/DNS/tests/test_base.py new/py3dns-4.0.0/DNS/tests/test_base.py --- old/py3dns-3.2.1/DNS/tests/test_base.py 2019-09-04 14:13:10.000000000 +0200 +++ new/py3dns-4.0.0/DNS/tests/test_base.py 2020-04-17 21:29:51.000000000 +0200 @@ -83,7 +83,7 @@ self.assertEqual(aaaai_response.answers[0]['data'], 50542628918019813867414319910101719366) def testDnsRequestEmptyMX(self): - dnsobj = DNS.DnsRequest('example.org') + dnsobj = DNS.DnsRequest('mail.kitterman.org') mx_empty_response = dnsobj.qry(qtype='MX', timeout=1) self.assertFalse(mx_empty_response.answers) @@ -185,7 +185,7 @@ self.assertEqual(aaaad_response.answers[0]['data'],b'&\x06(\x00\x02 \x00\x01\x02H\x18\x93%\xc8\x19F') def testDnsRequestEmptyMXD(self): - dnsob = DNS.DnsRequest('example.org') + dnsob = DNS.DnsRequest('mail.kitterman.org') mx_empty_response = dnsob.req(qtype='MX', timeout=1) self.assertFalse(mx_empty_response.answers) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/MANIFEST.in new/py3dns-4.0.0/MANIFEST.in --- old/py3dns-3.2.1/MANIFEST.in 2018-07-23 19:26:38.000000000 +0200 +++ new/py3dns-4.0.0/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -recursive-include DNS *.py -recursive-include tools *.py -recursive-include tests *.py -include LICENSE -include CHANGES -include MANIFEST.in -include *.txt -include setup.* -include test.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/PKG-INFO new/py3dns-4.0.0/PKG-INFO --- old/py3dns-3.2.1/PKG-INFO 2019-09-04 14:15:49.000000000 +0200 +++ new/py3dns-4.0.0/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +1,12 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: py3dns -Version: 3.2.1 +Version: 4.0.0 Summary: Python 3 DNS library -Home-page: https://launchpad.net/py3dns -Author: Anthony Baxter and others -Author-email: [email protected] -Maintainer: Scott Kitterman -Maintainer-email: [email protected] -License: Python License -Description: Python 3 DNS library: - Keywords: DNS -Platform: UNKNOWN +Author-email: Anthony Baxter and others <[email protected]> +Maintainer-email: Scott Kitterman <[email protected]> +Requires-Python: >=3.2 +Description-Content-Type: text/plain Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: No Input/Output (Daemon) Classifier: Intended Audience :: Developers @@ -21,3 +16,159 @@ Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Internet :: Name Service (DNS) Classifier: Topic :: Software Development :: Libraries :: Python Modules + +Release 4.0.0 UNRELEASED +Removed class DnsAsyncRequest since Python 3.12 dropped asyncore. Bumping +major version since this is a breaking change. If you need async DNS, use +aiodns instead. + +Changed behavior when /etc/resolv.conf is missing. Instead of +FileNotFoundError, assume DNS server is '127.0.0.1'. + +Release 3.2.0 Mon Jul 23 2018 + +Switched from distutils to setuptools because "it's the future". It is +unlikely to have end user impact. For python3.3+ no additional dependencies +are required. + +Release 3.1.0 Thu Apr 24 23:52:00 EDT 2014 + +More choices about result types are provided in 3.1.0. To specify resulttype, +in a DnsRequest object, use the new function DnsRequest.qry +(resulttype='binary/text/default'). DnsRequest.qry returns ipaddress objects +for A and AAAA queries by defaults. Other defaults are the same as +DnsRequest.req. Continue to use DnsRequest.req for exact backward +compatibility with pydns and older py3dns defaults. TXT and SPF record data +are returned as strings by default, this matches what dnspython3 returns. + +The ipaddress module is used internally now. See CHANGES for details. + +Release 3.0.3 Wed May 29 00:05:00 EDT 2013 + +There was a third, unintended incompatiblity in 3.0.2 in that IPv6 addresses +were returned in their string format rather than their decimal format. This +breaks pyspf queries when the connect IP is IPv6. 3.0.3 is a release strictly +to revert this change. + +Release 3.0.2 Thu Jan 19 01:25:00 EST 2012 + +This release introduces two potentially incompatible changes from the python +verion of DNS (pydns). First, the data portion of DNS records of types TXT +and SPF are returned as bytes instead of strings. Second, additional sub +classes of DNSError have been added. Any code that catches DNSError should +be checked to see if it needs updating to catch one of the new sub classes: +ArgumentError, SocketError, TimeoutError, ServerError, and +IncompleteReplyError. + +Release 3.0 Sun Mar 2-9 23:07:22 2011 -0400 + +Ported to Python3 by Scott Kitterman <[email protected]>. This is mostly a +minimal port to work with Python3 (tested with python3.2) plus addition of +some of the patches that people have submitted on Sourceforge. It should be +fully API compatible with 2.3. Note: Version 3.0.0 shipped with a new +lazy.lookupfull function in advance of 2.3. This was incorporated in pydns +2.3.5 as lazy.lookupalll. It has been renamed in 3.0.1 to stay API compatible +with pydns 2.3. + +Release 2.3 Mon May 6 16:18:02 EST 2002 + +This is a another release of the pydns code, as originally written by +Guido van Rossum, and with a hopefully nicer API bolted over the +top of it by Anthony Baxter <[email protected]>. + +This code is released under a Python-style license. + +I'm making this release because there hasn't been a release in a +heck of a long time, and it probably deserves one. I'd also like to +do a substantial refactor of some of the guts of the code, and this +is likely to break any code that uses the existing interface. So +this will be a release for people who are using the existing API... + +There are several known bugs/unfinished bits + +- processing of AXFR results is not done yet. +- doesn't do IPv6 DNS requests (type AAAA) +- docs, aside from this file +- all sorts of other stuff that I've probably forgotten. +- MacOS support for discovering nameservers +- the API that I evolved some time ago is pretty ugly. I'm going + to re-do it, designed this time. + +Stuff it _does_ do: +- processes /etc/resolv.conf - at least as far as nameserver directives go. +- tries multiple nameservers. +- nicer API - see below. +- returns results in more useful format. +- optional timing of requests. +- default 'show' behaviour emulates 'dig' pretty closely. + + +To use: + +import DNS +reqobj=DNS.Request(args) +reqobj.req(args) + +args can be a name, in which case it takes that as the query, and/or a series +of keyword/value args. (see below for a list of args) + +when calling the 'req()' method, it reuses the options specified in the +DNS.Request() call as defaults. + +options are applied in the following order: + those specified in the req() call + or, if not specified there, + those specified in the creation of the Request() object + or, if not specified there, + those specified in the DNS.defaults dictionary + +name servers can be specified in the following ways: +- by calling DNS.DiscoverNameServers(), which will load the DNS servers + from the system's /etc/resolv.conf file on Unix, or from the Registry + on windows. +- by specifying it as an option to the request +- by manually setting DNS.defaults['server'] to a list of server IP + addresses to try +- XXXX It should be possible to load the DNS servers on a mac os machine, + from where-ever they've squirrelled them away + +name="host.do.main" # the object being looked up +qtype="SOA" # the query type, eg SOA, A, MX, CNAME, ANY +protocol="udp" # "udp" or "tcp" - usually you want "udp" +server="nameserver" # the name of the nameserver. Note that you might + # want to use an IP address here +rd=1 # "recursion desired" - defaults to 1. +other: opcode, port, ... + +There's also some convenience functions, for the lazy: + +to do a reverse lookup: +>>> print DNS.revlookup("192.189.54.17") +yarrina.connect.com.au + +to look up all MX records for an entry: +>>> print DNS.mxlookup("connect.com.au") +[(10, 'yarrina.connect.com.au'), (100, 'warrane.connect.com.au')] + +Documentation of the rest of the interface will have to wait for a +later date. Note that the DnsAsyncRequest stuff is currently not +working - I haven't looked too closely at why, yet. + +There's some examples in the tests/ directory - including test5.py, +which is even vaguely useful. It looks for the SOA for a domain, checks +that the primary NS is authoritative, then checks the nameservers +that it believes are NSs for the domain and checks that they're +authoritative, and that the zone serial numbers match. + +see also README.guido for the original docs. + +py3dns is derived from pydns. The sourceforge details below refer to pydns. +All py3dns issues/comments/etc should be reported via +https://launchpad.net/py3dns. + +comments to me, [email protected], or to the mailing list, [email protected]. + +bugs/patches to the tracker on SF - + http://sourceforge.net/tracker/?group_id=31674 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/README.txt new/py3dns-4.0.0/README.txt --- old/py3dns-3.2.1/README.txt 2018-07-23 19:06:46.000000000 +0200 +++ new/py3dns-4.0.0/README.txt 2023-07-01 22:43:41.852065300 +0200 @@ -1,3 +1,11 @@ +Release 4.0.0 UNRELEASED +Removed class DnsAsyncRequest since Python 3.12 dropped asyncore. Bumping +major version since this is a breaking change. If you need async DNS, use +aiodns instead. + +Changed behavior when /etc/resolv.conf is missing. Instead of +FileNotFoundError, assume DNS server is '127.0.0.1'. + Release 3.2.0 Mon Jul 23 2018 Switched from distutils to setuptools because "it's the future". It is diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/py3dns.egg-info/PKG-INFO new/py3dns-4.0.0/py3dns.egg-info/PKG-INFO --- old/py3dns-3.2.1/py3dns.egg-info/PKG-INFO 2019-09-04 14:15:48.000000000 +0200 +++ new/py3dns-4.0.0/py3dns.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -Metadata-Version: 1.2 -Name: py3dns -Version: 3.2.1 -Summary: Python 3 DNS library -Home-page: https://launchpad.net/py3dns -Author: Anthony Baxter and others -Author-email: [email protected] -Maintainer: Scott Kitterman -Maintainer-email: [email protected] -License: Python License -Description: Python 3 DNS library: - -Keywords: DNS -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: No Input/Output (Daemon) -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python License (CNRI Python License) -Classifier: Natural Language :: English -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 -Classifier: Topic :: Internet :: Name Service (DNS) -Classifier: Topic :: Software Development :: Libraries :: Python Modules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/py3dns.egg-info/SOURCES.txt new/py3dns-4.0.0/py3dns.egg-info/SOURCES.txt --- old/py3dns-3.2.1/py3dns.egg-info/SOURCES.txt 2019-09-04 14:15:48.000000000 +0200 +++ new/py3dns-4.0.0/py3dns.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,34 +0,0 @@ -CHANGES -CREDITS.txt -LICENSE -MANIFEST.in -README-guido.txt -README.txt -setup.py -test.py -DNS/Base.py -DNS/Class.py -DNS/Lib.py -DNS/Opcode.py -DNS/Status.py -DNS/Type.py -DNS/__init__.py -DNS/lazy.py -DNS/win32dns.py -DNS/tests/__init__.py -DNS/tests/testPackers.py -DNS/tests/test_base.py -py3dns.egg-info/PKG-INFO -py3dns.egg-info/SOURCES.txt -py3dns.egg-info/dependency_links.txt -py3dns.egg-info/not-zip-safe -py3dns.egg-info/top_level.txt -tests/test.py -tests/test2.py -tests/test4.py -tests/test5.py -tests/test6.py -tests/test7.py -tests/testsrv.py -tools/caching.py -tools/named-perf.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/py3dns.egg-info/dependency_links.txt new/py3dns-4.0.0/py3dns.egg-info/dependency_links.txt --- old/py3dns-3.2.1/py3dns.egg-info/dependency_links.txt 2019-09-04 14:15:48.000000000 +0200 +++ new/py3dns-4.0.0/py3dns.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/py3dns.egg-info/not-zip-safe new/py3dns-4.0.0/py3dns.egg-info/not-zip-safe --- old/py3dns-3.2.1/py3dns.egg-info/not-zip-safe 2018-07-23 19:07:56.000000000 +0200 +++ new/py3dns-4.0.0/py3dns.egg-info/not-zip-safe 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/py3dns.egg-info/top_level.txt new/py3dns-4.0.0/py3dns.egg-info/top_level.txt --- old/py3dns-3.2.1/py3dns.egg-info/top_level.txt 2019-09-04 14:15:48.000000000 +0200 +++ new/py3dns-4.0.0/py3dns.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -DNS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/pyproject.toml new/py3dns-4.0.0/pyproject.toml --- old/py3dns-3.2.1/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/py3dns-4.0.0/pyproject.toml 2023-07-01 22:13:25.842207700 +0200 @@ -0,0 +1,32 @@ +[build-system] +requires = ["flit_core >=3.2,<4"] +build-backend = "flit_core.buildapi" + +[project] +name = "py3dns" +description = 'Python 3 DNS library' +authors = [{name = "Anthony Baxter and others", email ="[email protected]"},] +maintainers = [{name = "Scott Kitterman", email = "[email protected]"}] +readme = "README.txt" +license = {file = "LICENSE"} +dynamic = ["version"] +keywords = ['DNS'] +requires-python = ">=3.2" +classifiers = [ + 'Development Status :: 5 - Production/Stable', + 'Environment :: No Input/Output (Daemon)', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Python License (CNRI Python License)', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Topic :: Internet :: Name Service (DNS)', + 'Topic :: Software Development :: Libraries :: Python Modules' +] + +[tool.flit.module] +name = "DNS" + +[tool.flit.sdist] +include = ["CHANGES", "CREDITS.txt", "README-guido.txt", "test.py", "tests", "tools"] +exclude = [".gitignore"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/setup.cfg new/py3dns-4.0.0/setup.cfg --- old/py3dns-3.2.1/setup.cfg 2019-09-04 14:15:49.000000000 +0200 +++ new/py3dns-4.0.0/setup.cfg 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -[egg_info] -tag_build = -tag_date = 0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/setup.py new/py3dns-4.0.0/setup.py --- old/py3dns-3.2.1/setup.py 2018-07-23 19:04:32.000000000 +0200 +++ new/py3dns-4.0.0/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -import sys,os - -sys.path.insert(0,os.getcwd()) - -from setuptools import setup - -import DNS - -setup( - #-- Package description - name = 'py3dns', - license = 'Python License', - version = DNS.__version__, - description = 'Python 3 DNS library', - long_description = """Python 3 DNS library: -""", - author = 'Anthony Baxter and others', - author_email = '[email protected] ', - maintainer="Scott Kitterman", - maintainer_email="[email protected]", - url = 'https://launchpad.net/py3dns', - packages = ['DNS'], keywords = ['DNS'], - zip_safe = False, - classifiers = [ - 'Development Status :: 5 - Production/Stable', - 'Environment :: No Input/Output (Daemon)', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Python License (CNRI Python License)', - 'Natural Language :: English', - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3', - 'Topic :: Internet :: Name Service (DNS)', - 'Topic :: Software Development :: Libraries :: Python Modules' - ] -) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3dns-3.2.1/test.py new/py3dns-4.0.0/test.py --- old/py3dns-3.2.1/test.py 2018-07-23 18:27:50.000000000 +0200 +++ new/py3dns-4.0.0/test.py 2020-04-17 21:29:51.000000000 +0200 @@ -1,8 +1,14 @@ #! /usr/bin/python3 +import sys import unittest import doctest import DNS from DNS.tests import test_suite -unittest.TextTestRunner().run(test_suite()) +result = unittest.TextTestRunner().run(test_suite()) +if result.wasSuccessful(): + print("Test run successful.", file=sys.stderr) + sys.exit(0) +print("Test run failed.", file=sys.stderr) +sys.exit(1)
