diff options
author | Robin Gloster <mail@glob.in> | 2017-06-05 22:10:58 +0200 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2018-05-01 13:11:11 +0200 |
commit | 6f76d907c8d42ee017dcbb905eb3cb72fa2d6710 (patch) | |
tree | e9835f98fb8dc375c4b581c3011f0ef987ec2f8b /pkgs/development/python-modules/sleekxmpp | |
parent | bf2e5123774f8928fa9441a70d375ac1f5317ad5 (diff) | |
download | nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar.gz nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar.bz2 nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar.lz nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar.xz nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.tar.zst nixpkgs-6f76d907c8d42ee017dcbb905eb3cb72fa2d6710.zip |
pythonPackages.sleekxmpp: fix dnspython issue
Diffstat (limited to 'pkgs/development/python-modules/sleekxmpp')
-rw-r--r-- | pkgs/development/python-modules/sleekxmpp/default.nix | 23 | ||||
-rw-r--r-- | pkgs/development/python-modules/sleekxmpp/dnspython-ip6.patch | 55 |
2 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/sleekxmpp/default.nix b/pkgs/development/python-modules/sleekxmpp/default.nix new file mode 100644 index 00000000000..c6444224104 --- /dev/null +++ b/pkgs/development/python-modules/sleekxmpp/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, buildPythonPackage, dns, pyasn1 }: + +buildPythonPackage rec { + name = "sleekxmpp-${version}"; + version = "1.3.1"; + + propagatedBuildInputs = [ dns pyasn1 ]; + + patches = [ + ./dnspython-ip6.patch + ]; + + src = fetchurl { + url = "mirror://pypi/s/sleekxmpp/${name}.tar.gz"; + sha256 = "1krkhkvj8xw5a6c2xlf7h1rg9xdcm9d8x2niivwjahahpvbl6krr"; + }; + + meta = with stdenv.lib; { + description = "XMPP library for Python"; + license = licenses.mit; + homepage = "http://sleekxmpp.com/"; + }; +} diff --git a/pkgs/development/python-modules/sleekxmpp/dnspython-ip6.patch b/pkgs/development/python-modules/sleekxmpp/dnspython-ip6.patch new file mode 100644 index 00000000000..d8d6eb10683 --- /dev/null +++ b/pkgs/development/python-modules/sleekxmpp/dnspython-ip6.patch @@ -0,0 +1,55 @@ +--- a/sleekxmpp/xmlstream/resolver.py ++++ b/sleekxmpp/xmlstream/resolver.py +@@ -175,6 +175,9 @@ def get_A(host, resolver=None, use_dnspy + """ + log.debug("DNS: Querying %s for A records." % host) + ++ if isinstance(host, bytes): ++ host = host.decode("utf-8") ++ + # If not using dnspython, attempt lookup using the OS level + # getaddrinfo() method. + if resolver is None or not use_dnspython: +@@ -189,7 +192,10 @@ def get_A(host, resolver=None, use_dnspy + # Using dnspython: + try: + recs = resolver.query(host, dns.rdatatype.A) +- return [rec.to_text() for rec in recs] ++ if isinstance(recs[0].to_text(), bytes): ++ return [rec.to_text().decode("utf-8") for rec in recs] ++ else: ++ return [rec.to_text() for rec in recs] + except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer): + log.debug("DNS: No A records for %s" % host) + return [] +@@ -222,6 +228,9 @@ def get_AAAA(host, resolver=None, use_dn + """ + log.debug("DNS: Querying %s for AAAA records." % host) + ++ if isinstance(host, bytes): ++ host = host.decode("utf-8") ++ + # If not using dnspython, attempt lookup using the OS level + # getaddrinfo() method. + if resolver is None or not use_dnspython: +@@ -240,7 +249,10 @@ def get_AAAA(host, resolver=None, use_dn + # Using dnspython: + try: + recs = resolver.query(host, dns.rdatatype.AAAA) +- return [rec.to_text() for rec in recs] ++ if isinstance(recs[0].to_text(), bytes): ++ return [rec.to_text().decode("utf-8") for rec in recs] ++ else: ++ return [rec.to_text() for rec in recs] + except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer): + log.debug("DNS: No AAAA records for %s" % host) + return [] +@@ -324,6 +336,8 @@ def get_SRV(host, port, service, proto=' + if running_sum >= selected: + rec = sums[running_sum] + host = rec.target.to_text() ++ if isinstance(host, bytes): ++ host = host.decode("utf-8") + if host.endswith('.'): + host = host[:-1] + sorted_recs.append((host, rec.port)) |