Adding python3.10, podman
This commit is contained in:
6
dev-lang/python-exec/Manifest
Normal file
6
dev-lang/python-exec/Manifest
Normal file
@ -0,0 +1,6 @@
|
||||
DIST python-exec-2.4.6.tar.bz2 87634 BLAKE2B 7b6de8ad0e0603fafd3284e6e3c5247ad83f145ab4db6728914318ae8e6f5aaa3c0247f4e01238fca11519ef72fb1b11436aea7e2b8c988b8717b3f6a2a43c37 SHA512 e05eaf01b83de196a10933636ab6b1a5489a421592df49b8b58eabd0e732de970f902744cd3a06b5ab530a6d69fe6dfa8f270fbb09b9fe3df4ae04d516828050
|
||||
DIST python-exec-2.4.8.tar.bz2 82671 BLAKE2B ac85f3dd6da3d1c535ad56a25edbbcb1d0e75b91e3567b80f27fd01d32a199a713909a8552dffaacbe96c43bca491f31c3f0c7f1a618fb9144814365686715cf SHA512 d6dabab217dc2f1817e2f4d159102a9467f51b26b91f4ae7fb7e4930d30334f74bd8a5f37cc60d58c6e1e61e89a3b4d2e1bd17413493ba86f38fa71250cf5ac1
|
||||
EBUILD python-exec-2.4.6.ebuild 4411 BLAKE2B c8be02c4a12766ef1cff89ef03ea7c0105377f0772d783c9cfb8b3f0e3fa6454aa09bad6084e8762c0066793f8f9ab2c0795a6568dc70d905676088fa6a6545c SHA512 90e58ffe88ca3275aa356e336cb0230c4f190a989f8b1d23a278bba6905ebf3b421bb4c84e87c7e04ca333a2088f106c5548e1f0c29f8d92898b40a8a3e87694
|
||||
EBUILD python-exec-2.4.8.ebuild 4423 BLAKE2B 17181a365abca7d6a831be18d9d7b87a3269095c4e8f649650afc40f339a532839574e74b65960989272f245a3fa09d0043e9b6689d90da5ccceeb9cb5675110 SHA512 0600820d5aea21f24430926c20aba5ccebf77f03475a91534cb86a85477b180caf7a0169c749984a8d4d28f566fcbe9e5a7e27d1969b84ba9a6eb91ba51c2b20
|
||||
EBUILD python-exec-9999.ebuild 4213 BLAKE2B 317090a43c42f89db2068ba600c399497a4a8f30f27e810b70b3d726763ed651206f0c4f08db0e2e00907a715ee836116e2526c913b2bf8e9d5884bc4f3f9083 SHA512 164d6eb172aedff8c471701c567708b36a34542c57d2ddc1ab29f666d9dab8bffd90776d2c8ebc2cfdfefa78566dfea85691770f5900ee90756108f9b9871f3e
|
||||
MISC metadata.xml 589 BLAKE2B 7f9fa9750915db8b546b52a560a7fd8d9a63c4f310e423ebdc0508fe9b14363001b30f3c3db26f6d05eec8a44176d62a9335153dff2d55a41a31d3b428cc9ca6 SHA512 2ac0223af0a2cf95d2b18ef415eadb325af0094e4ec361a414b0d68b203dc1c937d3d680af96bdad1e8a48cb5786683bdbbd451f47a0f3a777c075e1690ccf7a
|
17
dev-lang/python-exec/metadata.xml
Normal file
17
dev-lang/python-exec/metadata.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>python@gentoo.org</email>
|
||||
<name>Python</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<maintainer status="active">
|
||||
<email>mgorny@gentoo.org</email>
|
||||
<name>Michał Górny</name>
|
||||
</maintainer>
|
||||
<bugs-to>https://github.com/mgorny/python-exec/issues/</bugs-to>
|
||||
<remote-id type="bitbucket">mgorny/python-exec</remote-id>
|
||||
<remote-id type="github">mgorny/python-exec</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
133
dev-lang/python-exec/python-exec-2.4.6.ebuild
Normal file
133
dev-lang/python-exec/python-exec-2.4.6.ebuild
Normal file
@ -0,0 +1,133 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# Kids, don't do this at home!
|
||||
inherit python-utils-r1
|
||||
PYTHON_COMPAT=( python2_7 python3_7 python3_10 )
|
||||
|
||||
# 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://github.com/mgorny/python-exec/"
|
||||
SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${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 ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-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-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
|
||||
--with-python-impls="${pyimpls[*]}"
|
||||
)
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
# Prepare and own the template
|
||||
insinto /etc/python-exec
|
||||
newins - python-exec.conf \
|
||||
< <(sed -n -e '/^#/p' config/python-exec.conf.example)
|
||||
|
||||
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
|
||||
elog "You seem to have just upgraded into the new version of python-exec"
|
||||
elog "that uses python-exec.conf for configuration. The ebuild has attempted"
|
||||
elog "to convert your previous configuration to the new format, resulting"
|
||||
elog "in the following preferences (most preferred version first):"
|
||||
elog
|
||||
for py in "${old_pythons[@]}"; do
|
||||
elog " ${py}"
|
||||
done
|
||||
elog
|
||||
elog "Those interpreters will be preferred when running Python scripts or"
|
||||
elog "calling wrapped Python executables (python, python2, pydoc...)."
|
||||
elog "If none of the preferred interpreters are supported, python-exec will"
|
||||
elog "fall back to the newest supported Python version."
|
||||
elog
|
||||
elog "Please note that due to the ambiguous character of the old settings,"
|
||||
elog "you may want to modify the preference list yourself. In order to do so,"
|
||||
elog "open the following file in your favorite editor:"
|
||||
elog
|
||||
elog " ${EROOT}etc/python-exec/python-exec.conf"
|
||||
elog
|
||||
elog "For more information on the new configuration format, please read"
|
||||
elog "the comment on top of the installed configuration file."
|
||||
|
||||
local IFS=$'\n'
|
||||
echo "${old_pythons[*]}" \
|
||||
>> "${ED}"etc/python-exec/python-exec.conf || die
|
||||
fi
|
||||
fi
|
||||
}
|
134
dev-lang/python-exec/python-exec-2.4.8.ebuild
Normal file
134
dev-lang/python-exec/python-exec-2.4.8.ebuild
Normal file
@ -0,0 +1,134 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# Kids, don't do this at home!
|
||||
inherit python-utils-r1
|
||||
PYTHON_COMPAT=( python2_7 python3_7 python3_10 )
|
||||
|
||||
# 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://github.com/mgorny/python-exec/"
|
||||
SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${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 ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-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
|
||||
echo ${i}
|
||||
python_export "${i}" EPYTHON
|
||||
pyimpls+=( "${EPYTHON}" )
|
||||
done
|
||||
|
||||
local myconf=(
|
||||
--with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
|
||||
--with-python-impls="${pyimpls[*]}"
|
||||
)
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
# Prepare and own the template
|
||||
insinto /etc/python-exec
|
||||
newins - python-exec.conf \
|
||||
< <(sed -n -e '/^#/p' config/python-exec.conf.example)
|
||||
|
||||
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
|
||||
elog "You seem to have just upgraded into the new version of python-exec"
|
||||
elog "that uses python-exec.conf for configuration. The ebuild has attempted"
|
||||
elog "to convert your previous configuration to the new format, resulting"
|
||||
elog "in the following preferences (most preferred version first):"
|
||||
elog
|
||||
for py in "${old_pythons[@]}"; do
|
||||
elog " ${py}"
|
||||
done
|
||||
elog
|
||||
elog "Those interpreters will be preferred when running Python scripts or"
|
||||
elog "calling wrapped Python executables (python, python2, pydoc...)."
|
||||
elog "If none of the preferred interpreters are supported, python-exec will"
|
||||
elog "fall back to the newest supported Python version."
|
||||
elog
|
||||
elog "Please note that due to the ambiguous character of the old settings,"
|
||||
elog "you may want to modify the preference list yourself. In order to do so,"
|
||||
elog "open the following file in your favorite editor:"
|
||||
elog
|
||||
elog " ${EROOT}etc/python-exec/python-exec.conf"
|
||||
elog
|
||||
elog "For more information on the new configuration format, please read"
|
||||
elog "the comment on top of the installed configuration file."
|
||||
|
||||
local IFS=$'\n'
|
||||
echo "${old_pythons[*]}" \
|
||||
>> "${ED}"etc/python-exec/python-exec.conf || die
|
||||
fi
|
||||
fi
|
||||
}
|
139
dev-lang/python-exec/python-exec-9999.ebuild
Normal file
139
dev-lang/python-exec/python-exec-9999.ebuild
Normal file
@ -0,0 +1,139 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
# Kids, don't do this at home!
|
||||
inherit python-utils-r1
|
||||
PYTHON_COMPAT=( python2_7 python3_7 python3_10 )
|
||||
|
||||
# Inherited purely to have PYTHON_TARGET flags which will satisfy USE
|
||||
# dependencies and trigger necessary rebuilds.
|
||||
inherit autotools git-r3 python-r1
|
||||
|
||||
DESCRIPTION="Python script wrapper"
|
||||
HOMEPAGE="https://github.com/mgorny/python-exec/"
|
||||
SRC_URI=""
|
||||
EGIT_REPO_URI="https://github.com/mgorny/python-exec.git"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="2"
|
||||
KEYWORDS=""
|
||||
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_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local pyimpls=() i EPYTHON
|
||||
for i in "${PYTHON_COMPAT[@]}"; do
|
||||
python_export "${i}" EPYTHON
|
||||
pyimpls+=( "${EPYTHON}" )
|
||||
done
|
||||
|
||||
local myconf=(
|
||||
--with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
|
||||
--with-python-impls="${pyimpls[*]}"
|
||||
)
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
# Prepare and own the template
|
||||
insinto /etc/python-exec
|
||||
newins - python-exec.conf \
|
||||
< <(sed -n -e '/^#/p' config/python-exec.conf.example)
|
||||
|
||||
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
|
||||
elog "You seem to have just upgraded into the new version of python-exec"
|
||||
elog "that uses python-exec.conf for configuration. The ebuild has attempted"
|
||||
elog "to convert your previous configuration to the new format, resulting"
|
||||
elog "in the following preferences (most preferred version first):"
|
||||
elog
|
||||
for py in "${old_pythons[@]}"; do
|
||||
elog " ${py}"
|
||||
done
|
||||
elog
|
||||
elog "Those interpreters will be preferred when running Python scripts or"
|
||||
elog "calling wrapped Python executables (python, python2, pydoc...)."
|
||||
elog "If none of the preferred interpreters are supported, python-exec will"
|
||||
elog "fall back to the newest supported Python version."
|
||||
elog
|
||||
elog "Please note that due to the ambiguous character of the old settings,"
|
||||
elog "you may want to modify the preference list yourself. In order to do so,"
|
||||
elog "open the following file in your favorite editor:"
|
||||
elog
|
||||
elog " ${EROOT}etc/python-exec/python-exec.conf"
|
||||
elog
|
||||
elog "For more information on the new configuration format, please read"
|
||||
elog "the comment on top of the installed configuration file."
|
||||
|
||||
local IFS=$'\n'
|
||||
echo "${old_pythons[*]}" \
|
||||
>> "${ED}"etc/python-exec/python-exec.conf || die
|
||||
fi
|
||||
fi
|
||||
}
|
9
dev-lang/python/Manifest
Normal file
9
dev-lang/python/Manifest
Normal file
@ -0,0 +1,9 @@
|
||||
AUX pydoc.conf 169 BLAKE2B ce40bb3d5f858bd7a8d9ef5bf215a8ab592568a724f0e08aea219da014dac12fdfcbcf5fb168bb9aa57be110f74d656aed46179ffe11e3c992d84a647e442b7b SHA512 30d0776a4004cd641e6f283658c3c24915a21ea15fe40e506ff2c3a5f95936aa00c9490b04ab25f29e9b7ac65cd88fd54ca0b08e000e73820b13c7c57c0bf5b2
|
||||
AUX pydoc.init 600 BLAKE2B fb8775a6663483e5112ec283627610b746020d88494e772b92bb718a9493a52606e565c6c2fa4917a5cb963f166283d09883bd26903f2f3ced6c240d4e292a7f SHA512 9e71ad53486b6882a8441b24225c602195ee33d29dd1b60df27febbc6b752e79929be356152a489f893dcfb11f9c066b999787bc27a8ac61062c86e67a69e87a
|
||||
AUX python-2.7.10-cross-compile-warn-test.patch 775 BLAKE2B 617938353c7e19a9b931544ff1fdcd60cf46e3a68f3ff63bc6ac16432220aad13df4d2b405a968505fb64d31da51a478c46499944ab58e9bbfa5a5b44d392f00 SHA512 652941239541f6139ee3580ec0ea5240baf07ae1afb786f76a69b1d748de1f4dda2740a95c28866e9b0b59023410f8a1e86507642595991c0d90d187519cb758
|
||||
AUX python-2.7.10-system-libffi.patch 1232 BLAKE2B 3483385cbbf7ef2304cf109d05b5e1d58ec2b9015b614c996c66a9917ab10703865b40c775d7ff89a6fa80e9c8c9600292d8d916e9753027e9e0b23b0548ccff SHA512 3c888638180edc81b98a869478085de63741668ea62bdb919a60708fd64cb394e60f44a3730e2ccf3e41d1d61b72b469242fe2ccd20dc61bc2064b3e759c52bd
|
||||
AUX python-2.7.5-nonfatal-compileall.patch 750 BLAKE2B a7999a6c5a706fbab213cd8a01c6df9b130537556d59bf50b1f5ca223bb9dcd24ccfef48e70e5d3a8afe2b9c6236e1ada87d5899052a2b39f05c4644697953e2 SHA512 d2e93e2a6fcd55d516df0ddaca31af97faed677ea6b4be282eb99e7864f8a7399b5ca11139844a4b3c264832183483b0f4c8c9865c05de0e8520e6d2c8f1dbc6
|
||||
AUX python-2.7.9-ncurses-pkg-config.patch 305 BLAKE2B 92962397a1e74d9dca8bc232400e84673e0989239e6952c2ba9f25db6f9da343334e0ad325e8932fcec3f9a50e62d4e9b81a8d7a776cdbfc2d0399601591f534 SHA512 2c18b5041a7a2f306dd4d0d6695bd851ca14c9107b2e3e856ec094bc53c7cc407b49e1f4813ee9e753b3ad2d4f6edda943a66bb1e6c895ab956a5f84d30646c6
|
||||
DIST Python-3.10.3.tar.xz 19343528 BLAKE2B 5234f14d3dbc1b7c43da65fbc242218c1f94601d13ca84419cd9b29eab22ab411b7cd043ebaabc2b2aa1856e5e91c3ecc42eaaf333f92b8e133844e09d515bdf SHA512 5020407798ebaae6002b8de29475c1064a32f1527a0e4ec6fe7fcf076b4ea3ef0ab4b4a7864a6081cc8dd01dd545123198b11cc8dd1259c670394b7d81f35a86
|
||||
DIST python-gentoo-patches-3.10.3.tar.xz 8584 BLAKE2B 4287b33e696a1c350fef2ef34843353a2f4ad20feed2e9d7e05d727ec4f18105f57c21e7ab73941e14cc2ace27e8ac7f5e96ce2893b626c8e75cac52760f0935 SHA512 515025b13063eaee71738b8e1f071cd9930cf516e90c1c652adc6f8bee356598d152cb3337a6633500cda4228a5ddc2819f1db0cdb2524a479a0bca69ca557cb
|
||||
EBUILD python-3.10.3.ebuild 9848 BLAKE2B e893225fe2cc693517d79bd5b03ea306e01c8691b0a00b382132c0602659782c4769642391dcaa97039ccdaef58d8a2e6b8f04a2617373afdcd5e9e342f1c726 SHA512 c2fb95db6367ab429a13d2fbf431abd83ad10e14723585e2bd2c283222206900685c0ed04d057a40401d30f98adc8d2e89cbf8654a98adef913df6ea5440c4d0
|
6
dev-lang/python/files/pydoc.conf
Normal file
6
dev-lang/python/files/pydoc.conf
Normal file
@ -0,0 +1,6 @@
|
||||
# /etc/init.d/pydoc.conf
|
||||
|
||||
# This file contains the configuration for pydoc's internal webserver.
|
||||
|
||||
# Default port for Python's pydoc server.
|
||||
@PYDOC_PORT_VARIABLE@="7464"
|
24
dev-lang/python/files/pydoc.init
Normal file
24
dev-lang/python/files/pydoc.init
Normal file
@ -0,0 +1,24 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public Licence v2
|
||||
|
||||
start() {
|
||||
local pydoc_port="${@PYDOC_PORT_VARIABLE@-${PYDOC_PORT}}"
|
||||
|
||||
if [ -z "${pydoc_port}" ]; then
|
||||
eerror "Port not set"
|
||||
return 1
|
||||
fi
|
||||
|
||||
ebegin "Starting pydoc server on port ${pydoc_port}"
|
||||
start-stop-daemon --start --background --make-pidfile \
|
||||
--pidfile /var/run/@PYDOC@.pid \
|
||||
--exec /usr/bin/@PYDOC@ -- -p "${pydoc_port}"
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping pydoc server"
|
||||
start-stop-daemon --stop --quiet --pidfile /var/run/@PYDOC@.pid
|
||||
eend $?
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
https://bugs.python.org/issue25397
|
||||
|
||||
improve the cross-compile tests to be more focused
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1339,7 +1339,7 @@ if test "$GCC" = "yes"
|
||||
then
|
||||
AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
|
||||
save_CFLAGS=$CFLAGS
|
||||
- CFLAGS="$CFLAGS -Werror -Wformat"
|
||||
+ CFLAGS="$CFLAGS -Werror=format"
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));]], [[]])
|
||||
],[
|
||||
@@ -4458,7 +4458,7 @@ then
|
||||
[ac_cv_have_long_long_format="cross -- assuming no"
|
||||
if test x$GCC = xyes; then
|
||||
save_CFLAGS=$CFLAGS
|
||||
- CFLAGS="$CFLAGS -Werror -Wformat"
|
||||
+ CFLAGS="$CFLAGS -Werror=format"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
36
dev-lang/python/files/python-2.7.10-system-libffi.patch
Normal file
36
dev-lang/python/files/python-2.7.10-system-libffi.patch
Normal file
@ -0,0 +1,36 @@
|
||||
make sure we respect the system libffi setting in our build config.
|
||||
the compiler probing is fragile and can break in some situations.
|
||||
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -2069,7 +2069,7 @@ class PyBuildExt(build_ext):
|
||||
return True
|
||||
|
||||
def detect_ctypes(self, inc_dirs, lib_dirs):
|
||||
- self.use_system_libffi = False
|
||||
+ self.use_system_libffi = ('--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"))
|
||||
include_dirs = []
|
||||
extra_compile_args = []
|
||||
extra_link_args = []
|
||||
@@ -2113,7 +2113,7 @@ class PyBuildExt(build_ext):
|
||||
sources=['_ctypes/_ctypes_test.c'])
|
||||
self.extensions.extend([ext, ext_test])
|
||||
|
||||
- if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ if not self.use_system_libffi:
|
||||
return
|
||||
|
||||
if host_platform == 'darwin':
|
||||
@@ -2141,10 +2141,10 @@ class PyBuildExt(build_ext):
|
||||
ffi_lib = lib_name
|
||||
break
|
||||
|
||||
- if ffi_inc and ffi_lib:
|
||||
+ if ffi_inc:
|
||||
ext.include_dirs.extend(ffi_inc)
|
||||
+ if ffi_lib:
|
||||
ext.libraries.append(ffi_lib)
|
||||
- self.use_system_libffi = True
|
||||
|
||||
|
||||
class PyBuildInstall(install):
|
18
dev-lang/python/files/python-2.7.5-nonfatal-compileall.patch
Normal file
18
dev-lang/python/files/python-2.7.5-nonfatal-compileall.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1000,12 +1000,12 @@
|
||||
$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
|
||||
$(DESTDIR)$(LIBDEST)/distutils/tests ; \
|
||||
fi
|
||||
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST) -f \
|
||||
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||||
$(DESTDIR)$(LIBDEST)
|
||||
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
$(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST) -f \
|
||||
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
13
dev-lang/python/files/python-2.7.9-ncurses-pkg-config.patch
Normal file
13
dev-lang/python/files/python-2.7.9-ncurses-pkg-config.patch
Normal file
@ -0,0 +1,13 @@
|
||||
do not hardcode /usr/include paths
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4316,7 +4316,7 @@ fi
|
||||
|
||||
# first curses configure check
|
||||
ac_save_cppflags="$CPPFLAGS"
|
||||
-CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
|
||||
+CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags ncursesw`"
|
||||
|
||||
AC_CHECK_HEADERS(curses.h ncurses.h)
|
||||
|
345
dev-lang/python/python-3.10.3.ebuild
Normal file
345
dev-lang/python/python-3.10.3.ebuild
Normal file
@ -0,0 +1,345 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}/${PYVER}m"
|
||||
KEYWORDS="*"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +optimize +readline sqlite +ssl test tk wininst +xml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
dev-libs/libffi:=
|
||||
sys-apps/util-linux:=
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? ( >=sys-libs/readline-4.1:= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:= )
|
||||
libressl? ( dev-libs/libressl:= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:= )"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
pkg_setup() {
|
||||
use optimize && export CFLAGS="$CFLAGS -O3 -fno-semantic-interposition"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat || die
|
||||
rm -fr Modules/_ctypes/libffi* || die
|
||||
rm -fr Modules/zlib || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if ! use xml; then
|
||||
ewarn "You have configured Python without XML support."
|
||||
ewarn "This is NOT a recommended configuration as you"
|
||||
ewarn "may face problems parsing any XML documents."
|
||||
fi
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
if [[ "$(gcc-major-version)" -ge 4 ]]; then
|
||||
append-flags -fwrapv
|
||||
fi
|
||||
|
||||
filter-flags -malign-double
|
||||
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=50309
|
||||
if is-flagq -O3; then
|
||||
is-flagq -fstack-protector-all && replace-flags -O3 -O2
|
||||
use hardened && replace-flags -O3 -O2
|
||||
fi
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
tc-export CXX
|
||||
|
||||
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
|
||||
# Needed on FreeBSD unless Python 3.2 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
)
|
||||
|
||||
OPT="" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax_kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
emake test EXTRATESTOPTS="-u-network" CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local result=$?
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" "${S}"/Lib/test
|
||||
done
|
||||
|
||||
elog "The following tests have been skipped:"
|
||||
for test in ${skipped_tests}; do
|
||||
elog "test_${test}.py"
|
||||
done
|
||||
|
||||
elog "If you would like to run them, you may:"
|
||||
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
if [[ ${result} -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Remove static library
|
||||
# rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax_kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
|
||||
# use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
|
||||
emake --no-print-directory -s -f - 2>/dev/null)
|
||||
newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
local -x EPYTHON=python${PYVER}
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local -x PYTHON=./python
|
||||
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
|
||||
else
|
||||
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${scriptdir}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${scriptdir}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
if [[ -z "$(eselect python show)" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
|
||||
eselect python update
|
||||
fi
|
||||
|
||||
if [[ -z "$(eselect python show --python${PV%%.*})" || \
|
||||
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
|
||||
then
|
||||
eselect python update --python${PV%%.*}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect_python_update
|
||||
|
||||
if [[ "${python_updater_warning}" == "1" ]]; then
|
||||
ewarn "You have just upgraded from an older version of Python."
|
||||
ewarn
|
||||
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
Reference in New Issue
Block a user