git » pyqt5.git » commit 5ccb82a

Fix crash on python2 (FS#63051)

author Antonio Rojas
2019-07-01 15:27:22 UTC
committer Antonio Rojas
2019-07-01 15:27:22 UTC
parent 02c888ca28e9d7d4666561d327aecf29d28f1511

Fix crash on python2 (FS#63051)

PKGBUILD +10 -3
python2-pyqt5-crash-fix.patch +13 -0

diff --git a/PKGBUILD b/PKGBUILD
index c95f2d4..d48d51e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,17 +7,24 @@
 pkgbase=pyqt5
 pkgname=('pyqt5-common' 'python-pyqt5' 'python2-pyqt5')
 pkgver=5.12.3
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 url="https://riverbankcomputing.com/software/pyqt/intro"
 license=('GPL')
 makedepends=('python-sip-pyqt5' 'python2-sip-pyqt5' 'sip' 'python-opengl' 'python2-opengl' 'python2-enum34'
              'python2-dbus' 'python-dbus' 'qt5-connectivity' 'qt5-multimedia' 'qt5-tools' 'qt5-serialport' 'qt5-svg'
              'qt5-webkit' 'qt5-websockets' 'qt5-x11extras' 'qt5-networkauth' 'qt5-xmlpatterns' 'qt5-remoteobjects')
-source=("https://www.riverbankcomputing.com/static/Downloads/PyQt5/$pkgver/PyQt5_gpl-$pkgver.tar.gz")
-sha256sums=('0db0fa37debab147450f9e052286f7a530404e2aaddc438e97a7dcdf56292110')
+source=("https://www.riverbankcomputing.com/static/Downloads/PyQt5/$pkgver/PyQt5_gpl-$pkgver.tar.gz"
+         python2-pyqt5-crash-fix.patch)
+sha256sums=('0db0fa37debab147450f9e052286f7a530404e2aaddc438e97a7dcdf56292110'
+            'f50167da0fd3386fba36200a0226d6340f6bf6b0b108d5b80c8ad0b0fb26dbe1')
 
 prepare() {
+  cd PyQt5_gpl-$pkgver
+  # Remove code that is unneeded if Qt is not bundled and crashes on python2
+  # https://www.riverbankcomputing.com/pipermail/pyqt/2019-July/041896.html
+  patch -p1 -i ../python2-pyqt5-crash-fix.patch 
+  cd ..
   cp -a PyQt5_gpl-$pkgver{,-py2}
 }
 
diff --git a/python2-pyqt5-crash-fix.patch b/python2-pyqt5-crash-fix.patch
new file mode 100644
index 0000000..14462f7
--- /dev/null
+++ b/python2-pyqt5-crash-fix.patch
@@ -0,0 +1,13 @@
+diff -ur PyQt5_gpl-5.12.3/qpy/QtCore/qpycore_post_init.cpp.in PyQt5_gpl-5.12.3b/qpy/QtCore/qpycore_post_init.cpp.in
+--- PyQt5_gpl-5.12.3/qpy/QtCore/qpycore_post_init.cpp.in        2019-06-25 14:41:02.000000000 +0200
++++ PyQt5_gpl-5.12.3b/qpy/QtCore/qpycore_post_init.cpp.in       2019-07-01 17:06:34.882644535 +0200
+@@ -151,8 +151,4 @@
+     // initialised first (at least for Windows) and this is the only way to
+     // guarantee things are done in the right order.
+     PyQtSlotProxy::mutex = new QMutex(QMutex::Recursive);
+-
+-    // Load the embedded qt.conf file if there is a bundled copy of Qt.
+-    if (!qpycore_qt_conf())
+-        Py_FatalError("PyQt5.QtCore: Unable to embed qt.conf");
+ }
+