summaryrefslogtreecommitdiff
path: root/libre/pyqt5/PKGBUILD
blob: a2ccad1e3018b3c589da8fc60dfe84a7d8cd5b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# $Id: PKGBUILD 291120 2017-03-20 15:54:10Z arojas $
# Maintainer (Arch): Felix Yan <felixonmars@archlinux.org>
# Contributor (Arch): Andrea Scarpino <andrea@archlinux.org>
# Contributor (Arch): Yichao Yu <yyc1992@gmail.com>
# Contributor (Arch): Douglas Soares de Andrade <douglas@archlinux.org>
# Contributor (Arch): riai <riai@bigfoot.com> Ben <ben@benmazer.net>
# Maintainer: André Silva <emulatorman@parabola.nu>
# Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info>

# Rationale: build without support for nonfree qt5-webengine.
#
# Differences between extra/pyqt5 and this:
#  - We a apply opengles-hack.patch on ARM
#  - We don't list qt5-webengine as a dependency.  The configure
#    script will pick up on it not being there, and automatically
#    disable that module.
#  - We apply a patch to the configure to make it print which modules
#    it decides to enable/disable, so the package maintainer can tell
#    if something went wrong earlier.

pkgbase=pyqt5
pkgname=('pyqt5-common' 'python-pyqt5' 'python2-pyqt5')
pkgver=5.8
_pkgver=$pkgver
pkgrel=2.parabola2
arch=('i686' 'x86_64' 'armv7h')
url="http://riverbankcomputing.co.uk/software/pyqt/intro"
license=('GPL')
makedepends=('python-sip' 'python2-sip' 'python-opengl' 'python2-opengl'
             'python2-dbus' 'python-dbus' 'qt5-connectivity'
             'qt5-multimedia' 'qt5-tools' 'qt5-serialport' 'qt5-svg'
                             'qt5-webkit' 'qt5-websockets' 'qt5-x11extras')
source=("http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-$pkgver/PyQt5_gpl-$pkgver.tar.gz" "pyqt-5.8-segfault.patch")
md5sums=('ac04c0bfc1f05f5a1c2a1edd2640235c'
         'de7b2781874ff0c7c0d710f718cfa01a')
source+=('pyqt5-verbose-configure.patch')
md5sums+=('741c4b3ed85e4bf306ae2e73826d8a8b')
source_armv7h=('opengles-hack.patch')
md5sums_armv7h=('ad09b1c84c26d5e92de192477cb3a2d1')

prepare() {
  pushd PyQt5_gpl-${_pkgver}
  patch -Np1 -i "${srcdir}/pyqt-5.8-segfault.patch"
  case "$CARCH" in
    armv7h) patch -p1 -i ../opengles-hack.patch;;
  esac
  patch -Np1 -i "${srcdir}/pyqt5-verbose-configure.patch"
  popd


  # The additional include path was removed due to this line, I don't really know why they are doing this...
  sed -i '/target_config.dbus_inc_dirs = \[\]/d' PyQt5_gpl-${_pkgver}/configure.py

  cp -a PyQt5_gpl-${_pkgver}{,-py2}
}

build() {
  cd "$srcdir"/PyQt5_gpl-${_pkgver}
  python configure.py \
    --confirm-license \
    --no-sip-files \
    --qsci-api \
    -q /usr/bin/qmake-qt5

  # Thanks Gerardo for the rpath fix
  find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'

  make

  cd "$srcdir"/PyQt5_gpl-${_pkgver}-py2
  python2 configure.py \
    --confirm-license \
    --no-sip-files \
    --qsci-api \
    -q /usr/bin/qmake-qt5

  # Thanks Gerardo for the rpath fix
  find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'

  make
}

package_pyqt5-common(){
  pkgdesc="Common PyQt files shared between python-pyqt5 and python2-pyqt5"
  depends=('qt5-base')

  cd PyQt5_gpl-${_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-common')
  optdepends=('python-opengl: enable OpenGL 3D graphics in PyQt applications'
              'python-dbus: for python-dbus mainloop support'
              'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
              'qt5-tools: QtHelp, QtDesigner'
              'qt5-svg: QtSvg'
              'qt5-webkit: QtWebKit, QtWebKitWidgets'
              'qt5-xmlpatterns: QtXmlPatterns'
              'qt5-declarative: QtQml, qmlplugin'
              'qt5-serialport: QtSerialPort')

  cd PyQt5_gpl-${_pkgver}
  # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
  make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install

  # Provided by pyqt-common
  rm "${pkgdir}"/usr/share/qt/qsci/api/python/PyQt5.api
}

package_python2-pyqt5(){
  pkgdesc="A set of Python 2.x bindings for the Qt5 toolkit"
  depends=('python2-sip' 'pyqt5-common')
  optdepends=('python2-opengl: enable OpenGL 3D graphics in PyQt applications'
              'python-dbus: for python-dbus mainloop support'
              'qt5-multimedia: QtMultimedia, QtMultimediaWidgets'
              'qt5-tools: QtHelp, QtDesigner'
              'qt5-svg: QtSvg'
              'qt5-webkit: QtWebKit, QtWebKitWidgets'
              'qt5-xmlpatterns: QtXmlPatterns'
              'qt5-declarative: QtQml, qmlplugin'
              'qt5-serialport: QtSerialPort')

  cd PyQt5_gpl-${_pkgver}-py2
  # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
  make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install

  # Fix conflicts with python-pyqt5
  mv "${pkgdir}"/usr/bin/{,python2-}pyuic5
  mv "${pkgdir}"/usr/bin/{,python2-}pylupdate5
  mv "${pkgdir}"/usr/bin/{,python2-}pyrcc5

  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
}