diff --git a/.gitignore b/.gitignore index 9a6cb2e..c93f436 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,11 @@ /dnspython-1.10.0.tar.gz.asc /dnspython3-1.10.0.tar.gz /dnspython3-1.10.0.tar.gz.asc +/dnspython-1.11.0.tar.gz +/dnspython-1.11.0.tar.gz.asc +/dnspython3-1.11.0.tar.gz +/dnspython3-1.11.0.tar.gz.asc +/dnspython-1.11.1.tar.gz +/dnspython-1.11.1.tar.gz.asc +/dnspython3-1.11.1.tar.gz +/dnspython3-1.11.1.tar.gz.asc diff --git a/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch b/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch new file mode 100644 index 0000000..d50bd54 --- /dev/null +++ b/0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch @@ -0,0 +1,26 @@ +From f6f6666438af884da7b4b1d76a258639f949406f Mon Sep 17 00:00:00 2001 +From: Jeffrey C. Ollie +Date: Thu, 2 Dec 2010 13:05:50 -0600 +Subject: [PATCH] Don't fail on older python versions because of hashes. + +--- + dns/hash.py | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/dns/hash.py b/dns/hash.py +index 7bd5ae5..8582a9c 100644 +--- a/dns/hash.py ++++ b/dns/hash.py +@@ -37,9 +37,6 @@ def _setup(): + if sys.hexversion >= 0x02050200: + _hashes['SHA384'] = hashlib.sha384 + _hashes['SHA512'] = hashlib.sha512 +- else: +- _hashes['SHA384'] = _need_later_python('SHA384') +- _hashes['SHA512'] = _need_later_python('SHA512') + + if sys.hexversion < 0x02050000: + # hashlib doesn't conform to PEP 247: API for +-- +1.7.3.2 + diff --git a/python-dns.spec b/python-dns.spec index aec11d4..0a522b2 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -1,12 +1,28 @@ +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%endif + +%undefine py2dir +%global py2dir %{_builddir}/dnspython/dnspython-%{version} + +%if 0%{?rhel} == 5 +%global with_python26 1 +%undefine py26dir +%global py26dir %{_builddir}/dnspython/dnspython26-%{version} +%{!?__python26: %global __python26 /usr/bin/python26} +%{!?python26_sitelib: %global python26_sitelib %(%{__python26} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%endif + %if 0%{?fedora} > 12 %global with_python3 1 -%else -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} +%undefine py3dir +%global py3dir %{_builddir}/dnspython/dnspython3-%{version} +%global py3unpack -a 2 %endif Name: python-dns -Version: 1.10.0 -Release: 3%{?dist} +Version: 1.11.1 +Release: 1%{?dist} Summary: DNS toolkit for Python Group: Development/Languages @@ -14,23 +30,40 @@ License: MIT URL: http://www.dnspython.org/ Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz Source1: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz.asc +%if 0%{?with_python3} Source2: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz Source3: http://www.dnspython.org/kits3/%{version}/dnspython3-%{version}.tar.gz.asc -Patch1: dnspython-1.10.1-tlsa.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +%endif +%if 0%{?rhel} == 5 +Patch0: 0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch +%endif +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildArch: noarch -%if 0%{?fedora} >= 8 -BuildRequires: python-setuptools-devel -%else -BuildRequires: python-setuptools + +BuildRequires: python2-devel +# for tests +BuildRequires: python-crypto + +%if 0%{?rhel} == 5 +BuildRequires: python-setuptools +%endif + +%if 0%{?with_python26} +BuildRequires: python26-devel +# for tests +BuildRequires: python26-crypto %endif %if 0%{?with_python3} BuildRequires: python3-devel -BuildRequires: python3-setuptools +# for tests +BuildRequires: python3-crypto %endif +# for DNSSEC support +Requires: python-crypto + %description dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic @@ -41,15 +74,36 @@ 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. +%if 0%{?with_python26} +%package -n python26-dns +Summary: DNS toolkit for Python 2.6 +Group: Development/Languages + +# for DNSSEC support +Requires: python26-crypto + +%description -n python26-dns +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. +%endif %if 0%{?with_python3} %package -n python3-dns Summary: DNS toolkit for Python 3 Group: Development/Languages +# for DNSSEC support +Requires: python3-crypto + %description -n python3-dns -dnspython3 is a DNS toolkit for Python 3. It supports almost all record -types. It can be used for queries, zone transfers, and dynamic +dnspython3 is a DNS toolkit for Python 3. It supports almost all +record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython3 provides both high and low level access to DNS. The high @@ -58,24 +112,71 @@ class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records. %endif - %prep -%setup -q -n dnspython-%{version} -%setup -T -D -a 2 -q -n dnspython-%{version} -%patch1 -p1 -b .tlsa +%setup -q -T -c -n dnspython -a 0 %{?py3unpack:%{py3unpack}} -%if 0%{?with_python3} -rm -rf %{py3dir} -cp -a dnspython3-%{version} %{py3dir} -%endif +# get rid of Mac goop +find . -name ._\* -delete # strip executable permissions so that we don't pick up dependencies # from documentation -find examples -type f | xargs chmod a-x +find %{py2dir}/examples -type f | xargs chmod a-x +%if 0%{?with_python3} +find %{py3dir}/examples -type f | xargs chmod a-x +%endif + +%if 0%{?with_python26} +pushd %{py2dir} +rm -rf %{py26dir} +cp -a . %{py26dir} +find %{py26dir} -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python26}|' +popd +%endif + +%if 0%{?rhel} == 5 +pushd %{py2dir} +%patch0 -p1 +popd +%endif + +%if 0%{?with_python26} +rm -rf %{py26dir} +cp -a . %{py26dir} +find %{py26dir} -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python26}|' +%endif + +%if 0%{?rhel} == 5 +%patch0 -p1 +%endif +%patch1 -p1 -b .tlsa %build -CFLAGS="%{optflags}" %{__python} -c 'import setuptools; execfile("setup.py")' build +pushd %{py2dir} +%if 0%{?rhel} == 5 +%{__python} -c 'import setuptools; execfile("setup.py")' build +%else +%{__python} setup.py build +%endif +popd + +%if 0%{?with_python26} +pushd %{py26dir} +%{__python26} setup.py build +popd +%endif + +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} setup.py build +popd +%endif + +%if 0%{?with_python26} +pushd %{py26dir} +CFLAGS="%{optflags}" %{__python26} setup.py build +popd +%endif %if 0%{?with_python3} pushd %{py3dir} @@ -86,7 +187,32 @@ popd %install rm -rf %{buildroot} + +pushd %{py2dir} +%if 0%{?rhel} == 5 %{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root %{buildroot} +%else +%{__python} setup.py install --skip-build --root %{buildroot} +%endif +popd + +%if 0%{?with_python26} +pushd %{py26dir} +%{__python26} setup.py install --skip-build --root %{buildroot} +popd +%endif + +%if 0%{?with_python3} +pushd %{py3dir} +%{__python3} setup.py install --skip-build --root %{buildroot} +popd +%endif + +%if 0%{?with_python26} +pushd %{py26dir} +CFLAGS="%{optflags}" %{__python26} setup.py install --skip-build --root %{buildroot} +popd +%endif %if 0%{?with_python3} pushd %{py3dir} @@ -97,15 +223,60 @@ popd %check -pushd tests +pushd %{py2dir}/tests # skip one test because it queries the network +# dnssec tests fail in RHEL5 Python 2.4 due to the +# lack of some hashes for py in *.py do +%if 0%{?rhel} == 5 + if [ $py != resolver.py -a $py != dnssec.py -a $py != grange.py ] +%else if [ $py != resolver.py ] +%endif then PYTHONPATH=%{buildroot}%{python_sitelib} %{__python} $py fi done +popd + +%if 0%{?with_python26} +pushd %{py26dir}/tests +# skip one test because it queries the network +for py in *.py +do + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python26_sitelib} %{__python26} $py + fi +done +popd +%endif + +%if 0%{?with_python3} +pushd %{py3dir}/tests +# skip one test because it queries the network +for py in *.py +do + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} $py + fi +done +popd +%endif + +%if 0%{?with_python26} +pushd %{py26dir}/tests +# skip one test because it queries the network +for py in *.py +do + if [ $py != resolver.py ] + then + PYTHONPATH=%{buildroot}%{python26_sitelib} %{__python26} $py + fi +done +%endif %if 0%{?with_python3} pushd %{py3dir}/tests @@ -125,11 +296,20 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) -%doc ChangeLog LICENSE README examples +%doc dnspython-%{version}/{ChangeLog,LICENSE,README,examples} %{python_sitelib}/*egg-info %{python_sitelib}/dns +%if 0%{?with_python26} +%files -n python26-dns +%defattr(-,root,root,-) +%doc dnspython26-%{version}/{ChangeLog,LICENSE,README,examples} + +%{python26_sitelib}/*egg-info +%{python26_sitelib}/dns +%endif + %if 0%{?with_python3} %files -n python3-dns %defattr(-,root,root,-) @@ -139,11 +319,69 @@ rm -rf %{buildroot} %{python3_sitelib}/dns %endif - %changelog +* Thu Sep 5 2013 Jeffrey C. Ollie - 1.11.1-1 +- New since 1.11.0: +- +- Nothing +- +- Bugs fixed since 1.11.1: +- +- dns.resolver.Resolver erroneously referred to 'retry_servfail' +- instead of 'self.retry_servfail'. +- +- dns.tsigkeyring.to_text() would fail trying to convert the +- keyname to text. +- +- Multi-message TSIGs were broken for algorithms other than +- HMAC-MD5 because we weren't passing the right digest module to +- the HMAC code. +- +- dns.dnssec._find_candidate_keys() tried to extract the key +- from the wrong variable name. +- +- $GENERATE tests were not backward compatible with python 2.4. +- +- APL RR trailing zero suppression didn't work due to insufficient +- python 3 porting. [dnspython3 only] + +* Sun Aug 04 2013 Fedora Release Engineering - 1.11.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-2 +- Integrate Python 2.6 packaging, EPEL5, EPEL6 support + +* Sun Jul 7 2013 Jeffrey C. Ollie - 1.11.0-1 +- New since 1.10.0: +- +- $GENERATE support +- +- TLSA RR support +- +- Added set_flags() method to dns.resolver.Resolver +- +- Bugs fixed since 1.10.0: +- +- Names with offsets >= 2^14 are no longer added to the +- compression table. +- +- The "::" syntax is not used to shorten a single 16-bit section +- of the text form an IPv6 address. +- +- Caches are now locked. +- +- YXDOMAIN is raised if seen by the resolver. +- +- Empty rdatasets are not printed. +- +- DNSKEY key tags are no longer assumed to be unique. + * Sat Feb 16 2013 Jamie Nguyen - 1.10.0-3 - add python3-dns subpackage (rhbz#911933) +* Thu Feb 14 2013 Fedora Release Engineering - 1.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Mon Sep 17 2012 Paul Wouters - 1.10.0-1 - Updated to 1.10.0 - Patch to support TLSA RRtype @@ -192,6 +430,9 @@ rm -rf %{buildroot} * Tue Feb 08 2011 Fedora Release Engineering - 1.9.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild +* Thu Dec 2 2010 Jeffrey C. Ollie - 1.9.2-2 +- Build Python 2.6 subpackage for EPEL 5 + * Tue Nov 23 2010 Jeffrey C. Ollie - 1.9.2-1 - It's brown paper bag time :) The fix for the import problems was - actually bad, but didn't show up in testing because the test suite's @@ -356,7 +597,7 @@ rm -rf %{buildroot} * Fri Aug 29 2008 Tom "spot" Callaway - 1.6.0-2 - fix license tag -* Sat Dec 4 2007 Jeffrey C. Ollie - 1.6.0-1 +* Tue Dec 4 2007 Jeffrey C. Ollie - 1.6.0-1 - Update to 1.6.0 * Tue Oct 9 2007 Jeffrey C. Ollie - 1.5.0-2 diff --git a/sources b/sources index de8d0da..edca90b 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -b4f60852fd7ba64fc7c3a1fa239eba33 dnspython-1.10.0.tar.gz -81d7579e66ca37d0b03dce051b60324d dnspython-1.10.0.tar.gz.asc -17d0ec54f83df3e95846fc4e20224a96 dnspython3-1.10.0.tar.gz -d5534b68ef5fc8c9b68fed019bc148d5 dnspython3-1.10.0.tar.gz.asc +6167344ca849bd2ba108a8aa6118cb2b dnspython-1.11.1.tar.gz +a4a62448f1ab7dec26ab9e03999339ca dnspython-1.11.1.tar.gz.asc +c0203410e1405c3ee1d70dafa4ad6612 dnspython3-1.11.1.tar.gz +ed10be2fa38a1bacc8a3cc987256a21e dnspython3-1.11.1.tar.gz.asc