Commit message (Collapse)AuthorAgeFilesLines
* python-utils-r1.eclass: _python_set_impls, add integrity checkMichał Górny2017-03-081-3/+19
| | | | | | | Add integrity check for multi-inherits, i.e. ensure that PYTHON_COMPAT has not changed between successive calls to _python_set_impls. If it did (e.g. because of eclass+ebuild setting different values), then we abort not to give surprising results to the user.
* python-utils-r1.eclass: _python_set_impls, use local varsMichał Górny2017-03-081-5/+6
| | | | | | Refactor _python_set_impls to use local variables throughout the function and assign global values at the end. This prepares it for double-inherit integrity checks. NFC.
* python-utils-r1.eclass: python_wrapper_setup, fix exporting envMichał Górny2017-03-081-10/+10
| | | | | | | | Fix python_wrapper_setup function to move setting environment variables for PATH and PKG_CONFIG_PATH outside the 'if'. Otherwise, they are only set on the initial invocation of python_wrapper_setup for the particular impl and do not apply to subsequent invocations (e.g. further distutils-r1 phases).
* Drop $Id$ per council decision in bug #611234.Robin H. Johnson2017-02-281-1/+0
| | | | Signed-off-by: Robin H. Johnson <>
* python-utils-r1.eclass: Require pypy{,3} >= 5, #609292Michał Górny2017-02-171-2/+2
| | | | | Bump the dependency on PyPy to require relatively recent versions, to ease package maintenance.
* python-utils-r1.eclass: Enable python3_6 targetMichał Górny2017-01-251-3/+3
* python-utils-r1.eclass: drop support for python3_3Mike Gilbert2016-10-271-3/+3
* python-utils-r1.eclass: try C.UTF-8 and en_GB.UTF-8 in python_export_utf8_localeMike Gilbert2016-09-231-1/+1
* python-utils-r1.eclass: override LC_ALL in _python_check_locale_sanityMike Gilbert2016-09-231-1/+1
* python-utils-r1.eclass: Add additional .opt-1 compilation for py3.5+Michał Górny2016-06-061-0/+6
* python-utils-r1.eclass: python_wrapper_setup, fix pythonN-config cleanupMichał Górny2016-05-151-1/+1
* python-utils-r1.eclass: Make python_{script,module}root vars privateMichał Górny2016-05-141-36/+24
| | | | | | | Remove python_scriptroot & python_moduleroot from the public eclass API, in favor of calls to python_scriptinto and python_moduleinto. This feature was seldom used, not listed in the official API guide, and the *into functions is more in line with the PMS.
* python-utils-r1.eclass: stop respecting DESTTREE in python_do*/new*Michał Górny2016-05-141-3/+3
| | | | | | | | | | Replace the code respecting current value of ${DESTTREE} in favor of using /usr unconditionally. The feature was extremely unlikely to be ever used (only if you did 'into ...; python_do*', quite confusing and relied on semi-internal package manager variables. Furthermore, it was potentially broken as it relied on DESTTREE having an initial '/usr' value which is not warranted by the PMS.
* python-utils-r1.eclass: Do not prefer Jython & PyPy over CPythonMichał Górny2016-02-061-2/+2
| | | | | | | | | | | Fix _PYTHON_ALL_IMPLS to list Jython & PyPy before CPython versions, therefore causing them not to be implicitly preferred over CPython. The implementation reordering done in b284e54 ("reorder implementations in semi-ascending order") has caused PyPy & Jython to be listed after CPython. While seemingly it was more intuitive to list third-party implementations after the reference one, it also implicitly caused them to be preferred by python-exec.
* python*-r1.eclass: Commonize PYTHON_COMPAT processing, cache the resultMichał Górny2015-12-221-0/+49
| | | | | | | | | Introduce a common _python_set_impls function in python-utils-r1.eclass that validates and processes PYTHON_COMPAT, then stores the result in _PYTHON_SUPPORTED_IMPLS and _PYTHON_UNSUPPORTED_IMPLS variables. Reuse those variables in all python-r1 suite eclasses, effectively reducing code duplication and providing cache for repeated implementation support checks.
* python*-r1.eclass: Replace non-portable use of 'declare -g'Michał Górny2015-12-111-1/+2
| | | | | | Replace uses of 'declare -g -r' (bash-4.2+) with 'readonly'. Reported by Arfrever. This time use split assignments followed by readonly calls since combined calls work unreliably.
* Revert "python*-r1.eclass: Replace non-portable use of 'declare -g'"Mike Gilbert2015-12-111-1/+1
| | | | | | This reverts commit 44d3345d828af162b2fbfd623dd8f0d7ac4ae2f9. This was triggering "No supported implementation in PYTHON_COMPAT.".
* python*-r1.eclass: Replace non-portable use of 'declare -g'Michał Górny2015-12-111-1/+1
| | | | | Replace uses of 'declare -g -r' (bash-4.2+) with 'readonly'. Reported by Arfrever.
* python-utils-r1.eclass: Disable jython2_5Michał Górny2015-12-091-4/+2
* python-utils-r1.eclass: Reorder implementations to semi-ascending orderMichał Górny2015-12-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | Reorder the Python implementations to ascending version order, with CPython listed first and other implementations in descending preference. The previous ordering has been used for two reasons: 1. There were packages which supported Python 3.x or PyPy partially but their documentation builds or test functions required CPython 2.x. The specific ordering caused python_export_best (the predecessor of python_setup) to use CPython 2.x for those tasks. This is now replaced by explicit implementation restrictions in python_setup. 2. PyPy setup runs were usually slower than CPython, and CPython 3.x runs were often slower due to 2to3 calls. Combined with parallel build runs, this ordering caused slower builds to start earlier and sometimes resulted in more efficient use of threads. However, nowadays we no longer do parallel builds. Therefore, it seems reasonable to finally reorder the implementations into a more intuitive order.
* python-utils-r1.eclass: Mark _PYTHON_ALL_IMPLS read-onlyMichał Górny2015-12-091-1/+1
* python-utils-r1.eclass: Change python_export_utf8_locale to deal with LC_ALL=CMike Gilbert2015-12-031-7/+15
| | | | | | Paludis sets LC_ALL=C to ensure a 'sane' build environment. We only want to override LC_CTYPE, so we break LC_ALL into separate LC_* overrides and set LC_ALL to blank.
* python-utils-r1.eclass: _python_check_locale_sanity, fix quoting issueMichał Górny2015-11-301-1/+1
* python-utils-r1.eclass: Reduce python_do*/new* ban to EAPI < 4Michał Górny2015-11-291-6/+6
| | | | | | Fix python_do* and python_new* helper ban to EAPIs older than 4. That was the original intent, and restricting it to 5+ breaks old dev-lang/python ebuilds.
* python-utils-r1.eclass: Enable EAPI 6Michał Górny2015-11-281-1/+1
* python-utils-r1.eclass: Make heredocs consistentMichał Górny2015-11-281-5/+5
* python-utils-r1.eclass: Support nonfatal in python_do* and python_new*Michał Górny2015-11-281-3/+3
* python-utils-r1.eclass: Remove unneeded multilib inherit in EAPI 6Michał Górny2015-11-281-2/+2
* python-utils-r1.eclass: Make python_fix_shebang QAwarns fatal in EAPI 6Michał Górny2015-11-281-4/+10
* python-utils-r1.eclass: Ban installation helpers in EAPIs < 5Michał Górny2015-11-281-0/+9
| | | | | | Ban python_do* and python_new* helpers in EAPIs older than 5. We should ban them in python-any-r1 uses, actually but that would break dev-python/pypy* ebuilds as they are written now.
* python-utils-r1.eclass: Replace local INSDESTTREE with subshellsMichał Górny2015-11-281-8/+8
| | | | | Replace the 'local INSDESTTREE' hacks (which are PMS-valid yet deprecated) with safer subshells.
* python-utils-r1.eclass: Remove py2.6 note from python_optimizeMichał Górny2015-11-281-3/+0
* python-utils-r1.eclass: python_fix_shebang, accept symlink as parameterMichał Górny2015-11-281-1/+1
| | | | | | | Add '-H' option to find to allow following symlinks passed as parameters. This makes python_fix_shebang handle either file symlinks passed directly, or directory symlinks passed directly for recursive traversal. Both were currently ignored silently.
* python-utils-r1.eclass: Add missing ||die on file readMichał Górny2015-11-281-1/+3
* python-utils-r1.eclass: Add missing ||die on 'cat' file writesMichał Górny2015-11-281-3/+3
* python-utils-r1.eclass: Add missing ||die for external gettersMichał Górny2015-11-281-8/+11
* python-utils-r1.eclass: python_export_utf8_locale(), ensure sane localeMichał Górny2015-11-281-2/+22
| | | | | | Ensure that the locale selected by python_export_utf8_locale() conforms to POSIX-ish case conversions. Otherwise, we may accidentally force a locale that will break random ebuilds and programs.
* python-utils-r1.eclass: python_export(), always respect PYTHONMichał Górny2015-11-121-7/+5
| | | | | Respect pre-set PYTHON in python_export(), unless a new value is requested. Bail out if PYTHON is neither set, nor requested.
* python-utils-r1.eclass: wrapper, PYTHON_CONFIG is valid only for CPythonMichał Górny2015-11-111-1/+3
* python-utils-r1.eclass: Reuse PYTHON_CONFIG in python_wrapper_setup()Michał Górny2015-11-111-3/+3
* python-utils-r1.eclass: Support getting PYTHON_CONFIG pathMichał Górny2015-11-111-0/+47
* python-utils-r1.eclass: Obtain PYTHON_SITEDIR from the interpreterMichał Górny2015-11-111-11/+5
| | | | | Obtain the Python site-packages directory path using the distutils.sysconfig module, rather than hardcoding it.
* python-utils-r1.eclass: Obtain library path from the interpreterMichał Górny2015-11-111-14/+7
| | | | | | | Obtain library path as concatenation of LIBDIR and LDLIBRARY config variables (from sysconfig module) rather than hardcoding it in the eclass. This improves maintainability and fixes compatibility with ABIFLAGS-enabled Python 3.3+.
* python-utils-r1.eclass: Obtain include directory from the interpreterMichał Górny2015-11-111-14/+7
| | | | | | | Obtain the Python include directory using the distutils.sysconfig module of the Python interpreter rather than hardcoding values for it. This makes the code more maintainable, and clears the way for re-enabling ABIFLAGS on new Python versions.
* python-utils-r1.eclass: set PYTHON locally in python_export()Michał Górny2015-11-111-1/+7
| | | | | Ensure that PYTHON is always set inside python_export() for convenience. If it wasn't requested for explicit export, make it a local variable.
* python-utils-r1.eclass: python_export_utf8_locale: do not spew warnings when ↵Mike Frysinger2015-10-101-0/+3
| | | | | | | `locale` is not available If the `locale` isn't available, there's nothing this func can do, so just return quickly and assume the system is sane.
* python-utils-r1.eclass: Add support for python3.5Mike Gilbert2015-10-041-2/+2
* eclass: fix various doc errors #537392Mike Frysinger2015-08-141-1/+1
* proj/gentoo: Initial commitRobin H. Johnson2015-08-081-0/+1315
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <> X-Thanks: Alec Warner <> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <> - validation scripts X-Thanks: Patrick Lauer <> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed