diff --git a/.gitignore b/.gitignore index 9764ece..c93f436 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,12 @@ -dnspython-1.8.0.tar.gz -dnspython-1.8.0.tar.gz.asc -/dnspython-1.9.1.tar.gz -/dnspython-1.9.1.tar.gz.asc -/dnspython-1.9.2.tar.gz -/dnspython-1.9.2.tar.gz.asc -/dnspython-1.9.3.tar.gz -/dnspython-1.9.3.tar.gz.asc -/dnspython-1.9.4.tar.gz -/dnspython-1.9.4.tar.gz.asc /dnspython-1.10.0.tar.gz /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/python-dns.spec b/python-dns.spec index 31184e7..1700211 100644 --- a/python-dns.spec +++ b/python-dns.spec @@ -2,16 +2,26 @@ %{!?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 -%{!?py26dir: %global py26dir %{_builddir}/python26-%{name}-%{version}-%{release}} +%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 +%undefine py3dir +%global py3dir %{_builddir}/dnspython/dnspython3-%{version} +%global py3unpack -a 2 +%endif Name: python-dns -Version: 1.10.0 +Version: 1.11.1 Release: 1%{?dist} Summary: DNS toolkit for Python @@ -20,25 +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%{?rhel} == 5 -Patch0: 0001-Don-t-fail-on-older-python-versions-because-of-hashe.patch +%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 %endif -Patch1: dnspython-1.10.1-tlsa.patch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +%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 -BuildRequires: python-devel -%if 0%{?fedora} > 8 -BuildRequires: python-setuptools-devel -%else + +BuildRequires: python2-devel +# for tests +BuildRequires: python-crypto + +%if 0%{?rhel} == 5 BuildRequires: python-setuptools %endif %if 0%{?with_python26} -BuildRequires: python26-devel +BuildRequires: python26-devel +# for tests +BuildRequires: python26-crypto %endif +%if 0%{?with_python3} +BuildRequires: python3-devel +# 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 @@ -54,6 +79,9 @@ manipulation of DNS zones, messages, names, and records. 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 @@ -65,15 +93,51 @@ 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 +updates. It supports TSIG authenticated messages and EDNS0. + +dnspython3 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 + %prep -%setup0 -q -n dnspython-%{version} +%setup -q -T -c -n dnspython -a 0 %{?py3unpack:%{py3unpack}} # 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} @@ -87,7 +151,25 @@ find %{py26dir} -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python26}|' %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} @@ -97,7 +179,26 @@ 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} @@ -106,15 +207,48 @@ popd %endif %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}%{python_sitelib} %{__python} $py + 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 @@ -133,7 +267,7 @@ 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 @@ -141,17 +275,93 @@ rm -rf %{buildroot} %if 0%{?with_python26} %files -n python26-dns %defattr(-,root,root,-) -%doc ChangeLog LICENSE README examples +%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,-) +%doc dnspython3-%{version}/{ChangeLog,LICENSE,README,examples} + +%{python3_sitelib}/*egg-info +%{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 -- The file TODO no longer exists + +* Sat Jul 21 2012 Fedora Release Engineering - 1.9.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 1.9.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Mon Mar 28 2011 Jeffrey C. Ollie - 1.9.4-1 - @@ -358,7 +568,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 7e5c15d..edca90b 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -8a89b7865251c4e9d8ec2f8cc9f8cd78 dnspython-1.9.4.tar.gz -413d7fc295c6bf03f872938731919c95 dnspython-1.9.4.tar.gz.asc -b4f60852fd7ba64fc7c3a1fa239eba33 dnspython-1.10.0.tar.gz -81d7579e66ca37d0b03dce051b60324d dnspython-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