From cc5d0523fe1adf78cbe1175fb57c1e0d14897c98187165811d14f76607c26e48 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 9 Mar 2020 10:09:18 +0000 Subject: [PATCH] Accepting request 782869 from home:mstrigl:branches:devel:languages:python - in python3.8 the fp is wrapped in a Buffer. SSL.Connection.makefile returns a socketIO which is no buffer. Added: 001-fix-buffering-for-python38.patch OBS-URL: https://build.opensuse.org/request/show/782869 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-M2Crypto?expand=0&rev=86 --- 001-fix-buffering-for-python38.patch | 24 ++++++++++++++++++++++++ python-M2Crypto.changes | 7 +++++++ python-M2Crypto.spec | 9 ++++++--- 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 001-fix-buffering-for-python38.patch diff --git a/001-fix-buffering-for-python38.patch b/001-fix-buffering-for-python38.patch new file mode 100644 index 0000000..91a0b41 --- /dev/null +++ b/001-fix-buffering-for-python38.patch @@ -0,0 +1,24 @@ +diff --git a/M2Crypto/SSL/Connection.py b/M2Crypto/SSL/Connection.py +index 7053aa6..6503935 100644 +--- a/M2Crypto/SSL/Connection.py ++++ b/M2Crypto/SSL/Connection.py +@@ -12,6 +12,7 @@ Copyright 2008 Heikki Toivonen. All rights reserved. + + import logging + import socket ++import io + + from M2Crypto import BIO, Err, X509, m2, py27plus, six, util # noqa + from M2Crypto.SSL import Checker, Context, timeout # noqa +@@ -584,7 +585,10 @@ class Connection(object): + def makefile(self, mode='rb', bufsize=-1): + # type: (AnyStr, int) -> socket._fileobject + if six.PY3: +- return socket.SocketIO(self, mode) ++ raw = socket.SocketIO(self, mode) ++ if 'rw' in mode: ++ return io.BufferedRWPair(raw, raw) ++ return io.BufferedReader(raw, io.DEFAULT_BUFFER_SIZE) + else: + return socket._fileobject(self, mode, bufsize) + diff --git a/python-M2Crypto.changes b/python-M2Crypto.changes index de67da8..5e1d5ed 100644 --- a/python-M2Crypto.changes +++ b/python-M2Crypto.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 9 09:56:49 UTC 2020 - Marco Strigl + +- in python3.8 the fp is wrapped in a Buffer. SSL.Connection.makefile + returns a socketIO which is no buffer. + Added: 001-fix-buffering-for-python38.patch + ------------------------------------------------------------------- Mon Jun 10 13:59:24 CEST 2019 - Matej Cepl diff --git a/python-M2Crypto.spec b/python-M2Crypto.spec index 46972b2..ffe8c76 100644 --- a/python-M2Crypto.spec +++ b/python-M2Crypto.spec @@ -1,7 +1,7 @@ # # spec file for package python-M2Crypto # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,8 +24,9 @@ Release: 0 Summary: Crypto and SSL toolkit for Python License: MIT Group: Development/Languages/Python -Url: https://gitlab.com/m2crypto/m2crypto +URL: https://gitlab.com/m2crypto/m2crypto Source: https://files.pythonhosted.org/packages/source/M/M2Crypto/M2Crypto-%{version}.tar.gz +Patch1: 001-fix-buffering-for-python38.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module typing} @@ -78,7 +79,9 @@ Documentation for the Crypto and SSL toolkit for Python %prep %setup -q -n M2Crypto-%{version} -%autopatch -p1 +%if 0%{?suse_version} > 1500 +%patch1 -p1 +%endif %build export CFLAGS="%{optflags}"