From 01a4993071babf69f6cb5e222b15caca069768af Mon Sep 17 00:00:00 2001 From: Miro HronĨok Date: Jun 11 2019 15:22:42 +0000 Subject: Hotfix Python 3.8 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1717654 --- diff --git a/0002-Remove-.tp_print-access-from-Python-3.patch b/0002-Remove-.tp_print-access-from-Python-3.patch new file mode 100644 index 0000000..701cb3f --- /dev/null +++ b/0002-Remove-.tp_print-access-from-Python-3.patch @@ -0,0 +1,210 @@ +From 8060b9b329cc68c69254a4efa992807c1bae5ea8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Tue, 11 Jun 2019 17:17:26 +0200 +Subject: [PATCH] Remove .tp_print access from Python 3 + +See https://bugzilla.redhat.com/show_bug.cgi?id=1717654 +--- + dbus_bindings/abstract.c | 7 ++++++- + dbus_bindings/bytes.c | 4 ++++ + dbus_bindings/containers.c | 6 ++++++ + dbus_bindings/float.c | 4 ++++ + dbus_bindings/int.c | 14 ++++++++++++++ + dbus_bindings/signature.c | 2 ++ + dbus_bindings/string.c | 4 ++++ + 7 files changed, 40 insertions(+), 1 deletion(-) + +diff --git a/dbus_bindings/abstract.c b/dbus_bindings/abstract.c +index 7bdf368..7a6f92f 100644 +--- a/dbus_bindings/abstract.c ++++ b/dbus_bindings/abstract.c +@@ -790,7 +790,6 @@ dbus_py_init_abstract(void) + #ifdef PY3 + DBusPyBytesBase_Type.tp_base = &PyBytes_Type; + if (PyType_Ready(&DBusPyBytesBase_Type) < 0) return 0; +- DBusPyBytesBase_Type.tp_print = NULL; + #else + DBusPyIntBase_Type.tp_base = &PyInt_Type; + if (PyType_Ready(&DBusPyIntBase_Type) < 0) return 0; +@@ -801,15 +800,21 @@ dbus_py_init_abstract(void) + + DBusPyFloatBase_Type.tp_base = &PyFloat_Type; + if (PyType_Ready(&DBusPyFloatBase_Type) < 0) return 0; ++#ifndef PY3 + DBusPyFloatBase_Type.tp_print = NULL; ++#endif + + DBusPyLongBase_Type.tp_base = &PyLong_Type; + if (PyType_Ready(&DBusPyLongBase_Type) < 0) return 0; ++#ifndef PY3 + DBusPyLongBase_Type.tp_print = NULL; ++#endif + + DBusPyStrBase_Type.tp_base = &NATIVESTR_TYPE; + if (PyType_Ready(&DBusPyStrBase_Type) < 0) return 0; ++#ifndef PY3 + DBusPyStrBase_Type.tp_print = NULL; ++#endif + + return 1; + } +diff --git a/dbus_bindings/bytes.c b/dbus_bindings/bytes.c +index 873a2fa..7ccb607 100644 +--- a/dbus_bindings/bytes.c ++++ b/dbus_bindings/bytes.c +@@ -278,11 +278,15 @@ dbus_py_init_byte_types(void) + { + DBusPyByte_Type.tp_base = &DBUS_PY_BYTE_BASE; + if (PyType_Ready(&DBusPyByte_Type) < 0) return 0; ++#ifndef PY3 + DBusPyByte_Type.tp_print = NULL; ++#endif + + DBusPyByteArray_Type.tp_base = &DBUS_PY_BYTEARRAY_BASE; + if (PyType_Ready(&DBusPyByteArray_Type) < 0) return 0; ++#ifndef PY3 + DBusPyByteArray_Type.tp_print = NULL; ++#endif + + return 1; + } +diff --git a/dbus_bindings/containers.c b/dbus_bindings/containers.c +index 26f983b..b1268eb 100644 +--- a/dbus_bindings/containers.c ++++ b/dbus_bindings/containers.c +@@ -775,15 +775,21 @@ dbus_py_init_container_types(void) + + DBusPyArray_Type.tp_base = &PyList_Type; + if (PyType_Ready(&DBusPyArray_Type) < 0) return 0; ++#ifndef PY3 + DBusPyArray_Type.tp_print = NULL; ++#endif + + DBusPyDict_Type.tp_base = &PyDict_Type; + if (PyType_Ready(&DBusPyDict_Type) < 0) return 0; ++#ifndef PY3 + DBusPyDict_Type.tp_print = NULL; ++#endif + + DBusPyStruct_Type.tp_base = &PyTuple_Type; + if (PyType_Ready(&DBusPyStruct_Type) < 0) return 0; ++#ifndef PY3 + DBusPyStruct_Type.tp_print = NULL; ++#endif + + return 1; + } +diff --git a/dbus_bindings/float.c b/dbus_bindings/float.c +index 9d05c19..c31f224 100644 +--- a/dbus_bindings/float.c ++++ b/dbus_bindings/float.c +@@ -128,12 +128,16 @@ dbus_py_init_float_types(void) + { + DBusPyDouble_Type.tp_base = &DBusPyFloatBase_Type; + if (PyType_Ready(&DBusPyDouble_Type) < 0) return 0; ++#ifndef PY3 + DBusPyDouble_Type.tp_print = NULL; ++#endif + + #ifdef WITH_DBUS_FLOAT32 + DBusPyFloat_Type.tp_base = &DBusPyFloatBase_Type; + if (PyType_Ready(&DBusPyFloat_Type) < 0) return 0; ++#ifndef PY3 + DBusPyFloat_Type.tp_print = NULL; ++#endif + #endif + + return 1; +diff --git a/dbus_bindings/int.c b/dbus_bindings/int.c +index 109d4c7..1b36cd3 100644 +--- a/dbus_bindings/int.c ++++ b/dbus_bindings/int.c +@@ -721,33 +721,47 @@ dbus_py_init_int_types(void) + if (PyType_Ready(&DBusPyInt16_Type) < 0) return 0; + /* disable the tp_print copied from PyInt_Type, so tp_repr gets called as + desired */ ++#ifndef PY3 + DBusPyInt16_Type.tp_print = NULL; ++#endif + + DBusPyUInt16_Type.tp_base = &INTBASE; + if (PyType_Ready(&DBusPyUInt16_Type) < 0) return 0; ++#ifndef PY3 + DBusPyUInt16_Type.tp_print = NULL; ++#endif + + DBusPyInt32_Type.tp_base = &INTBASE; + if (PyType_Ready(&DBusPyInt32_Type) < 0) return 0; ++#ifndef PY3 + DBusPyInt32_Type.tp_print = NULL; ++#endif + + DBusPyUInt32_Type.tp_base = &DBusPyLongBase_Type; + if (PyType_Ready(&DBusPyUInt32_Type) < 0) return 0; ++#ifndef PY3 + DBusPyUInt32_Type.tp_print = NULL; ++#endif + + #if defined(DBUS_HAVE_INT64) && defined(HAVE_LONG_LONG) + DBusPyInt64_Type.tp_base = &DBusPyLongBase_Type; + if (PyType_Ready(&DBusPyInt64_Type) < 0) return 0; ++#ifndef PY3 + DBusPyInt64_Type.tp_print = NULL; ++#endif + + DBusPyUInt64_Type.tp_base = &DBusPyLongBase_Type; + if (PyType_Ready(&DBusPyUInt64_Type) < 0) return 0; ++#ifndef PY3 + DBusPyUInt64_Type.tp_print = NULL; ++#endif + #endif + + DBusPyBoolean_Type.tp_base = &INTBASE; + if (PyType_Ready(&DBusPyBoolean_Type) < 0) return 0; ++#ifndef PY3 + DBusPyBoolean_Type.tp_print = NULL; ++#endif + + return 1; + } +diff --git a/dbus_bindings/signature.c b/dbus_bindings/signature.c +index c1a32e7..ca2c1d8 100644 +--- a/dbus_bindings/signature.c ++++ b/dbus_bindings/signature.c +@@ -233,7 +233,9 @@ dbus_py_init_signature(void) + + DBusPySignature_Type.tp_base = &DBusPyStrBase_Type; + if (PyType_Ready(&DBusPySignature_Type) < 0) return 0; ++#ifndef PY3 + DBusPySignature_Type.tp_print = NULL; ++#endif + + return 1; + } +diff --git a/dbus_bindings/string.c b/dbus_bindings/string.c +index ce8f03d..28f7f48 100644 +--- a/dbus_bindings/string.c ++++ b/dbus_bindings/string.c +@@ -337,7 +337,9 @@ dbus_py_init_string_types(void) + } + DBusPyString_Type.tp_base = &PyUnicode_Type; + if (PyType_Ready(&DBusPyString_Type) < 0) return 0; ++#ifndef PY3 + DBusPyString_Type.tp_print = NULL; ++#endif + + #ifndef PY3 + DBusPyUTF8String_Type.tp_base = &DBusPyStrBase_Type; +@@ -347,7 +349,9 @@ dbus_py_init_string_types(void) + + DBusPyObjectPath_Type.tp_base = &DBusPyStrBase_Type; + if (PyType_Ready(&DBusPyObjectPath_Type) < 0) return 0; ++#ifndef PY3 + DBusPyObjectPath_Type.tp_print = NULL; ++#endif + + return 1; + } +-- +2.21.0 + diff --git a/dbus-python.spec b/dbus-python.spec index e0e43bd..25e9a31 100644 --- a/dbus-python.spec +++ b/dbus-python.spec @@ -14,6 +14,9 @@ Source1: http://dbus.freedesktop.org/releases/dbus-python/%{name}-%{version}.tar # borrow centos7 patch to use sitearch properly Patch0: 0001-Move-python-modules-to-architecture-specific-directo.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1717654 +Patch2: 0002-Remove-.tp_print-access-from-Python-3.patch + BuildRequires: dbus-devel BuildRequires: dbus-glib-devel BuildRequires: python2-docutils