parent
a45a9310e4
commit
544f4dbab7
@ -1,35 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-arch/lbzip2/lbzip2-2.2.ebuild,v 1.9 2012/10/07 11:55:08 jlec Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit autotools-utils
|
||||
|
||||
DESCRIPTION="Parallel bzip2 utility"
|
||||
HOMEPAGE="https://github.com/kjn/lbzip2/"
|
||||
SRC_URI="mirror://github/kjn/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
|
||||
IUSE="debug symlink"
|
||||
|
||||
PATCHES=( "${FILESDIR}"/${P}-s_isreg.patch )
|
||||
|
||||
RDEPEND="symlink? ( !app-arch/pbzip2[symlink] )"
|
||||
DEPEND=""
|
||||
|
||||
src_configure() {
|
||||
local myeconfargs=(
|
||||
--disable-silent-rules
|
||||
$(use_enable debug tracing)
|
||||
)
|
||||
autotools-utils_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
autotools-utils_src_install
|
||||
|
||||
use symlink && dosym ${PN} /usr/bin/bzip2
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-portage/smart-live-rebuild/smart-live-rebuild-1.3.3.ebuild,v 1.1 2013/10/10 08:22:55 mgorny Exp $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Check live packages for updates and emerge them as necessary"
|
||||
HOMEPAGE="https://bitbucket.org/mgorny/smart-live-rebuild/"
|
||||
SRC_URI="mirror://bitbucket/mgorny/${PN}/downloads/${P}.tar.bz2"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~mips ~x86 ~x86-fbsd"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND=">=app-portage/gentoopm-0.2.1[${PYTHON_USEDEP}]"
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" setup.py test || die
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
insinto /etc/portage
|
||||
newins smart-live-rebuild.conf{.example,}
|
||||
insinto /usr/share/portage/config/sets
|
||||
newins sets.conf.example ${PN}.conf
|
||||
}
|
@ -1,26 +1,24 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
DIST wdiff-1.1.2.tar.gz 1397234 SHA256 12cd30af53ad3ebfe4ec5e094c2b855a186f15bf8b46fce3d655cacd55f1e860 SHA512 58ffb7075b1f39e2e6df803817340920fe537b289575cb8eed60ee3086276c2557dbc3ca404238a4661b87d27bfc6d76f18ef925cba0d448ae0ca15ab60d90c2 WHIRLPOOL 741bf56417b4ad5ea8bcf1cfdd96d8444ce15c56e3c276ed72255f05fb88650261d1efca772d8c839d2c6e93209b0e4acf5507bcfdfa52e7850ec12076275c7d
|
||||
DIST wdiff-1.2.1.tar.gz 1425114 SHA256 8158d276c0db62ebb1ee20c738751c68e86fd21b7898cf57524dcde8e38565bd SHA512 7f7f8f72257fbe9dcb4b37e52047f4465a55287a7a0977082b7ba06d8a68e66408b4fd7727a6f4fc0284b55ab63ace2f5242d77f50ba425b212ea7bb0a0812b4 WHIRLPOOL 34504831ed853e820211c12482767149c8854e8cd3a945974571614c4967cc420928594981d6e4acfacfc1931af70c5dfd2975a481ae9805e249862e0878865a
|
||||
EBUILD wdiff-1.1.2.ebuild 914 SHA256 d70625faa622022777a7a2fc210b72eab50296546481db5c480c838c8d8dffea SHA512 985fbd50d22bf523da4e8b574956b15a1a3295487ffa7868c338ca3a982260f8f3b22164c3a7c7f5bc27a694d2a007f8029f0e44f0e04be6bcc3681064ed17cb WHIRLPOOL 6780491506ae0e580068603e7277a702962a112dc37db635328b6a6f73be843793f4618ec5b68bae46bfb42d68dcb7f09887f0038dbb4a16cc53bf75287a4537
|
||||
EBUILD wdiff-1.2.1.ebuild 931 SHA256 acc2c689892502968c3d6ec20aa2d59a8146b1a06910af4d4d2d0e89cc6b7c7e SHA512 f8d71f08b034dbcddeeae1160d8983a10e4f60486cfc663d66d7e175d15ddf6c530b15124b2e01b2c3354548b3ed311f624b5ff2232e42c2a11d68e7095eedfd WHIRLPOOL 3fa9069b78ec6cc57407a5df239540a07a3e696c21803731c11a0a486a11216d11f10c3fcc9e6adfcca9d8e338e1f20a841bfcc8571dd5ddde9064086fae30e4
|
||||
MISC ChangeLog 10635 SHA256 52f382030ef4678b27c0d3964b76be0d05fa42926d711691cc19012b24c140c3 SHA512 a507766ea973679b94aabd6a56e5a280a5ecaf586bbd001484a523c174ef30b36e7649e4d32452e2d3b3f92efb3f07c75050c33dc1597e5b88b18d037645eaff WHIRLPOOL a942f32bff98c141f2cca15888dd788d25644d0cbd3d40cc75f077a3e8d9fadbc575ff7c15e13b414f94acc60d6b4752ca823cd66a0b65fb811b7be557fd67c2
|
||||
MISC ChangeLog 10716 SHA256 f7043e179fc4f339352f81a02d258a6669b0881d51db6aed872d9ef65031ab10 SHA512 2f06deb6eca7118a689764b35b4582b869db50541a88ec33f6d4b2d118defceadb0e7514edbe9bee2a53ffa2bc66bd61515872003df7475eabd630befbdb7054 WHIRLPOOL 37e1535609db652c5f514ba211050119875e9b646a463f29150b068e36dc8d3c0414e59dd833b709961bef6e24ff5e3c54bbcfe0cd03212285dd7da2d3d84caa
|
||||
MISC metadata.xml 272 SHA256 e6bc6fa2d183b2eb0d3922e7eb4c2f34ceae66326763fc7c851e98b2d8693329 SHA512 960d95f546224728db0f4b3a0b8f45a2bc118a615b2efa3b5aff2346db6d576191b4c6c577fdbb65501e40b355291ae0f7c81b120c9abc9cbd57f45f348d09ba WHIRLPOOL b02a0d3cafa8e8df7175dad9dea1ed64a600f2cb3b3e2b44e84905c15bda70a5edb1ea18416c596e2eae21a71e8257167de1a15292b7155616302c9c3aab372f
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.19 (GNU/Linux)
|
||||
Version: GnuPG v2.0.22 (GNU/Linux)
|
||||
|
||||
iQIcBAEBCgAGBQJRtKXDAAoJELp701BxlEWf0E4P/AyOQ/i5GgBId2kfolT1Cygp
|
||||
S+oWkxB6Rqg7+bwenuBQ7RGIybp4sJ4OExmc5ARUt3VWDbjoZSinYH9BQ42neyOR
|
||||
nbkDvxYebisabz5dHEzLmPUeDo76PyO6dTAI8v6vettMVw3DGhvTC6biK1EjJuTW
|
||||
j3+7m6eHWmISnRYqKgLVOKZ4wyg3SRrrR4na6m4H1q6kYIiFvjm5+WbzCu5Gpx1x
|
||||
iqGyU4U5VJqRUIqQAuFhnNFTZ+M0Yo+AXZ19o+oI4gxUbpmKpi7O6dmIhyGa0CNh
|
||||
mGqHuaPs4j4xJ60hN/NiaJOT//5VvtwPtbQ3UVUciMao+xYnNVBQMBZhjhHufm7k
|
||||
8gPgdLPpa3i7Alwp+naRSBKClutPbAJCaE7V6ff5C4PTShV/QvbPjPw4hWbiohBa
|
||||
/jCN1qRWIb3Asch4aK9biy+HwASW9RFLKkE7nBqS3vY3ZRxodRo9Zc7Fk7XGsGuF
|
||||
bIgDuBj2aWUg7W41o+70IL/PQ65KkWiij1/L2JagAV4Wc1NP9Bm5ji9NxbzyTkZo
|
||||
zUJK+6AKcZiRliM8nJcaatyTyusIolwfOx6XTuMvszN8W5ZlbIgfvP/UtsChv9fA
|
||||
BMTtTEY2KKafkPdKwjw//z0qBdrRbxULyt6vP9eMB3QfkiNrNiOPH/bj2Wu5UzpJ
|
||||
2fRD2QYtnzkggA1ZAmUO
|
||||
=4jX8
|
||||
iQIcBAEBCgAGBQJSVnqEAAoJELnU8jG9FVirHfEP/3gXyGkLUfZ5DkU73RIpYIZl
|
||||
8pPbptSDRgbq2Xj/l1Za2vXHzGrCqouGjc4oOqHVT6j/XeHxWiVwKaJKIck9OmLw
|
||||
qu7FU1i3P8lc/Vhd4Cf9STfu61Vldoc5onI99QCaSJdNRu1tmxHHI5ZA+pGHtA25
|
||||
CrHg5tlOvi6O6wedE6f32ZyeQ6dkhibTK8/v0rL32r5yAmSZO7zzK82F8JCYe/Kw
|
||||
Y/WmaGx5l7IfTW7Y9+eJkpTAAXm9jKMXJOafxzW9ADhoR1qNNdhWCvkA1wlsXNoI
|
||||
kU+IYwub6jAGhalxxgUq9++IHg9nwAWd5UJeVtvypftorrFz6lAlY9se0JyN8/xD
|
||||
DtMlaRLArk4T5YhTGDcbYdNstGtcieamzFShpnMep0pmNRLcm4Gv+sOs03QI5yN8
|
||||
Opvap47NWYgPUhOewhOfsgpgIdoONnBc3/P6yX3frFxJr9IofEqR5ZMwxo8Smlfy
|
||||
frLCoF+6Qx4q2az/ZXDzQfKLD1lETkEp4jO04SOfdCaPGMVEUMQJkgT8FHS9er7f
|
||||
e3NB3H5qCBZ3afu2FEsCu0LQLPFIA4PjbgQO9tBkv5wBEc17cKZGcey/tq1z4swQ
|
||||
3T68bBT7ZaioZWabamKmHLk1gIUBZ4p0oSOKtVv60UueeUpcrCRcDplPxnN88YNw
|
||||
ojHwW2Gdgjvzns69M6Zy
|
||||
=QsrN
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-text/wdiff/wdiff-1.1.2.ebuild,v 1.8 2012/09/30 16:33:20 armin76 Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
DESCRIPTION="Create a diff disregarding formatting"
|
||||
HOMEPAGE="http://www.gnu.org/software/wdiff/"
|
||||
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris"
|
||||
IUSE="experimental test"
|
||||
|
||||
RDEPEND="sys-apps/diffutils
|
||||
sys-apps/less"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( app-misc/screen )"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_enable experimental)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# The test suite hangs in the '3: use pager' test
|
||||
# when an incompatible screenrc is found
|
||||
touch tests/screenrc || die
|
||||
export SYSSCREENRC=tests/screenrc SCREENRC=tests/screenrc
|
||||
default
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
http://bugs.python.org/issue15000
|
||||
|
||||
x32 has 64bit values for the first two args
|
||||
|
||||
--- a/Modules/_posixsubprocess.c
|
||||
+++ b/Modules/_posixsubprocess.c
|
||||
@@ -175,8 +175,13 @@
|
||||
* chooses to break compatibility with all existing binaries. Highly Unlikely.
|
||||
*/
|
||||
struct linux_dirent {
|
||||
+#if defined(__x86_64__) && defined(__ILP32__)
|
||||
+ unsigned long long d_ino;
|
||||
+ unsigned long long d_off;
|
||||
+#else
|
||||
unsigned long d_ino; /* Inode number */
|
||||
unsigned long d_off; /* Offset to next linux_dirent */
|
||||
+#endif
|
||||
unsigned short d_reclen; /* Length of this linux_dirent */
|
||||
char d_name[256]; /* Filename (null-terminated) */
|
||||
};
|
@ -1,364 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.8-r1.ebuild,v 1.22 2013/06/30 03:36:01 floppym Exp $
|
||||
|
||||
EAPI="2"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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.bz2
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.6"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
berkdb? ( || (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.3:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
<dev-lang/tk-8.6
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)
|
||||
!!<sys-apps/portage-2.1.9"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
>=sys-devel/autoconf-2.61
|
||||
!sys-devel/gcc[libffi]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )
|
||||
doc? ( dev-python/python-docs:${SLOT} )"
|
||||
PDEPEND="app-admin/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 -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
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.6 correctly.
|
||||
# Needed on FreeBSD unless Python 2.6 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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-libc="" \
|
||||
--with-system-ffi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
default
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="distutils tcl"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" 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() {
|
||||
[[ -z "${ED}" ]] && ED="${D%/}${EPREFIX}/"
|
||||
|
||||
local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# 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}"
|
||||
mv "${ED}usr/share/man/man1/python.1" "${ED}usr/share/man/man1/python${SLOT}.1"
|
||||
rm -f "${ED}usr/bin/smtpd.py"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
|
||||
use berkdb || rm -fr "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*}
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
fi
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.6" && ! has_version "${CATEGORY}/${PN}:2.7"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
[[ -z "${EROOT}" || (! -d "${EROOT}" && -d "${ROOT}") ]] && EROOT="${ROOT%/}${EPREFIX}/"
|
||||
|
||||
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
|
||||
}
|
@ -1,365 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.6.8-r2.ebuild,v 1.1 2013/06/30 16:08:08 floppym Exp $
|
||||
|
||||
EAPI="2"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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.bz2
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.6"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="-berkdb build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
berkdb? ( || (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.3:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)
|
||||
!!<sys-apps/portage-2.1.9"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
>=sys-devel/autoconf-2.61
|
||||
!sys-devel/gcc[libffi]"
|
||||
RDEPEND+=" !build? ( app-misc/mime-types )
|
||||
doc? ( dev-python/python-docs:${SLOT} )"
|
||||
PDEPEND="app-admin/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 -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
epatch "${FILESDIR}/python-2.5-tcl86.patch"
|
||||
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
|
||||
Lib/distutils/command/install.py \
|
||||
Lib/distutils/sysconfig.py \
|
||||
Lib/site.py \
|
||||
Makefile.pre.in \
|
||||
Modules/Setup.dist \
|
||||
Modules/getpath.c \
|
||||
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
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.6 correctly.
|
||||
# Needed on FreeBSD unless Python 2.6 is already installed.
|
||||
# Please query BSD team before removing this!
|
||||
append-ldflags "-L."
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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-libc="" \
|
||||
--with-system-ffi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
default
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="distutils tcl"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" 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() {
|
||||
[[ -z "${ED}" ]] && ED="${D%/}${EPREFIX}/"
|
||||
|
||||
local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# 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}"
|
||||
mv "${ED}usr/share/man/man1/python.1" "${ED}usr/share/man/man1/python${SLOT}.1"
|
||||
rm -f "${ED}usr/bin/smtpd.py"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
|
||||
use berkdb || rm -fr "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*}
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
fi
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.6" && ! has_version "${CATEGORY}/${PN}:2.7"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
[[ -z "${EROOT}" || (! -d "${EROOT}" && -d "${ROOT}") ]] && EROOT="${ROOT%/}${EPREFIX}/"
|
||||
|
||||
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
|
||||
}
|
@ -1,329 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.3-r2.ebuild,v 1.16 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="2"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="1"
|
||||
|
||||
DESCRIPTION="Python is an interpreted, interactive, object-oriented programming language."
|
||||
HOMEPAGE="http://www.python.org/"
|
||||
SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.bz2
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.7"
|
||||
PYTHON_ABI="${SLOT}"
|
||||
KEYWORDS="alpha amd64 arm 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 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
|
||||
|
||||
RDEPEND="app-arch/bzip2
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
berkdb? ( || (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
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} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
python_pkg_setup
|
||||
|
||||
if use berkdb; then
|
||||
ewarn "\"bsddb\" module is out-of-date and no longer maintained inside dev-lang/python."
|
||||
ewarn "\"bsddb\" and \"dbhash\" modules have been additionally removed in Python 3."
|
||||
ewarn "You should use external, still maintained \"bsddb3\" module provided by dev-python/bsddb3,"
|
||||
ewarn "which supports both Python 2 and Python 3."
|
||||
else
|
||||
if has_version "=${CATEGORY}/${PN}-${PV%%.*}*[berkdb]"; then
|
||||
ewarn "You are migrating from =${CATEGORY}/${PN}-${PV%%.*}*[berkdb] 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 -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \
|
||||
./configure --{build,host}=${CBUILD} || die "cross-configure failed"
|
||||
emake python Parser/pgen || die "cross-make failed"
|
||||
mv python hostpython
|
||||
mv Parser/pgen Parser/hostpgen
|
||||
make distclean
|
||||
sed -i \
|
||||
-e "/^HOSTPYTHON/s:=.*:=./hostpython:" \
|
||||
-e "/^HOSTPGEN/s:=.*:=./Parser/hostpgen:" \
|
||||
Makefile.pre.in || die "sed failed"
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=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
|
||||
|
||||
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-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake EPYTHON="python${PV%%.*}" || die "emake failed"
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# Byte compiling should be enabled here.
|
||||
# Otherwise test_import fails.
|
||||
python_enable_pyc
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="distutils gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv 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" 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}$(python_get_libdir)/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
python_disable_pyc
|
||||
|
||||
if [[ "${result}" -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
[[ -z "${ED}" ]] && ED="${D%/}${EPREFIX}/"
|
||||
|
||||
emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed"
|
||||
python_clean_installation_image -q
|
||||
|
||||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${ED}$(python_get_libdir)/config/Makefile" || die "sed failed"
|
||||
|
||||
mv "${ED}usr/bin/python${SLOT}-config" "${ED}usr/bin/python-config-${SLOT}"
|
||||
|
||||
# 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"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${ED}$(python_get_libdir)/"{bsddb/test,test}
|
||||
use berkdb || rm -fr "${ED}$(python_get_libdir)/"{bsddb,dbhash.py,test/test_bsddb*}
|
||||
use sqlite || rm -fr "${ED}$(python_get_libdir)/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{idlelib,lib-tk}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${ED}$(python_get_libdir)/multiprocessing"
|
||||
use wininst || rm -f "${ED}$(python_get_libdir)/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
doins -r Tools || die "doins failed"
|
||||
fi
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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"
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.7"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
[[ -z "${EROOT}" || (! -d "${EROOT}" && -d "${ROOT}") ]] && EROOT="${ROOT%/}${EPREFIX}/"
|
||||
|
||||
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
|
||||
|
||||
python_mod_optimize -f -x "/(site-packages|test|tests)/" $(python_get_libdir)
|
||||
|
||||
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
|
||||
|
||||
python_mod_cleanup $(python_get_libdir)
|
||||
}
|
@ -1,384 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.3-r3.ebuild,v 1.23 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="2"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="1"
|
||||
|
||||
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.bz2
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.7"
|
||||
KEYWORDS="alpha amd64 arm 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 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
berkdb? ( || (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
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-admin/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 -fr Modules/expat
|
||||
rm -fr Modules/_ctypes/libffi*
|
||||
rm -fr Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
default
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
|
||||
# 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).
|
||||
PYTHONDONTWRITEBYTECODE="" 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() {
|
||||
[[ -z "${ED}" ]] && ED="${D%/}${EPREFIX}/"
|
||||
|
||||
local libdir=${ED}/usr/$(get_libdir)/python${SLOT}
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall maninstall || die "emake altinstall maninstall failed"
|
||||
|
||||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# 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"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/"{bsddb/test,test}
|
||||
use berkdb || rm -fr "${libdir}/"{bsddb,dbhash.py,test/test_bsddb*}
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,lib-tk}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
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} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version "${CATEGORY}/${PN}:2.7"; then
|
||||
python_updater_warning="1"
|
||||
fi
|
||||
}
|
||||
|
||||
eselect_python_update() {
|
||||
[[ -z "${EROOT}" || (! -d "${EROOT}" && -d "${ROOT}") ]] && EROOT="${ROOT%/}${EPREFIX}/"
|
||||
|
||||
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
|
||||
}
|
@ -1,393 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.5-r1.ebuild,v 1.2 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.7"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~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 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
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-admin/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
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
epatch "${FILESDIR}/${P}-library-path.patch" #474882
|
||||
epatch "${FILESDIR}/${P}-re_unsigned_ptrdiff.patch" #476426
|
||||
|
||||
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
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
default
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
|
||||
|
||||
# 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"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
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}
|
||||
fi
|
||||
|
||||
use threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
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
|
||||
}
|
@ -1,392 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.7.5.ebuild,v 1.14 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.7"
|
||||
KEYWORDS="alpha amd64 arm 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 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
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[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
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-admin/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
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
epatch "${FILESDIR}/${P}-library-path.patch" #474882
|
||||
|
||||
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
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="dbm _bsddb gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
# 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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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-dbmliborder="${dbmliborder}" \
|
||||
--with-libc="" \
|
||||
--enable-loadable-sqlite-extensions \
|
||||
--with-system-expat \
|
||||
--with-system-ffi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
default
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed -e "s/\(LDFLAGS=\).*/\1/" -i "${libdir}/config/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
|
||||
|
||||
# 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"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{bsddb,dbhash.py,idlelib,lib-tk,sqlite3,test}
|
||||
else
|
||||
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}
|
||||
fi
|
||||
|
||||
use threads || rm -r "${libdir}/multiprocessing" || die
|
||||
use wininst || rm -r "${libdir}/distutils/command/"wininst-*.exe || die
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
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
|
||||
}
|
@ -1,307 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3-r1.ebuild,v 1.13 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="0"
|
||||
|
||||
DESCRIPTION="Python is 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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
PYTHON_ABI="${SLOT}"
|
||||
KEYWORDS="alpha ~amd64 ~arm hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
|
||||
|
||||
RDEPEND="app-arch/bzip2
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
python_pkg_setup
|
||||
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
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 excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
epatch "${FILESDIR}"/${PN}-3.2.3-x32.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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.in || die "sed failed"
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \
|
||||
./configure --{build,host}=${CBUILD} || die "cross-configure failed"
|
||||
emake python Parser/pgen || die "cross-make failed"
|
||||
mv python hostpython
|
||||
mv Parser/pgen Parser/hostpgen
|
||||
make distclean
|
||||
sed -i \
|
||||
-e "/^HOSTPYTHON/s:=.*:=./hostpython:" \
|
||||
-e "/^HOSTPGEN/s:=.*:=./Parser/hostpgen:" \
|
||||
Makefile.pre.in || die "sed failed"
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
OPT="" econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# Byte compiling should be enabled here.
|
||||
# Otherwise test_import fails.
|
||||
python_enable_pyc
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty
|
||||
local result="$?"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" 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}$(python_get_libdir)/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
python_disable_pyc
|
||||
|
||||
if [[ "${result}" -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
python_clean_installation_image -q
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${ED}$(python_get_libdir)/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
mv "${ED}usr/bin/python${SLOT}-config" "${ED}usr/bin/python-config-${SLOT}"
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${ED}$(python_get_libdir)/test"
|
||||
use sqlite || rm -fr "${ED}$(python_get_libdir)/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${ED}$(python_get_libdir)/multiprocessing"
|
||||
use wininst || rm -f "${ED}$(python_get_libdir)/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r Tools || die "doins failed"
|
||||
fi
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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"
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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
|
||||
|
||||
python_mod_optimize -f -x "/(site-packages|test|tests)/" $(python_get_libdir)
|
||||
|
||||
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
|
||||
|
||||
python_mod_cleanup $(python_get_libdir)
|
||||
}
|
@ -1,361 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3-r2.ebuild,v 1.23 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
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 excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
epatch "${FILESDIR}"/${PN}-3.2.3-x32.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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.in || die "sed failed"
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
ECONF_SOURCE=${S} OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
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} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,307 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.3.ebuild,v 1.21 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python toolchain-funcs
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="0"
|
||||
|
||||
DESCRIPTION="Python is 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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
PYTHON_ABI="${SLOT}"
|
||||
KEYWORDS="alpha amd64 arm ~hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
|
||||
|
||||
RDEPEND="app-arch/bzip2
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
python_pkg_setup
|
||||
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
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 excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
epatch "${FILESDIR}"/${PN}-3.2.3-x32.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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.in || die "sed failed"
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
OPT="-O1" CFLAGS="" LDFLAGS="" CC="" \
|
||||
./configure --{build,host}=${CBUILD} || die "cross-configure failed"
|
||||
emake python Parser/pgen || die "cross-make failed"
|
||||
mv python hostpython
|
||||
mv Parser/pgen Parser/hostpgen
|
||||
make distclean
|
||||
sed -i \
|
||||
-e "/^HOSTPYTHON/s:=.*:=./hostpython:" \
|
||||
-e "/^HOSTPGEN/s:=.*:=./Parser/hostpgen:" \
|
||||
Makefile.pre.in || die "sed failed"
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
OPT="" econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# Work around bug 329499. See also bug 413751.
|
||||
pax-mark m python
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
# Byte compiling should be enabled here.
|
||||
# Otherwise test_import fails.
|
||||
python_enable_pyc
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
emake test EXTRATESTOPTS="-w" CPPFLAGS="" CFLAGS="" LDFLAGS="" < /dev/tty
|
||||
local result="$?"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${T}/test_${test}.py" 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}$(python_get_libdir)/test'"
|
||||
elog "and run the tests separately."
|
||||
|
||||
python_disable_pyc
|
||||
|
||||
if [[ "${result}" -ne 0 ]]; then
|
||||
die "emake test failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
python_clean_installation_image -q
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${ED}$(python_get_libdir)/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
mv "${ED}usr/bin/python${SLOT}-config" "${ED}usr/bin/python-config-${SLOT}"
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${ED}$(python_get_libdir)/test"
|
||||
use sqlite || rm -fr "${ED}$(python_get_libdir)/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${ED}$(python_get_libdir)/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${ED}$(python_get_libdir)/multiprocessing"
|
||||
use wininst || rm -f "${ED}$(python_get_libdir)/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r Tools || die "doins failed"
|
||||
fi
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${SLOT} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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"
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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
|
||||
|
||||
python_mod_optimize -f -x "/(site-packages|test|tests)/" $(python_get_libdir)
|
||||
|
||||
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
|
||||
|
||||
python_mod_cleanup $(python_get_libdir)
|
||||
}
|
@ -1,366 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.4.ebuild,v 1.6 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="1"
|
||||
|
||||
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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -r Modules/expat
|
||||
rm -r Modules/_ctypes/libffi*
|
||||
rm -r Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
ECONF_SOURCE=${S} OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
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-${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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,368 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.5-r1.ebuild,v 1.13 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -r Modules/expat
|
||||
rm -r Modules/_ctypes/libffi*
|
||||
rm -r Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
epatch "${FILESDIR}/python-3.2-CVE-2013-2099.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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
ECONF_SOURCE=${S} OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
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-${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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,366 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.2.5.ebuild,v 1.2 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)"
|
||||
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-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
if [[ "${PV}" =~ ^3\.2(\.[1234])?(_pre)? ]]; then
|
||||
rm -f "${EROOT}usr/$(get_libdir)/llibpython3.so"
|
||||
else
|
||||
die "Deprecated code not deleted"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat, libffi and zlib are not used.
|
||||
rm -r Modules/expat
|
||||
rm -r Modules/_ctypes/libffi*
|
||||
rm -r Modules/zlib
|
||||
|
||||
local excluded_patches
|
||||
if ! tc-is-cross-compiler; then
|
||||
excluded_patches="*_all_crosscompile.patch"
|
||||
fi
|
||||
|
||||
EPATCH_EXCLUDE="${excluded_patches}" EPATCH_SUFFIX="patch" \
|
||||
epatch "${WORKDIR}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
ECONF_SOURCE=${S} OPT="" \
|
||||
econf \
|
||||
--with-fpectl \
|
||||
--enable-shared \
|
||||
$(use_enable ipv6) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-unicode) \
|
||||
--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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT}
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
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-${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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,352 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.3.1.ebuild,v 1.5 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="3"
|
||||
|
||||
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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.bz2"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.3"
|
||||
KEYWORDS=""
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)
|
||||
!!<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 )
|
||||
doc? ( dev-python/python-docs:${SLOT} )"
|
||||
PDEPEND="app-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
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}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
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} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,354 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.3.2-r1.ebuild,v 1.2 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="1"
|
||||
|
||||
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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)
|
||||
!!<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 )
|
||||
doc? ( dev-python/python-docs:${SLOT} )"
|
||||
PDEPEND="app-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
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}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
epatch "${FILESDIR}/python-3.3-CVE-2013-2099.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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
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} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,352 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-3.3.2.ebuild,v 1.2 2013/08/28 15:59:25 floppym Exp $
|
||||
|
||||
EAPI="3"
|
||||
WANT_AUTOMAKE="none"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pax-utils python-utils-r1 toolchain-funcs multiprocessing
|
||||
|
||||
MY_P="Python-${PV}"
|
||||
PATCHSET_REVISION="1"
|
||||
|
||||
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
|
||||
mirror://gentoo/python-gentoo-patches-${PV}-${PATCHSET_REVISION}.tar.xz"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="3.3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="build doc elibc_uclibc examples gdbm hardened ipv6 +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
|
||||
>=sys-libs/zlib-1.1.3
|
||||
virtual/libffi
|
||||
virtual/libintl
|
||||
!build? (
|
||||
gdbm? ( sys-libs/gdbm[berkdb] )
|
||||
ncurses? (
|
||||
>=sys-libs/ncurses-5.2
|
||||
readline? ( >=sys-libs/readline-4.1 )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3 )
|
||||
ssl? ( dev-libs/openssl )
|
||||
tk? (
|
||||
>=dev-lang/tk-8.0
|
||||
dev-tcltk/blt
|
||||
)
|
||||
xml? ( >=dev-libs/expat-2.1 )
|
||||
)
|
||||
!!<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 )
|
||||
doc? ( dev-python/python-docs:${SLOT} )"
|
||||
PDEPEND="app-admin/eselect-python
|
||||
app-admin/python-updater"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
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}/${PV}-${PATCHSET_REVISION}"
|
||||
|
||||
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@@"
|
||||
|
||||
# Disable ABI flags.
|
||||
sed -e "s/ABIFLAGS=\"\${ABIFLAGS}.*\"/:/" -i configure.ac || die "sed failed"
|
||||
|
||||
epatch_user
|
||||
|
||||
eautoconf
|
||||
eautoheader
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use build; then
|
||||
# Disable extraneous modules with extra dependencies.
|
||||
export PYTHON_DISABLE_MODULES="gdbm _curses _curses_panel readline _sqlite3 _tkinter _elementtree pyexpat"
|
||||
export PYTHON_DISABLE_SSL="1"
|
||||
else
|
||||
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
|
||||
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
|
||||
|
||||
# Run the configure scripts in parallel.
|
||||
multijob_init
|
||||
|
||||
mkdir -p "${WORKDIR}"/{${CBUILD},${CHOST}}
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
(
|
||||
multijob_child_init
|
||||
cd "${WORKDIR}"/${CBUILD} >/dev/null
|
||||
OPT="-O1" CFLAGS="" CPPFLAGS="" LDFLAGS="" CC="" \
|
||||
"${S}"/configure \
|
||||
--{build,host}=${CBUILD} \
|
||||
|| die "cross-configure failed"
|
||||
) &
|
||||
multijob_post_fork
|
||||
|
||||
# The configure script assumes it's buggy when cross-compiling.
|
||||
export ac_cv_buggy_getaddrinfo=no
|
||||
export ac_cv_have_long_long_format=yes
|
||||
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
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
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
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Modify the Makefile.pre so we don't regen for the host/ one.
|
||||
# We need to link the host python programs into $PWD and run
|
||||
# them from here because the distutils sysconfig module will
|
||||
# parse Makefile/etc... from argv[0], and we need it to pick
|
||||
# up the target settings, not the host ones.
|
||||
sed -i \
|
||||
-e '1iHOSTPYTHONPATH = ./hostpythonpath:' \
|
||||
-e '/^HOSTPYTHON/s:=.*:= ./hostpython:' \
|
||||
-e '/^HOSTPGEN/s:=.*:= ./Parser/hostpgen:' \
|
||||
Makefile{.pre,} || die "sed failed"
|
||||
fi
|
||||
|
||||
multijob_finish
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
cd "${WORKDIR}"/${CBUILD}
|
||||
# Disable as many modules as possible -- but we need a few to install.
|
||||
PYTHON_DISABLE_MODULES=$(
|
||||
sed -n "/Extension('/{s:^.*Extension('::;s:'.*::;p}" "${S}"/setup.py | \
|
||||
egrep -v '(unicodedata|time|cStringIO|_struct|binascii)'
|
||||
) \
|
||||
PTHON_DISABLE_SSL="1" \
|
||||
SYSROOT= \
|
||||
emake || die "cross-make failed"
|
||||
# See comment in src_configure about these.
|
||||
ln python ../${CHOST}/hostpython || die
|
||||
ln Parser/pgen ../${CHOST}/Parser/hostpgen || die
|
||||
ln -s ../${CBUILD}/build/lib.*/ ../${CHOST}/hostpythonpath || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}"/${CHOST}
|
||||
emake CPPFLAGS="" CFLAGS="" LDFLAGS="" || die "emake failed"
|
||||
|
||||
# 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 "${WORKDIR}"/${CHOST}
|
||||
|
||||
# Skip failing tests.
|
||||
local skipped_tests="gdb"
|
||||
|
||||
for test in ${skipped_tests}; do
|
||||
mv "${S}"/Lib/test/test_${test}.py "${T}"
|
||||
done
|
||||
|
||||
# Rerun failed tests in verbose mode (regrtest -w).
|
||||
PYTHONDONTWRITEBYTECODE="" emake test EXTRATESTOPTS="-w" 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${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 "${WORKDIR}"/${CHOST}
|
||||
emake DESTDIR="${D}" altinstall || die "emake altinstall failed"
|
||||
|
||||
sed \
|
||||
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
|
||||
-e "s/\(PY_LDFLAGS=\).*/\1/" \
|
||||
-i "${libdir}/config-${SLOT}/Makefile" || die "sed failed"
|
||||
|
||||
# Backwards compat with Gentoo divergence.
|
||||
dosym python${SLOT}-config /usr/bin/python-config-${SLOT} || die
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm -f "${ED}usr/$(get_libdir)/libpython3.so"
|
||||
|
||||
if use build; then
|
||||
rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,sqlite3,test,tkinter}
|
||||
else
|
||||
use elibc_uclibc && rm -fr "${libdir}/test"
|
||||
use sqlite || rm -fr "${libdir}/"{sqlite3,test/test_sqlite*}
|
||||
use tk || rm -fr "${ED}usr/bin/idle${SLOT}" "${libdir}/"{idlelib,tkinter,test/test_tk*}
|
||||
fi
|
||||
|
||||
use threads || rm -fr "${libdir}/multiprocessing"
|
||||
use wininst || rm -f "${libdir}/distutils/command/"wininst-*.exe
|
||||
|
||||
dodoc "${S}"/Misc/{ACKS,HISTORY,NEWS} || die "dodoc failed"
|
||||
|
||||
if use examples; then
|
||||
insinto /usr/share/doc/${PF}/examples
|
||||
find "${S}"/Tools -name __pycache__ -print0 | xargs -0 rm -fr
|
||||
doins -r "${S}"/Tools || die "doins failed"
|
||||
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} || die "newconfd failed"
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${SLOT} || die "newinitd failed"
|
||||
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
|
||||
python_export python${SLOT} EPYTHON PYTHON PYTHON_SITEDIR
|
||||
|
||||
# if not using a cross-compiler, use the fresh binary
|
||||
if ! tc-is-cross-compiler; then
|
||||
local PYTHON=./python \
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}.
|
||||
export LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py
|
||||
python_domodule epython.py
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-${SLOT}" && ! has_version ">=${CATEGORY}/${PN}-${SLOT}_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 "You should switch active version of Python ${PV%%.*} and run"
|
||||
ewarn "'python-updater [options]' to rebuild Python modules."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect_python_update
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tcllib/tcllib-1.14.ebuild,v 1.3 2013/03/02 17:49:01 jlec Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Tcl Standard Library"
|
||||
HOMEPAGE="http://www.tcl.tk/software/tcllib/"
|
||||
SRC_URI="mirror://sourceforge/tcllib/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="examples"
|
||||
KEYWORDS="alpha amd64 hppa ia64 ~mips ppc s390 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-macos"
|
||||
|
||||
RDEPEND="dev-lang/tcl"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
DOCS=( DESCRIPTION.txt STATUS )
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/${P}-test.patch
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
dodoc devdoc/*.txt
|
||||
|
||||
dohtml devdoc/*.html
|
||||
if use examples ; then
|
||||
for f in $(find examples -type f); do
|
||||
docinto $(dirname $f)
|
||||
dodoc $f
|
||||
done
|
||||
fi
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tcllib/tcllib-1.15.ebuild,v 1.3 2013/03/04 08:02:39 jlec Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils
|
||||
|
||||
DESCRIPTION="Tcl Standard Library"
|
||||
HOMEPAGE="http://www.tcl.tk/software/tcllib/"
|
||||
SRC_URI="mirror://sourceforge/tcllib/${P}.tar.bz2"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="examples"
|
||||
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~s390 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-macos"
|
||||
|
||||
RDEPEND="dev-lang/tcl"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
DOCS=( DESCRIPTION.txt STATUS )
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/${P}-tcl8.6-test.patch
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# emake test_interactive
|
||||
emake test_batch
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
rm "${ED}"/usr/share/man/mann/{string,variable,zlib}.n || die
|
||||
|
||||
dodoc devdoc/*.txt
|
||||
|
||||
dohtml devdoc/*.html
|
||||
if use examples ; then
|
||||
for f in $(find examples -type f); do
|
||||
docinto $(dirname $f)
|
||||
dodoc $f
|
||||
done
|
||||
fi
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/akonadi/akonadi-4.4.11.1.ebuild,v 1.12 2013/10/10 05:26:49 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="An extensible cross-desktop storage service for PIM data and meta data"
|
||||
HOMEPAGE="http://pim.kde.org/akonadi"
|
||||
KEYWORDS="amd64 ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
DEPEND="
|
||||
>=app-office/akonadi-server-1.3.1
|
||||
$(add_kdebase_dep kdelibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep kdepimlibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
$(add_kdebase_dep kdepim-runtime)
|
||||
"
|
||||
|
||||
KMEXTRA="
|
||||
akonadiconsole/
|
||||
"
|
||||
|
||||
# @since 4.3 - blocks kdemaildir - no longer provided (it's in akonadi now)
|
||||
add_blocker kdemaildir
|
||||
add_blocker kdepim-kresources '<4.2.95'
|
||||
# bug #428182
|
||||
add_blocker akonadiconsole
|
||||
|
||||
src_configure() {
|
||||
mycmakeargs=(
|
||||
# Set the dbus dirs, otherwise it searches in KDEDIR
|
||||
-DAKONADI_DBUS_INTERFACES_INSTALL_DIR="${EPREFIX}/usr/share/dbus-1/interfaces"
|
||||
-DAKONADI_DBUS_SERVICES_INSTALL_DIR="${EPREFIX}/usr/share/dbus-1/services"
|
||||
)
|
||||
|
||||
kde4-meta_src_configure
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/akregator/akregator-4.4.11.1-r1.ebuild,v 1.10 2013/10/10 05:26:53 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE news feed aggregator."
|
||||
HOMEPAGE="http://www.kde.org/applications/internet/akregator"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug +handbook"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdelibs '' 4.6)
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}"-4.4.11.1-revert.patch
|
||||
)
|
||||
|
||||
KMLOADLIBS="libkdepim"
|
@ -0,0 +1,24 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/blogilo/blogilo-4.4.11.1.ebuild,v 1.10 2013/10/10 05:26:51 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KDE_HANDBOOK=optional
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE Blogging Client"
|
||||
HOMEPAGE="http://www.kde.org/applications/internet/blogilo"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
!kde-misc/bilbo
|
||||
!kde-misc/blogilo
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}"-4.4.10-nosoprano.patch )
|
@ -0,0 +1,25 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kabcclient/kabcclient-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:53 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="console/${PN}"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="A command line client for accessing the KDE addressbook"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug +handbook"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
src_install() {
|
||||
kde4-meta_src_install
|
||||
|
||||
# work around NULL DT_RPATH in kabc2mutt
|
||||
dosym kabcclient ${PREFIX}/bin/kabc2mutt || die "couldn't symlink kabc2mutt to kabcclient"
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kaddressbook/kaddressbook-4.4.11.1-r1.ebuild,v 1.8 2013/10/10 05:26:49 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KDE_HANDBOOK=optional
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="The KDE Address Book"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdelibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep kdepimlibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
$(add_kdebase_dep libkleo)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
$(add_kdebase_dep kdepim-runtime)
|
||||
"
|
||||
|
||||
KMEXTRA="
|
||||
plugins/kaddressbook/
|
||||
plugins/ktexteditor/
|
||||
"
|
||||
KMEXTRACTONLY="
|
||||
libkleo/
|
||||
"
|
||||
|
||||
KMLOADLIBS="libkdepim"
|
||||
|
||||
PATCHES=( "${FILESDIR}/4.4/"0002-*.patch )
|
||||
|
||||
pkg_postinst() {
|
||||
kde4-meta_pkg_postinst
|
||||
|
||||
if ! has_version kde-base/kdepim-kresources:${SLOT}; then
|
||||
echo
|
||||
elog "For groupware functionality, please install kde-base/kdepim-kresources:${SLOT}"
|
||||
echo
|
||||
fi
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kalarm/kalarm-4.4.11.1-r2.ebuild,v 1.8 2013/10/10 05:26:50 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KDE_HANDBOOK=optional
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="Personal alarm message, command and email scheduler for KDE"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
RDEPEND="
|
||||
$(add_kdebase_dep kdepimlibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-libs/boost
|
||||
dev-libs/libxslt
|
||||
"
|
||||
|
||||
KMEXTRACTONLY="
|
||||
kmail/
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-4.4.11.1-underlinking.patch"
|
||||
"${FILESDIR}/4.4/"000{1,3,6}-*.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
mycmakeargs=(
|
||||
-DBUILD_akonadi=OFF
|
||||
-DXSLTPROC_EXECUTABLE="${EPREFIX}"/usr/bin/xsltproc
|
||||
)
|
||||
kde4-meta_src_configure
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-icons/kdepim-icons-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:51 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="icons"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE PIM icons"
|
||||
IUSE=""
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
src_install() {
|
||||
kde4-meta_src_install
|
||||
# colliding with oxygen icons
|
||||
rm -rf "${ED}"/${KDEDIR}/share/icons/oxygen/16x16/status/meeting-organizer.png
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-kresources/kdepim-kresources-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:51 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="kresources"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE PIM groupware plugin collection"
|
||||
IUSE="debug"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
KMEXTRACTONLY="
|
||||
kmail/
|
||||
knotes/
|
||||
korganizer/version.h
|
||||
"
|
||||
|
||||
KMLOADLIBS="libkdepim"
|
||||
|
||||
src_install() {
|
||||
kde4-meta_src_install
|
||||
|
||||
# Install headers needed by kdepim-wizards, egroupware stuff gone
|
||||
insinto "${PREFIX}"/include/${PN}
|
||||
doins "${CMAKE_BUILD_DIR}"/${KMMODULE}/{groupwise,slox}/*.h
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-l10n/kdepim-l10n-4.4.11.1-r1.ebuild,v 1.10 2013/10/10 05:26:52 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
KDE_MINIMAL="4.6"
|
||||
|
||||
inherit kde4-base
|
||||
|
||||
DESCRIPTION="KDE PIM internationalization package"
|
||||
HOMEPAGE="http://l10n.kde.org"
|
||||
|
||||
DEPEND="
|
||||
sys-devel/gettext
|
||||
"
|
||||
RDEPEND=""
|
||||
add_blocker kde-l10n 4.5.50
|
||||
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE=""
|
||||
|
||||
MY_LANGS="ar bg ca ca@valencia cs csb da de el en_GB eo es et eu
|
||||
fi fr fy ga gl gu he hi hr hu id is it ja kk km kn ko lt lv
|
||||
mai mk ml nb nds nl nn pa pl pt pt_BR ro ru si sk sl sr sv tg
|
||||
tr uk wa zh_CN zh_TW"
|
||||
|
||||
URI_BASE="${SRC_URI/-${PV}.tar.bz2/}"
|
||||
SRC_URI=""
|
||||
|
||||
for MY_LANG in ${MY_LANGS} ; do
|
||||
IUSE="${IUSE} linguas_${MY_LANG}"
|
||||
SRC_URI="${SRC_URI} linguas_${MY_LANG}? ( ${URI_BASE}/kde-l10n-${MY_LANG}-4.4.5.tar.bz2 )"
|
||||
done
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
src_unpack() {
|
||||
local LNG DIR
|
||||
if [[ -z ${A} ]]; then
|
||||
elog
|
||||
elog "You either have the LINGUAS variable unset, or it only"
|
||||
elog "contains languages not supported by ${P}."
|
||||
elog "You won't have any additional language support."
|
||||
elog
|
||||
elog "${P} supports these language codes:"
|
||||
elog "${MY_LANGS}"
|
||||
elog
|
||||
fi
|
||||
|
||||
# For EAPI >= 3, or if not using .tar.xz archives:
|
||||
[[ -n ${A} ]] && unpack ${A}
|
||||
cd "${S}"
|
||||
|
||||
# for all linguas do:
|
||||
if [[ -n ${A} ]]; then
|
||||
for LNG in ${LINGUAS}; do
|
||||
einfo "Processing ${LNG} localization"
|
||||
DIR="kde-l10n-${LNG}-4.4.5"
|
||||
|
||||
# add subdir to toplevel cmake file
|
||||
if [[ -d "${DIR}" ]] ; then
|
||||
echo "add_subdirectory( ${DIR} )" >> "${S}"/CMakeLists.txt
|
||||
fi
|
||||
|
||||
# remove everything except kdepim
|
||||
for SUBDIR in data docs messages scripts ; do
|
||||
if [[ -d "${S}/${DIR}/${SUBDIR}" ]] ; then
|
||||
einfo " ${SUBDIR} subdirectory"
|
||||
echo > "${S}/${DIR}/${SUBDIR}/CMakeLists.txt"
|
||||
[[ -d "${S}/${DIR}/${SUBDIR}/kdepim" ]] && ( echo "add_subdirectory(kdepim)" >> "${S}/${DIR}/${SUBDIR}/CMakeLists.txt" )
|
||||
fi
|
||||
done
|
||||
|
||||
# in some cases we may have sub-lingua subdirs, e.g. sr :(
|
||||
for XSUBDIR in "${S}/${DIR}/${LNG}"@* ; do
|
||||
XLNG=$(echo ${XSUBDIR}|sed -e 's:^.*/::')
|
||||
if [[ -d "${XSUBDIR}" ]] ; then
|
||||
einfo " ${XLNG} variant"
|
||||
# remove everything except kdepim
|
||||
for SUBDIR in data docs messages scripts ; do
|
||||
if [[ -d "${XSUBDIR}/${SUBDIR}" ]] ; then
|
||||
einfo " ${SUBDIR} subdirectory"
|
||||
echo > "${XSUBDIR}/${SUBDIR}/CMakeLists.txt"
|
||||
[[ -d "${XSUBDIR}/${SUBDIR}/kdepim" ]] && ( echo "add_subdirectory(kdepim)" >> "${XSUBDIR}/${SUBDIR}/CMakeLists.txt" )
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
[[ -n ${A} ]] && kde4-base_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
mycmakeargs="${mycmakeargs}
|
||||
-DBUILD_docs=OFF"
|
||||
[[ -n ${A} ]] && kde4-base_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
[[ -n ${A} ]] && kde4-base_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
[[ -n ${A} ]] && kde4-base_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
[[ -n ${A} ]] && kde4-base_src_install
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-meta/kdepim-meta-4.4.11.1.ebuild,v 1.10 2013/10/10 05:26:50 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
inherit kde4-meta-pkg
|
||||
|
||||
DESCRIPTION="kdepim - merge this to pull in all kdepim-derived packages"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="nls semantic-desktop"
|
||||
|
||||
RDEPEND="
|
||||
$(add_kdebase_dep akregator)
|
||||
$(add_kdebase_dep blogilo)
|
||||
$(add_kdebase_dep kabcclient)
|
||||
$(add_kdebase_dep kaddressbook)
|
||||
$(add_kdebase_dep kalarm)
|
||||
$(add_kdebase_dep kdepim-icons)
|
||||
$(add_kdebase_dep kdepim-kresources)
|
||||
$(add_kdebase_dep kdepim-runtime)
|
||||
$(add_kdebase_dep kdepim-strigi-analyzer)
|
||||
$(add_kdebase_dep kdepim-wizards)
|
||||
$(add_kdebase_dep kjots)
|
||||
$(add_kdebase_dep kleopatra)
|
||||
$(add_kdebase_dep kmail)
|
||||
$(add_kdebase_dep knode)
|
||||
$(add_kdebase_dep knotes)
|
||||
$(add_kdebase_dep konsolekalendar)
|
||||
$(add_kdebase_dep kontact)
|
||||
$(add_kdebase_dep korganizer)
|
||||
$(add_kdebase_dep ktimetracker)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
$(add_kdebase_dep libkleo)
|
||||
$(add_kdebase_dep libkpgp)
|
||||
nls? (
|
||||
$(add_kdebase_dep kde-l10n)
|
||||
$(add_kdebase_dep kdepim-l10n)
|
||||
)
|
||||
semantic-desktop? ( $(add_kdebase_dep akonadi) )
|
||||
"
|
@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-runtime/kdepim-runtime-4.4.11.1-r1.ebuild,v 1.13 2013/10/10 05:26:49 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="runtime"
|
||||
inherit kde4-meta
|
||||
else
|
||||
inherit kde4-base
|
||||
fi
|
||||
|
||||
DESCRIPTION="KDE PIM runtime plugin collection"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
RESTRICT="test"
|
||||
# Would need test programs _testrunner and akonaditest from kdepimlibs
|
||||
|
||||
COMMON_DEPEND="
|
||||
app-misc/strigi
|
||||
>=app-office/akonadi-server-1.3.1
|
||||
dev-libs/libxml2:2
|
||||
dev-libs/libxslt
|
||||
$(add_kdebase_dep kdelibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep kdepimlibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
x11-misc/shared-mime-info
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
dev-libs/boost
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
$(add_kdebase_dep kdepim-icons)
|
||||
"
|
||||
|
||||
add_blocker akonadi '<4.3.90'
|
||||
|
||||
PATCHES=( "${FILESDIR}/4.4/"000[1-2]-*.patch )
|
@ -0,0 +1,19 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-strigi-analyzer/kdepim-strigi-analyzer-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:52 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="strigi-analyzer"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="kdepim: strigi plugins"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
DEPEND="
|
||||
app-misc/strigi
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepim-wizards/kdepim-wizards-4.4.11.1.ebuild,v 1.10 2013/10/10 05:26:52 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KMMODULE="wizards"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE PIM wizards"
|
||||
IUSE="debug"
|
||||
KEYWORDS="amd64 ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep kdepim-kresources)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
KMEXTRACTONLY="
|
||||
kmail/
|
||||
knotes/
|
||||
kresources/groupwise/
|
||||
kresources/kolab/
|
||||
kresources/slox/
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-underlinking.patch" )
|
||||
|
||||
src_prepare() {
|
||||
ln -s "${EKDEDIR}"/include/kdepim-kresources/{kabcsloxprefs.h,kcalsloxprefs.h} \
|
||||
kresources/slox/ \
|
||||
|| die "Failed to link extra_headers."
|
||||
ln -s "${EKDEDIR}"/include/kdepim-kresources/{kabc_groupwiseprefs,kcal_groupwiseprefsbase}.h \
|
||||
kresources/groupwise/ \
|
||||
|| die "Failed to link extra_headers."
|
||||
|
||||
kde4-meta_src_prepare
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kjots/kjots-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:51 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE note taking utility"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug +handbook"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
@ -0,0 +1,57 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kleopatra/kleopatra-4.4.11.1-r1.ebuild,v 1.6 2013/10/10 05:26:49 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KDE_HANDBOOK=optional
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="Kleopatra - KDE X.509 key manager"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
SRC_URI+=" http://dev.gentoo.org/~dilfridge/distfiles/${PN}-4.4.11.1-libassuan2.patch.bz2"
|
||||
|
||||
DEPEND="
|
||||
app-crypt/gpgme
|
||||
>=dev-libs/libassuan-2.0.0
|
||||
dev-libs/libgpg-error
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
$(add_kdebase_dep libkleo)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
app-crypt/gnupg
|
||||
"
|
||||
|
||||
RESTRICT=test
|
||||
# bug 399431
|
||||
|
||||
KMEXTRACTONLY="
|
||||
libkleo
|
||||
"
|
||||
KMLOADLIBS="libkleo"
|
||||
|
||||
PATCHES=(
|
||||
"${DISTDIR}/${PN}-4.4.11.1-libassuan2.patch.bz2"
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
if use handbook; then
|
||||
KMEXTRA="
|
||||
doc/kwatchgnupg
|
||||
"
|
||||
fi
|
||||
|
||||
kde4-meta_src_unpack
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
mycmakeargs=(
|
||||
-DWITH_QGPGME=ON
|
||||
)
|
||||
|
||||
kde4-meta_src_configure
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/kmail/kmail-4.4.11.1-r1.ebuild,v 1.8 2013/10/10 05:26:50 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
KDE_HANDBOOK=optional
|
||||
VIRTUALX_REQUIRED=test
|
||||
inherit flag-o-matic kde4-meta
|
||||
|
||||
DESCRIPTION="KMail is the email component of Kontact, the integrated personal information manager of KDE."
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdelibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep kdepimlibs 'semantic-desktop(+)' 4.6)
|
||||
$(add_kdebase_dep libkdepim '' 4.4.11.1-r1)
|
||||
$(add_kdebase_dep libkleo)
|
||||
$(add_kdebase_dep libkpgp)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
$(add_kdebase_dep kdepim-runtime)
|
||||
"
|
||||
|
||||
add_blocker kmailcvt
|
||||
add_blocker libksieve
|
||||
add_blocker messagecore
|
||||
add_blocker messagelist
|
||||
add_blocker messageviewer
|
||||
add_blocker mimelib
|
||||
|
||||
KMEXTRACTONLY="
|
||||
korganizer/org.kde.Korganizer.Calendar.xml
|
||||
libkleo/
|
||||
libkpgp/
|
||||
"
|
||||
KMEXTRA="
|
||||
kmailcvt/
|
||||
ksendemail/
|
||||
libksieve/
|
||||
messagecore/
|
||||
messagelist/
|
||||
messageviewer/
|
||||
mimelib/
|
||||
plugins/kmail/
|
||||
"
|
||||
KMLOADLIBS="libkdepim"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-4.4.9-nodbus.patch"
|
||||
"${FILESDIR}/4.4/"000{2,4,5}-*.patch
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
# Bug 308903
|
||||
use ppc64 && append-flags -mminimal-toc
|
||||
|
||||
mycmakeargs=(
|
||||
-DWITH_IndicateQt=OFF
|
||||
)
|
||||
|
||||
kde4-meta_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
kde4-meta_src_compile kmail_xml
|
||||
kde4-meta_src_compile
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
kde4-meta_pkg_postinst
|
||||
|
||||
if ! has_version kde-base/kdepim-kresources:${SLOT}; then
|
||||
echo
|
||||
elog "For groupware functionality, please install kde-base/kdepim-kresources:${SLOT}"
|
||||
echo
|
||||
fi
|
||||
if ! has_version kde-base/kleopatra:${SLOT}; then
|
||||
echo
|
||||
elog "For certificate management and the gnupg log viewer, please install kde-base/kleopatra:${SLOT}"
|
||||
echo
|
||||
fi
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/knode/knode-4.4.11.1.ebuild,v 1.9 2013/10/10 05:26:51 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="A newsreader for KDE"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug +handbook"
|
||||
|
||||
# test fails, last checked for 4.2.96
|
||||
RESTRICT=test
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
$(add_kdebase_dep libkpgp)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
KMEXTRACTONLY="
|
||||
libkpgp/
|
||||
"
|
||||
|
||||
KMLOADLIBS="libkdepim"
|
||||
|
||||
src_unpack() {
|
||||
if use handbook; then
|
||||
KMEXTRA="
|
||||
doc/kioslave/news
|
||||
"
|
||||
fi
|
||||
|
||||
kde4-meta_src_unpack
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/kde-base/knotes/knotes-4.4.11.1.ebuild,v 1.8 2013/10/10 05:26:53 creffett Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
KMNAME="kdepim"
|
||||
|
||||
inherit kde4-meta
|
||||
|
||||
DESCRIPTION="KDE Notes application"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="debug +handbook"
|
||||
|
||||
DEPEND="
|
||||
$(add_kdebase_dep kdepimlibs '' 4.6)
|
||||
$(add_kdebase_dep libkdepim)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
KMLOADLIBS="libkdepim"
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue