blob: 27e8c93c1f6eb5ec873a32e463e80eb789360751 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/Attic/python-2.2-r7.ebuild,v 1.12 2003/04/01 00:05:24 liquidx dead $
EAPI="2"
MULTILIB_STRICT_DIRS= # Dirty hack to bypass failing multilib-strict testing
inherit eutils flag-o-matic
PYVER_MAJOR="`echo ${PV} | cut -d '.' -f 1`"
PYVER_MINOR="`echo ${PV} | cut -d '.' -f 2`"
PYVER="${PYVER_MAJOR}.${PYVER_MINOR}"
DESCRIPTION="A really great language"
HOMEPAGE="http://www.python.org"
SRC_URI="https://www.python.org/ftp/python/${PV}/Python-${PV}.tgz"
SLOT="2.2"
LICENSE="PSF-2.2"
KEYWORDS="~amd64 ~sparc ~x86"
IUSE="readline tk berkdb bootstrap"
DEPEND="
>=sys-libs/zlib-1.1.3
readline? ( >=sys-libs/readline-4.1 >=sys-libs/ncurses-5.2 )
berkdb? ( >=sys-libs/db-3 )
tk? ( >=dev-lang/tk-8.0 )"
RDEPEND="$DEPEND dev-python/python-fchksum"
# The dev-python/python-fchksum RDEPEND is needed to that this python provides
# the functionality expected from previous pythons.
S=${WORKDIR}/Python-${PV}
src_prepare() {
# python's config seems to ignore CFLAGS
export OPT=$CFLAGS
# adjust makefile to install pydoc into ${D} correctly
t=${S}/Makefile.pre.in
cp $t $t.orig || die
sed 's:install-platlib.*:& --install-scripts=$(BINDIR):' $t.orig > $t
# adjust Setup to include the various modules we need
cd "${S}"
# turn **on** shared
scmd="s:#\(\*shared\*\):\1:;"
# adjust for USE readline
if use readline; then
scmd="$scmd s:#\(readline .*\) -ltermcap:\1:;"
scmd="$scmd s:#\(_curses .*\) -lcurses -ltermcap:\1 -lncurses:;"
fi
# adjust for USE tk
if use tk; then
# Find the version of tcl/tk that has headers installed.
# This will be the most recently merged, not necessarily the highest
# version number.
tclv=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')
tkv=$( grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/')
# adjust Setup to match
scmd="$scmd s:# \(_tkinter \):\1:;"
scmd="$scmd s:#\(\t-ltk[0-9.]* -ltcl[0-9.]*\):\t-ltk$tkv -ltcl$tclv:;"
scmd="$scmd s:#\(\t-L/usr/X11R6/lib\):\1:;"
scmd="$scmd s:#\(\t-lX11.*\):\1:;"
scmd="$scmd s:#\(\t-I/usr/X11R6/include\):\1:;"
fi
# adjust for USE berkdb
if use berkdb; then
# patch the dbmmodule to use db3's dbm compatibility code. That way,
# we're depending on db3 rather than old db1.
t=Modules/dbmmodule.c
cp $t $t.orig || die
sed \
-e '10,25d' \
-e '26i\' \
-e '#define DB_DBM_HSEARCH 1\' \
-e 'static char *which_dbm = "BSD db";\' \
-e '#include <db3/db.h>' \
$t.orig > $t
# now fix Setup
scmd="$scmd s:#dbm.*:dbm dbmmodule.c -I/usr/include/db3 -ldb-3.2:;"
fi
# no USE vars to switch off these adjustments:
scmd="$scmd s:#\(_locale .*\):\1:;" # access to ISO C locale support
scmd="$scmd s:#\(syslog .*\):\1:;" # syslog daemon interface
scmd="$scmd s:#\(zlib .*\):\1:;" # This require zlib 1.1.3 (or later).
scmd="$scmd s:#\(termios .*\):\1:;" # Steen Lumholt's termios module
scmd="$scmd s:#\(resource .*\):\1:;" # Jeremy Hylton's rlimit interface
sed "$scmd" Modules/Setup.dist > Modules/Setup
epatch "${FILESDIR}"/${P}-readline.patch
}
src_configure() {
local myopts
#if we are creating a new build image, we remove the dependency on g++
if [ "`use build`" -a ! "`use bootstrap`" ]
then
myopts="--with-cxx=no"
fi
OPT="${CFLAGS} -fPIC" ./configure \
--prefix=/usr \
--without-libdb \
--infodir='${prefix}'/share/info \
--mandir='${prefix}'/share/man $myopts
assert "Configure failed"
# kill the -DHAVE_CONFIG_H flag
mv Makefile Makefile.orig
sed -e 's/-DHAVE_CONFIG_H//' Makefile.orig > Makefile
}
src_compile() {
#emake || die "Parallel make failed"
make || die "Parallel make failed"
}
src_install() {
dodir /usr
# Extra shot to workaround weird "Lib/plat-linux3" target error
make install prefix="${D}"/usr || true
make install prefix="${D}"/usr || die
rm "${D}/usr/bin/python" || die
dodoc README || die
# install our own custom python-config
### exeinto /usr/bin
### newexe "${FILESDIR}"/python-config-${PYVER} python-config
# seems like the build do not install Makefile.pre.in anymore
insinto /usr/lib/python${PYVER}/config
doins "${S}"/Makefile.pre.in || die
# If USE tk lets install idle
# Need to script the python version in the path
if use tk; then
dodir /usr/lib/python${PYVER}/tools
mv "${S}/Tools/idle" "${D}/usr/lib/python${PYVER}/tools/" || die
dosym /usr/lib/python${PYVER}/tools/idle/idle.py /usr/bin/idle.py || die
fi
mv "${D}"/usr/share/man/man1/python{,${PV}}.1 || die
mv "${D}"/usr/bin/pydoc{,${PV}} || die
}
|