/[gentoo-x86]/eclass/python.eclass
Gentoo

Diff of /eclass/python.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.139 Revision 1.144
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.139 2011/10/15 20:58:08 phajdan.jr Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/python.eclass,v 1.144 2012/01/01 05:02:27 floppym Exp $
4 4
5# @ECLASS: python.eclass 5# @ECLASS: python.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Gentoo Python Project <python@gentoo.org> 7# Gentoo Python Project <python@gentoo.org>
8# @BLURB: Eclass for Python packages 8# @BLURB: Eclass for Python packages
9# @DESCRIPTION: 9# @DESCRIPTION:
10# The python eclass contains miscellaneous, useful functions for Python packages. 10# The python eclass contains miscellaneous, useful functions for Python packages.
11 11
12# Must call inherit before EXPORT_FUNCTIONS to avoid QA warning.
13if [[ -z "${_PYTHON_ECLASS_INHERITED}" ]]; then
12inherit multilib 14 inherit multilib
15fi
16
17# Export pkg_setup every time to avoid issues with eclass inheritance order.
18if ! has "${EAPI:-0}" 0 1 2 3 || { has "${EAPI:-0}" 2 3 && [[ -n "${PYTHON_USE_WITH}" || -n "${PYTHON_USE_WITH_OR}" ]]; }; then
19 EXPORT_FUNCTIONS pkg_setup
20fi
21
22# Avoid processing this eclass more than once.
23if [[ -z "${_PYTHON_ECLASS_INHERITED}" ]]; then
24_PYTHON_ECLASS_INHERITED="1"
13 25
14if ! has "${EAPI:-0}" 0 1 2 3 4; then 26if ! has "${EAPI:-0}" 0 1 2 3 4; then
15 die "API of python.eclass in EAPI=\"${EAPI}\" not established" 27 die "API of python.eclass in EAPI=\"${EAPI}\" not established"
16fi 28fi
17 29
18_CPYTHON2_GLOBALLY_SUPPORTED_ABIS=(2.4 2.5 2.6 2.7) 30_CPYTHON2_GLOBALLY_SUPPORTED_ABIS=(2.4 2.5 2.6 2.7)
19_CPYTHON3_GLOBALLY_SUPPORTED_ABIS=(3.1 3.2) 31_CPYTHON3_GLOBALLY_SUPPORTED_ABIS=(3.1 3.2)
20_JYTHON_GLOBALLY_SUPPORTED_ABIS=(2.5-jython) 32_JYTHON_GLOBALLY_SUPPORTED_ABIS=(2.5-jython)
21_PYPY_GLOBALLY_SUPPORTED_ABIS=(2.7-pypy-1.5) 33_PYPY_GLOBALLY_SUPPORTED_ABIS=(2.7-pypy-1.7)
22_PYTHON_GLOBALLY_SUPPORTED_ABIS=(${_CPYTHON2_GLOBALLY_SUPPORTED_ABIS[@]} ${_CPYTHON3_GLOBALLY_SUPPORTED_ABIS[@]} ${_JYTHON_GLOBALLY_SUPPORTED_ABIS[@]} ${_PYPY_GLOBALLY_SUPPORTED_ABIS[@]}) 34_PYTHON_GLOBALLY_SUPPORTED_ABIS=(${_CPYTHON2_GLOBALLY_SUPPORTED_ABIS[@]} ${_CPYTHON3_GLOBALLY_SUPPORTED_ABIS[@]} ${_JYTHON_GLOBALLY_SUPPORTED_ABIS[@]} ${_PYPY_GLOBALLY_SUPPORTED_ABIS[@]})
23 35
24# ================================================================================================ 36# ================================================================================================
25# ===================================== HANDLING OF METADATA ===================================== 37# ===================================== HANDLING OF METADATA =====================================
26# ================================================================================================ 38# ================================================================================================
384 _CYAN= 396 _CYAN=
385 _NORMAL= 397 _NORMAL=
386 fi 398 fi
387} 399}
388 400
389unset PYTHON_PKG_SETUP_EXECUTED
390
391_python_check_python_pkg_setup_execution() { 401_python_check_python_pkg_setup_execution() {
392 [[ " ${FUNCNAME[@]:1} " =~ " "(python_set_active_version|python_pkg_setup)" " ]] && return 402 [[ " ${FUNCNAME[@]:1} " =~ " "(python_set_active_version|python_pkg_setup)" " ]] && return
393 403
394 if ! has "${EAPI:-0}" 0 1 2 3 && [[ -z "${PYTHON_PKG_SETUP_EXECUTED}" ]]; then 404 if ! has "${EAPI:-0}" 0 1 2 3 && [[ -z "${PYTHON_PKG_SETUP_EXECUTED}" ]]; then
395 die "python_pkg_setup() not called" 405 die "python_pkg_setup() not called"
462 unset -f python_pkg_setup_check_USE_flags 472 unset -f python_pkg_setup_check_USE_flags
463 fi 473 fi
464 474
465 PYTHON_PKG_SETUP_EXECUTED="1" 475 PYTHON_PKG_SETUP_EXECUTED="1"
466} 476}
467
468if ! has "${EAPI:-0}" 0 1 2 3 || { has "${EAPI:-0}" 2 3 && [[ -n "${PYTHON_USE_WITH}" || -n "${PYTHON_USE_WITH_OR}" ]]; }; then
469 EXPORT_FUNCTIONS pkg_setup
470fi
471 477
472_PYTHON_SHEBANG_BASE_PART_REGEX='^#![[:space:]]*([^[:space:]]*/usr/bin/env[[:space:]]+)?([^[:space:]]*/)?(jython|pypy-c|python)' 478_PYTHON_SHEBANG_BASE_PART_REGEX='^#![[:space:]]*([^[:space:]]*/usr/bin/env[[:space:]]+)?([^[:space:]]*/)?(jython|pypy-c|python)'
473 479
474# @FUNCTION: python_convert_shebangs 480# @FUNCTION: python_convert_shebangs
475# @USAGE: [-q|--quiet] [-r|--recursive] [-x|--only-executables] [--] <Python_ABI|Python_version> <file|directory> [files|directories] 481# @USAGE: [-q|--quiet] [-r|--recursive] [-x|--only-executables] [--] <Python_ABI|Python_version> <file|directory> [files|directories]
1592 fi 1598 fi
1593 done 1599 done
1594 1600
1595 popd > /dev/null || die "popd failed" 1601 popd > /dev/null || die "popd failed"
1596 1602
1603 # This is per bug #390691, without the duplication refactor, and with
1604 # the 3-way structure per comment #6. This enable users with old
1605 # coreutils to upgrade a lot easier (you need to upgrade python+portage
1606 # before coreutils can be upgraded).
1597 if ROOT="/" has_version sys-apps/coreutils; then 1607 if ROOT="/" has_version '>=sys-apps/coreutils-6.9.90'; then
1598 cp -fr --preserve=all --no-preserve=context "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed" 1608 cp -fr --preserve=all --no-preserve=context "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed"
1609 elif ROOT="/" has_version sys-apps/coreutils; then
1610 cp -fr --preserve=all "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed"
1599 else 1611 else
1600 cp -fpr "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed" 1612 cp -fpr "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed"
1601 fi 1613 fi
1602 done 1614 done
1603 1615
3108} 3120}
3109 3121
3110# ================================================================================================ 3122# ================================================================================================
3111# ===================================== DEPRECATED FUNCTIONS ===================================== 3123# ===================================== DEPRECATED FUNCTIONS =====================================
3112# ================================================================================================ 3124# ================================================================================================
3125
3126fi # _PYTHON_ECLASS_INHERITED

Legend:
Removed from v.1.139  
changed lines
  Added in v.1.144

  ViewVC Help
Powered by ViewVC 1.1.20