git » pyqt5.git » commit 57b2abd

Build with sip 5 for python3

author Antonio Rojas
2019-12-13 23:01:34 UTC
committer Antonio Rojas
2019-12-13 23:01:34 UTC
parent 5208b650f68476ec4efce7da8f87fb5d9f183b12

Build with sip 5 for python3

PKGBUILD +26 -32
pyqt5-no-write-check.patch +13 -0

diff --git a/PKGBUILD b/PKGBUILD
index 92154b3..b36b556 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,3 +1,4 @@
+# Maintainer: Antonio Rojas <arojas@archlinux.org>
 # Maintainer: Felix Yan <felixonmars@archlinux.org>
 # Contributor: Andrea Scarpino <andrea@archlinux.org>
 # Contributor: Yichao Yu <yyc1992@gmail.com>
@@ -5,52 +6,45 @@
 # Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
 
 pkgbase=pyqt5
-pkgname=('pyqt5-common' 'python-pyqt5' 'python2-pyqt5')
+pkgname=('python-pyqt5' 'python2-pyqt5')
 pkgver=5.13.2
-pkgrel=5
+pkgrel=6
 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'
+makedepends=('sip5' 'pyqt-builder' 'python2-sip-pyqt5' 'sip' 'python-opengl' 'python2-opengl' 'python2-enum34' 'python-pip'
              '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-$pkgver.tar.gz")
-sha256sums=('adc17c077bf233987b8e43ada87d1e0deca9bd71a13e5fd5fc377482ed69c827')
+source=("https://www.riverbankcomputing.com/static/Downloads/PyQt5/$pkgver/PyQt5-$pkgver.tar.gz"
+         pyqt5-no-write-check.patch)
+sha256sums=('adc17c077bf233987b8e43ada87d1e0deca9bd71a13e5fd5fc377482ed69c827'
+            '253aa14e27be010ffb2ae21cbeedfecaa608f00ae25539deb1364690e8a8739d')
 
 prepare() {
   cp -a PyQt5-$pkgver{,-py2}
+
+  cd PyQt5-$pkgver
+  patch -p1 -i ../pyqt5-no-write-check.patch # Don't check if target dirs are writtable https://www.riverbankcomputing.com/pipermail/pyqt/2019-December/042390.html
 }
 
 build() {
   cd "$srcdir"/PyQt5-$pkgver
-  python configure.py \
+  sip-build \
     --confirm-license \
-    --no-sip-files \
-    --qsci-api
-  make
+    --no-make
+   cd build
+   make
 
   cd "$srcdir"/PyQt5-$pkgver-py2
   python2 configure.py \
     --confirm-license \
-    --no-sip-files \
-    --qsci-api
+    --sip='/usr/bin/sip'
   make
 }
 
-package_pyqt5-common(){
-  pkgdesc="Common PyQt files shared between python-pyqt5 and python2-pyqt5"
-  depends=('qt5-base')
-
-  cd PyQt5-$pkgver
-  install -Dm644 PyQt5.api "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
-
-  install -d "$pkgdir"/usr/share/sip/PyQt5
-  cp -a sip/* "$pkgdir"/usr/share/sip/PyQt5
-}
-
 package_python-pyqt5(){
-  pkgdesc="A set of Python 3.x bindings for the Qt5 toolkit"
-  depends=('python-sip-pyqt5' 'pyqt5-common')
+  pkgdesc="A set of Python bindings for the Qt5 toolkit"
+  depends=('python' 'qt5-base')
   optdepends=('python-opengl: enable OpenGL 3D graphics in PyQt applications'
               'python-dbus: for python-dbus mainloop support'
               'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
@@ -66,9 +60,8 @@ package_python-pyqt5(){
               'qt5-networkauth: QtNetworkAuth'
               'qt5-remoteobjects: QtRemoteObjects')
 
-  cd PyQt5-$pkgver
-  # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
-  make DESTDIR="$pkgdir" INSTALL_ROOT="$pkgdir" install -j1
+  cd PyQt5-$pkgver/build
+  make INSTALL_ROOT="$pkgdir" install -j1
 
   # Remove unused py2 version of uic modules:
   rm -r "$pkgdir"/usr/lib/python*/site-packages/PyQt5/uic/port_v2
@@ -77,13 +70,14 @@ package_python-pyqt5(){
   python -m compileall -d / "$pkgdir"/usr/lib
   python -O -m compileall -d / "$pkgdir"/usr/lib
 
-  # Provided by pyqt-common
-  rm "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
+  # install sip module
+  sip-module --sdist PyQt5.sip
+  pip install PyQt5_sip-*.tar.gz --root "$pkgdir"
 }
 
 package_python2-pyqt5(){
-  pkgdesc="A set of Python 2.x bindings for the Qt5 toolkit"
-  depends=('python2-sip-pyqt5' 'pyqt5-common' 'python2-enum34')
+  pkgdesc="A set of Python 2 bindings for the Qt5 toolkit"
+  depends=('python2-sip-pyqt5' 'qt5-base' 'python2-enum34')
   optdepends=('python2-opengl: enable OpenGL 3D graphics in PyQt applications'
               'python-dbus: for python-dbus mainloop support'
               'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
@@ -98,6 +92,7 @@ package_python2-pyqt5(){
               'qt5-x11extras: QtX11Extras'
               'qt5-networkauth: QtNetworkAuth'
               'qt5-remoteobjects: QtRemoteObjects')
+  conflicts=('pyqt5-common')
 
   cd PyQt5-$pkgver-py2
   # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
@@ -117,5 +112,4 @@ package_python2-pyqt5(){
 
   rm "$pkgdir"/usr/lib/qt/plugins/designer/libpyqt5.so
   rm "$pkgdir"/usr/lib/qt/plugins/PyQt5/libpyqt5qmlplugin.so
-  rm "$pkgdir"/usr/share/qt/qsci/api/python/PyQt5.api
 }
diff --git a/pyqt5-no-write-check.patch b/pyqt5-no-write-check.patch
new file mode 100644
index 0000000..4c8516b
--- /dev/null
+++ b/pyqt5-no-write-check.patch
@@ -0,0 +1,13 @@
+--- PyQt5-5.13.2/project.py.orig	2019-12-13 19:02:20.618573711 +0000
++++ PyQt5-5.13.2/project.py	2019-12-13 19:02:31.142055299 +0000
+@@ -306,10 +306,6 @@
+         target_plugin_dir = os.path.join(
+                 builder.qt_configuration['QT_INSTALL_PLUGINS'], target_subdir)
+ 
+-        if not os.access(target_plugin_dir, os.W_OK):
+-            self.progress("The {0} plugin was disabled because you do not have write permission on '{1}'.".format(user_name, target_plugin_dir))
+-            return
+-
+         # Create the buildable and add it to the builder.
+         buildable = Buildable(self, name)
+         self.buildables.append(buildable)