forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-lang/python: version bump to 2.7.11
Package-Manager: portage-2.2.20.1
- Loading branch information
Showing
2 changed files
with
373 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,10 @@ | ||
DIST Python-2.7.10.tar.xz 12250696 SHA256 1cd3730781b91caf0fa1c4d472dc29274186480161a150294c42ce9b5c5effc0 SHA512 67615a6defbcda062f15a09f9dd3b9441afd01a8cc3255e5bc45b925378a0ddc38d468b7701176f6cc153ec52a4f21671b433780d9bde343aa9b9c1b2ae29feb WHIRLPOOL 3a9dcfc55b107dc55ad0ae93fb24a11eab7d4d9b4cfbe6b6830a090b6e5f71bb2ac91526b89c6f3e4f2610fa1a2cc4e82b58a83c599aa71f94894c74181b504b | ||
DIST Python-2.7.11.tar.xz 12277476 SHA256 962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46 SHA512 72166763a2fe6aab45ecf378f55a1efc7322d1742c4638bae84f4ed4b9fb4c01f2a0293733c64426ae2c70df24d95ff2b1e2a4f3c2715de00d8f320d4d939ea0 WHIRLPOOL 7ebcff7a2fe775a21a3847dee10369b73aaea8685eb63b4bc33dab0f562b8fb984c398cb34e8158cf1e24f106002829649540aad30a5ec7f4de0018ce7449f69 | ||
DIST Python-3.3.5.tar.xz 12116308 SHA256 abe99b484434503d8b23be0f243ec27139e743a4798cd71c1dce3cf40e63b6e5 SHA512 562ebd85291f29ff18d37f05682763fc45aa9d070688006f4ef5c89392a48022357c3ca9ee1d795e9e863bdef413e6bab77b8d65581d374a76dbe7cacec65550 WHIRLPOOL f4b6010d32b28b7bb038cbb7c5f98d325cc4253fd1be9a0a1089ed6fd7dd414c5169931d21ef819137d5c1084517a650828f260cf2a1d8ce871bc67aeef3fff8 | ||
DIST Python-3.4.3.tar.xz 14421964 SHA256 b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8 SHA512 55b2d7c07da8ad3a3971b4687da2e45809c6f1474732e93b0432f121f287d0b63ad8a9bf381987ea70f47a03d9474c3e55b7d86d14800bf7ef29b3324d8d35b9 WHIRLPOOL f851dedc6a1ea35adec83d60784a5fbcd9dfcf6aa8858bb5ada114fa2ff55add1fbf323ab94ec039ecdedb26d59e8f2e6e171cd9fc1ed41ad9cfa434a555cff3 | ||
DIST Python-3.5.0.tar.xz 14808460 SHA256 d6d7aa1634a5eeeca6ed4fca266982a04f84bd8f3945a9179e20b24ad2e2be91 SHA512 f06bd652484aa89371021d0f9fcb08e6e905e90b39ae065d7df75b367e66b7ea43a818ca33ce04aa3d6746b5e8b1b83e90b709ac2203324fb7a595c1017be149 WHIRLPOOL aef3970297911324537e4e1e9d0e179c925bf51fea9d6a6413a08e3f349fd244d834e6fe732e9120669b762c302b47f821de170ce083d2cc39b7e35f51fdd1f0 | ||
DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9 | ||
DIST python-gentoo-patches-2.7.11-0.tar.xz 12916 SHA256 e14b47bb1fd64d366d7dfb8339cc2cbf4a53fc288b11dd83f575eb36a8a6408d SHA512 f0447bb699a163afc08df39b111394377539935546ae23732d7239e78d2bff0c04bc94949f86aef0c1be83736127dbd25c2c531e49befed2d638c3cd4940ac52 WHIRLPOOL 305992849d9d244da1e308e739c9bf62a3ef5c74eb65c765bdc666fb5767eb16c7a609f7c442c17da17f76c3ab81e4b09fa8c21e43f89366539a6a9d656bea77 | ||
DIST python-gentoo-patches-3.3.5-0.tar.xz 12892 SHA256 a7240de9598033cb40f8f273d8104d4e2b1dcaea028d45ac28efaa3c680ff6f7 SHA512 27eef4c2b3f631b000db3f6a5c426d9b498d63a08fe82b1ab7c2c010fb72208109461a5f008d47703852526655b70a734ea95be8742897026db5750bb9cc9d16 WHIRLPOOL edab9222d7da94cab3b1de0e1a27c6c7dbd49194b813a0a1cf9e532063029c4e4f19151c9f4878eeabed3168ff1f97eae7f008280c7ed2897fc14c5516c68d7e | ||
DIST python-gentoo-patches-3.4.3-0.tar.xz 11736 SHA256 917a9d98d40a91379c81ea57922a8632ba3c6f6db6f304ed6262bc88c5044946 SHA512 7ad1b30cf8bb7900fe518ed71e4ee55dd92ce7e23ae583a1f2f851b26cfa8c4f4271d28f418e780f3725a48d4ca8eeb8fd083f850810c66c29fb08c430828d72 WHIRLPOOL 074e8c0055b49a028eebda21d1acfb8a25ec968eb8b350c2bed37e042f9f354871e413db13e0ef2fe41d7e56d647178a7b3622019f36c4819c2c68f088366eb1 | ||
DIST python-gentoo-patches-3.5.0-0.tar.xz 11872 SHA256 8d1830aee5f7e019250447ee084203e26143bdf47c95435861e3e0eda5106eb6 SHA512 d7b6c7fdfdea9d7577b14febf2e4680839908a8eba05f3bc17e71f2fe4c360816a8126de5fa69cfba6930be9793bf1b9cafcde2ae621c1150cb9f1ffecc4a3d4 WHIRLPOOL 01202442c789cd9f54748ec80f9c5b1d2728c5df876a2c8fa417c3078a6e9cc55103ee07fce76f402b15afe1625c5b0497734dc4b601fb304e75bf652ce2f058 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,371 @@ | ||
# Copyright 1999-2015 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
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="2.7.11-0" | ||
|
||
DESCRIPTION="An interpreted, interactive, object-oriented programming language" | ||
HOMEPAGE="http://www.python.org/" | ||
SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz | ||
https://dev.gentoo.org/~djc/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz" | ||
|
||
LICENSE="PSF-2" | ||
SLOT="2.7" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" | ||
IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode 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= | ||
>=sys-libs/zlib-1.1.3:0= | ||
virtual/libffi | ||
virtual/libintl | ||
berkdb? ( || ( | ||
sys-libs/db:5.3 | ||
sys-libs/db:5.2 | ||
sys-libs/db:5.1 | ||
sys-libs/db:5.0 | ||
sys-libs/db:4.8 | ||
sys-libs/db:4.7 | ||
sys-libs/db:4.6 | ||
sys-libs/db:4.5 | ||
sys-libs/db:4.4 | ||
sys-libs/db:4.3 | ||
sys-libs/db:4.2 | ||
) ) | ||
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:= ) | ||
) | ||
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 ) | ||
!!<sys-apps/portage-2.1.9" | ||
DEPEND="${RDEPEND} | ||
virtual/pkgconfig | ||
>=sys-devel/autoconf-2.65 | ||
!sys-devel/gcc[libffi]" | ||
RDEPEND+=" !build? ( app-misc/mime-types ) | ||
doc? ( dev-python/python-docs:${SLOT} )" | ||
PDEPEND="app-eselect/eselect-python | ||
app-admin/python-updater" | ||
|
||
S="${WORKDIR}/${MY_P}" | ||
|
||
pkg_setup() { | ||
if use berkdb; then | ||
ewarn "'bsddb' module is out-of-date and no longer maintained inside" | ||
ewarn "dev-lang/python. 'bsddb' and 'dbhash' modules have been additionally" | ||
ewarn "removed in Python 3. A maintained alternative of 'bsddb3' module" | ||
ewarn "is provided by dev-python/bsddb3." | ||
else | ||
if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then | ||
ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb]" | ||
ewarn "to =${CATEGORY}/${PN}-${PV%%.*}*[-berkdb]." | ||
ewarn "You might need to migrate your databases." | ||
fi | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
# Ensure that internal copies of expat, libffi and zlib are not used. | ||
rm -r Modules/expat || die | ||
rm -r Modules/_ctypes/libffi* || die | ||
rm -r Modules/zlib || die | ||
|
||
if tc-is-cross-compiler; then | ||
local EPATCH_EXCLUDE="*_regenerate_platform-specific_modules.patch" | ||
fi | ||
|
||
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches" | ||
|
||
# Fix for cross-compiling. | ||
epatch "${FILESDIR}/python-2.7.5-nonfatal-compileall.patch" | ||
epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch" | ||
epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch" | ||
epatch "${FILESDIR}/python-2.7.10-system-libffi.patch" | ||
|
||
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 \ | ||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" | ||
|
||
epatch_user | ||
|
||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
# dbm module can be linked against berkdb or gdbm. | ||
# Defaults to gdbm when both are enabled, #204343. | ||
local disable | ||
use berkdb || use gdbm || disable+=" dbm" | ||
use berkdb || disable+=" _bsddb" | ||
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 | ||
|
||
[[ "${ARCH}" == "alpha" ]] && append-flags -fPIC | ||
|
||
# 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 | ||
|
||
if tc-is-cross-compiler; then | ||
# Force some tests that try to poke fs paths. | ||
export ac_cv_file__dev_ptc=no | ||
export ac_cv_file__dev_ptmx=yes | ||
fi | ||
|
||
# Export CXX so it ends up in /usr/lib/python2.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 -lpython2.7 correctly. | ||
# Needed on FreeBSD unless Python 2.7 is already installed. | ||
# Please query BSD team before removing this! | ||
append-ldflags "-L." | ||
|
||
local dbmliborder | ||
if use gdbm; then | ||
dbmliborder+="${dbmliborder:+:}gdbm" | ||
fi | ||
if use berkdb; then | ||
dbmliborder+="${dbmliborder:+:}bdb" | ||
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) \ | ||
$(use wide-unicode && echo "--enable-unicode=ucs4" || echo "--enable-unicode=ucs2") \ | ||
--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() { | ||
# Avoid invoking pgen for cross-compiles. | ||
touch Include/graminit.h Python/graminit.c | ||
|
||
cd "${BUILD_DIR}" || die | ||
emake | ||
|
||
# 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="distutils gdb" | ||
|
||
for test in ${skipped_tests}; do | ||
mv "${S}"/Lib/test/test_${test}.py "${T}" | ||
done | ||
|
||
# Rerun failed tests in verbose mode (regrtest -w). | ||
emake test EXTRATESTOPTS="-w" < /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${SLOT}/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${SLOT} | ||
|
||
cd "${BUILD_DIR}" || die | ||
emake DESTDIR="${D}" altinstall | ||
|
||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed" | ||
|
||
# Fix collisions between different slots of Python. | ||
mv "${ED}usr/bin/2to3" "${ED}usr/bin/2to3-${SLOT}" | ||
mv "${ED}usr/bin/pydoc" "${ED}usr/bin/pydoc${SLOT}" | ||
mv "${ED}usr/bin/idle" "${ED}usr/bin/idle${SLOT}" | ||
rm -f "${ED}usr/bin/smtpd.py" | ||
|
||
use berkdb || rm -r "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*} || die | ||
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die | ||
use tk || rm -r "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk} || die | ||
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test} | ||
|
||
use threads || rm -r "${libdir}/multiprocessing" || die | ||
use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die | ||
|
||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} | ||
|
||
if use examples; then | ||
insinto /usr/share/doc/${PF}/examples | ||
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-${SLOT} | ||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} | ||
sed \ | ||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${SLOT/./_}_PORT:" \ | ||
-e "s:@PYDOC@:pydoc${SLOT}:" \ | ||
-i "${ED}etc/conf.d/pydoc-${SLOT}" "${ED}etc/init.d/pydoc-${SLOT}" || 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}:}. | ||
else | ||
vars=( PYTHON "${vars[@]}" ) | ||
fi | ||
|
||
python_export "python${SLOT}" "${vars[@]}" | ||
echo "EPYTHON='${EPYTHON}'" > epython.py || die | ||
python_domodule epython.py | ||
|
||
# python-exec wrapping support | ||
local pymajor=${SLOT%.*} | ||
mkdir -p "${D}${PYTHON_SCRIPTDIR}" || die | ||
# python and pythonX | ||
ln -s "../../../bin/python${SLOT}" \ | ||
"${D}${PYTHON_SCRIPTDIR}/python${pymajor}" || die | ||
ln -s "python${pymajor}" \ | ||
"${D}${PYTHON_SCRIPTDIR}/python" || die | ||
# python-config and pythonX-config | ||
ln -s "../../../bin/python${SLOT}-config" \ | ||
"${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-${SLOT}" \ | ||
"${D}${PYTHON_SCRIPTDIR}/2to3" || die | ||
ln -s "../../../bin/pydoc${SLOT}" \ | ||
"${D}${PYTHON_SCRIPTDIR}/pydoc" || die | ||
} | ||
|
||
pkg_preinst() { | ||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.7"; 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 "You should switch active version of Python ${PV%%.*} and run" | ||
ewarn "'python-updater [options]' to rebuild Python modules." | ||
fi | ||
} | ||
|
||
pkg_postrm() { | ||
eselect_python_update | ||
} |