Compare commits
No commits in common. "stream-python27-2.7-rhel-8.9.0" and "c8" have entirely different histories.
stream-pyt
...
c8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
/dnspython-1.15.0.tar.gz
|
SOURCES/dnspython-1.15.0.tar.gz
|
||||||
|
1
.python-dns.metadata
Normal file
1
.python-dns.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
fcb8edb4b307f68a27cd356e7b44f53512b63b5e SOURCES/dnspython-1.15.0.tar.gz
|
99
SOURCES/CVE-2023-29483.patch
Normal file
99
SOURCES/CVE-2023-29483.patch
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
From a77e0c662c6d5b8224ac1e283aee8353bcd1536e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lumir Balhar <lbalhar@redhat.com>
|
||||||
|
Date: Mon, 22 Apr 2024 16:49:15 +0200
|
||||||
|
Subject: [PATCH] CVE-2023-29483
|
||||||
|
|
||||||
|
---
|
||||||
|
dns/query.py | 60 +++++++++++++++++++++++++++++++++++-----------------
|
||||||
|
1 file changed, 41 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dns/query.py b/dns/query.py
|
||||||
|
index 19b9fbb..2dba3cc 100644
|
||||||
|
--- a/dns/query.py
|
||||||
|
+++ b/dns/query.py
|
||||||
|
@@ -170,6 +170,22 @@ def _addresses_equal(af, a1, a2):
|
||||||
|
return n1 == n2 and a1[1:] == a2[1:]
|
||||||
|
|
||||||
|
|
||||||
|
+def _matches_destination(af, from_address, destination, ignore_unexpected):
|
||||||
|
+ # Check that from_address is appropriate for a response to a query
|
||||||
|
+ # sent to destination.
|
||||||
|
+ if not destination:
|
||||||
|
+ return True
|
||||||
|
+ if _addresses_equal(af, from_address, destination) or (
|
||||||
|
+ dns.inet.is_multicast(destination[0]) and from_address[1:] == destination[1:]
|
||||||
|
+ ):
|
||||||
|
+ return True
|
||||||
|
+ elif ignore_unexpected:
|
||||||
|
+ return False
|
||||||
|
+ raise UnexpectedSource(
|
||||||
|
+ f"got a response from {from_address} instead of " f"{destination}"
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+
|
||||||
|
def _destination_and_source(af, where, port, source, source_port):
|
||||||
|
# Apply defaults and compute destination and source tuples
|
||||||
|
# suitable for use in connect(), sendto(), or bind().
|
||||||
|
@@ -194,7 +210,7 @@ def _destination_and_source(af, where, port, source, source_port):
|
||||||
|
|
||||||
|
|
||||||
|
def udp(q, where, timeout=None, port=53, af=None, source=None, source_port=0,
|
||||||
|
- ignore_unexpected=False, one_rr_per_rrset=False):
|
||||||
|
+ ignore_unexpected=False, one_rr_per_rrset=False, ignore_errors=False):
|
||||||
|
"""Return the response obtained after sending a query via UDP.
|
||||||
|
|
||||||
|
@param q: the query
|
||||||
|
@@ -239,26 +255,32 @@ def udp(q, where, timeout=None, port=53, af=None, source=None, source_port=0,
|
||||||
|
while 1:
|
||||||
|
_wait_for_readable(s, expiration)
|
||||||
|
(wire, from_address) = s.recvfrom(65535)
|
||||||
|
- if _addresses_equal(af, from_address, destination) or \
|
||||||
|
- (dns.inet.is_multicast(where) and
|
||||||
|
- from_address[1:] == destination[1:]):
|
||||||
|
- break
|
||||||
|
- if not ignore_unexpected:
|
||||||
|
- raise UnexpectedSource('got a response from '
|
||||||
|
- '%s instead of %s' % (from_address,
|
||||||
|
- destination))
|
||||||
|
- finally:
|
||||||
|
- if begin_time is None:
|
||||||
|
- response_time = 0
|
||||||
|
- else:
|
||||||
|
+ if not _matches_destination(
|
||||||
|
+ s.family, from_address, destination, ignore_unexpected
|
||||||
|
+ ):
|
||||||
|
+ continue
|
||||||
|
+
|
||||||
|
response_time = time.time() - begin_time
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ r = dns.message.from_wire(wire, keyring=q.keyring, request_mac=q.mac,
|
||||||
|
+ one_rr_per_rrset=one_rr_per_rrset)
|
||||||
|
+ r.time = response_time
|
||||||
|
+ except Exception:
|
||||||
|
+ if ignore_errors:
|
||||||
|
+ continue
|
||||||
|
+ else:
|
||||||
|
+ raise
|
||||||
|
+
|
||||||
|
+ if q.is_response(r):
|
||||||
|
+ return r
|
||||||
|
+ else:
|
||||||
|
+ if ignore_errors:
|
||||||
|
+ continue
|
||||||
|
+ else:
|
||||||
|
+ raise BadResponse
|
||||||
|
+ finally:
|
||||||
|
s.close()
|
||||||
|
- r = dns.message.from_wire(wire, keyring=q.keyring, request_mac=q.mac,
|
||||||
|
- one_rr_per_rrset=one_rr_per_rrset)
|
||||||
|
- r.time = response_time
|
||||||
|
- if not q.is_response(r):
|
||||||
|
- raise BadResponse
|
||||||
|
- return r
|
||||||
|
|
||||||
|
|
||||||
|
def _net_read(sock, count, expiration):
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
161
SOURCES/fix_unicode_label_escaping.patch
Normal file
161
SOURCES/fix_unicode_label_escaping.patch
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
From c28f0584ba37cd6b0e9919dcbec652a34a420843 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lumir Balhar <lbalhar@redhat.com>
|
||||||
|
Date: Wed, 28 Aug 2019 14:10:36 +0200
|
||||||
|
Subject: [PATCH] Backported original patch from:
|
||||||
|
https://github.com/rthalley/dnspython/commit/c76aa6ac9969447220c8e807aa1e5640a6c12924
|
||||||
|
|
||||||
|
Unicode label escapify was not escapifying special characters. [Issue #339]
|
||||||
|
---
|
||||||
|
dns/name.py | 57 +++++++++++++++++++++++-----------------------
|
||||||
|
tests/test_name.py | 5 ++++
|
||||||
|
2 files changed, 34 insertions(+), 28 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dns/name.py b/dns/name.py
|
||||||
|
index 97e216c..4a064d6 100644
|
||||||
|
--- a/dns/name.py
|
||||||
|
+++ b/dns/name.py
|
||||||
|
@@ -116,20 +116,28 @@ class IDNACodec(object):
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
+ def is_idna(self, label):
|
||||||
|
+ return label.lower().startswith(b'xn--')
|
||||||
|
+
|
||||||
|
+ def is_all_ascii(self, label):
|
||||||
|
+ for c in label:
|
||||||
|
+ if ord(c) > 0x7f:
|
||||||
|
+ return False
|
||||||
|
+ return True
|
||||||
|
+
|
||||||
|
def encode(self, label):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def decode(self, label):
|
||||||
|
- # We do not apply any IDNA policy on decode; we just
|
||||||
|
- downcased = label.lower()
|
||||||
|
- if downcased.startswith(b'xn--'):
|
||||||
|
+ # We do not apply any IDNA policy on decode.
|
||||||
|
+ if self.is_idna(label):
|
||||||
|
try:
|
||||||
|
- label = downcased[4:].decode('punycode')
|
||||||
|
+ label = label[4:].decode('punycode')
|
||||||
|
except Exception as e:
|
||||||
|
raise IDNAException(idna_exception=e)
|
||||||
|
else:
|
||||||
|
label = maybe_decode(label)
|
||||||
|
- return _escapify(label, True)
|
||||||
|
+ return _escapify(label)
|
||||||
|
|
||||||
|
class IDNA2003Codec(IDNACodec):
|
||||||
|
|
||||||
|
@@ -159,7 +167,7 @@ class IDNA2003Codec(IDNACodec):
|
||||||
|
if label == b'':
|
||||||
|
return u''
|
||||||
|
try:
|
||||||
|
- return _escapify(encodings.idna.ToUnicode(label), True)
|
||||||
|
+ return _escapify(encodings.idna.ToUnicode(label))
|
||||||
|
except Exception as e:
|
||||||
|
raise IDNAException(idna_exception=e)
|
||||||
|
|
||||||
|
@@ -197,12 +205,6 @@ class IDNA2008Codec(IDNACodec):
|
||||||
|
self.allow_pure_ascii = allow_pure_ascii
|
||||||
|
self.strict_decode = strict_decode
|
||||||
|
|
||||||
|
- def is_all_ascii(self, label):
|
||||||
|
- for c in label:
|
||||||
|
- if ord(c) > 0x7f:
|
||||||
|
- return False
|
||||||
|
- return True
|
||||||
|
-
|
||||||
|
def encode(self, label):
|
||||||
|
if label == '':
|
||||||
|
return b''
|
||||||
|
@@ -227,11 +229,12 @@ class IDNA2008Codec(IDNACodec):
|
||||||
|
try:
|
||||||
|
if self.uts_46:
|
||||||
|
label = idna.uts46_remap(label, False, False)
|
||||||
|
- return _escapify(idna.ulabel(label), True)
|
||||||
|
+ return _escapify(idna.ulabel(label))
|
||||||
|
except idna.IDNAError as e:
|
||||||
|
raise IDNAException(idna_exception=e)
|
||||||
|
|
||||||
|
_escaped = bytearray(b'"().;\\@$')
|
||||||
|
+_escaped_text = '"().;\\@$'
|
||||||
|
|
||||||
|
IDNA_2003_Practical = IDNA2003Codec(False)
|
||||||
|
IDNA_2003_Strict = IDNA2003Codec(True)
|
||||||
|
@@ -242,13 +245,13 @@ IDNA_2008_Strict = IDNA2008Codec(False, False, False, True)
|
||||||
|
IDNA_2008_Transitional = IDNA2008Codec(True, True, False, False)
|
||||||
|
IDNA_2008 = IDNA_2008_Practical
|
||||||
|
|
||||||
|
-def _escapify(label, unicode_mode=False):
|
||||||
|
+def _escapify(label):
|
||||||
|
"""Escape the characters in label which need it.
|
||||||
|
- @param unicode_mode: escapify only special and whitespace (<= 0x20)
|
||||||
|
- characters
|
||||||
|
@returns: the escaped string
|
||||||
|
@rtype: string"""
|
||||||
|
- if not unicode_mode:
|
||||||
|
+ if isinstance(label, bytes):
|
||||||
|
+ # Ordinary DNS label mode. Escape special characters and values
|
||||||
|
+ # < 0x20 or > 0x7f.
|
||||||
|
text = ''
|
||||||
|
if isinstance(label, text_type):
|
||||||
|
label = label.encode()
|
||||||
|
@@ -259,19 +262,17 @@ def _escapify(label, unicode_mode=False):
|
||||||
|
text += chr(c)
|
||||||
|
else:
|
||||||
|
text += '\\%03d' % c
|
||||||
|
- return text.encode()
|
||||||
|
+ return text
|
||||||
|
|
||||||
|
+ # Unicode label mode. Escape only special characters and values < 0x20
|
||||||
|
text = u''
|
||||||
|
- if isinstance(label, binary_type):
|
||||||
|
- label = label.decode()
|
||||||
|
for c in label:
|
||||||
|
- if c > u'\x20' and c < u'\x7f':
|
||||||
|
- text += c
|
||||||
|
+ if c in _escaped_text:
|
||||||
|
+ text += '\\' + c
|
||||||
|
+ elif c <= '\x20':
|
||||||
|
+ text += '\\%03d' % ord(c)
|
||||||
|
else:
|
||||||
|
- if c >= u'\x7f':
|
||||||
|
- text += c
|
||||||
|
- else:
|
||||||
|
- text += u'\\%03d' % ord(c)
|
||||||
|
+ text += c
|
||||||
|
return text
|
||||||
|
|
||||||
|
def _validate_labels(labels):
|
||||||
|
@@ -519,8 +520,8 @@ class Name(object):
|
||||||
|
l = self.labels[:-1]
|
||||||
|
else:
|
||||||
|
l = self.labels
|
||||||
|
- s = b'.'.join(map(_escapify, l))
|
||||||
|
- return maybe_decode(s)
|
||||||
|
+ s = '.'.join(map(_escapify, l))
|
||||||
|
+ return s
|
||||||
|
|
||||||
|
def to_unicode(self, omit_final_dot=False, idna_codec=None):
|
||||||
|
"""Convert name to Unicode text format.
|
||||||
|
diff --git a/tests/test_name.py b/tests/test_name.py
|
||||||
|
index f2a8773..fa1d3eb 100644
|
||||||
|
--- a/tests/test_name.py
|
||||||
|
+++ b/tests/test_name.py
|
||||||
|
@@ -255,6 +255,11 @@ class NameTestCase(unittest.TestCase):
|
||||||
|
t = dns.name.root.to_unicode()
|
||||||
|
self.assertEqual(t, '.')
|
||||||
|
|
||||||
|
+ def testToText12(self):
|
||||||
|
+ n = dns.name.from_text(r'a\.b.c')
|
||||||
|
+ t = n.to_unicode()
|
||||||
|
+ self.assertEqual(t, r'a\.b.c.')
|
||||||
|
+
|
||||||
|
def testSlice1(self):
|
||||||
|
n = dns.name.from_text(r'a.b.c.', origin=None)
|
||||||
|
s = n[:]
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
14
SOURCES/float_none_comparison_fix.patch
Normal file
14
SOURCES/float_none_comparison_fix.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/dns/query.py b/dns/query.py
|
||||||
|
index bfecd43..19b9fbb 100644
|
||||||
|
--- a/dns/query.py
|
||||||
|
+++ b/dns/query.py
|
||||||
|
@@ -467,7 +467,8 @@ def xfr(where, zone, rdtype=dns.rdatatype.AXFR, rdclass=dns.rdataclass.IN,
|
||||||
|
first = True
|
||||||
|
while not done:
|
||||||
|
mexpiration = _compute_expiration(timeout)
|
||||||
|
- if mexpiration is None or mexpiration > expiration:
|
||||||
|
+ if mexpiration is None or \
|
||||||
|
+ (expiration is not None and mexpiration > expiration):
|
||||||
|
mexpiration = expiration
|
||||||
|
if use_udp:
|
||||||
|
_wait_for_readable(s, expiration)
|
464
SPECS/python-dns.spec
Normal file
464
SPECS/python-dns.spec
Normal file
@ -0,0 +1,464 @@
|
|||||||
|
Name: python-dns
|
||||||
|
Version: 1.15.0
|
||||||
|
Release: 12%{?dist}
|
||||||
|
Summary: DNS toolkit for Python
|
||||||
|
|
||||||
|
License: MIT
|
||||||
|
URL: http://www.dnspython.org/
|
||||||
|
|
||||||
|
Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz
|
||||||
|
|
||||||
|
BuildArch: noarch
|
||||||
|
Patch0: test_fails_on_missing_file.patch
|
||||||
|
# Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1731081
|
||||||
|
# Upstream issue: https://github.com/rthalley/dnspython/issues/339
|
||||||
|
Patch1: fix_unicode_label_escaping.patch
|
||||||
|
|
||||||
|
# Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2075187
|
||||||
|
# Backported from upstream: https://github.com/rthalley/dnspython/commit/9fbf9b223dc26262b1cf23f623f89283ee9c8375
|
||||||
|
Patch2: float_none_comparison_fix.patch
|
||||||
|
|
||||||
|
# Fix for CVE-2023-29483
|
||||||
|
# Upstream fix:
|
||||||
|
# https://github.com/rthalley/dnspython/commit/f66e25b5f549acf66d1fb6ead13eb3cff7d09af3
|
||||||
|
# Backported to completely different codebase hence not very similar to upstream fix.
|
||||||
|
Patch3: CVE-2023-29483.patch
|
||||||
|
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-setuptools
|
||||||
|
|
||||||
|
%description
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n python3-dns
|
||||||
|
Summary: DNS toolkit for Python 3
|
||||||
|
%{?python_provide:%python_provide python3-dns}
|
||||||
|
|
||||||
|
%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.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n dnspython-%{version}
|
||||||
|
|
||||||
|
# strip exec permissions so that we don't pick up dependencies from docs
|
||||||
|
find examples -type f | xargs chmod a-x
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%py3_build
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%py3_install
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
%{__python3} setup.py test
|
||||||
|
|
||||||
|
|
||||||
|
%files -n python3-dns
|
||||||
|
# Add README.* when it is included with the source (commit a906279)
|
||||||
|
%doc ChangeLog examples
|
||||||
|
%license LICENSE
|
||||||
|
%{python3_sitelib}/*egg-info
|
||||||
|
%{python3_sitelib}/dns
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Mon Apr 22 2024 Lumír Balhar <lbalhar@redhat.com> - 1.15.0-12
|
||||||
|
- Security fix for CVE-2023-29483
|
||||||
|
Resolves: RHEL-32630
|
||||||
|
|
||||||
|
* Thu Apr 21 2022 Charalampos Stratakis <cstratak@redhat.com> - 1.15.0-11
|
||||||
|
- Fix comparison between float and None types
|
||||||
|
Resolves: rhbz#2075187
|
||||||
|
|
||||||
|
* Thu Oct 24 2019 Lumír Balhar <lbalhar@redhat.com> - 1.15.0-10
|
||||||
|
- Release bump for gating
|
||||||
|
Related: rhbz#1731081
|
||||||
|
|
||||||
|
* Wed Aug 28 2019 Lumír Balhar <lbalhar@redhat.com> - 1.15.0-9
|
||||||
|
- Fix unicode label escaping
|
||||||
|
Resolves: rhbz#1731081
|
||||||
|
|
||||||
|
* Mon Aug 27 2018 Miro Hrončok <mhroncok@redhat.com> - 1.15.0-8
|
||||||
|
- Drop python2 subpackage (#1567168)
|
||||||
|
|
||||||
|
* Mon Jun 25 2018 Petr Viktorin <pviktori@redhat.com> - 1.15.0-7
|
||||||
|
- Allow Python 2 for build
|
||||||
|
see https://hurl.corp.redhat.com/rhel8-py2
|
||||||
|
|
||||||
|
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.0-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Sep 29 2017 Troy Dawson <tdawson@redhat.com> - 1.15.0-5
|
||||||
|
- Cleanup spec file conditionals
|
||||||
|
|
||||||
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Dec 13 2016 Miro Hrončok <mhroncok@redhat.com> - 1.15.0-2
|
||||||
|
- Rebuild for Python 3.6
|
||||||
|
|
||||||
|
* Tue Oct 04 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.15.0-1
|
||||||
|
- Latest Release
|
||||||
|
|
||||||
|
* Wed Jun 15 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.14.0-1
|
||||||
|
- Latest Release
|
||||||
|
|
||||||
|
* Sun Mar 27 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.12.0GIT99fd864-1
|
||||||
|
- Latest Snapshot
|
||||||
|
- Fixed SRPM naming for EPEL7+
|
||||||
|
|
||||||
|
* Fri Feb 12 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.12.0GITa4774ee-1
|
||||||
|
- Latest Snapshot
|
||||||
|
- Drop EPEL5 from master spec
|
||||||
|
- Patch to support EL6
|
||||||
|
- Disable python2 package for EPEL7+
|
||||||
|
|
||||||
|
* Mon Feb 01 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.12.0GIT465785f-4
|
||||||
|
- Changed Python2 package name to python2-dns for Fedora 24+
|
||||||
|
|
||||||
|
* Fri Jan 22 2016 Avram Lubkin <aviso@fedoraproject.org> - 1.12.0GIT465785f-3
|
||||||
|
- Using python3_pkgversion to support python34 package in el7
|
||||||
|
- Build Python3 package for el7+
|
||||||
|
|
||||||
|
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0GIT465785f-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
|
||||||
|
|
||||||
|
* Fri Sep 11 2015 Petr Spacek <pspacek@redhat.com> - 1.12.0GIT465785f
|
||||||
|
- Rebase to GIT snapshots 465785f85f87508209117264c677080e901e957c (Python 2)
|
||||||
|
and 1b0c15086f0e5f6eacc06d77a119280c31731b3c (Python 3)
|
||||||
|
to pull in latest fixes
|
||||||
|
|
||||||
|
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 1.11.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
|
||||||
|
|
||||||
|
* Tue Feb 18 2014 Paul Wouters <pwouters@redhat.com> - 1.11.1-2
|
||||||
|
- Added LOC and ECDSA fixes from git (rhbz#1059594)
|
||||||
|
|
||||||
|
* Thu Sep 5 2013 Jeffrey C. Ollie <jeff@ocjtech.us> - 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 <rel-eng@lists.fedoraproject.org> - 1.11.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jul 7 2013 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.11.0-2
|
||||||
|
- Integrate Python 2.6 packaging, EPEL5, EPEL6 support
|
||||||
|
|
||||||
|
* Sun Jul 7 2013 Jeffrey C. Ollie <jeff@ocjtech.us> - 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 <jamielinux@fedoraproject.org> - 1.10.0-3
|
||||||
|
- add python3-dns subpackage (rhbz#911933)
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Sep 17 2012 Paul Wouters <pwouters@redhat.com> - 1.10.0-1
|
||||||
|
- Updated to 1.10.0
|
||||||
|
- Patch to support TLSA RRtype
|
||||||
|
|
||||||
|
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.4-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Mar 28 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.9.4-1
|
||||||
|
-
|
||||||
|
- dnspython 1.9.4 has been released and is available at
|
||||||
|
- http://www.dnspython.org/kits/1.9.4/
|
||||||
|
-
|
||||||
|
- There is no new functionality in this release; just a few bug fixes
|
||||||
|
- in RRSIG and SIG code.
|
||||||
|
-
|
||||||
|
- I will be eliminating legacy code for earlier versions of DNSSEC in a
|
||||||
|
- future release of dnspython.
|
||||||
|
|
||||||
|
* Fri Mar 25 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.9.3-1
|
||||||
|
-
|
||||||
|
- New since 1.9.2:
|
||||||
|
-
|
||||||
|
- A boolean parameter, 'raise_on_no_answer', has been added to
|
||||||
|
- the query() methods. In no-error, no-data situations, this
|
||||||
|
- parameter determines whether NoAnswer should be raised or not.
|
||||||
|
- If True, NoAnswer is raised. If False, then an Answer()
|
||||||
|
- object with a None rrset will be returned.
|
||||||
|
-
|
||||||
|
- Resolver Answer() objects now have a canonical_name field.
|
||||||
|
-
|
||||||
|
- Rdata now have a __hash__ method.
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.9.2:
|
||||||
|
-
|
||||||
|
- Dnspython was erroneously doing case-insensitive comparisons
|
||||||
|
- of the names in NSEC and RRSIG RRs.
|
||||||
|
-
|
||||||
|
- We now use "is" and not "==" when testing what section an RR
|
||||||
|
- is in.
|
||||||
|
-
|
||||||
|
- The resolver now disallows metaqueries.
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Dec 2 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.9.2-2
|
||||||
|
- Build Python 2.6 subpackage for EPEL 5
|
||||||
|
|
||||||
|
* Tue Nov 23 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 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
|
||||||
|
- conditional importing code hid the problem.
|
||||||
|
-
|
||||||
|
- Any, 1.9.2 is out.
|
||||||
|
-
|
||||||
|
- Sorry for the churn!
|
||||||
|
|
||||||
|
* Mon Nov 22 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.9.1-1
|
||||||
|
- New since 1.9.0:
|
||||||
|
-
|
||||||
|
- Nothing.
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.9.0
|
||||||
|
-
|
||||||
|
- The dns.dnssec module didn't work with DSA due to namespace
|
||||||
|
- contamination from a "from"-style import.
|
||||||
|
-
|
||||||
|
- New since 1.8.0:
|
||||||
|
-
|
||||||
|
- dnspython now uses poll() instead of select() when available.
|
||||||
|
-
|
||||||
|
- Basic DNSSEC validation can be done using dns.dnsec.validate()
|
||||||
|
- and dns.dnssec.validate_rrsig() if you have PyCrypto 2.3 or
|
||||||
|
- later installed. Complete secure resolution is not yet
|
||||||
|
- available.
|
||||||
|
-
|
||||||
|
- Added key_id() to the DNSSEC module, which computes the DNSSEC
|
||||||
|
- key id of a DNSKEY rdata.
|
||||||
|
-
|
||||||
|
- Added make_ds() to the DNSSEC module, which returns the DS RR
|
||||||
|
- for a given DNSKEY rdata.
|
||||||
|
-
|
||||||
|
- dnspython now raises an exception if HMAC-SHA284 or
|
||||||
|
- HMAC-SHA512 are used with a Python older than 2.5.2. (Older
|
||||||
|
- Pythons do not compute the correct value.)
|
||||||
|
-
|
||||||
|
- Symbolic constants are now available for TSIG algorithm names.
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.8.0
|
||||||
|
-
|
||||||
|
- dns.resolver.zone_for_name() didn't handle a query response
|
||||||
|
- with a CNAME or DNAME correctly in some cases.
|
||||||
|
-
|
||||||
|
- When specifying rdata types and classes as text, Unicode
|
||||||
|
- strings may now be used.
|
||||||
|
-
|
||||||
|
- Hashlib compatibility issues have been fixed.
|
||||||
|
-
|
||||||
|
- dns.message now imports dns.edns.
|
||||||
|
-
|
||||||
|
- The TSIG algorithm value was passed incorrectly to use_tsig()
|
||||||
|
- in some cases.
|
||||||
|
|
||||||
|
* Fri Aug 13 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.8.0-3
|
||||||
|
- Add a patch from upstream to fix a Python 2.7 issue.
|
||||||
|
|
||||||
|
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 1.8.0-2.1
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||||
|
|
||||||
|
* Wed Jan 27 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.8.0-1.1
|
||||||
|
- Fix error
|
||||||
|
|
||||||
|
* Wed Jan 27 2010 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.8.0-1
|
||||||
|
- New since 1.7.1:
|
||||||
|
-
|
||||||
|
- Support for hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 and
|
||||||
|
- hmac-sha512 has been contributed by Kevin Chen.
|
||||||
|
-
|
||||||
|
- The tokenizer's tokens are now Token objects instead of (type,
|
||||||
|
- value) tuples.
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.7.1:
|
||||||
|
-
|
||||||
|
- Escapes in masterfiles now work correctly. Previously they were
|
||||||
|
- only working correctly when the text involved was part of a domain
|
||||||
|
- name.
|
||||||
|
-
|
||||||
|
- When constructing a DDNS update, if the present() method was used
|
||||||
|
- with a single rdata, a zero TTL was not added.
|
||||||
|
-
|
||||||
|
- The entropy pool needed locking to be thread safe.
|
||||||
|
-
|
||||||
|
- The entropy pool's reading of /dev/random could cause dnspython to
|
||||||
|
- block.
|
||||||
|
-
|
||||||
|
- The entropy pool did buffered reads, potentially consuming more
|
||||||
|
- randomness than we needed.
|
||||||
|
-
|
||||||
|
- The entropy pool did not seed with high quality randomness on
|
||||||
|
- Windows.
|
||||||
|
-
|
||||||
|
- SRV records were compared incorrectly.
|
||||||
|
-
|
||||||
|
- In the e164 query function, the resolver parameter was not used.
|
||||||
|
|
||||||
|
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 19 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.1-1
|
||||||
|
- New since 1.7.0:
|
||||||
|
-
|
||||||
|
- Nothing
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.7.0:
|
||||||
|
-
|
||||||
|
- The 1.7.0 kitting process inadventently omitted the code for the
|
||||||
|
- DLV RR.
|
||||||
|
-
|
||||||
|
- Negative DDNS prerequisites are now handled correctly.
|
||||||
|
|
||||||
|
* Fri Jun 19 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.0-1
|
||||||
|
- New since 1.6.0:
|
||||||
|
-
|
||||||
|
- Rdatas now have a to_digestable() method, which returns the
|
||||||
|
- DNSSEC canonical form of the rdata, suitable for use in
|
||||||
|
- signature computations.
|
||||||
|
-
|
||||||
|
- The NSEC3, NSEC3PARAM, DLV, and HIP RR types are now supported.
|
||||||
|
-
|
||||||
|
- An entropy module has been added and is used to randomize query ids.
|
||||||
|
-
|
||||||
|
- EDNS0 options are now supported.
|
||||||
|
-
|
||||||
|
- UDP IXFR is now supported.
|
||||||
|
-
|
||||||
|
- The wire format parser now has a 'one_rr_per_rrset' mode, which
|
||||||
|
- suppresses the usual coalescing of all RRs of a given type into a
|
||||||
|
- single RRset.
|
||||||
|
-
|
||||||
|
- Various helpful DNSSEC-related constants are now defined.
|
||||||
|
-
|
||||||
|
- The resolver's query() method now has an optional 'source' parameter,
|
||||||
|
- allowing the source IP address to be specified.
|
||||||
|
-
|
||||||
|
- Bugs fixed since 1.6.0:
|
||||||
|
-
|
||||||
|
- On Windows, the resolver set the domain incorrectly.
|
||||||
|
-
|
||||||
|
- DS RR parsing only allowed one Base64 chunk.
|
||||||
|
-
|
||||||
|
- TSIG validation didn't always use absolute names.
|
||||||
|
-
|
||||||
|
- NSEC.to_text() only printed the last window.
|
||||||
|
-
|
||||||
|
- We did not canonicalize IPv6 addresses before comparing them; we
|
||||||
|
- would thus treat equivalent but different textual forms, e.g.
|
||||||
|
- "1:00::1" and "1::1" as being non-equivalent.
|
||||||
|
-
|
||||||
|
- If the peer set a TSIG error, we didn't raise an exception.
|
||||||
|
-
|
||||||
|
- Some EDNS bugs in the message code have been fixed (see the ChangeLog
|
||||||
|
- for details).
|
||||||
|
|
||||||
|
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Nov 29 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.6.0-3
|
||||||
|
- Rebuild for Python 2.6
|
||||||
|
|
||||||
|
* Fri Aug 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 1.6.0-2
|
||||||
|
- fix license tag
|
||||||
|
|
||||||
|
* Tue Dec 4 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.6.0-1
|
||||||
|
- Update to 1.6.0
|
||||||
|
|
||||||
|
* Tue Oct 9 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.5.0-2
|
||||||
|
- Follow new Python egg packaging specs
|
||||||
|
|
||||||
|
* Thu Jan 11 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.5.0-1
|
||||||
|
- Update to 1.5.0
|
||||||
|
|
||||||
|
* Fri Dec 8 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.4.0-3
|
||||||
|
- Bump release for rebuild with Python 2.5
|
||||||
|
|
||||||
|
* Mon Aug 14 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.4.0-2
|
||||||
|
- No longer ghost *.pyo files, thus further simplifying the files section.
|
||||||
|
|
||||||
|
* Sat Aug 5 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.4.0-1
|
||||||
|
- Update to 1.4.0
|
||||||
|
- Remove unneeded python-abi requires
|
||||||
|
- Remove unneeded python_sitearch macro
|
||||||
|
|
||||||
|
* Fri May 26 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.3.5-1
|
||||||
|
- First version for Fedora Extras
|
||||||
|
|
122
python-dns.spec
122
python-dns.spec
@ -1,122 +0,0 @@
|
|||||||
%global with_python3 0
|
|
||||||
|
|
||||||
Name: python-dns
|
|
||||||
Version: 1.15.0
|
|
||||||
Release: 10%{?dist}
|
|
||||||
Summary: DNS toolkit for Python
|
|
||||||
|
|
||||||
Group: Development/Languages
|
|
||||||
License: MIT
|
|
||||||
URL: http://www.dnspython.org/
|
|
||||||
|
|
||||||
Source0: http://www.dnspython.org/kits/%{version}/dnspython-%{version}.tar.gz
|
|
||||||
|
|
||||||
BuildArch: noarch
|
|
||||||
Patch0: test_fails_on_missing_file.patch
|
|
||||||
|
|
||||||
Provides: python2-dns = %{version}-%{release}
|
|
||||||
BuildRequires: python2-devel
|
|
||||||
BuildRequires: python2-setuptools
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
BuildRequires: python%{python3_pkgversion}-devel
|
|
||||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description
|
|
||||||
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.
|
|
||||||
|
|
||||||
%package -n python2-dns
|
|
||||||
Summary: DNS toolkit for Python 2
|
|
||||||
Group: Development/Languages
|
|
||||||
%{?python_provide:%python_provide python2-dns}
|
|
||||||
|
|
||||||
%description -n python2-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.
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
%package -n python%{python3_pkgversion}-dns
|
|
||||||
Summary: DNS toolkit for Python 3
|
|
||||||
Group: Development/Languages
|
|
||||||
%{?python_provide:%python_provide python%{python3_pkgversion}-dns}
|
|
||||||
|
|
||||||
%description -n python%{python3_pkgversion}-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
|
|
||||||
%setup -q -n dnspython-%{version}
|
|
||||||
%patch0 -p1
|
|
||||||
|
|
||||||
# strip exec permissions so that we don't pick up dependencies from docs
|
|
||||||
find examples -type f | xargs chmod a-x
|
|
||||||
|
|
||||||
%build
|
|
||||||
%py2_build
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
%py3_build
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%install
|
|
||||||
%py2_install
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
%py3_install
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%check
|
|
||||||
%{__python2} setup.py test
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
%{__python3} setup.py test
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files -n python2-dns
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
# Add README.* when it is included with the source (commit a906279)
|
|
||||||
%doc {ChangeLog,LICENSE,examples}
|
|
||||||
%{python2_sitelib}/*egg-info
|
|
||||||
%{python2_sitelib}/dns
|
|
||||||
|
|
||||||
%if 0%{?with_python3}
|
|
||||||
%files -n python%{python3_pkgversion}-dns
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
# Add README.* when it is included with the source (commit a906279)
|
|
||||||
%doc {ChangeLog,LICENSE,examples}
|
|
||||||
%{python3_sitelib}/*egg-info
|
|
||||||
%{python3_sitelib}/dns
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Thu Apr 25 2019 Tomas Orsava <torsava@redhat.com> - 1.15.0-10
|
|
||||||
- Bumping due to problems with modular RPM upgrade path
|
|
||||||
- Resolves: rhbz#1695587
|
|
||||||
|
|
||||||
* Thu Apr 25 2019 Tomas Orsava <torsava@redhat.com> - 1.15.0-9
|
|
||||||
- Bumping due to problems with modular RPM upgrade path
|
|
||||||
- Resolves: rhbz#1695587
|
|
||||||
|
|
||||||
* Wed Jul 18 2018 Lumír Balhar <lbalhar@redhat.com> - 1.15.0-8
|
|
||||||
- First version for python27 module
|
|
Loading…
Reference in New Issue
Block a user