parent
a02aa70a7f
commit
06752e6a4f
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29332 BLAKE2B c2cb6232caa8d3aec1017c8ceed4f28271c7087df3fd8693dbb99fabe4d3470762e7b3071aa9966e14a0cb04eabc78f2a1fe8998844be75843389d7328634a55 SHA512 c69f29e30c52c504d772e129788c654c79bb4f7fa6aec65dac02f1bbf7ffe2ab7fe30503b60841bd5e20f49a8cc4fde4fc070384dfc552beff05282abb00618d
|
||||
TIMESTAMP 2019-03-23T17:08:42Z
|
||||
MANIFEST Manifest.files.gz 29324 BLAKE2B b655d744204254f633cf4105bc4b1e23fe9f7668e2ac1e2366179cde9fd3a37388d0e573a8911009ffabea162d980815f6f2c1e7bd2acf24f0698df895c79526 SHA512 f011881056c51869bf8cd63c5bcfc4da37da00a14beeb2735062c3db3477f49d4cbc03d6260889484578c0d18d12a5f7defcf77c608e81c6d15856793a671533
|
||||
TIMESTAMP 2019-03-23T20:08:44Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAlyWaBpfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAlyWkkxfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klAdlw//UrPrj1vuFfBeCSaGdIDedw885alz5+xMmLPdcqbKZwvl8RFlv4ICWGev
|
||||
8/WfE2sJ6KGlKf/US6o+1/avvhPV5yXQKOhh0B3iU+f496lf6Q8C596BvruIpONU
|
||||
81S3MK+M4gdU9s/e7cXHLKyieMWMYDnbgqFKk+IUvIFZBjbqdhe/PTpizD/1Nefy
|
||||
CoNZR+ZnK5BZuGmozPc3BT5ldScdS3JbagoZ+fK+ARGvlWMVDOp+wt+yCA1xwfkw
|
||||
Z7zDCzDV9/HfquYGsA+JNRIdO+DZHoY3gVi4pW25nwRRMIaUmrf1ajmz2K6QIV/X
|
||||
0sEfNqTpBReshGv1cy6xNzoT7kI0BLXjG02iTQ3kN9CQbo/B0vaNW7PMtvXwFHhS
|
||||
fnEWKVN+IZcyiBYaY2G2ChPBHG3qGZQ7xhPyBbcEjTslnNYzlaZm02FGg6Cl9Blf
|
||||
qZNAuBA+mGYnBn72UafwcusyBXA/ikBgE4FIgj7fMHIPlACI7NYRlnJcPx/AW5Pt
|
||||
FHMBziO1d7S4irRdgi8hyGYdfNfLdstR3KX4+EJetyFjlqzalpkqNRpe8NsHUHdD
|
||||
xIk9wpPNZMor94YOrmzKuSlBnyG3WWVcXE7FvbUaN7OKwQALdaJThtE2Tu9Evk2v
|
||||
P9UuulTzpBDKkHY32cP/0A5gVJYvpE9d/wcJzinve6dBZIGb6J8=
|
||||
=/ttX
|
||||
klCmNQ/+K6RhwGuwX43D2ah6ctUi05F+l49kyrKdr+MsoY/fBFZlspyY1w2nvRMJ
|
||||
dEw5mNicdSD/h0HqVfBgM5JgS9hSOqQ1vVo3+jXlu9WOjGV0tX8Z8SZwb7+aOMlh
|
||||
CIeJQ93SveQZdC4+3L+NDEhvnp5H4wl8PIOPbkz1nIoo/Kn0elwo7CsQ50U1IyJ7
|
||||
dX7U1PIU8WTyWlO+K/KUpC3hok+6oS65V/gcLAWIlEEdiv0l/YNHOi/Q8X/JG16W
|
||||
AF8Tr5WvDpUgphiHuGvCUf0vlOBUKfeRWGojrfa9InXjKcMJEUuOoZgR+0m40uqm
|
||||
0YpQ69EI+P2pELJK3w5jUqNvzwNskNhBmlXNBUex6SO1m3NaUsgHHiOtzc8gRILG
|
||||
xO2kJvLtm2j+yG7FSmgpNyk6+AYhnCeSFfzECUP0WfM15M/SJww6wnH7brEnd74n
|
||||
C7XShqIJRr25qrgypBFTiwc5Kj+tdKnRQ2qnGOZaFfgFPIAb6two/EmDyWZQK3An
|
||||
q9xzgYFhWdE9DcfLIsQzwW8lttkLQYG7bbWC5iP5gzfC5LNrG0EODWUiUWyCnqRv
|
||||
D2wbrJ2EqOeszGDURBmlkwBlRjcAUBUcAGu3ahsQKwKb6zDHmwiY7/w8NQ3iE4nO
|
||||
AyRGBhE9RuuwX3OX/XJ6Tah2vQQpiMOcGR3ubG7TAA1NZp60Yjk=
|
||||
=8llo
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,360 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.4.5-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.4/3.4m"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2:0=
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
virtual/pkgconfig
|
||||
>=sys-devel/autoconf-2.65
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.4.5-cross.patch"
|
||||
epatch "${FILESDIR}/3.4-getentropy-linux.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
--infodir='${prefix}/share/info' \
|
||||
--mandir='${prefix}/share/man' \
|
||||
--with-computed-gotos \
|
||||
--with-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi \
|
||||
--without-ensurepip
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
# Avoid invoking pgen for cross-compiles.
|
||||
touch Include/graminit.h Python/graminit.c || die
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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
|
||||
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,356 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.4.6-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.4/3.4m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk wininst +xml"
|
||||
|
||||
# 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
>=sys-devel/autoconf-2.65
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.4.5-cross.patch"
|
||||
epatch "${FILESDIR}/3.4-getentropy-linux.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
--infodir='${prefix}/share/info' \
|
||||
--mandir='${prefix}/share/man' \
|
||||
--with-computed-gotos \
|
||||
--with-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi \
|
||||
--without-ensurepip
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
# Avoid invoking pgen for cross-compiles.
|
||||
touch Include/graminit.h Python/graminit.c || die
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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
|
||||
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,363 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.4.6-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.4/3.4m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk wininst +xml"
|
||||
|
||||
# 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2:0=
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
virtual/pkgconfig
|
||||
>=sys-devel/autoconf-2.65
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.4.5-cross.patch"
|
||||
epatch "${FILESDIR}/3.4-getentropy-linux.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
epatch "${FILESDIR}/python-3.5.5-hash-unaligned.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
--infodir='${prefix}/share/info' \
|
||||
--mandir='${prefix}/share/man' \
|
||||
--with-computed-gotos \
|
||||
--with-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi \
|
||||
--without-ensurepip
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
# Avoid invoking pgen for cross-compiles.
|
||||
touch Include/graminit.h Python/graminit.c || die
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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
|
||||
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,365 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.5.4-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.5/3.5m"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2:0=
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/getpath.c \
|
||||
Modules/Setup.dist \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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
|
||||
)
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" econf "${myeconfargs[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,368 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.5.4-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.5/3.5m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
epatch "${FILESDIR}/python-3.5.5-libressl-compatibility.patch"
|
||||
epatch "${FILESDIR}/python-3.5.5-hash-unaligned.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/getpath.c \
|
||||
Modules/Setup.dist \
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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
|
||||
)
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" econf "${myeconfargs[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,368 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV/_/}"
|
||||
PATCHSET_VERSION="3.5.4-0"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="https://www.python.org/"
|
||||
SRC_URI="https://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.5/3.5m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
virtual/pkgconfig
|
||||
!sys-devel/gcc[libffi(-)]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )"
|
||||
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Invokes BUILDPYTHON, which is built for the host arch
|
||||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch"
|
||||
fi
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
|
||||
epatch "${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
epatch "${FILESDIR}/python-3.5.5-libressl-compatibility.patch"
|
||||
epatch "${FILESDIR}/python-3.5.5-hash-unaligned.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
configure.ac \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/getpath.c \
|
||||
Modules/Setup.dist \
|
||||
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
|
||||
|
||||
# The configure script fails to use pkg-config correctly.
|
||||
# http://bugs.python.org/issue15506
|
||||
export ac_cv_path_PKG_CONFIG=$(tc-getPKG_CONFIG)
|
||||
|
||||
# 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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
BUILD_DIR="${WORKDIR}/${CHOST}"
|
||||
mkdir -p "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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
|
||||
)
|
||||
|
||||
ECONF_SOURCE="${S}" OPT="" econf "${myeconfargs[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
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
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,345 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_VERSION="3.6.2-0"
|
||||
|
||||
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/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.6/3.6m"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2:0=
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
|
||||
epatch "${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
epatch "${FILESDIR}/3.6-blake2.patch"
|
||||
epatch "${FILESDIR}/3.6-disable-nis.patch"
|
||||
|
||||
epatch_user
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
configure.ac \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,346 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_VERSION="3.6.4"
|
||||
|
||||
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/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.6/3.6m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2:0=
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/patches"
|
||||
"${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
"${FILESDIR}/3.6-disable-nis.patch"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
configure.ac \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,350 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_VERSION="3.6.4"
|
||||
|
||||
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/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.6/3.6m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# 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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/patches"
|
||||
"${FILESDIR}/${PN}-3.5-distutils-OO-build.patch"
|
||||
"${FILESDIR}/3.6.5-disable-nis.patch"
|
||||
"${FILESDIR}/python-3.6.5-libressl-compatibility.patch"
|
||||
"${FILESDIR}/python-3.6.5-hash-unaligned.patch"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
configure.ac \
|
||||
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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,349 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_VERSION="3.6.6"
|
||||
|
||||
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/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.6/3.6m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads 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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# 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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/patches"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Lib/sysconfig.py \
|
||||
Lib/test/test_site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
configure.ac \
|
||||
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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--with-fpectl
|
||||
--enable-shared
|
||||
$(use_enable ipv6)
|
||||
$(use_with threads)
|
||||
--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[@]}"
|
||||
|
||||
if use threads && grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
}
|
||||
|
||||
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/$(get_libdir)/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/$(get_libdir)/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
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 -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" \
|
||||
"${D}${PYTHON_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 > "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" \
|
||||
"${D}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" \
|
||||
"${D}${PYTHON_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
|
||||
}
|
@ -1,324 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools flag-o-matic pax-utils python-utils-r1 toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_VERSION="3.7.0"
|
||||
|
||||
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/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.7/3.7m"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
|
||||
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +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:0=
|
||||
app-arch/xz-utils:0=
|
||||
>=sys-libs/zlib-1.1.3:0=
|
||||
virtual/libffi:=
|
||||
virtual/libintl
|
||||
gdbm? ( sys-libs/gdbm:0=[berkdb] )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:0= )
|
||||
readline? ( >=sys-libs/readline-4.1:0= )
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:0=
|
||||
>=dev-lang/tk-8.0:0=
|
||||
dev-tcltk/blt:0=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1:0= )
|
||||
!!<sys-apps/sandbox-2.6-r1"
|
||||
# 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"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
PYVER=${SLOT%/*}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/patches"
|
||||
)
|
||||
|
||||
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."
|
||||
|
||||
local dbmliborder
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
--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
|
||||
|
||||
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 -f "${ED%/}/usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
# 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 "${S}"/Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/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"
|
||||
|
||||
# for python-exec
|
||||
local vars=( EPYTHON PYTHON_SITEDIR PYTHON_SCRIPTDIR )
|
||||
|
||||
# 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
|
||||
vars=( PYTHON "${vars[@]}" )
|
||||
fi
|
||||
|
||||
python_export "python${PYVER}" "${vars[@]}"
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
mkdir -p "${D%/}${PYTHON_SCRIPTDIR}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${D%/}${PYTHON_SCRIPTDIR}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${D%/}${PYTHON_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 > "${D%/}${PYTHON_SCRIPTDIR}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${D%/}${PYTHON_SCRIPTDIR}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${D%/}${PYTHON_SCRIPTDIR}/python-config" || die
|
||||
# 2to3, pydoc, pyvenv
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${D%/}${PYTHON_SCRIPTDIR}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${D%/}${PYTHON_SCRIPTDIR}/pydoc" || die
|
||||
ln -s "../../../bin/pyvenv-${PYVER}" "${D%/}${PYTHON_SCRIPTDIR}/pyvenv" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${D%/}${PYTHON_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
|
||||
}
|
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
DIST jeepney-0.3.1.tar.gz 22271 BLAKE2B a8de58e4ef4c4d1874c8995e3726a4bfa26a8db4a63040658c4edfd1742fa1c22de52d8cbee4913b1973279938544481fe2c2aef3138dc0ef724f7a99a39c617 SHA512 ad1a2d220a7626a3bdadf6fba6a591d1b498a9f6bb34607860213efddf49bbe67a4dc2d504decd906c560c519302f1fa45b85ba348156e8bec288f525d502e82
|
||||
EBUILD jeepney-0.3.1.ebuild 1041 BLAKE2B 16c36ad2c2e2086ec4682a48d4d00eb572a2aee5d83236023e57f5816c5cb6c0053750701664cf52dc9b340e587e1e1190f8e067e9f0eaf3e0aebd8be4970b0c SHA512 a4ed7d484e4047007b609f8fe5a53e3e32bab810ba12ae53b1cf167ffb0cabc3b9d6eb5079270b3a394aa3eb73657c680d994b718722a29ae257562dbd987a9a
|
||||
EBUILD jeepney-0.3.1.ebuild 1074 BLAKE2B ecf7c009279c7f1b906d1f5c4a4d8e964c2fbd23b8f53b45d77c7c1874e8676182265da493e292a223883c6f03bbf5e570c422a339f67a9a509441f2dd244006 SHA512 630626a7428a37dac4287b0cc17a3858423e9b1a89e09fb52c632e3c1e77fb0cd93c969296658fecdc6b7a965fb04e4623b1c26571f135072f52755063f02149
|
||||
MISC metadata.xml 432 BLAKE2B 57cc148c4580f5dd579dfbec20c85c80e7d5f2b75397c96f4daa2382e86dbe0547b15ac628fc46bb62c3845becb46cfcfb65027f37839d2d1f843c6872d45e80 SHA512 124413d7ca2a366a651128cd8346aeeb3bd5ceed9b43136fad32861844a078694fa8603e4a11df4d7b37343434bf29bf21d0a0ac6999bf9e9b13f474b93914e4
|
||||
|
@ -1,8 +1,10 @@
|
||||
DIST keyring-12.2.1.tar.gz 42242 BLAKE2B b821f17a671e89a28bd2953456bd0406e4f7fd142f1abf2e1f752e8f74f072c8fa995b90de62ac34586dd50a4dab47dff3bbb19157d76bb2f93a61e176dc3188 SHA512 8806b4433bc9085ae133300e68bc614281beea70de547f75afafdf6de2ee1b436f3a4cd13d7684cb6e4d5aef0a2eb9119d9cebbaf239a9ee1997ece4a56a7371
|
||||
DIST keyring-13.2.1.tar.gz 43140 BLAKE2B 74272b93ff80a03615879a5f416ad6be1012f22862972a7f400609ea3fb984c45ed2ccb44eca30d253d0d39e0876f1ce25ab9aa6267a06a7c67a17aac27cd31e SHA512 3c15c3415ba4b657b041d2395536fc92ba656dc71f28669235f13a630946ad1b332d1f5b031a55776ce8a2120d3d2601462708f00ee105f46a27cf043c1bd906
|
||||
DIST keyring-15.0.0.tar.gz 42547 BLAKE2B b9200f61fcf227ce82ed05db15b8a03754a2d2f0ee7a32afe4a99a6bb4c511e311d7c529d5173756173622e225ae4fa2fcef6409b21dc3d8735b5e8fab73bd1a SHA512 58001d61bdd442196ec4891000cc532d1dd9b85b18d100d8dde38cf1cf733ef6d6541513d73435dfe41e9cd26c6e34332d518a06a7fbc498b1b8971df6640212
|
||||
DIST keyring-18.0.0.tar.gz 48509 BLAKE2B a83df471fd150c9a01dd3fe782b3ead54286c3913838951fd0beb2443d0fe5cfbc1cc2079ef46346346e4bfb0d62e1f782d75a89d85c281e8b3c53f9bf188eca SHA512 3863f2cd89131d7e927e55691b4eb4b7c2599af189525293d0948aef5215efbbbd74d45db3cd4885ba5b18a79f0fa0b0edc3783a020a6702f6a6fb7ed86b2cf2
|
||||
EBUILD keyring-12.2.1.ebuild 1017 BLAKE2B 568cc5619b1b2645c999d3175720469157ee2d55955b8364422a2bf72c8d4631c24e9bc71e0ed3db1ae625810e8a5cb0c33fe6ade88a4859b1e4b8447336fb4e SHA512 172ef757531fcc524676747080b0a383c11c54dfb48180aecc6d82dabed7f803766804703aa726a4755b4c5df108ce6babb56096ad4cd325d71a17a877af242e
|
||||
EBUILD keyring-13.2.1-r1.ebuild 1184 BLAKE2B 96c4fda0e3a375cca0bce279edf12f44f5fad2164936928d049f77e720b969062e4c829cb097094c6ae3e138ca1086c179249162c33f8d2a7743a1d454c7f51b SHA512 b0b840ce19a4080a4e6eb56b70ee98d173b7086808e70ab631c041396956c5fdf7cadc8a1d1cd456527984cffd7d0e79191225fd5823f154eec266eaa1c10b18
|
||||
EBUILD keyring-13.2.1.ebuild 1019 BLAKE2B bc4e761d749dbaded425683e054028ef234bcf7ed33722b0dcea89eec54f6a58dc6d065657df8af185795651ca1c5e6b01b23b2fb964aee8ae4554c771196f50 SHA512 ac5b4ce8872dcc73b36ba8429dee0af9282e3fda7ea7f33661809b033ccaff9e064562071402fa6e43bd8bffb07cb1dcbe08277eda1b15b96aa86da74b9ec8fd
|
||||
EBUILD keyring-15.0.0.ebuild 1190 BLAKE2B 5c41f74fe95dec4d8bda37ef215f77e921472d2a204e25631e47b56823f73c0d1f742ed9bbff8f2d2f36efc2c73bc9be940a889609cb5b7d28a9b24cf05da4a6 SHA512 c05684ea5b24771c121c74ccb3b526d555baee2f707a0e95a0b5d731ccf0602b647dc8a58ab0fb0bb0779561eb619f69342098298c719bd0894fe9ba1cf2c297
|
||||
EBUILD keyring-18.0.0.ebuild 1206 BLAKE2B c0dc73a01848272014ea98f38e02dfb45f272c126952f6f561356e15a6f20d596e70e388fef61db866e3277395542d10769fce65aff1e4a207484bb6385e6f2a SHA512 b3de38dc1b61139771ffc7fddef303be3c04f459d4af5358496c72dd381b35782f2682a11e25be52dd17912658cf9816db413d41122f8281b997359477eb568b
|
||||
MISC metadata.xml 773 BLAKE2B 0a0957f622a38547688b83092b5961f3fa8f3c7a71cb628c6e5525b0a95f37345b5de0cdb5f5a80ce30a96150c6409920dcc391e230d8fbc6ea385b055a30add SHA512 939015ee7c67aa097663ef547b0726f7c7fc95d659b5f71f414b503e61f28604c05a252a084b65044ee2fc331005c10b5c8af4b4b361527b4a42e061e88b5018
|
||||
|
@ -0,0 +1,50 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{5,6,7} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Provides access to the system keyring service"
|
||||
HOMEPAGE="https://github.com/jaraco/keyring"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="PSF-2"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
IUSE="doc test"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/secretstorage[${PYTHON_USEDEP}]
|
||||
dev-python/entrypoints[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
>=dev-python/setuptools_scm-1.15.0[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
doc? (
|
||||
>=dev-python/jaraco-packaging-3.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/rst-linker-1.9[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
)
|
||||
test? (
|
||||
>=dev-python/pytest-3.7.4[${PYTHON_USEDEP}]
|
||||
${RDEPEND}
|
||||
)
|
||||
"
|
||||
|
||||
python_compile_all() {
|
||||
if use doc; then
|
||||
sphinx-build docs docs/_build/html || die
|
||||
HTML_DOCS=( docs/_build/html/. )
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# Override pytest options to skip flake8
|
||||
# Skip an interactive test
|
||||
pytest -vv --override-ini="addopts=--doctest-modules" \
|
||||
--ignore ${PN}/tests/backends/test_kwallet.py \
|
||||
|| die "testsuite failed under ${EPYTHON}"
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
DIST SecretStorage-2.3.1.tar.gz 16073 BLAKE2B e4769e748ee39596c51012a6ac626dba2b019238a8237678c47d713c2af4b0e88b50d0068b5dbf3a405b9f7b14a7df64aabf751009dd21ab25de65ead2a79c38 SHA512 69a2c86a1abd904b7d71bbb59cead3b2588cf88d7f35cbaf64d18ff9aa9ed62ba9f79d0bebd10136aa8a0edb1ff8a1d1aff70cf8e519dc74303993ef0d564047
|
||||
DIST SecretStorage-3.1.0.tar.gz 17767 BLAKE2B e234a7f34b5ca2debfd04d4f3b4b4e2a1625aa346133e464bbc1f094381445e3d0c5460457c687f55f6682c6b6085a757edb23a6029fe5c2abf139278203f326 SHA512 a044009480b359aecb0c8782f04e4d02c3c1c0e682f72733896c98f386562c43766318963452d60028d0a92d02903130278cf26a5c206f5f0909e106bdb2d133
|
||||
EBUILD secretstorage-2.3.1.ebuild 688 BLAKE2B c3b9fb385b428b3c8552a888a0023f9ebcd694b34f560c8bc3f2936de5ea9a940b0e917896589a6059b55e2620929f08f726f9aa5801b93c2750c4fd5052732f SHA512 8e71eef0cc07a17f81b38c2d6e2f7b15541dfb5f5c5b4acbac7da6aaa7c1c36c5922600382ee248deba3020e9a65cf97071c937aafbf11e651bb339a1104bb11
|
||||
EBUILD secretstorage-3.1.0.ebuild 1031 BLAKE2B 70ce0127b2f93915802881592c01aff9fb1d323cc7cddff3cbe9e81b1b22c7d2d784a3f0ee6327378e202af350fef8516e64084bfd6de2a3a00d1fc06918917f SHA512 e2a4881b12380a4a128753fa36ffa2fdcacc1cd9b88fdd46aa4c2820e1f9f5542882418e83588a8d254df8147082a4b6af2b751d5fc3485de0d0196e415a58db
|
||||
EBUILD secretstorage-3.1.0.ebuild 1069 BLAKE2B 702c60c40f07c6196e45fe96bddce9049cec6f24ab4ef488dd36245a85592c8d743d7d7a8c1df6565687d00fb3df1be06d4f8b3c39daabfc710aa174420158b7 SHA512 1b7e96d396029f2e804279477b501b95c5c6e61882aee5a68fe871844d874f51ae86e62deba076aa7178d25dd4e1c5b008daef65db51d2568c2d911cb2e4fb48
|
||||
MISC metadata.xml 377 BLAKE2B 6401f07923ff58cc70bb0eb9d08efec05924c5b74102e1ff2e9eac0d1f2dafc1f4ef8e31f2434344ad25a6f2ee71061aa23c232d23214d91c4ce5c7de437da64 SHA512 56c6fc8a7b58a5ffa5e2d705567203cad260629bcf8581203be8ec2480a16603334e3298583c297a8e093881955fecd457b250af56bac05871476041d217bd95
|
||||
|
@ -1,4 +1,4 @@
|
||||
AUX testpath-0.2-setup.py.patch 944 BLAKE2B 4a65d8a99fa04115e4e24f91be2b32a5f26a26b1b8fa795472622efea1afa6d5df717c10fbfbf106180d1f6d5f8822350d9605de41fc7db9e37a7b4c7b887df9 SHA512 c27c2dda320d2c16239eb498b2f59f85746745ce1875879a17f41235081983fd1015f0dfd182c6823b998f85aaf460486a3ac6d955be969487692ed50c5648aa
|
||||
DIST testpath-0.3.1.tar.gz 91333 BLAKE2B 86787b9677e8baa6d45fb5e6f047f2ab448e385201f20af3a3a9f33d6edd6c67e4eec09c178e815626096ad77d417ef99ddee562bf0fd7947b3f7ae1862f8156 SHA512 ab826cfb76d9a3ed6f1b178240f6bf61439bd792be26b5ad407b5c3efaa455b48965ceaf17e4ca6a4bc706465a8ed1c6c31a1572df5beeea2bb8db7814dc04f0
|
||||
EBUILD testpath-0.3.1.ebuild 1082 BLAKE2B 80a5c48258179db4fd6a45ea5a929840b3f3ae6bf8294820135131688bd28a4cace3102264822279ee86f5417ae8770767da26ceb5f7ada7b1789b6cb6a0e198 SHA512 db220db5afc6dafc49562707945e456f1dc04236e4f631e3af5f53df83721a2c590db737d2e4dd16b599001094c62793c4313cdb35b15560a1a0ffc79bce1d6f
|
||||
EBUILD testpath-0.3.1.ebuild 1084 BLAKE2B fb6f5a3d1a393423b8965e26b159e85be1b41634af09a33a64379ffb48cce0867f0bae1b563eb3478417101d9d96e37d960b3c60b1a3d9432982ff75643b8da2 SHA512 74365432aad9a4b7549626a71bddbcefc02a64b09896cab79fcafff6ecda764fd5ef1bce6dd7ea279e37b3e6f2f5e4e5c835bee8fb2a7efea5d562d0094be24f
|
||||
MISC metadata.xml 613 BLAKE2B 46ccd59fa5e42a573ba9fe1219a5e5a103876ef3e73363b3e003f76fce1138b7f6a9ef3a023be5b695bbbc1244c047d3f70b23b553b3412695a9791dac83c540 SHA512 c251993ded801317c638b460520800bc7fee9390a3c581c01a463da661eda3c7348117aa98c19efd7eb577666dfe580fc690e2f30d2001bd98e49f2baa33248e
|
||||
|
Binary file not shown.
@ -0,0 +1,111 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
USE_RUBY="ruby23 ruby24 ruby25"
|
||||
|
||||
# git-r3 goes after ruby-ng so that it overrides src_unpack properly
|
||||
inherit cmake-utils eutils multilib ruby-ng
|
||||
|
||||
DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
|
||||
HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="debug test"
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
|
||||
EGIT_BRANCH="master"
|
||||
else
|
||||
[[ "${PV}" = *_rc* ]] || \
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
|
||||
SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
BDEPEND="
|
||||
>=sys-devel/gcc-4.8:*
|
||||
dev-cpp/cpp-hocon"
|
||||
COMMON_DEPEND="
|
||||
>=dev-libs/leatherman-1.0.0:=
|
||||
dev-libs/openssl:*
|
||||
sys-apps/util-linux
|
||||
app-emulation/virt-what
|
||||
net-misc/curl
|
||||
>=dev-libs/boost-1.54:=[nls]
|
||||
>=dev-cpp/yaml-cpp-0.5.1
|
||||
!<app-admin/puppet-4.0.0"
|
||||
|
||||
ruby_add_bdepend "test? ( dev-ruby/rake dev-ruby/rspec:2 dev-ruby/mocha:0.14 )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}"
|
||||
DEPEND="${BDEPEND}
|
||||
${COMMON_DEPEND}"
|
||||
|
||||
# restore ${S} and override all phases exported by ruby-ng.eclass
|
||||
S="${WORKDIR}/${P}"
|
||||
|
||||
pkg_setup() {
|
||||
ruby-ng_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# be explicit about the version of rspec we test with
|
||||
sed -i -e '/libfacter.*specs/ s/rspec/rspec-2/' \
|
||||
CMakeLists.txt || die
|
||||
# be more lenient for software versions for tests
|
||||
sed -i -e '/rake/ s/~> 10.1.0/>= 10/' \
|
||||
-e '/rspec/ s/2.11.0/2.11/' \
|
||||
-e '/mocha/ s/0.10.5/0.14.0/' lib/Gemfile || die
|
||||
# patches
|
||||
default
|
||||
cmake-utils_src_prepare
|
||||
}
|
||||
|
||||
each_ruby_configure() {
|
||||
# hack for correct calculation of relative path from facter.rb to
|
||||
# libfacter.so
|
||||
my_ruby_sitelibdir=$(ruby_rbconfig_value 'sitelibdir')
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
ruby-ng_src_configure
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
-DRUBY_LIB_INSTALL=${my_ruby_sitelibdir}
|
||||
-DBLKID_LIBRARYDIR="${EPREFIX}/$(get_libdir)"
|
||||
)
|
||||
if use debug; then
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_BUILD_TYPE=Debug
|
||||
)
|
||||
fi
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
addpredict /proc/self/oom_score_adj
|
||||
cmake-utils_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cmake-utils_src_test
|
||||
}
|
||||
|
||||
each_ruby_install() {
|
||||
doruby "${BUILD_DIR}"/lib/facter.rb
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake-utils_src_install
|
||||
ruby-ng_src_install
|
||||
}
|
Binary file not shown.
@ -1,11 +1,7 @@
|
||||
AUX gn-gen-r0.patch 2025 BLAKE2B ee95f445ebbf8ba58724aea497d98a2be257708e59c5c5f237f318b3075d5f75135b935defa794cd37ec81aea9ef3c39648e4b92056e9f0746a31ca75e085a4d SHA512 0e281be477d235a15ffc483fa6af03db560bc421392d7c82322c7735c0498ca3e6ea69843ed46bfe7bc562539488c5b6d945e508e66b530d97584e08e154d6d7
|
||||
AUX gn-gen-r1.patch 2045 BLAKE2B dcc370a2625f59475cc5c818800e5b8aa6d3ff0b24a356dc7defb42041ce525230fa691d0ead08ec32581aebda188121bd9115985a3d2bda65bff38557cbdd08 SHA512 77ea25769255879903556961446c731cbc609e911288f64f0600dfc364e2a05896251c3e02b241f94072b2a67c4a6fb7541f7bf7f409339a13902446476c2993
|
||||
AUX gn-gen-r2.patch 2410 BLAKE2B baec5c55e7fbcb2f98128ec8f43bcbc154b0cd8c5348ccbb964020d8ff36117d83078630ba6b952e6860e7dd7d99a0563a8eb7db39f9fea2b30b11a782c10029 SHA512 ca43a150c8f1902b4ae777a8b015403f2cddd63aa9597dc5f9c527928b6820264e4f9cce9179fedc739e12171e47076b05a8ea686107e7c7c9bf2eab4458bb04
|
||||
AUX gn-numerics-arm.patch 7056 BLAKE2B c14f25fa03b5d31aa057d0992ff408176168afef0acc4867f345b4f52b513fc726afb458e0a3e9b45340892e497c03cce1d9bf8da10c90c83d8f6a9cbb9aa031 SHA512 051508e5917775a6ae11d03c69cb4b5260b4eae35a805715204e121cc112f888ff6026a041a942fe49feb59b21a5c7e31cb1a07de63a3d365f7ca13cb13cffdd
|
||||
DIST gn-0.1445.tar.gz 958901 BLAKE2B f50dfa07c621e37d8a9face19ca91f28ca24e14717052218690e85911e25c91b109e6cede8d2be6c8493c0b7b8a305d530db4393123956c42da51cd4812d0300 SHA512 2ca21303aa8709fc4f23f15e01f2eaa8e77e394c27970a21361a22445d5cb29da150b1d05d77b471702ab2da2be04cea2a0d927eb0eb3a1baf3358c6eae15d06
|
||||
AUX gn-gen-r3.patch 1560 BLAKE2B b76caed0277797f9e478465d329933be1418ea01d54cbf2620dfd8bd77fde428705c188a1a5eb2ac0d755622a870c30cebf7e027550ec69698297a64d04145a0 SHA512 80d18a413523ccceccbe8669527cca4b402a400d61c067ece21f8dc2bc9a00d3ac38b24c3f4f399f352d7af20675e1b81eeef3fbde2c681d50354296a8b4cbf5
|
||||
DIST gn-0.1463.tar.gz 905571 BLAKE2B e048e642704533d478fb751748a97f60283f63868ab1ab6fa5b8e7bc0322745cf21464eaa16194f684869b50f306668d3c7d3b4f72c3985b865d8492d1ff0901 SHA512 f32861a8fa44034b932e6aae4787fd7da6e4c6c19c5b6919de7b0d0f1ba20f415c1c55db95a08958a338b7b9de740ff49a29ab894a9c4e9049a89450d8c88281
|
||||
DIST gn-0.1479.tar.gz 909494 BLAKE2B 5d7165371337be630b2d8dcfd8cd067358d56d8d82501288a56bc15955674f0528fde27056c13f32a2b908576a9e2f28529dec9cd1f259e964405874ce74e90f SHA512 2be22c95952f9993d3f89e932abc0ed08eb2e99a3659322d90bf953b1f68591303b3490e0e55bf3988b1226fefef0a5b7f5d3039eb9ef76e4fe36a2e538ef94a
|
||||
EBUILD gn-0.1445.ebuild 1035 BLAKE2B 4379c5852e60d16e4eb7036abd922bfd80d5116d727725ffc887a3c04f951adfed32826d9e5e4780110e61a7b4e547b9b58e912f8d5712b23f88937ebcbfebe3 SHA512 359cae269e45cfb01ebf43205ac0f1c61639d9c9cf62580394245581e55d7812ec356726135a783c75715f998b9b0402230532b890a155d6864c6901318e0006
|
||||
DIST gn-0.1544.tar.gz 911124 BLAKE2B b8bac7783c373e8101cf727c254c2ee50af49c3e679a8df2cb337a0637e305f1f9094517e6af6a76a19300f533a41d9433624a7963ba0151a88a636bc7e6b4f8 SHA512 5cb3a25b66d44cd26063453ddf96563d62b24e8a961ca7fa29a48ee7bde4a423bd0dace36c432b46b677e042fcac9a4fb23afa5dc27e994fca54030b972dad29
|
||||
EBUILD gn-0.1463.ebuild 1034 BLAKE2B b415c7f196a387de4d3460b9b56f4546a76da2c400d246d14cb9e56ca2eb30c3aa8647b5f58ba73c51f7be41793fd799ffc0152a70f81d47c40407eb2e9756f7 SHA512 8a02e407c0a6b78107932705df99ffc1d8180f66f5d3e23ef3c3121d6d42434ba176012ede5ef1b21d47a3a3bda61578af7165d177c4f8d5b1350af0f57a1790
|
||||
EBUILD gn-0.1479.ebuild 1230 BLAKE2B b3207bdea28d83aef19a657017d8715d6ed8b730e479c3155b0f5b93f7e799f34841195f72b773292006197525cc33fe48b6fe5e08db169327d1f4a126dc2f96 SHA512 27f0e899a344f5ba7c30a84d229044632c86372c8308179bf6f6ecc66dca2a846c76c0b5e6d07440ac1d64db429097a0c8dd0cce3c33d0701eae35f547d3e21b
|
||||
EBUILD gn-0.1544.ebuild 1195 BLAKE2B a8476c5c8a3c0cde6dc09e87635764327e95f550977a98d46e1bcfa21255775a95ae999390cb0bcebd60e801c7252fac48d64daf4ca0ea134d68a3cc1db1f457 SHA512 999dc0bc2ee0559259649e19a26372f858e7fb32ce2e3acbff486e890076864d702a3bf203f1e92e5dab54ad0a59895e2b13d691ccba47888d7c9f1c626a2ea4
|
||||
MISC metadata.xml 220 BLAKE2B da4da8d60764ec3b2181bd9ea602d6e3cf830e73e05b09fe8984f147215a2082b030e402c21098ad33de4b3621d1cbc1328bd52f4f9c32d6b0485773251b1d77 SHA512 a1e65cd8b02b8ffb12754e5d12dfd44ad9973de7c61ec867f1454e79563519182baae7d10cee3488622bbba8636fc7a6dca5806208f204a9b66df8436e3cd696
|
||||
|
@ -1,51 +0,0 @@
|
||||
diff --git a/build/gen.py b/build/gen.py
|
||||
index fce8fb18..2927da5f 100755
|
||||
--- a/build/gen.py
|
||||
+++ b/build/gen.py
|
||||
@@ -260,17 +260,12 @@ def WriteGNNinja(path, options, linux_sysroot):
|
||||
if options.debug:
|
||||
cflags.extend(['-O0', '-g'])
|
||||
else:
|
||||
- cflags.append('-DNDEBUG')
|
||||
- cflags.append('-O3')
|
||||
- ldflags.append('-O3')
|
||||
# Use -fdata-sections and -ffunction-sections to place each function
|
||||
# or data item into its own section so --gc-sections can eliminate any
|
||||
# unused functions and data items.
|
||||
cflags.extend(['-fdata-sections', '-ffunction-sections'])
|
||||
ldflags.extend(['-fdata-sections', '-ffunction-sections'])
|
||||
ldflags.append('-Wl,-dead_strip' if is_mac else '-Wl,--gc-sections')
|
||||
- # Omit all symbol information from the output file.
|
||||
- ldflags.append('-Wl,-S' if is_mac else '-Wl,-strip-all')
|
||||
# Enable identical code-folding.
|
||||
if options.use_icf:
|
||||
ldflags.append('-Wl,--icf=all')
|
||||
@@ -279,11 +274,11 @@ def WriteGNNinja(path, options, linux_sysroot):
|
||||
'-D_FILE_OFFSET_BITS=64',
|
||||
'-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
|
||||
'-pthread',
|
||||
- '-pipe',
|
||||
'-fno-exceptions',
|
||||
'-fno-rtti',
|
||||
])
|
||||
cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
|
||||
+ ldflags.append('-pthread')
|
||||
|
||||
if is_linux:
|
||||
if linux_sysroot:
|
||||
@@ -293,15 +288,6 @@ def WriteGNNinja(path, options, linux_sysroot):
|
||||
# probably resolve this and (re-)add a way to build against libc++.
|
||||
cflags.append('--sysroot=' + linux_sysroot)
|
||||
ldflags.append('--sysroot=' + linux_sysroot)
|
||||
- cflags.append('-stdlib=libstdc++')
|
||||
- ldflags.extend(['-static-libstdc++',
|
||||
- '-stdlib=libstdc++',
|
||||
- '-Wl,--as-needed',
|
||||
- ])
|
||||
- libs.extend([
|
||||
- '-lgcc_s',
|
||||
- '-lpthread',
|
||||
- ])
|
||||
elif is_mac:
|
||||
min_mac_version_flag = '-mmacosx-version-min=10.9'
|
||||
cflags.append(min_mac_version_flag)
|
@ -1,70 +0,0 @@
|
||||
From 00e907811ea7fc56de73ad44903946a9179b1c4f Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Sun, 14 Oct 2018 20:34:07 -0400
|
||||
Subject: [PATCH] Remove unwanted cflags/ldflags parameters
|
||||
|
||||
---
|
||||
build/gen.py | 19 +------------------
|
||||
1 file changed, 1 insertion(+), 18 deletions(-)
|
||||
|
||||
diff --git a/build/gen.py b/build/gen.py
|
||||
index 11c92460..b186e3b0 100755
|
||||
--- a/build/gen.py
|
||||
+++ b/build/gen.py
|
||||
@@ -326,9 +326,6 @@ def WriteGNNinja(path, platform, host, options, linux_sysroot):
|
||||
if options.debug:
|
||||
cflags.extend(['-O0', '-g'])
|
||||
else:
|
||||
- cflags.append('-DNDEBUG')
|
||||
- cflags.append('-O3')
|
||||
- ldflags.append('-O3')
|
||||
# Use -fdata-sections and -ffunction-sections to place each function
|
||||
# or data item into its own section so --gc-sections can eliminate any
|
||||
# unused functions and data items.
|
||||
@@ -340,14 +337,6 @@ def WriteGNNinja(path, platform, host, options, linux_sysroot):
|
||||
# Garbage collection is done by default on aix.
|
||||
ldflags.append('-Wl,--gc-sections')
|
||||
|
||||
- # Omit all symbol information from the output file.
|
||||
- if platform.is_darwin():
|
||||
- ldflags.append('-Wl,-S')
|
||||
- elif platform.is_aix():
|
||||
- ldflags.append('-Wl,-s')
|
||||
- else:
|
||||
- ldflags.append('-Wl,-strip-all')
|
||||
-
|
||||
# Enable identical code-folding.
|
||||
if options.use_icf:
|
||||
ldflags.append('-Wl,--icf=all')
|
||||
@@ -356,12 +345,12 @@ def WriteGNNinja(path, platform, host, options, linux_sysroot):
|
||||
'-D_FILE_OFFSET_BITS=64',
|
||||
'-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
|
||||
'-pthread',
|
||||
- '-pipe',
|
||||
'-fno-exceptions',
|
||||
'-fno-rtti',
|
||||
'-fdiagnostics-color',
|
||||
])
|
||||
cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
|
||||
+ ldflags.extend(['-pthread'])
|
||||
|
||||
if platform.is_linux():
|
||||
if linux_sysroot:
|
||||
@@ -369,14 +358,8 @@ def WriteGNNinja(path, platform, host, options, linux_sysroot):
|
||||
cflags.append('--sysroot=' + linux_sysroot)
|
||||
ldflags.append('--sysroot=' + linux_sysroot)
|
||||
ldflags.extend([
|
||||
- '-static-libstdc++',
|
||||
'-Wl,--as-needed',
|
||||
])
|
||||
- libs.extend([
|
||||
- # These are needed by libc++.
|
||||
- '-ldl',
|
||||
- '-lpthread',
|
||||
- ])
|
||||
elif platform.is_darwin():
|
||||
min_mac_version_flag = '-mmacosx-version-min=10.9'
|
||||
cflags.append(min_mac_version_flag)
|
||||
--
|
||||
2.19.1
|
||||
|
@ -0,0 +1,48 @@
|
||||
From bedf2161dea8cf4813fd14891feee2e8e8d5bf28 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Sun, 14 Oct 2018 20:34:07 -0400
|
||||
Subject: [PATCH] Remove unwanted cflags/ldflags parameters
|
||||
|
||||
---
|
||||
build/gen.py | 9 ---------
|
||||
1 file changed, 9 deletions(-)
|
||||
|
||||
diff --git a/build/gen.py b/build/gen.py
|
||||
index a7142fab..06d5e2b3 100755
|
||||
--- a/build/gen.py
|
||||
+++ b/build/gen.py
|
||||
@@ -278,11 +278,6 @@ def WriteGNNinja(path, platform, host, options):
|
||||
if options.debug:
|
||||
cflags.extend(['-O0', '-g'])
|
||||
else:
|
||||
- cflags.append('-DNDEBUG')
|
||||
- cflags.append('-O3')
|
||||
- if options.no_strip:
|
||||
- cflags.append('-g')
|
||||
- ldflags.append('-O3')
|
||||
# Use -fdata-sections and -ffunction-sections to place each function
|
||||
# or data item into its own section so --gc-sections can eliminate any
|
||||
# unused functions and data items.
|
||||
@@ -311,7 +306,6 @@ def WriteGNNinja(path, platform, host, options):
|
||||
'-D_FILE_OFFSET_BITS=64',
|
||||
'-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
|
||||
'-pthread',
|
||||
- '-pipe',
|
||||
'-fno-exceptions',
|
||||
'-fno-rtti',
|
||||
'-fdiagnostics-color',
|
||||
@@ -320,11 +314,8 @@ def WriteGNNinja(path, platform, host, options):
|
||||
|
||||
if platform.is_linux():
|
||||
ldflags.extend([
|
||||
- '-static-libstdc++',
|
||||
'-Wl,--as-needed',
|
||||
])
|
||||
- # This is needed by libc++.
|
||||
- libs.append('-ldl')
|
||||
elif platform.is_darwin():
|
||||
min_mac_version_flag = '-mmacosx-version-min=10.9'
|
||||
cflags.append(min_mac_version_flag)
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,201 +0,0 @@
|
||||
From 8952cb06749d4bd390991878281bc7e72a6eef2c Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppymaster@gmail.com>
|
||||
Date: Mon, 10 Dec 2018 10:27:20 -0500
|
||||
Subject: [PATCH] Add missing headers for ARM
|
||||
|
||||
Bug: https://bugs.gentoo.org/672862
|
||||
---
|
||||
base/numerics/safe_conversions_arm_impl.h | 51 +++++++++
|
||||
base/numerics/safe_math_arm_impl.h | 122 ++++++++++++++++++++++
|
||||
2 files changed, 173 insertions(+)
|
||||
create mode 100644 base/numerics/safe_conversions_arm_impl.h
|
||||
create mode 100644 base/numerics/safe_math_arm_impl.h
|
||||
|
||||
diff --git a/base/numerics/safe_conversions_arm_impl.h b/base/numerics/safe_conversions_arm_impl.h
|
||||
new file mode 100644
|
||||
index 00000000..da5813f6
|
||||
--- /dev/null
|
||||
+++ b/base/numerics/safe_conversions_arm_impl.h
|
||||
@@ -0,0 +1,51 @@
|
||||
+// Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#ifndef BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_
|
||||
+#define BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_
|
||||
+
|
||||
+#include <cassert>
|
||||
+#include <limits>
|
||||
+#include <type_traits>
|
||||
+
|
||||
+#include "base/numerics/safe_conversions_impl.h"
|
||||
+
|
||||
+namespace base {
|
||||
+namespace internal {
|
||||
+
|
||||
+// Fast saturation to a destination type.
|
||||
+template <typename Dst, typename Src>
|
||||
+struct SaturateFastAsmOp {
|
||||
+ static const bool is_supported =
|
||||
+ std::is_signed<Src>::value && std::is_integral<Dst>::value &&
|
||||
+ std::is_integral<Src>::value &&
|
||||
+ IntegerBitsPlusSign<Src>::value <= IntegerBitsPlusSign<int32_t>::value &&
|
||||
+ IntegerBitsPlusSign<Dst>::value <= IntegerBitsPlusSign<int32_t>::value &&
|
||||
+ !IsTypeInRangeForNumericType<Dst, Src>::value;
|
||||
+
|
||||
+ __attribute__((always_inline)) static Dst Do(Src value) {
|
||||
+ int32_t src = value;
|
||||
+ typename std::conditional<std::is_signed<Dst>::value, int32_t,
|
||||
+ uint32_t>::type result;
|
||||
+ if (std::is_signed<Dst>::value) {
|
||||
+ asm("ssat %[dst], %[shift], %[src]"
|
||||
+ : [dst] "=r"(result)
|
||||
+ : [src] "r"(src), [shift] "n"(IntegerBitsPlusSign<Dst>::value <= 32
|
||||
+ ? IntegerBitsPlusSign<Dst>::value
|
||||
+ : 32));
|
||||
+ } else {
|
||||
+ asm("usat %[dst], %[shift], %[src]"
|
||||
+ : [dst] "=r"(result)
|
||||
+ : [src] "r"(src), [shift] "n"(IntegerBitsPlusSign<Dst>::value < 32
|
||||
+ ? IntegerBitsPlusSign<Dst>::value
|
||||
+ : 31));
|
||||
+ }
|
||||
+ return static_cast<Dst>(result);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+} // namespace internal
|
||||
+} // namespace base
|
||||
+
|
||||
+#endif // BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_
|
||||
diff --git a/base/numerics/safe_math_arm_impl.h b/base/numerics/safe_math_arm_impl.h
|
||||
new file mode 100644
|
||||
index 00000000..a7cda1bb
|
||||
--- /dev/null
|
||||
+++ b/base/numerics/safe_math_arm_impl.h
|
||||
@@ -0,0 +1,122 @@
|
||||
+// Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#ifndef BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_
|
||||
+#define BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_
|
||||
+
|
||||
+#include <cassert>
|
||||
+#include <limits>
|
||||
+#include <type_traits>
|
||||
+
|
||||
+#include "base/numerics/safe_conversions.h"
|
||||
+
|
||||
+namespace base {
|
||||
+namespace internal {
|
||||
+
|
||||
+template <typename T, typename U>
|
||||
+struct CheckedMulFastAsmOp {
|
||||
+ static const bool is_supported =
|
||||
+ FastIntegerArithmeticPromotion<T, U>::is_contained;
|
||||
+
|
||||
+ // The following is much more efficient than the Clang and GCC builtins for
|
||||
+ // performing overflow-checked multiplication when a twice wider type is
|
||||
+ // available. The below compiles down to 2-3 instructions, depending on the
|
||||
+ // width of the types in use.
|
||||
+ // As an example, an int32_t multiply compiles to:
|
||||
+ // smull r0, r1, r0, r1
|
||||
+ // cmp r1, r1, asr #31
|
||||
+ // And an int16_t multiply compiles to:
|
||||
+ // smulbb r1, r1, r0
|
||||
+ // asr r2, r1, #16
|
||||
+ // cmp r2, r1, asr #15
|
||||
+ template <typename V>
|
||||
+ __attribute__((always_inline)) static bool Do(T x, U y, V* result) {
|
||||
+ using Promotion = typename FastIntegerArithmeticPromotion<T, U>::type;
|
||||
+ Promotion presult;
|
||||
+
|
||||
+ presult = static_cast<Promotion>(x) * static_cast<Promotion>(y);
|
||||
+ *result = static_cast<V>(presult);
|
||||
+ return IsValueInRangeForNumericType<V>(presult);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+template <typename T, typename U>
|
||||
+struct ClampedAddFastAsmOp {
|
||||
+ static const bool is_supported =
|
||||
+ BigEnoughPromotion<T, U>::is_contained &&
|
||||
+ IsTypeInRangeForNumericType<
|
||||
+ int32_t,
|
||||
+ typename BigEnoughPromotion<T, U>::type>::value;
|
||||
+
|
||||
+ template <typename V>
|
||||
+ __attribute__((always_inline)) static V Do(T x, U y) {
|
||||
+ // This will get promoted to an int, so let the compiler do whatever is
|
||||
+ // clever and rely on the saturated cast to bounds check.
|
||||
+ if (IsIntegerArithmeticSafe<int, T, U>::value)
|
||||
+ return saturated_cast<V>(x + y);
|
||||
+
|
||||
+ int32_t result;
|
||||
+ int32_t x_i32 = x;
|
||||
+ int32_t y_i32 = y;
|
||||
+
|
||||
+ asm("qadd %[result], %[first], %[second]"
|
||||
+ : [result] "=r"(result)
|
||||
+ : [first] "r"(x_i32), [second] "r"(y_i32));
|
||||
+ return saturated_cast<V>(result);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+template <typename T, typename U>
|
||||
+struct ClampedSubFastAsmOp {
|
||||
+ static const bool is_supported =
|
||||
+ BigEnoughPromotion<T, U>::is_contained &&
|
||||
+ IsTypeInRangeForNumericType<
|
||||
+ int32_t,
|
||||
+ typename BigEnoughPromotion<T, U>::type>::value;
|
||||
+
|
||||
+ template <typename V>
|
||||
+ __attribute__((always_inline)) static V Do(T x, U y) {
|
||||
+ // This will get promoted to an int, so let the compiler do whatever is
|
||||
+ // clever and rely on the saturated cast to bounds check.
|
||||
+ if (IsIntegerArithmeticSafe<int, T, U>::value)
|
||||
+ return saturated_cast<V>(x - y);
|
||||
+
|
||||
+ int32_t result;
|
||||
+ int32_t x_i32 = x;
|
||||
+ int32_t y_i32 = y;
|
||||
+
|
||||
+ asm("qsub %[result], %[first], %[second]"
|
||||
+ : [result] "=r"(result)
|
||||
+ : [first] "r"(x_i32), [second] "r"(y_i32));
|
||||
+ return saturated_cast<V>(result);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+template <typename T, typename U>
|
||||
+struct ClampedMulFastAsmOp {
|
||||
+ static const bool is_supported = CheckedMulFastAsmOp<T, U>::is_supported;
|
||||
+
|
||||
+ template <typename V>
|
||||
+ __attribute__((always_inline)) static V Do(T x, U y) {
|
||||
+ // Use the CheckedMulFastAsmOp for full-width 32-bit values, because
|
||||
+ // it's fewer instructions than promoting and then saturating.
|
||||
+ if (!IsIntegerArithmeticSafe<int32_t, T, U>::value &&
|
||||
+ !IsIntegerArithmeticSafe<uint32_t, T, U>::value) {
|
||||
+ V result;
|
||||
+ if (CheckedMulFastAsmOp<T, U>::Do(x, y, &result))
|
||||
+ return result;
|
||||
+ return CommonMaxOrMin<V>(IsValueNegative(x) ^ IsValueNegative(y));
|
||||
+ }
|
||||
+
|
||||
+ assert((FastIntegerArithmeticPromotion<T, U>::is_contained));
|
||||
+ using Promotion = typename FastIntegerArithmeticPromotion<T, U>::type;
|
||||
+ return saturated_cast<V>(static_cast<Promotion>(x) *
|
||||
+ static_cast<Promotion>(y));
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+} // namespace internal
|
||||
+} // namespace base
|
||||
+
|
||||
+#endif // BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_
|
||||
--
|
||||
2.20.0.rc2
|
||||
|
@ -1,56 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
|
||||
inherit ninja-utils python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
|
||||
HOMEPAGE="https://gn.googlesource.com/"
|
||||
SRC_URI="https://dev.gentoo.org/~floppym/dist/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-util/ninja
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/gn-gen-r0.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
:
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
python_setup
|
||||
tc-export AR CC CXX
|
||||
set -- ${EPYTHON} build/gen.py --no-sysroot --no-last-commit-position
|
||||
echo "$@"
|
||||
"$@" || die
|
||||
cat >out/last_commit_position.h <<-EOF || die
|
||||
#ifndef OUT_LAST_COMMIT_POSITION_H_
|
||||
#define OUT_LAST_COMMIT_POSITION_H_
|
||||
#define LAST_COMMIT_POSITION "${PV}"
|
||||
#endif // OUT_LAST_COMMIT_POSITION_H_
|
||||
EOF
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
eninja -C out gn
|
||||
}
|
||||
|
||||
src_test() {
|
||||
eninja -C out gn_unittests
|
||||
out/gn_unittests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin out/gn
|
||||
einstalldocs
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
Sat, 23 Mar 2019 17:08:38 +0000
|
||||
Sat, 23 Mar 2019 20:08:39 +0000
|
||||
|
@ -1 +1 @@
|
||||
Sat, 23 Mar 2019 17:08:38 +0000
|
||||
Sat, 23 Mar 2019 20:08:39 +0000
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig >=sys-devel/autoconf-2.65 !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.4/3.4m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.4.5-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=e04ce50b93b14a9ad6032d8c50122c00
|
@ -1,14 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 virtual/pkgconfig >=sys-devel/autoconf-2.65 !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
SLOT=3.4/3.4m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.4.6-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=55f49bb7580ccb068ad979f7dc09b18a
|
@ -1,14 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) virtual/pkgconfig >=sys-devel/autoconf-2.65 !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
SLOT=3.4/3.4m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.4.6-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=e1e3135b7827d71009265545f76f0f5e
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.5/3.5m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.5.4-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=36424b1e3c10d5338019ed1b49401cab
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.5/3.5m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.5.4-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=9564259a00c851dcb031343abb2a011f
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.5/3.5m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.5.4-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=4b1ebce91ddb072f7354138e75301858
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=5
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.6/3.6m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.6.2-0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=c8e379806adf368325617467de68b8f3
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=6
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= readline? ( >=sys-libs/readline-4.1:0= ) ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.6/3.6m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.6.4.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=8d22ac593e4b0edf9dff5c0debf94610
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=6
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.6/3.6m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.6.4.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=751836ebb1fe1d00396431459b11782f
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=6
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.6/3.6m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.6.6.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=45376ea7026d2476b1b6b255cc16a300
|
@ -1,15 +0,0 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare test
|
||||
DEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 bluetooth? ( net-wireless/bluez ) test? ( app-arch/xz-utils[extra-filters(+)] ) virtual/pkgconfig !sys-devel/gcc[libffi(-)] >=app-portage/elt-patches-20170815 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16.1:1.16 >=sys-devel/automake-1.15.1:1.15 ) >=sys-devel/autoconf-2.69
|
||||
DESCRIPTION=An interpreted, interactive, object-oriented programming language
|
||||
EAPI=6
|
||||
HOMEPAGE=https://www.python.org/
|
||||
IUSE=bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
|
||||
LICENSE=PSF-2
|
||||
PDEPEND=>=app-eselect/eselect-python-20140125-r1
|
||||
RDEPEND=app-arch/bzip2:0= app-arch/xz-utils:0= >=sys-libs/zlib-1.1.3:0= virtual/libffi:= virtual/libintl gdbm? ( sys-libs/gdbm:0=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:0= ) readline? ( >=sys-libs/readline-4.1:0= ) sqlite? ( >=dev-db/sqlite-3.3.8:3= ) ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) ) tk? ( >=dev-lang/tcl-8.0:0= >=dev-lang/tk-8.0:0= dev-tcltk/blt:0= dev-tcltk/tix ) xml? ( >=dev-libs/expat-2.1:0= ) !!<sys-apps/sandbox-2.6-r1 !build? ( app-misc/mime-types )
|
||||
RESTRICT=!test? ( test )
|
||||
SLOT=3.7/3.7m
|
||||
SRC_URI=https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz https://dev.gentoo.org/~floppym/python/python-gentoo-patches-3.7.0.tar.xz
|
||||
_eclasses_=autotools 1bf086cdd7356f5c9a4acd9727bd2065 desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf libtool f143db5a74ccd9ca28c1234deffede96 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 pax-utils e85f015e815dd463b0c206d781ef45a5 preserve-libs ef207dc62baddfddfd39a164d9797648 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
|
||||
_md5_=b59e72b4753b6a54d8c55814450e184c
|
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
BDEPEND=>=dev-python/setuptools_scm-1.15.0[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] doc? ( >=dev-python/jaraco-packaging-3.2[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] >=dev-python/rst-linker-1.9[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/sphinx[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] ) test? ( >=dev-python/pytest-3.7.4[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/secretstorage[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/entrypoints[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DESCRIPTION=Provides access to the system keyring service
|
||||
EAPI=7
|
||||
HOMEPAGE=https://github.com/jaraco/keyring
|
||||
IUSE=doc test python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7
|
||||
KEYWORDS=~amd64 ~arm ~arm64 ~x86
|
||||
LICENSE=PSF-2
|
||||
RDEPEND=dev-python/secretstorage[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/entrypoints[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7 )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://pypi/k/keyring/keyring-18.0.0.tar.gz
|
||||
_eclasses_=distutils-r1 30044897f9a75ab6414bdb19aa3c07d4 multibuild 40fe59465edacd730c644ec2bc197809 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 ce1cd23cfdc1848e8e32743efe34f299 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9
|
||||
_md5_=e772d2416bf1f7e2879532cba57ea8e9
|
@ -1,15 +1,15 @@
|
||||
BDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
BDEPEND=python_targets_pypy? ( >=virtual/pypy-5:0= ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
DEFINED_PHASES=compile configure install prepare test
|
||||
DEPEND=dev-python/setuptools[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] doc? ( dev-python/sphinx[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/sphinx_rtd_theme[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] )
|
||||
DEPEND=dev-python/setuptools[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] doc? ( dev-python/sphinx[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] dev-python/sphinx_rtd_theme[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] )
|
||||
DESCRIPTION=More routines for operating on iterables, beyond itertools
|
||||
EAPI=7
|
||||
HOMEPAGE=https://pypi.org/project/more-itertools/
|
||||
IUSE=doc python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-fbsd ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
IUSE=doc python_targets_pypy python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-fbsd ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
|
||||
LICENSE=MIT
|
||||
RDEPEND=python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
REQUIRED_USE=|| ( python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7 )
|
||||
RDEPEND=python_targets_pypy? ( >=virtual/pypy-5:0= ) python_targets_pypy3? ( >=virtual/pypy3-5:0= ) python_targets_python3_5? ( dev-lang/python:3.5 ) python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) >=dev-lang/python-exec-2:=[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]
|
||||
REQUIRED_USE=|| ( python_targets_pypy python_targets_pypy3 python_targets_python3_5 python_targets_python3_6 python_targets_python3_7 )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://pypi/m/more-itertools/more-itertools-6.0.0.tar.gz
|
||||
_eclasses_=distutils-r1 30044897f9a75ab6414bdb19aa3c07d4 multibuild 40fe59465edacd730c644ec2bc197809 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 python-r1 ce1cd23cfdc1848e8e32743efe34f299 python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9
|
||||
_md5_=6596079d9571e5fb7ef622aa316dd791
|
||||
_md5_=fc23f78ed8a4d7ea60f02448fd82b5e4
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install prepare setup test unpack
|
||||
DEPEND=>=sys-devel/gcc-4.8:* dev-cpp/cpp-hocon >=dev-libs/leatherman-1.0.0:= dev-libs/openssl:* sys-apps/util-linux app-emulation/virt-what net-misc/curl >=dev-libs/boost-1.54:=[nls] >=dev-cpp/yaml-cpp-0.5.1 !<app-admin/puppet-4.0.0 sys-devel/make >=dev-util/cmake-3.9.6 ruby_targets_ruby23? ( dev-lang/ruby:2.3 ) ruby_targets_ruby24? ( dev-lang/ruby:2.4 ) ruby_targets_ruby25? ( dev-lang/ruby:2.5 )
|
||||
DESCRIPTION=A cross-platform ruby library for retrieving facts from operating systems
|
||||
EAPI=6
|
||||
HOMEPAGE=http://www.puppetlabs.com/puppet/related-projects/facter/
|
||||
IUSE=debug test elibc_FreeBSD ruby_targets_ruby23 ruby_targets_ruby24 ruby_targets_ruby25
|
||||
KEYWORDS=~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86
|
||||
LICENSE=Apache-2.0
|
||||
RDEPEND=>=dev-libs/leatherman-1.0.0:= dev-libs/openssl:* sys-apps/util-linux app-emulation/virt-what net-misc/curl >=dev-libs/boost-1.54:=[nls] >=dev-cpp/yaml-cpp-0.5.1 !<app-admin/puppet-4.0.0 ruby_targets_ruby23? ( dev-lang/ruby:2.3 ) ruby_targets_ruby24? ( dev-lang/ruby:2.4 ) ruby_targets_ruby25? ( dev-lang/ruby:2.5 )
|
||||
REQUIRED_USE=|| ( ruby_targets_ruby23 ruby_targets_ruby24 ruby_targets_ruby25 )
|
||||
SLOT=0
|
||||
SRC_URI=https://github.com/puppetlabs/facter/archive/3.12.4.tar.gz -> facter-3.12.4.tar.gz
|
||||
_eclasses_=cmake-utils ab10bd85e5d38e2a32077bcd91faa1b6 desktop b1d22ac8bdd4679ab79c71aca235009d eapi7-ver 756b3f27d8e46131d5cf3c51bd876446 epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 flag-o-matic a09389deba2c0a7108b581e02c7cecbf java-utils-2 dd352559d0e143500ec878acc74da909 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f preserve-libs ef207dc62baddfddfd39a164d9797648 ruby-ng 9ffc1c055a3294fcc48de781c94825f6 ruby-utils 10cec86289e60f4b0d731b2e4b545e5d toolchain-funcs b45201c4e6c096b98e250336954e64b9 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 2352c3fc97241f6a02042773c8287748 xdg-utils 14d00d009167652b1fa363e55effe213
|
||||
_md5_=9b39ff4cf1c5a5ef0418581702f2c899
|
Binary file not shown.
@ -1,11 +0,0 @@
|
||||
BDEPEND=|| ( >=dev-lang/python-2.7.5-r2:2.7 ) dev-util/ninja
|
||||
DEFINED_PHASES=compile configure install setup test
|
||||
DESCRIPTION=GN is a meta-build system that generates build files for Ninja
|
||||
EAPI=7
|
||||
HOMEPAGE=https://gn.googlesource.com/
|
||||
KEYWORDS=~amd64 ~x86
|
||||
LICENSE=BSD
|
||||
SLOT=0
|
||||
SRC_URI=https://dev.gentoo.org/~floppym/dist/gn-0.1445.tar.gz
|
||||
_eclasses_=multilib b2f01ad412baf81650c23fcf0975fa33 multiprocessing cac3169468f893670dac3e7cb940e045 ninja-utils 132cbb376048d079b5a012f5467c4e7f python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs b45201c4e6c096b98e250336954e64b9
|
||||
_md5_=6f094769b3ee180acb7756702ef57310
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
Sat, 23 Mar 2019 17:08:38 +0000
|
||||
Sat, 23 Mar 2019 20:08:39 +0000
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue