summary refs log tree commit diff
path: root/pkgs/development/python-modules/xmpppy
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@higgsboson.tk>2017-01-19 18:57:08 +0100
committerJörg Thalheim <joerg@higgsboson.tk>2017-01-19 19:10:16 +0100
commit1708d4da13b53557fc95b2e1416288c4672400b6 (patch)
treee0098fdaba00bdd92bd7f046ee1c6dcd9e018d48 /pkgs/development/python-modules/xmpppy
parentdb4bcbe7e1d16e6fa0bf3a7ac94b9ee3a096dbdd (diff)
downloadnixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar.gz
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar.bz2
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar.lz
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar.xz
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.tar.zst
nixlib-1708d4da13b53557fc95b2e1416288c4672400b6.zip
python27Packages.xmpppy: fix ssl socket api
Diffstat (limited to 'pkgs/development/python-modules/xmpppy')
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix26
-rw-r--r--pkgs/development/python-modules/xmpppy/ssl.patch25
2 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
new file mode 100644
index 000000000000..632c01c74468
--- /dev/null
+++ b/pkgs/development/python-modules/xmpppy/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, fetchurl, isPy3k }:
+buildPythonPackage rec {
+  name = "xmpp.py-${version}";
+  version = "0.5.0rc1";
+
+  patches = [ ./ssl.patch ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/xmpppy/xmpppy-${version}.tar.gz";
+    sha256 = "16hbh8kwc5n4qw2rz1mrs8q17rh1zq9cdl05b1nc404n7idh56si";
+  };
+
+  preInstall = ''
+    mkdir -p $out/bin $out/lib $out/share $(toPythonPath $out)
+    export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out)
+  '';
+
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "XMPP python library";
+    homepage = "http://xmpppy.sourceforge.net/";
+    license = license.gpl3;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/xmpppy/ssl.patch b/pkgs/development/python-modules/xmpppy/ssl.patch
new file mode 100644
index 000000000000..915602dc23e5
--- /dev/null
+++ b/pkgs/development/python-modules/xmpppy/ssl.patch
@@ -0,0 +1,25 @@
+diff -wbBur xmpppy-0.5.0rc1/xmpp/transports.py xmpppy-0.5.0rc1.q/xmpp/transports.py
+--- xmpppy-0.5.0rc1/xmpp/transports.py	2009-04-07 12:34:09.000000000 +0400
++++ xmpppy-0.5.0rc1.q/xmpp/transports.py	2015-05-08 13:06:03.049252065 +0300
+@@ -27,7 +27,7 @@
+ Also exception 'error' is defined to allow capture of this module specific exceptions.
+ """
+ 
+-import socket,select,base64,dispatcher,sys
++import socket,ssl,select,base64,dispatcher,sys
+ from simplexml import ustr
+ from client import PlugIn
+ from protocol import *
+@@ -312,9 +312,9 @@
+         """ Immidiatedly switch socket to TLS mode. Used internally."""
+         """ Here we should switch pending_data to hint mode."""
+         tcpsock=self._owner.Connection
+-        tcpsock._sslObj    = socket.ssl(tcpsock._sock, None, None)
+-        tcpsock._sslIssuer = tcpsock._sslObj.issuer()
+-        tcpsock._sslServer = tcpsock._sslObj.server()
++        tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
++        tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
++        tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
+         tcpsock._recv = tcpsock._sslObj.read
+         tcpsock._send = tcpsock._sslObj.write
+