From d95862711836c79483237abec388e980bf68a7510b810bbf827d228f780dd289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 6 Sep 2019 06:25:46 +0000 Subject: [PATCH] Accepting request 728456 from home:michel_mno:branches:devel:languages:python - Add cheroot_fix_so_peercred_ppc.patch to solve python 2.7 tests failures for PowerPC, boo#1147151 OBS-URL: https://build.opensuse.org/request/show/728456 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cheroot?expand=0&rev=14 --- cheroot_fix_so_peercred_ppc.patch | 54 +++++++++++++++++++++++++++++++ python-cheroot.changes | 6 ++++ python-cheroot.spec | 3 +- 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 cheroot_fix_so_peercred_ppc.patch diff --git a/cheroot_fix_so_peercred_ppc.patch b/cheroot_fix_so_peercred_ppc.patch new file mode 100644 index 0000000..fea7b57 --- /dev/null +++ b/cheroot_fix_so_peercred_ppc.patch @@ -0,0 +1,54 @@ +commit 621f4ee2c6cda819263be7b26f352abe879b3cd3 +Author: Sviatoslav Sydorenko +Date: Wed Sep 4 23:41:18 2019 +0200 + + Fix socket.SO_PEERCRED constant fallback @ PowerPC + + Resolves #222 + + Refs: + https://bugzilla.redhat.com/show_bug.cgi?id=1733967 + https://www.mail-archive.com/devel@lists.fedoraproject.org/msg136822.html + http://ftp.linuxfoundation.org/pub/lsb/lsb-openjdk/openjdk7-lsb-overrides/lsb_flags.h + https://git.wukl.net/wukl/uefi-musl/blob/29ec7677a73a5227badbb1064205be09e707e466/arch/powerpc/bits/socket.h + +--- + cheroot/_compat.py | 3 +++ + cheroot/server.py | 3 ++- + 2 files changed, 5 insertions(+), 1 deletion(-) + +Index: cheroot-6.5.5/cheroot/_compat.py +=================================================================== +--- cheroot-6.5.5.orig/cheroot/_compat.py ++++ cheroot-6.5.5/cheroot/_compat.py +@@ -24,6 +24,9 @@ IS_WINDOWS = SYS_PLATFORM == 'Windows' + IS_LINUX = SYS_PLATFORM == 'Linux' + IS_MACOS = SYS_PLATFORM == 'Darwin' + ++PLATFORM_ARCH = platform.machine() ++IS_PPC = PLATFORM_ARCH.startswith('ppc') ++ + + if six.PY3: + def ntob(n, encoding='ISO-8859-1'): +Index: cheroot-6.5.5/cheroot/server.py +=================================================================== +--- cheroot-6.5.5.orig/cheroot/server.py ++++ cheroot-6.5.5/cheroot/server.py +@@ -86,6 +86,7 @@ from six.moves import urllib + + from . import errors, __version__ + from ._compat import bton, ntou ++from ._compat import IS_PPC + from .workers import threadpool + from .makefile import MakeFile, StreamWriter + +@@ -142,7 +143,7 @@ if not hasattr(socket, 'SO_PEERCRED'): + which case the getsockopt() will hopefully fail. The arch + specific value could be derived from platform.processor() + """ +- socket.SO_PEERCRED = 17 ++ socket.SO_PEERCRED = 21 if IS_PPC else 17 + + + LF = b'\n' diff --git a/python-cheroot.changes b/python-cheroot.changes index 31db1eb..a40faef 100644 --- a/python-cheroot.changes +++ b/python-cheroot.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 5 09:09:44 UTC 2019 - Michel Normand + +- Add cheroot_fix_so_peercred_ppc.patch + to solve python 2.7 tests failures for PowerPC, boo#1147151 + ------------------------------------------------------------------- Mon Sep 2 18:49:49 UTC 2019 - Dan Čermák diff --git a/python-cheroot.spec b/python-cheroot.spec index 510b54f..8585f47 100644 --- a/python-cheroot.spec +++ b/python-cheroot.spec @@ -26,6 +26,7 @@ License: BSD-3-Clause Group: Development/Languages/Python URL: https://github.com/cherrypy/%{pypi_name} Source: https://files.pythonhosted.org/packages/source/c/%{pypi_name}/%{pypi_name}-%{version}.tar.gz +Patch1: cheroot_fix_so_peercred_ppc.patch BuildRequires: %{python_module more-itertools >= 2.6} BuildRequires: %{python_module pyOpenSSL} BuildRequires: %{python_module pytest >= 2.8} @@ -56,7 +57,7 @@ Requires: python-backports.functools_lru_cache Cheroot is the pure-Python HTTP server used by CherryPy. %prep -%autosetup -n cheroot-%{version} +%autosetup -n cheroot-%{version} -p1 # do not require cov/xdist/etc sed -i -e '/addopts/d' pytest.ini for file in "%{pypi_name}.egg-info/requires.txt" "setup.cfg"; do