Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/python-exec/
Date: Sat, 20 Feb 2016 20:53:22
Message-Id: 1456001465.707a80df83281472ad24c9f4242880dbd1e586e3.mgorny@gentoo
1 commit: 707a80df83281472ad24c9f4242880dbd1e586e3
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sat Feb 20 20:34:50 2016 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sat Feb 20 20:51:05 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=707a80df
7
8 dev-lang/python-exec: Bump to the most awesome so far 2.4 release
9
10 Version bump to 2.4. The new version improves symlink handling to fix
11 problems when basename of custom symlinks collide with another system
12 executable name (previously, this resulted in the wrong script being
13 used), and adds support for per-script implementation preference
14 overrides.
15
16 dev-lang/python-exec/Manifest | 1 +
17 dev-lang/python-exec/python-exec-2.4.ebuild | 113 ++++++++++++++++++++++++++++
18 2 files changed, 114 insertions(+)
19
20 diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest
21 index 949521a..8abd7f2 100644
22 --- a/dev-lang/python-exec/Manifest
23 +++ b/dev-lang/python-exec/Manifest
24 @@ -5,3 +5,4 @@ DIST python-exec-2.2.1.tar.bz2 82990 SHA256 c0fcb0c9593b26cf56cdf39ff265586a2203
25 DIST python-exec-2.2.tar.bz2 82269 SHA256 041dccf96c31bfac5eee9c43bdf511821449313a5b7d0bd745bed09151e1bffe SHA512 9492d94e7134b555a2f3b81cbd4e159074fed21b1471090547618da34dab70264a3fa40c8b7f79c42b61938655006dd5659e26389649a2401c26b4e0c90c9ac1 WHIRLPOOL 0b13d73c2e3c9606589201af34504c317965c29bb5cfe211479d893c606ca05dff62755fcba5f76d0a653a2719f36119e6f3db050ffa9f9bb01ef2ff7b68cb4d
26 DIST python-exec-2.3.2.tar.bz2 84786 SHA256 c575247d6152c4f524c716a7fed879ffeb9ca7d65fac591b05cf0d726bf9cd1f SHA512 7beb938e338eb9abc711f6ba844f57647b679fe3e2b2d984897de142b81506bf5614565c30c119905bbb6949c5717d8ba23d5c9fd0208d554cd62fb5bb0ca30e WHIRLPOOL 47a4e5d76c1f40184b54e1cb8535ddbbf0a0f3042f59190730e6270acbc1ff8ba303c88cee818e88108d64cf25c6f13d869cf5aba74f51f11bf408723b8af274
27 DIST python-exec-2.3.tar.bz2 84201 SHA256 04f7c92727f666e4f950157a39ed6ac0a48d1a746736cc515a97195a30a3f9fe SHA512 fc6b8702a7009873b42dcde4b1771913f43ab45d92c62b9856a903b48dbe32c4ab588abe239e4512d9e2026a24aff26ec572f5cd98613e6a0160dcbd642e0849 WHIRLPOOL 3c5c238dbbf174dbbede06109bfc32e9675f53ded011dffdc0ce9327adff778bec6d89aba18ea531548d3e1ed17808f1a29cc1085f620baada74d71695f56b41
28 +DIST python-exec-2.4.tar.bz2 85838 SHA256 d299e704e3a9c9b3657cb45ebb92efedab22d175b99a3dc01e03293671b53704 SHA512 288141da7dba0b208d9dbc2f8fd2051f25b8d09dec7fc29c4928444c0ee7dd2da9b4d2e5c66b599779a7880b3bf9b202db97b2e2703cbb344c53544550673be0 WHIRLPOOL 01bfb2ee01e1807d5de64052876530bfb7a4927d6274ae2df8a3e112dfeed8368fe484a8d4ddf2b1d24a0e7da79043863a5bb64ebadbf21bc60f81f1980d3e4b
29
30 diff --git a/dev-lang/python-exec/python-exec-2.4.ebuild b/dev-lang/python-exec/python-exec-2.4.ebuild
31 new file mode 100644
32 index 0000000..121f31e
33 --- /dev/null
34 +++ b/dev-lang/python-exec/python-exec-2.4.ebuild
35 @@ -0,0 +1,113 @@
36 +# Copyright 1999-2016 Gentoo Foundation
37 +# Distributed under the terms of the GNU General Public License v2
38 +# $Id$
39 +
40 +EAPI=5
41 +
42 +# Kids, don't do this at home!
43 +inherit python-utils-r1
44 +PYTHON_COMPAT=( "${_PYTHON_ALL_IMPLS[@]}" )
45 +
46 +# Inherited purely to have PYTHON_TARGET flags which will satisfy USE
47 +# dependencies and trigger necessary rebuilds.
48 +inherit python-r1
49 +
50 +DESCRIPTION="Python script wrapper"
51 +HOMEPAGE="https://bitbucket.org/mgorny/python-exec/"
52 +SRC_URI="https://www.bitbucket.org/mgorny/${PN}/downloads/${P}.tar.bz2"
53 +
54 +LICENSE="BSD-2"
55 +SLOT="2"
56 +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"
57 +IUSE=""
58 +
59 +# eselect-python because of /usr/bin/python* collisions and new config
60 +# python versions because of missing $scriptdir/python* symlinks
61 +RDEPEND="
62 + !<app-eselect/eselect-python-20160206
63 + !<dev-lang/python-2.7.10-r4:2.7
64 + !<dev-lang/python-3.3.5-r4:3.3
65 + !<dev-lang/python-3.4.3-r4:3.4
66 + !<dev-lang/python-3.5.0-r3:3.5"
67 +
68 +src_configure() {
69 + local pyimpls=() i EPYTHON
70 + for i in "${PYTHON_COMPAT[@]}"; do
71 + python_export "${i}" EPYTHON
72 + pyimpls+=( "${EPYTHON}" )
73 + done
74 +
75 + local myconf=(
76 + --with-python-impls="${pyimpls[*]}"
77 + )
78 +
79 + econf "${myconf[@]}"
80 +}
81 +
82 +src_install() {
83 + default
84 +
85 + # Prepare and own the template
86 + sed -n -e '/^#/p' config/python-exec.conf.example \
87 + > "${T}"/python-exec.conf || die
88 + insinto /etc/python-exec
89 + doins "${T}"/python-exec.conf
90 +
91 + local f
92 + for f in python{,2,3}; do
93 + # symlink the C wrapper for python to avoid shebang recursion
94 + # bug #568974
95 + dosym python-exec2c /usr/bin/"${f}"
96 + done
97 + for f in python{,2,3}-config 2to3 idle pydoc pyvenv; do
98 + # those are python scripts (except for new python-configs)
99 + # so symlink them via the python wrapper
100 + dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
101 + done
102 +}
103 +
104 +pkg_preinst() {
105 + if [[ -e ${EROOT}etc/python-exec/python-exec.conf ]]; then
106 + # preserve current configuration
107 + cp "${EROOT}"etc/python-exec/python-exec.conf \
108 + "${ED}"etc/python-exec/python-exec.conf || die
109 + else
110 + # preserve previous Python version preference
111 + local py old_pythons=()
112 + local config_base=${EROOT}etc/env.d/python
113 +
114 + # start with the 'global' preference (2 vs 3)
115 + if [[ -f ${config_base}/config ]]; then
116 + old_pythons+=( "$(<${config_base}/config)" )
117 + fi
118 +
119 + # then try specific py3 selection
120 + for py in 3; do
121 + local target=
122 +
123 + if [[ -f ${config_base}/python${py} ]]; then
124 + # try the newer config files
125 + target=$(<${config_base}/python${py})
126 + elif [[ -L ${EROOT}/usr/bin/python${py} ]]; then
127 + # check the older symlink format
128 + target=$(readlink "${EROOT}/usr/bin/python${py}")
129 +
130 + # check if it's actually old eselect symlink
131 + [[ ${target} == python?.? ]] || target=
132 + fi
133 +
134 + # add the extra target if found and != global
135 + if [[ ${target} && ${old_pythons[0]} != ${target} ]]; then
136 + old_pythons+=( "${target}" )
137 + fi
138 + done
139 +
140 + if [[ ${old_pythons[@]} ]]; then
141 + einfo "Keeping the following Python preference: ${old_pythons[*]}"
142 +
143 + local IFS=$'\n'
144 + echo "${old_pythons[*]}" \
145 + >> "${ED}"etc/python-exec/python-exec.conf || die
146 + fi
147 + fi
148 +}