Gentoo Archives: gentoo-commits

From: Thomas Sachau <tommy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/multilib-portage:master commit in: dev-python/pycairo/, dev-python/pycairo/files/
Date: Sun, 26 Apr 2015 21:16:53
Message-Id: 1430083112.ee67ea8a9daea840351a640688dbfd9b5c476fc6.tommy@gentoo
1 commit: ee67ea8a9daea840351a640688dbfd9b5c476fc6
2 Author: Thomas Sachau <tommy <AT> gentoo <DOT> org>
3 AuthorDate: Sun Apr 26 21:18:32 2015 +0000
4 Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org>
5 CommitDate: Sun Apr 26 21:18:32 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/multilib-portage.git/commit/?id=ee67ea8a
7
8 Update pycairo, initial patch by vloo via irc
9
10 .../pycairo/files/pycairo-1.10.0-waf-unpack.patch | 12 ++
11 dev-python/pycairo/pycairo-1.10.0-r2.ebuild | 167 --------------------
12 dev-python/pycairo/pycairo-1.10.0-r3.ebuild | 174 ---------------------
13 dev-python/pycairo/pycairo-1.10.0-r4.ebuild | 19 ++-
14 4 files changed, 25 insertions(+), 347 deletions(-)
15
16 diff --git a/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch b/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch
17 new file mode 100644
18 index 0000000..7d54ba1
19 --- /dev/null
20 +++ b/dev-python/pycairo/files/pycairo-1.10.0-waf-unpack.patch
21 @@ -0,0 +1,12 @@
22 +--- a/waf
23 ++++ b/waf
24 +@@ -153,6 +153,9 @@
25 + return dir
26 +
27 + wafdir = find_lib()
28 ++if sys.argv[1:] == ['unpack']:
29 ++ print(wafdir)
30 ++ exit()
31 + sys.path.insert(0, wafdir)
32 + from waflib.Tools.c_config import MACRO_TO_DESTOS
33 + MACRO_TO_DESTOS['__POWERPC__'] = 'darwin'
34
35 diff --git a/dev-python/pycairo/pycairo-1.10.0-r2.ebuild b/dev-python/pycairo/pycairo-1.10.0-r2.ebuild
36 deleted file mode 100644
37 index d6c42a7..0000000
38 --- a/dev-python/pycairo/pycairo-1.10.0-r2.ebuild
39 +++ /dev/null
40 @@ -1,167 +0,0 @@
41 -# Copyright 1999-2012 Gentoo Foundation
42 -# Distributed under the terms of the GNU General Public License v2
43 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pycairo/pycairo-1.10.0-r2.ebuild,v 1.7 2012/02/13 19:35:24 xarthisius Exp $
44 -
45 -EAPI="3"
46 -PYTHON_DEPEND="2:2.6 3:3.1"
47 -SUPPORT_PYTHON_ABIS="1"
48 -RESTRICT_PYTHON_ABIS="2.4 2.5 3.0 *-jython"
49 -
50 -inherit eutils python waf-utils
51 -
52 -PYCAIRO_PYTHON2_VERSION="${PV}"
53 -PYCAIRO_PYTHON3_VERSION="${PV}"
54 -
55 -DESCRIPTION="Python bindings for the cairo library"
56 -HOMEPAGE="http://cairographics.org/pycairo/ http://pypi.python.org/pypi/pycairo"
57 -SRC_URI="http://cairographics.org/releases/py2cairo-${PYCAIRO_PYTHON2_VERSION}.tar.bz2
58 - http://cairographics.org/releases/pycairo-${PYCAIRO_PYTHON3_VERSION}.tar.bz2
59 - http://dev.gentoo.org/~binki/distfiles/dev-python/${PN}/${P}-waf-multilib.patch"
60 -
61 -# LGPL-3 for pycairo 1.10.0.
62 -# || ( LGPL-2.1 MPL-1.1 ) for pycairo 1.8.10.
63 -LICENSE="LGPL-3 || ( LGPL-2.1 MPL-1.1 )"
64 -SLOT="0"
65 -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
66 -IUSE="doc examples +svg test"
67 -
68 -RDEPEND=">=x11-libs/cairo-1.10.0[svg?]"
69 -DEPEND="${RDEPEND}
70 - dev-util/pkgconfig
71 - test? ( dev-python/pytest )"
72 -
73 -PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
74 -
75 -# In case if waf-utils.eclass actually accepts waf-utils_waflibdir() as
76 -# a function.
77 -unset waf-utils_waflibdir 2>/dev/null
78 -
79 -# @FUNCTION: waf-utils_waflibdir
80 -# @USAGE: [<waf-binary>]
81 -# @DESCRIPTION:
82 -# Echoes the absolute path to the directory containing waf-based
83 -# project's waflib python module. Ensures that the waflib shipped with a
84 -# project is unpacked if it isn't already. This waflib may be safely
85 -# patched because waf-lite will not touch the waflib directory when it
86 -# is run if it already exists. Uses the waf binary in WAF_BINARY or the
87 -# first argument.
88 -#
89 -# @EXAMPLE
90 -# @CODE
91 -# pushd "$(waf-utils_waflibdir)" || die "Unable to patch waflib"
92 -# epatch "${FILESDIR}"/${P}-waf-fix.patch
93 -# popd
94 -# @CODE
95 -#
96 -# Note that if you are using the python eclass, you must either call
97 -# python_set_active_version or call waf-utils_waflibdir() from within a
98 -# function run by python_execute().
99 -#
100 -# @CODE
101 -# SUPPORT_PYTHON_ABIS=1
102 -# inherit python
103 -#
104 -# src_prepare() {
105 -# python_copy_sources
106 -#
107 -# myprepare() {
108 -# epatch "${FILESDIR}"/${P}-sourcecode-fix.patch
109 -#
110 -# pushd "$(waf-utils_saflibdir "$(PYTHON)" waf)" || die "Unable to patch waflib"
111 -# epatch "${FILESDIR}"/${P}-waf-fix.patch
112 -# popd
113 -# }
114 -# python_execute_function -s myprepare
115 -# }
116 -# @CODE
117 -waf-utils_waflibdir() {
118 - debug-print-function ${FUNCNAME} "$@"
119 -
120 - # @ECLASS-VARIABLE: WAF_BINARY
121 - # @DESCRIPTION:
122 - # Eclass can use different waf executable. Usually it is located in "${S}/waf".
123 - : ${WAF_BINARY:="${S}/waf"}
124 -
125 - local waf_binary=${WAF_BINARY}
126 - [[ -n ${1} ]] && waf_binary=${1}
127 -
128 - python -c "import imp, sys; sys.argv[0] = '${waf_binary}'; waflite = imp.load_source('waflite', '${waf_binary}'); print(waflite.find_lib());" \
129 - || die "Unable to locate or unpack waflib module from the waf script at ${waf_binary}"
130 -}
131 -
132 -# When moving between the different build dirs, we want to use the waf
133 -# associated with each build dir.
134 -WAF_BINARY=./waf
135 -
136 -src_prepare() {
137 -
138 - pushd "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" > /dev/null
139 - rm -f src/config.h || die
140 - epatch "${FILESDIR}/${PN}-1.10.0-svg_check.patch"
141 - popd > /dev/null
142 -
143 - pushd "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" > /dev/null
144 - rm -f src/config.h || die
145 - epatch "${FILESDIR}/py2cairo-1.10.0-svg_check.patch"
146 - popd > /dev/null
147 -
148 - preparation() {
149 - local srcdir=${WORKDIR}/${P}-${PYTHON_ABI}
150 - if [[ "${PYTHON_ABI}" == 3.* ]]; then
151 - cp -r "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" "${srcdir}"
152 - else
153 - cp -r "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" "${srcdir}"
154 - fi
155 -
156 - cd "$(waf-utils_waflibdir ${srcdir}/waf)" || die "Unable to patch waflib"
157 - epatch "${DISTDIR}"/${P}-waf-multilib.patch
158 - }
159 - python_execute_function preparation
160 -}
161 -
162 -src_configure() {
163 - if ! use svg; then
164 - export PYCAIRO_DISABLE_SVG="1"
165 - fi
166 -
167 - python_execute_function -s waf-utils_src_configure --nopyc --nopyo
168 -}
169 -
170 -src_compile() {
171 - python_execute_function -s waf-utils_src_compile
172 -}
173 -
174 -src_test() {
175 - test_installation() {
176 - ./waf install --destdir="${T}/tests/${PYTHON_ABI}"
177 - }
178 - python_execute_function -q -s test_installation
179 -
180 - python_execute_py.test -P '${T}/tests/${PYTHON_ABI}${EPREFIX}$(python_get_sitedir)' -s
181 -}
182 -
183 -src_install() {
184 - python_execute_function -s waf-utils_src_install
185 -
186 - dodoc AUTHORS NEWS README || die "dodoc failed"
187 -
188 - if use doc; then
189 - pushd doc/_build/html > /dev/null
190 - insinto /usr/share/doc/${PF}/html
191 - doins -r [a-z]* _static || die "Installation of documentation failed"
192 - popd > /dev/null
193 - fi
194 -
195 - if use examples; then
196 - insinto /usr/share/doc/${PF}/examples
197 - doins -r examples/* || die "Installation of examples failed"
198 - fi
199 -}
200 -
201 -pkg_postinst() {
202 - python_mod_optimize cairo
203 -}
204 -
205 -pkg_postrm() {
206 - python_mod_cleanup cairo
207 -}
208
209 diff --git a/dev-python/pycairo/pycairo-1.10.0-r3.ebuild b/dev-python/pycairo/pycairo-1.10.0-r3.ebuild
210 deleted file mode 100644
211 index 5ebe57a..0000000
212 --- a/dev-python/pycairo/pycairo-1.10.0-r3.ebuild
213 +++ /dev/null
214 @@ -1,174 +0,0 @@
215 -# Copyright 1999-2012 Gentoo Foundation
216 -# Distributed under the terms of the GNU General Public License v2
217 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pycairo/pycairo-1.10.0-r2.ebuild,v 1.7 2012/02/13 19:35:24 xarthisius Exp $
218 -
219 -EAPI="4"
220 -PYTHON_DEPEND="2:2.6 3:3.1"
221 -SUPPORT_PYTHON_ABIS="1"
222 -RESTRICT_PYTHON_ABIS="2.4 2.5 3.0 *-jython"
223 -
224 -inherit eutils python waf-utils
225 -
226 -PYCAIRO_PYTHON2_VERSION="${PV}"
227 -PYCAIRO_PYTHON3_VERSION="${PV}"
228 -
229 -DESCRIPTION="Python bindings for the cairo library"
230 -HOMEPAGE="http://cairographics.org/pycairo/ http://pypi.python.org/pypi/pycairo"
231 -SRC_URI="http://cairographics.org/releases/py2cairo-${PYCAIRO_PYTHON2_VERSION}.tar.bz2
232 - http://cairographics.org/releases/pycairo-${PYCAIRO_PYTHON3_VERSION}.tar.bz2
233 - http://dev.gentoo.org/~binki/distfiles/dev-python/${PN}/${P}-waf-multilib.patch"
234 -
235 -# LGPL-3 for pycairo 1.10.0.
236 -# || ( LGPL-2.1 MPL-1.1 ) for pycairo 1.8.10.
237 -LICENSE="LGPL-3 || ( LGPL-2.1 MPL-1.1 )"
238 -SLOT="0"
239 -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
240 -IUSE="doc examples +svg test xcb"
241 -
242 -RDEPEND=">=x11-libs/cairo-1.10.0[svg?,xcb?]
243 - xcb? ( x11-libs/xpyb )"
244 -DEPEND="${RDEPEND}
245 - virtual/pkgconfig
246 - test? ( dev-python/pytest )"
247 -
248 -PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
249 -
250 -# In case if waf-utils.eclass actually accepts waf-utils_waflibdir() as
251 -# a function.
252 -unset waf-utils_waflibdir 2>/dev/null
253 -
254 -# @FUNCTION: waf-utils_waflibdir
255 -# @USAGE: [<waf-binary>]
256 -# @DESCRIPTION:
257 -# Echoes the absolute path to the directory containing waf-based
258 -# project's waflib python module. Ensures that the waflib shipped with a
259 -# project is unpacked if it isn't already. This waflib may be safely
260 -# patched because waf-lite will not touch the waflib directory when it
261 -# is run if it already exists. Uses the waf binary in WAF_BINARY or the
262 -# first argument.
263 -#
264 -# @EXAMPLE
265 -# @CODE
266 -# pushd "$(waf-utils_waflibdir)" || die "Unable to patch waflib"
267 -# epatch "${FILESDIR}"/${P}-waf-fix.patch
268 -# popd
269 -# @CODE
270 -#
271 -# Note that if you are using the python eclass, you must either call
272 -# python_set_active_version or call waf-utils_waflibdir() from within a
273 -# function run by python_execute().
274 -#
275 -# @CODE
276 -# SUPPORT_PYTHON_ABIS=1
277 -# inherit python
278 -#
279 -# src_prepare() {
280 -# python_copy_sources
281 -#
282 -# myprepare() {
283 -# epatch "${FILESDIR}"/${P}-sourcecode-fix.patch
284 -#
285 -# pushd "$(waf-utils_saflibdir "$(PYTHON)" waf)" || die "Unable to patch waflib"
286 -# epatch "${FILESDIR}"/${P}-waf-fix.patch
287 -# popd
288 -# }
289 -# python_execute_function -s myprepare
290 -# }
291 -# @CODE
292 -waf-utils_waflibdir() {
293 - debug-print-function ${FUNCNAME} "$@"
294 -
295 - # @ECLASS-VARIABLE: WAF_BINARY
296 - # @DESCRIPTION:
297 - # Eclass can use different waf executable. Usually it is located in "${S}/waf".
298 - : ${WAF_BINARY:="${S}/waf"}
299 -
300 - local waf_binary=${WAF_BINARY}
301 - [[ -n ${1} ]] && waf_binary=${1}
302 -
303 - python -c "import imp, sys; sys.argv[0] = '${waf_binary}'; waflite = imp.load_source('waflite', '${waf_binary}'); print(waflite.find_lib());" \
304 - || die "Unable to locate or unpack waflib module from the waf script at ${waf_binary}"
305 -}
306 -
307 -# When moving between the different build dirs, we want to use the waf
308 -# associated with each build dir.
309 -WAF_BINARY=./waf
310 -
311 -src_prepare() {
312 -
313 - pushd "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" > /dev/null
314 - rm -f src/config.h || die
315 - epatch "${FILESDIR}/${PN}-1.10.0-svg_check.patch"
316 - epatch "${FILESDIR}/${PN}-1.10.0-xpyb.patch"
317 - popd > /dev/null
318 -
319 - pushd "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" > /dev/null
320 - rm -f src/config.h || die
321 - epatch "${FILESDIR}/py2cairo-1.10.0-svg_check.patch"
322 - epatch "${FILESDIR}/py2cairo-1.10.0-xpyb.patch"
323 - popd > /dev/null
324 -
325 - preparation() {
326 - local srcdir=${WORKDIR}/${P}-${PYTHON_ABI}
327 - if [[ "${PYTHON_ABI}" == 3.* ]]; then
328 - cp -r "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" "${srcdir}"
329 - else
330 - cp -r "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" "${srcdir}"
331 - fi
332 -
333 - cd "$(waf-utils_waflibdir ${srcdir}/waf)" || die "Unable to patch waflib"
334 - epatch "${DISTDIR}"/${P}-waf-multilib.patch
335 - }
336 - python_execute_function preparation
337 -}
338 -
339 -src_configure() {
340 - if ! use svg; then
341 - export PYCAIRO_DISABLE_SVG=1
342 - fi
343 -
344 - if ! use xcb; then
345 - export PYCAIRO_DISABLE_XPYB=1
346 - fi
347 -
348 - python_execute_function -s waf-utils_src_configure --nopyc --nopyo
349 -}
350 -
351 -src_compile() {
352 - python_execute_function -s waf-utils_src_compile
353 -}
354 -
355 -src_test() {
356 - test_installation() {
357 - ./waf install --destdir="${T}/tests/${PYTHON_ABI}"
358 - }
359 - python_execute_function -q -s test_installation
360 -
361 - python_execute_py.test -P '${T}/tests/${PYTHON_ABI}${EPREFIX}$(python_get_sitedir)' -s
362 -}
363 -
364 -src_install() {
365 - python_execute_function -s waf-utils_src_install
366 -
367 - dodoc AUTHORS NEWS README || die "dodoc failed"
368 -
369 - if use doc; then
370 - pushd doc/_build/html > /dev/null
371 - insinto /usr/share/doc/${PF}/html
372 - doins -r [a-z]* _static || die "Installation of documentation failed"
373 - popd > /dev/null
374 - fi
375 -
376 - if use examples; then
377 - insinto /usr/share/doc/${PF}/examples
378 - doins -r examples/* || die "Installation of examples failed"
379 - fi
380 -}
381 -
382 -pkg_postinst() {
383 - python_mod_optimize cairo
384 -}
385 -
386 -pkg_postrm() {
387 - python_mod_cleanup cairo
388 -}
389
390 diff --git a/dev-python/pycairo/pycairo-1.10.0-r4.ebuild b/dev-python/pycairo/pycairo-1.10.0-r4.ebuild
391 index be59836..06b1311 100644
392 --- a/dev-python/pycairo/pycairo-1.10.0-r4.ebuild
393 +++ b/dev-python/pycairo/pycairo-1.10.0-r4.ebuild
394 @@ -1,9 +1,10 @@
395 -# Copyright 1999-2013 Gentoo Foundation
396 +# Copyright 1999-2015 Gentoo Foundation
397 # Distributed under the terms of the GNU General Public License v2
398 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pycairo/pycairo-1.10.0-r4.ebuild,v 1.4 2013/01/14 17:29:27 bicatali Exp $
399 +# $Header: /var/cvsroot/gentoo-x86/dev-python/pycairo/pycairo-1.10.0-r4.ebuild,v 1.21 2015/04/08 08:05:21 mgorny Exp $
400
401 EAPI="5"
402 -PYTHON_COMPAT=( python2_{6,7} python3_{1,2,3} )
403 +PYTHON_COMPAT=( python{2_7,3_3,3_4} )
404 +PYTHON_REQ_USE='threads(+)'
405
406 inherit eutils python-r1 waf-utils
407
408 @@ -35,8 +36,6 @@ DEPEND="${RDEPEND}
409 test? ( dev-python/pytest[${PYTHON_USEDEP}] )
410 "
411
412 -PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
413 -
414 # In case if waf-utils.eclass actually accepts waf-utils_waflibdir() as
415 # a function.
416 unset waf-utils_waflibdir 2>/dev/null
417 @@ -104,6 +103,7 @@ src_prepare() {
418 rm -f src/config.h || die
419 epatch "${FILESDIR}/${PN}-1.10.0-svg_check.patch"
420 epatch "${FILESDIR}/${PN}-1.10.0-xpyb.patch"
421 + epatch "${FILESDIR}/${PN}-1.10.0-waf-unpack.patch"
422 epatch "${FILESDIR}"/py2cairo-1.10.0-ppc-darwin.patch
423 cd "$(waf-utils_waflibdir waf)" || die "Unable to patch waflib"
424 epatch "${DISTDIR}"/${P}-waf-multilib.patch
425 @@ -119,8 +119,14 @@ src_prepare() {
426 popd > /dev/null
427
428 preparation() {
429 - if [[ ${EPYTHON} == python3.* ]]; then
430 + if python_is_python3; then
431 cp -r -l "${WORKDIR}/pycairo-${PYCAIRO_PYTHON3_VERSION}" "${BUILD_DIR}" || die
432 + pushd "${BUILD_DIR}" > /dev/null
433 + wafdir="$(./waf unpack)"
434 + pushd "${wafdir}" > /dev/null
435 + epatch "${FILESDIR}/${PN}-1.10.0-waf-py3_4.patch"
436 + popd > /dev/null
437 + popd > /dev/null
438 else
439 cp -r -l "${WORKDIR}/py2cairo-${PYCAIRO_PYTHON2_VERSION}" "${BUILD_DIR}" || die
440 fi
441 @@ -149,6 +155,7 @@ src_configure() {
442 }
443
444 src_compile() {
445 + MAKEOPTS="$MAKEOPTS -j1"
446 python_foreach_impl run_in_build_dir waf-utils_src_compile
447 }