[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