diff options
author | Michał Górny <mgorny@gentoo.org> | 2016-01-09 23:55:16 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2016-01-11 17:00:03 +0100 |
commit | c9d797292c781e1ef3365f33552579937cd19bf4 (patch) | |
tree | 785c7db4adee5ee19d9f9a3bd2eba97ff56d98d7 /app-eselect | |
parent | dev-lang/python-exec: Bump to 2.2, needed for #568974 (diff) | |
download | gentoo-c9d797292c781e1ef3365f33552579937cd19bf4.tar.gz gentoo-c9d797292c781e1ef3365f33552579937cd19bf4.tar.bz2 gentoo-c9d797292c781e1ef3365f33552579937cd19bf4.zip |
app-eselect/eselect-python: Use C wrapper for python{,2,3}, #568974
Use python-exec2-c to wrap /usr/bin/python{,2,3}, rather than the Python
wrapper. This is both more correct, and fixes Prefix support since
non-Linux systems require programs referenced in shebangs to be real
executables rather than scripts.
Diffstat (limited to 'app-eselect')
-rw-r--r-- | app-eselect/eselect-python/eselect-python-20151117-r3.ebuild | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild b/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild new file mode 100644 index 000000000000..7c478b04704d --- /dev/null +++ b/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +if [[ ${PV} == "99999999" ]] ; then + inherit autotools git-r3 + EGIT_REPO_URI="git://anongit.gentoo.org/proj/${PN}.git" +else + SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +fi + +DESCRIPTION="Eselect module for management of multiple Python versions" +HOMEPAGE="https://www.gentoo.org/proj/en/Python/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="" + +RDEPEND=">=app-admin/eselect-1.2.3 + >=dev-lang/python-exec-2.2_pre:2 + !<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" + +# Those files are copied from built package +QA_PREBUILT=" + /usr/bin/python + /usr/bin/python2 + /usr/bin/python3" + +src_prepare() { + [[ ${PV} == "99999999" ]] && eautoreconf +} + +src_install() { + keepdir /etc/env.d/python + emake DESTDIR="${D}" install || die + + local f + for f in python{,2,3}; do + # can't use symlinks here since random stuff + # loves to do readlink on sys.executable... + newbin "${EPREFIX}/usr/lib/python-exec/python-exec2-c" "${f}" + done + for f in python{,2,3}-config 2to3 idle pydoc pyvenv; do + dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}" + done +} + +pkg_preinst() { + local py + + # Copy python[23] selection from the old format (symlink) + for py in 2 3; do + # default to none + declare -g "PREV_PYTHON${py}"= + + if [[ -L ${EROOT}/usr/bin/python${py} ]]; then + local target=$(readlink "${EROOT}/usr/bin/python${py}") + + # check if it's actually old eselect symlink + if [[ ${target} == python?.? ]]; then + declare -g "PREV_PYTHON${py}=${target}" + fi + fi + done +} + +pkg_postinst() { + local py + + if has_version 'dev-lang/python'; then + eselect python update --if-unset + fi + + for py in 2 3; do + local pyvar=PREV_PYTHON${py} + if [[ -n ${!pyvar} ]]; then + einfo "Setting Python${py} to ${!pyvar}" + eselect python set "--python${py}" "${!pyvar}" + elif has_version "=dev-lang/python-${py}*"; then + eselect python update "--python${py}" --if-unset + fi + done +} |