summaryrefslogtreecommitdiff
blob: 0f4fd2b6c01ad364a0b6f82812f95ee572e8f0e7 (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
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Maintainer: Daniel Robbins <drobbins@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/dev-lang/python/python-2.2-r4.ebuild,v 1.1 2002/01/15 01:27:50 gbevin Exp $

PYVER="`echo ${PV} | cut -d '.' -f 1,2`"
S=${WORKDIR}/Python-${PV}
FCHKSUM="python-fchksum-1.6"
FCHKSUMP="python-fchksum_1.6-2"
DESCRIPTION="A really great language"
SRC_URI="http://www.python.org/ftp/python/${PV}/Python-${PV}.tgz
	http://www.azstarnet.com/~donut/programs/fchksum/${FCHKSUM}.tar.gz
	http://www.azstarnet.com/~donut/programs/fchksum/${FCHKSUMP}.diff.gz"

HOMEPAGE="http://www.python.org http://www.azstarnet.com/~donut/programs/fchksum/"

DEPEND="virtual/glibc >=sys-libs/zlib-1.1.3
	readline? ( >=sys-libs/readline-4.1 >=sys-libs/ncurses-5.2 )
	berkdb? ( >=sys-libs/db-3 )
	tcltk? ( >=dev-lang/tk-8.0 )"

RDEPEND="$DEPEND"
PROVIDE="virtual/python-${PYVER}"

src_unpack() {
	# unpack python
	unpack Python-${PV}.tgz
	# unpack fchksum and move pieces into Modules subdir
	cd ${S}/Modules
	unpack ${FCHKSUM}.tar.gz
	zcat ${DISTDIR}/${FCHKSUMP}.diff.gz | patch -p0
	cd ${FCHKSUM}
	cp md5.h ../md5_2.h
	cp cksum.[ch] sum.[ch] fchksum.h ..
	sed 's:"md5.h":"md5_2.h":' md5.c > ../md5_2.c
	sed 's:"md5.h":"md5_2.h":' fchksum.c > ../fchksum.c
	# add fchksum configuration to Setup
	cd ${S}
	echo "fchksum fchksum.c md5_2.c cksum.c sum.c" >> Modules/Setup.dist

	# 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
}

src_compile() {
	# python's config seems to ignore CFLAGS
	export OPT=$CFLAGS 

	# configure fchksum
	cd ${S}/Modules/${FCHKSUM}
	./configure
	cp pfconfig.h ..

	# adjust Setup to include the various modules we need
	cd ${S}
	scmd=""
	# 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 tcltk
	if use tcltk; 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:;"
	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
	
	./configure \
		--prefix=/usr \
		--without-libdb \
		--infodir='${prefix}'/share/info \
		--mandir='${prefix}'/share/man
	assert "Configure failed"
	# kill the -DHAVE_CONFIG_H flag
	mv Makefile Makefile.orig
	sed -e 's/-DHAVE_CONFIG_H//' Makefile.orig > Makefile
	#emake || die "Parallel make failed"
	make || die "Parallel make failed"
}

src_install() {
	dodir /usr
	make install prefix=${D}/usr || die
	rm "${D}/usr/bin/python"
	dosym python${PYVER} /usr/bin/python
	dodoc README

	# 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

	# If USE tcltk lets install idle
	# Need to script the python version in the path
	if use tcltk; then
		mkdir "${D}/usr/lib/python${PYVER}/tools"
		mv "${S}/Tools/idle" "${D}/usr/lib/python${PYVER}/tools/"
		dosym /usr/lib/python${PYVER}/tools/idle/idle.py /usr/bin/idle.py
	fi
}