[arch-commits] Commit in canorus/trunk (PKGBUILD python-3.7.patch)
Evgeniy Alekseev
arcanis at archlinux.org
Wed Jul 25 12:33:57 UTC 2018
Date: Wednesday, July 25, 2018 @ 12:33:56
Author: arcanis
Revision: 363378
upgpkg: canorus 0.7.3rc3-1
python-3.7 rebuild fixes
Added:
canorus/trunk/python-3.7.patch
Modified:
canorus/trunk/PKGBUILD
------------------+
PKGBUILD | 15 ++++--
python-3.7.patch | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 137 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2018-07-25 11:27:08 UTC (rev 363377)
+++ PKGBUILD 2018-07-25 12:33:56 UTC (rev 363378)
@@ -5,7 +5,7 @@
# Contributor: hm_b <holger (at) music-nerds (dot) net>
pkgname=canorus
-pkgver=0.7.3rc1
+pkgver=0.7.3rc3
pkgrel=1
pkgdesc="A free music score editor"
arch=('x86_64')
@@ -13,12 +13,19 @@
license=('GPL')
depends=('qt5-svg' 'qt5-webengine' 'alsa-lib' 'zlib' 'python')
makedepends=('cmake' 'swig' 'qt5-tools' 'ruby')
-source=("http://downloads.sourceforge.net/project/canorus/0.7.3/canorus-${pkgver}.tar.bz2")
-sha256sums=('e363f3cdb382a78d22c0c41541ed0871aaaa97ddb3df1b981ec80072ec52f9c4')
+source=("http://downloads.sourceforge.net/project/canorus/0.7.3/canorus-${pkgver}.tar.bz2"
+ "python-3.7.patch")
+sha256sums=('c5d470ac6cae696472dcb7176e0cd4545b883ff84ae2dc767a8956546f5b4b15'
+ '5474199c0f02e4ec1ea6062b2aa9fb48cdeab9ba4c895f236918aed43a18c070')
+prepare() {
+ patch -p0 -i "${srcdir}/python-3.7.patch"
+}
+
build() {
cd $pkgname-$pkgver
- export CXXFLAGS+=" -Wno-misleading-indentation -Wno-dangling-else"
+ # stringop-truncation will be fixes in swig, see https://github.com/swig/swig/issues/893
+ export CXXFLAGS+=" -Wno-misleading-indentation -Wno-dangling-else -Wno-stringop-truncation"
cmake . -DCMAKE_INSTALL_PREFIX="$pkgdir"/usr \
-DDEFAULT_DATA_DIR="/usr/share/canorus"
}
Added: python-3.7.patch
===================================================================
--- python-3.7.patch (rev 0)
+++ python-3.7.patch 2018-07-25 12:33:56 UTC (rev 363378)
@@ -0,0 +1,126 @@
+diff -ruN canorus-0.7.3rc3-orig/src/scripting/swigpython.cpp canorus-0.7.3rc3/src/scripting/swigpython.cpp
+--- canorus-0.7.3rc3-orig/src/scripting/swigpython.cpp 2018-07-25 14:59:07.105433821 +0300
++++ canorus-0.7.3rc3/src/scripting/swigpython.cpp 2018-07-25 15:01:53.615606426 +0300
+@@ -81,13 +81,14 @@
+ PyEval_ReleaseLock();
+
+ // my section with thread initialization
+-PyEval_AcquireLock();
++ PyThreadState *state = nullptr;
++PyEval_AcquireThread(state);
+ PyInterpreterState * mainInterpreterState = mainThreadState->interp;
+
+ pycliThreadState = PyThreadState_New(mainInterpreterState);
+ PyThreadState_Swap(mainThreadState);
+
+-PyEval_ReleaseLock();
++PyEval_ReleaseThread(state);
+ }
+
+ /*!
+@@ -136,7 +137,8 @@
+ QString moduleName = fileName.left(fileName.lastIndexOf(".py"));
+ moduleName = moduleName.remove(0, moduleName.lastIndexOf("/")+1);
+
+- PyEval_AcquireLock();
++ PyThreadState *state = nullptr;
++ PyEval_AcquireThread(state);
+
+ PyObject *pyModule;
+ if (autoReload) {
+@@ -152,11 +154,11 @@
+ } else {
+ pyModule = PyImport_ImportModule((char*)moduleName.toStdString().c_str());
+ }
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Get function object
+ PyObject *pyFunction = PyObject_GetAttrString(pyModule, (char*)function.toStdString().c_str());
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Call the actual function
+ PyObject *ret;
+@@ -164,7 +166,7 @@
+ ret = PyEval_CallObject(pyFunction, pyArgs);
+ else
+ ret = PyEval_CallObject(pyFunction, NULL);
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Py_DECREF(pyFunction); // -Matevz
+ // Py_DECREF(pyModule); // -Matevz
+@@ -172,7 +174,7 @@
+ // for (int i=0; i<args.size(); i++)
+ // Py_DECREF(args[i]); // -Matevz
+
+- PyEval_ReleaseLock();
++ PyEval_ReleaseThread(state);
+ return ret;
+ }
+
+@@ -189,7 +191,8 @@
+ void *CASwigPython::callPycli(void*) {
+
+
+- PyEval_AcquireLock();
++ PyThreadState *state = nullptr;
++ PyEval_AcquireThread(state);
+ PyThreadState_Swap(pycliThreadState);
+
+ QString fileName = thr_fileName;
+@@ -208,20 +211,20 @@
+
+ PyObject *pyModule = PyImport_ImportModule((char*)moduleName.toStdString().c_str());
+
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Get function object
+
+ //PyObject *pyFunction = PyObject_GetAttrString(pyModule, "pycli");
+ PyObject *pyFunction = PyObject_GetAttrString(pyModule, (char*)function.toStdString().c_str());
+
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Call the actual function
+ //
+ PyObject *ret;
+ ret = PyEval_CallObject(pyFunction, pyArgs);
+- if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseLock(); return NULL; }
++ if (PyErr_Occurred()) { PyErr_Print(); PyEval_ReleaseThread(state); return NULL; }
+
+ // Py_DECREF(pyFunction); // -Matevz
+ // Py_DECREF(pyArgs); /// \todo Crashes if uncommented?!d
+@@ -231,7 +234,7 @@
+
+
+ PyThreadState_Swap(mainThreadState);
+- PyEval_ReleaseLock();
++ PyEval_ReleaseThread(state);
+
+ // pthread_exit((void*)NULL);
+ return ret;
+diff -ruN canorus-0.7.3rc3-orig/src/widgets/pyconsole.cpp canorus-0.7.3rc3/src/widgets/pyconsole.cpp
+--- canorus-0.7.3rc3-orig/src/widgets/pyconsole.cpp 2018-07-25 15:07:33.211427602 +0300
++++ canorus-0.7.3rc3/src/widgets/pyconsole.cpp 2018-07-25 15:12:44.513167871 +0300
+@@ -305,14 +305,15 @@
+
+ // blocking operation;
+ PyThreadState_Swap(CASwigPython::mainThreadState);
+-PyEval_ReleaseLock();
++PyEval_ReleaseThread(CASwigPython::mainThreadState);
+
+ //Py_BEGIN_ALLOW_THREADS
+ _thrWaitMut->lock();
+ _thrWait->wait(_thrWaitMut);
+ //Py_END_ALLOW_THREADS
+
+-PyEval_AcquireLock();
++PyThreadState *state = nullptr;
++PyEval_AcquireThread(state);
+ PyThreadState_Swap(CASwigPython::pycliThreadState);
+
+ QString *str = new QString(_bufSend); //put contents of _bufSend into buffer \todo: synch
More information about the arch-commits
mailing list