summaryrefslogtreecommitdiff
path: root/dev-lang/python-exec
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2016-02-20 21:34:50 +0100
committerMichał Górny <mgorny@gentoo.org>2016-02-20 21:51:05 +0100
commit707a80df83281472ad24c9f4242880dbd1e586e3 (patch)
tree05c48c668f85cb74fbfff3fb6a048f234476a0f0 /dev-lang/python-exec
parent7872e19528754d72cbe55b6bd80e4ca9e91be094 (diff)
downloadgentoo-707a80df83281472ad24c9f4242880dbd1e586e3.tar.gz
gentoo-707a80df83281472ad24c9f4242880dbd1e586e3.tar.xz
dev-lang/python-exec: Bump to the most awesome so far 2.4 release
Version bump to 2.4. The new version improves symlink handling to fix problems when basename of custom symlinks collide with another system executable name (previously, this resulted in the wrong script being used), and adds support for per-script implementation preference overrides.
Diffstat (limited to 'dev-lang/python-exec')
-rw-r--r--dev-lang/python-exec/Manifest1
-rw-r--r--dev-lang/python-exec/python-exec-2.4.ebuild113
2 files changed, 114 insertions, 0 deletions
diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest
index 949521abb2d..8abd7f2c674 100644
--- a/dev-lang/python-exec/Manifest
+++ b/dev-lang/python-exec/Manifest
@@ -5,3 +5,4 @@ DIST python-exec-2.2.1.tar.bz2 82990 SHA256 c0fcb0c9593b26cf56cdf39ff265586a2203
DIST python-exec-2.2.tar.bz2 82269 SHA256 041dccf96c31bfac5eee9c43bdf511821449313a5b7d0bd745bed09151e1bffe SHA512 9492d94e7134b555a2f3b81cbd4e159074fed21b1471090547618da34dab70264a3fa40c8b7f79c42b61938655006dd5659e26389649a2401c26b4e0c90c9ac1 WHIRLPOOL 0b13d73c2e3c9606589201af34504c317965c29bb5cfe211479d893c606ca05dff62755fcba5f76d0a653a2719f36119e6f3db050ffa9f9bb01ef2ff7b68cb4d
DIST python-exec-2.3.2.tar.bz2 84786 SHA256 c575247d6152c4f524c716a7fed879ffeb9ca7d65fac591b05cf0d726bf9cd1f SHA512 7beb938e338eb9abc711f6ba844f57647b679fe3e2b2d984897de142b81506bf5614565c30c119905bbb6949c5717d8ba23d5c9fd0208d554cd62fb5bb0ca30e WHIRLPOOL 47a4e5d76c1f40184b54e1cb8535ddbbf0a0f3042f59190730e6270acbc1ff8ba303c88cee818e88108d64cf25c6f13d869cf5aba74f51f11bf408723b8af274
DIST python-exec-2.3.tar.bz2 84201 SHA256 04f7c92727f666e4f950157a39ed6ac0a48d1a746736cc515a97195a30a3f9fe SHA512 fc6b8702a7009873b42dcde4b1771913f43ab45d92c62b9856a903b48dbe32c4ab588abe239e4512d9e2026a24aff26ec572f5cd98613e6a0160dcbd642e0849 WHIRLPOOL 3c5c238dbbf174dbbede06109bfc32e9675f53ded011dffdc0ce9327adff778bec6d89aba18ea531548d3e1ed17808f1a29cc1085f620baada74d71695f56b41
+DIST python-exec-2.4.tar.bz2 85838 SHA256 d299e704e3a9c9b3657cb45ebb92efedab22d175b99a3dc01e03293671b53704 SHA512 288141da7dba0b208d9dbc2f8fd2051f25b8d09dec7fc29c4928444c0ee7dd2da9b4d2e5c66b599779a7880b3bf9b202db97b2e2703cbb344c53544550673be0 WHIRLPOOL 01bfb2ee01e1807d5de64052876530bfb7a4927d6274ae2df8a3e112dfeed8368fe484a8d4ddf2b1d24a0e7da79043863a5bb64ebadbf21bc60f81f1980d3e4b
diff --git a/dev-lang/python-exec/python-exec-2.4.ebuild b/dev-lang/python-exec/python-exec-2.4.ebuild
new file mode 100644
index 00000000000..121f31e7587
--- /dev/null
+++ b/dev-lang/python-exec/python-exec-2.4.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# Kids, don't do this at home!
+inherit python-utils-r1
+PYTHON_COMPAT=( "${_PYTHON_ALL_IMPLS[@]}" )
+
+# Inherited purely to have PYTHON_TARGET flags which will satisfy USE
+# dependencies and trigger necessary rebuilds.
+inherit python-r1
+
+DESCRIPTION="Python script wrapper"
+HOMEPAGE="https://bitbucket.org/mgorny/python-exec/"
+SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+# eselect-python because of /usr/bin/python* collisions and new config
+# python versions because of missing $scriptdir/python* symlinks
+RDEPEND="
+ !<app-eselect/eselect-python-20160206
+ !<dev-lang/python-2.7.10-r4:2.7
+ !<dev-lang/python-3.3.5-r4:3.3
+ !<dev-lang/python-3.4.3-r4:3.4
+ !<dev-lang/python-3.5.0-r3:3.5"
+
+src_configure() {
+ local pyimpls=() i EPYTHON
+ for i in "${PYTHON_COMPAT[@]}"; do
+ python_export "${i}" EPYTHON
+ pyimpls+=( "${EPYTHON}" )
+ done
+
+ local myconf=(
+ --with-python-impls="${pyimpls[*]}"
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ # Prepare and own the template
+ sed -n -e '/^#/p' config/python-exec.conf.example \
+ > "${T}"/python-exec.conf || die
+ insinto /etc/python-exec
+ doins "${T}"/python-exec.conf
+
+ local f
+ for f in python{,2,3}; do
+ # symlink the C wrapper for python to avoid shebang recursion
+ # bug #568974
+ dosym python-exec2c /usr/bin/"${f}"
+ done
+ for f in python{,2,3}-config 2to3 idle pydoc pyvenv; do
+ # those are python scripts (except for new python-configs)
+ # so symlink them via the python wrapper
+ dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
+ done
+}
+
+pkg_preinst() {
+ if [[ -e ${EROOT}etc/python-exec/python-exec.conf ]]; then
+ # preserve current configuration
+ cp "${EROOT}"etc/python-exec/python-exec.conf \
+ "${ED}"etc/python-exec/python-exec.conf || die
+ else
+ # preserve previous Python version preference
+ local py old_pythons=()
+ local config_base=${EROOT}etc/env.d/python
+
+ # start with the 'global' preference (2 vs 3)
+ if [[ -f ${config_base}/config ]]; then
+ old_pythons+=( "$(<${config_base}/config)" )
+ fi
+
+ # then try specific py3 selection
+ for py in 3; do
+ local target=
+
+ if [[ -f ${config_base}/python${py} ]]; then
+ # try the newer config files
+ target=$(<${config_base}/python${py})
+ elif [[ -L ${EROOT}/usr/bin/python${py} ]]; then
+ # check the older symlink format
+ target=$(readlink "${EROOT}/usr/bin/python${py}")
+
+ # check if it's actually old eselect symlink
+ [[ ${target} == python?.? ]] || target=
+ fi
+
+ # add the extra target if found and != global
+ if [[ ${target} && ${old_pythons[0]} != ${target} ]]; then
+ old_pythons+=( "${target}" )
+ fi
+ done
+
+ if [[ ${old_pythons[@]} ]]; then
+ einfo "Keeping the following Python preference: ${old_pythons[*]}"
+
+ local IFS=$'\n'
+ echo "${old_pythons[*]}" \
+ >> "${ED}"etc/python-exec/python-exec.conf || die
+ fi
+ fi
+}