Gentoo Archives: gentoo-commits

From: Davide Pesavento <pesa@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/PyQt5/
Date: Thu, 01 Feb 2018 19:39:43
Message-Id: 1517513965.1cbbf056b345e6698a2b361381b39c6570c0c622.pesa@gentoo
1 commit: 1cbbf056b345e6698a2b361381b39c6570c0c622
2 Author: Davide Pesavento <pesa <AT> gentoo <DOT> org>
3 AuthorDate: Thu Feb 1 19:39:25 2018 +0000
4 Commit: Davide Pesavento <pesa <AT> gentoo <DOT> org>
5 CommitDate: Thu Feb 1 19:39:25 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1cbbf056
7
8 dev-python/PyQt5: version bump
9
10 Package-Manager: Portage-2.3.21, Repoman-2.3.6
11
12 dev-python/PyQt5/Manifest | 1 +
13 dev-python/PyQt5/PyQt5-5.10.ebuild | 195 +++++++++++++++++++++++++++++++++++++
14 2 files changed, 196 insertions(+)
15
16 diff --git a/dev-python/PyQt5/Manifest b/dev-python/PyQt5/Manifest
17 index bf35184ece9..d0ca5a1d6a8 100644
18 --- a/dev-python/PyQt5/Manifest
19 +++ b/dev-python/PyQt5/Manifest
20 @@ -1,2 +1,3 @@
21 +DIST PyQt5_gpl-5.10.tar.gz 3109934 BLAKE2B 96553b9a6f93c9ff86dc574e44f989d1aa371a5bf28cf3023ebcc9526791d28deab47e6f76ba70b46d33d80fc00d0b4df47cd4bb53a649dc98b8d0c0425d6742 SHA512 a86520870536618857ed3ee1601af45f5a0b456de192a5d6a3f8fa734e5cf49b8ce373928c0f4aeaae365d3fa95db03b5f59ae2903bc5eb2304b7edf22198033
22 DIST PyQt5_gpl-5.7.1.tar.gz 3733746 BLAKE2B de8aea058876d740f391901434fa2c7ca1760b323b555efb48b06f8ba3213baccec676bc3984832e0775b28f0d2b2ddf0c37fa35317c237ed9af2e20469ff9ae SHA512 7498713f73807522e58ae38ff58548cf80c2f2c418d6c55e20ce613cdc997e4ee7139076f1f152c7c3edb970bde14febc3496009f934e31ff71f01a1605f558f
23 DIST PyQt5_gpl-5.9.2.tar.gz 3102848 BLAKE2B b87f25693aa2b20211119f89cf13665bf88f14de8827d43ba757344ab9bdef0b0c197abb8386308c72925da263cabb6efd3f104db8a350c51fca3fba8c7c06b6 SHA512 5af2e65addaed7dd02d8dbf7a7c63767e565fc8edeb7b51e5991a00cda29f75b666529097646e821aaff556f350a929fd451f548bba76e97355b7fe10bd913bc
24
25 diff --git a/dev-python/PyQt5/PyQt5-5.10.ebuild b/dev-python/PyQt5/PyQt5-5.10.ebuild
26 new file mode 100644
27 index 00000000000..809e464ee4b
28 --- /dev/null
29 +++ b/dev-python/PyQt5/PyQt5-5.10.ebuild
30 @@ -0,0 +1,195 @@
31 +# Copyright 1999-2018 Gentoo Foundation
32 +# Distributed under the terms of the GNU General Public License v2
33 +
34 +EAPI=6
35 +PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
36 +
37 +inherit multibuild python-r1 qmake-utils
38 +
39 +DESCRIPTION="Python bindings for the Qt framework"
40 +HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/intro"
41 +
42 +MY_P=${PN}_gpl-${PV/_pre/.dev}
43 +if [[ ${PV} == *_pre* ]]; then
44 + SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz"
45 +else
46 + SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz"
47 +fi
48 +
49 +LICENSE="GPL-3"
50 +SLOT="0"
51 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
52 +
53 +# TODO: QtNetworkAuth, QtNfc
54 +IUSE="bluetooth dbus debug declarative designer examples gles2 gui help location
55 + multimedia network opengl positioning printsupport sensors serialport sql svg
56 + testlib webchannel webengine webkit websockets widgets x11extras xmlpatterns"
57 +
58 +# The requirements below were extracted from configure.py
59 +# and from the output of 'grep -r "%Import " "${S}"/sip'
60 +REQUIRED_USE="
61 + ${PYTHON_REQUIRED_USE}
62 + bluetooth? ( gui )
63 + declarative? ( gui network )
64 + designer? ( widgets )
65 + help? ( gui widgets )
66 + location? ( positioning )
67 + multimedia? ( gui network )
68 + opengl? ( gui widgets )
69 + positioning? ( gui )
70 + printsupport? ( gui widgets )
71 + sensors? ( gui )
72 + serialport? ( gui )
73 + sql? ( widgets )
74 + svg? ( gui widgets )
75 + testlib? ( widgets )
76 + webchannel? ( network )
77 + webengine? ( network widgets? ( printsupport webchannel ) )
78 + webkit? ( gui network printsupport widgets )
79 + websockets? ( network )
80 + widgets? ( gui )
81 + xmlpatterns? ( network )
82 +"
83 +
84 +# Minimal supported version of Qt.
85 +QT_PV="5.9.3:5"
86 +
87 +RDEPEND="
88 + ${PYTHON_DEPS}
89 + >=dev-python/sip-4.19.6:=[${PYTHON_USEDEP}]
90 + >=dev-qt/qtcore-${QT_PV}
91 + >=dev-qt/qtxml-${QT_PV}
92 + bluetooth? ( >=dev-qt/qtbluetooth-${QT_PV} )
93 + dbus? (
94 + dev-python/dbus-python[${PYTHON_USEDEP}]
95 + >=dev-qt/qtdbus-${QT_PV}
96 + )
97 + declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
98 + designer? ( >=dev-qt/designer-${QT_PV} )
99 + gui? ( >=dev-qt/qtgui-${QT_PV}[gles2=] )
100 + help? ( >=dev-qt/qthelp-${QT_PV} )
101 + location? ( >=dev-qt/qtlocation-${QT_PV} )
102 + multimedia? ( >=dev-qt/qtmultimedia-${QT_PV}[widgets?] )
103 + network? ( >=dev-qt/qtnetwork-${QT_PV} )
104 + opengl? ( >=dev-qt/qtopengl-${QT_PV} )
105 + positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
106 + printsupport? ( >=dev-qt/qtprintsupport-${QT_PV} )
107 + sensors? ( >=dev-qt/qtsensors-${QT_PV} )
108 + serialport? ( >=dev-qt/qtserialport-${QT_PV} )
109 + sql? ( >=dev-qt/qtsql-${QT_PV} )
110 + svg? ( >=dev-qt/qtsvg-${QT_PV} )
111 + testlib? ( >=dev-qt/qttest-${QT_PV} )
112 + webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
113 + webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets?] )
114 + webkit? ( >=dev-qt/qtwebkit-5.9:5[printsupport] )
115 + websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
116 + widgets? ( >=dev-qt/qtwidgets-${QT_PV} )
117 + x11extras? ( >=dev-qt/qtx11extras-${QT_PV} )
118 + xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} )
119 +"
120 +DEPEND="${RDEPEND}
121 + dbus? ( virtual/pkgconfig )
122 +"
123 +
124 +S=${WORKDIR}/${MY_P}
125 +
126 +DOCS=( "${S}"/{ChangeLog,NEWS} )
127 +
128 +pyqt_use_enable() {
129 + use "$1" || return
130 +
131 + if [[ $# -eq 1 ]]; then
132 + echo --enable=Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1}
133 + else
134 + shift
135 + echo ${@/#/--enable=}
136 + fi
137 +}
138 +
139 +src_configure() {
140 + configuration() {
141 + local myconf=(
142 + "${PYTHON}"
143 + "${S}"/configure.py
144 + $(usex debug '--debug --qml-debug --trace' '')
145 + --verbose
146 + --confirm-license
147 + --qmake="$(qt5_get_bindir)"/qmake
148 + --bindir="${EPREFIX}/usr/bin"
149 + --destdir="$(python_get_sitedir)"
150 + --sip-incdir="$(python_get_includedir)"
151 + --qsci-api
152 + --enable=QtCore
153 + --enable=QtXml
154 + $(pyqt_use_enable bluetooth)
155 + $(pyqt_use_enable dbus QtDBus)
156 + $(usex dbus '' --no-python-dbus)
157 + $(pyqt_use_enable declarative QtQml QtQuick $(usex widgets QtQuickWidgets ''))
158 + $(usex declarative '' --no-qml-plugin)
159 + $(pyqt_use_enable designer)
160 + $(usex designer '' --no-designer-plugin)
161 + $(pyqt_use_enable gui)
162 + $(pyqt_use_enable gui $(use gles2 && echo _QOpenGLFunctions_ES2 || echo _QOpenGLFunctions_{2_0,2_1,4_1_Core}))
163 + $(pyqt_use_enable help)
164 + $(pyqt_use_enable location)
165 + $(pyqt_use_enable multimedia QtMultimedia $(usex widgets QtMultimediaWidgets ''))
166 + $(pyqt_use_enable network)
167 + $(pyqt_use_enable opengl QtOpenGL)
168 + $(pyqt_use_enable positioning)
169 + $(pyqt_use_enable printsupport QtPrintSupport)
170 + $(pyqt_use_enable sensors)
171 + $(pyqt_use_enable serialport QtSerialPort)
172 + $(pyqt_use_enable sql)
173 + $(pyqt_use_enable svg)
174 + $(pyqt_use_enable testlib QtTest)
175 + $(pyqt_use_enable webchannel QtWebChannel)
176 + $(pyqt_use_enable webengine QtWebEngine QtWebEngineCore $(usex widgets QtWebEngineWidgets ''))
177 + $(pyqt_use_enable webkit QtWebKit QtWebKitWidgets)
178 + $(pyqt_use_enable websockets QtWebSockets)
179 + $(pyqt_use_enable widgets)
180 + $(pyqt_use_enable x11extras QtX11Extras)
181 + $(pyqt_use_enable xmlpatterns QtXmlPatterns)
182 + )
183 + echo "${myconf[@]}"
184 + "${myconf[@]}" || die
185 +
186 + eqmake5 -recursive ${PN}.pro
187 + }
188 + python_foreach_impl run_in_build_dir configuration
189 +}
190 +
191 +src_compile() {
192 + python_foreach_impl run_in_build_dir default
193 +}
194 +
195 +src_install() {
196 + installation() {
197 + local tmp_root=${D%/}/tmp
198 + emake INSTALL_ROOT="${tmp_root}" install
199 +
200 + local bin_dir=${tmp_root}${EPREFIX}/usr/bin
201 + local exe
202 + for exe in pylupdate5 pyrcc5 pyuic5; do
203 + python_doexe "${bin_dir}/${exe}"
204 + rm "${bin_dir}/${exe}" || die
205 + done
206 +
207 + local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic
208 + if python_is_python3; then
209 + rm -r "${uic_dir}"/port_v2 || die
210 + else
211 + rm -r "${uic_dir}"/port_v3 || die
212 + fi
213 +
214 + multibuild_merge_root "${tmp_root}" "${D}"
215 + python_optimize
216 + }
217 + python_foreach_impl run_in_build_dir installation
218 +
219 + einstalldocs
220 +
221 + if use examples; then
222 + insinto /usr/share/doc/${PF}
223 + doins -r examples
224 + fi
225 +}