public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] python ebuild: use tcltk
@ 2001-06-24 23:42 Tod M. Neidt
  2001-06-24 23:55 ` Daniel Robbins
  2001-06-24 23:57 ` [gentoo-dev] premature posting :) Tod M. Neidt
  0 siblings, 2 replies; 9+ messages in thread
From: Tod M. Neidt @ 2001-06-24 23:42 UTC (permalink / raw
  To: gentoo-dev@cvs.gentoo.org

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

Hi!

Attached is a modified python ebuild (python-2.0-r4.ebuild) that will
include the tkinter module if USE tcltk is set.  I made three changes.

First, Modules/Setup.in is sed'ed to uncomment the relevant tkinter
lines if USE tcltk is set.

Second, if USE tcltk is set, then idle is also installed in
/usr/lib/python2.0/tools with a symlink of idle.py into /usr/bin

Third, the Makefile that is installed in /usr/lib/python2.0/config is
sed'ed to put the value of CFLAGS from /etc/make.conf into the OPT
variable. This appears to be the Makefile that the setup.py  from
distutils calls when building and installing the python module
extensions for any modules installed later.  Note: there is probably a
better way to do it such as putting OPT=$CFLAGS instead of the actual
value.

Constructive criticism is appreciated.

tod

[-- Attachment #2: python-2.0-r4.ebuild --]
[-- Type: text/plain, Size: 4696 bytes --]

# Copyright 1999-2000 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Author Daniel Robbins <drobbins@gentoo.org>
# Modified Tod M. Neidt <tneidt@fidnet.com>
# /home/cvsroot/gentoo-x86/dev-lang/python/python-2.0-r4.ebuild,v 1.1 2001/06/04 19:49:02 drobbins Exp

S=${WORKDIR}/Python-2.0
S2=${WORKDIR}/python-fchksum-1.1
DESCRIPTION="A really great language"
SRC_URI="http://www.python.org/ftp/python/src/BeOpen-Python-2.0.tar.bz2 
	 http://www.azstarnet.com/~donut/programs/fchksum/python-fchksum-1.1.tar.gz"

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

#tcltk depends is = becasue need to automate tcltk version number below
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/tcl-tk-8.0 )"

RDEPEND="$DEPEND"
PROVIDE="virtual/python-2.0"

src_unpack() {
    unpack BeOpen-Python-2.0.tar.bz2
    cd ${S}/Modules
    if [ "`use readline`" ]
    then
      sed -e 's/#readline/readline/' -e 's/-lreadline -ltermcap/-lreadline/' \
	  -e 's/#_curses _cursesmodule.c -lcurses -ltermcap/_curses _cursesmodule.c -lncurses/' \
	  -e 's/#crypt/crypt/' -e 's/# -lcrypt/-lcrypt/' \
	Setup.in > Setup.new
        mv Setup.new Setup.in
    fi

#Added check for tcltk USE variable, if set build _tkinter
#Need to automate tk and tcl version determination
    if [ "`use tcltk`" ]
    then
      sed -e 's:# _tkinter:_tkinter:' \
          -e 's:#[[:blank:]]*-I/usr/local/include:-I/usr/include:' \
	  -e 's:#[[:blank:]]*-I/usr/X11R6/include:-I/usr/X11R6/include:' \
	  -e 's:#[[:blank:]]*-L/usr/local/lib:-L/usr/lib:' \
	  -e 's:#[[:blank:]]*-ltk8.0 -ltcl8.0:-ltk8.4 -ltcl8.4:' \
	  -e 's:#[[:blank:]]*-L/usr/X11R6/lib:-L/usr/X11R6/lib:' \
	  -e 's:#[[:blank:]]-lX11:-lX11:' \
	Setup.in > Setup.new
        mv Setup.new Setup.in
    fi

    if [ "`use berkdb`" ]
    then
      sed -e 's:#dbm.*:dbm dbmmodule.c -I/usr/include/db3 -ldb-3.2:' \
	Setup.in > Setup.new
        mv Setup.new Setup.in
    fi
    
#Removed the commenting out of TKPATH   
    sed	-e 's/#_locale/_locale/'  \
	-e 's/#syslog/syslog/'  \
	-e 's:#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz:zlib zlibmodule.c -lz:' \
	-e 's:^#termios:termios:' -e 's:^#resource:resource:' \
	Setup.in > Setup
	echo "fchksum fchksum.c md5_2.c" >> Setup

	cd ${S}/Modules

	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.  We'll link with db3, of course.
	  cp dbmmodule.c dbmmodule.c.orig
	  sed -e '10,25d' -e '26i\' -e '#define DB_DBM_HSEARCH 1\' -e 'static char *which_dbm = "BSD db";\' -e '#include <db3/db.h>' dbmmodule.c.orig > dbmmodule.c
	fi

   cp ${FILESDIR}/pfconfig.h .
   unpack python-fchksum-1.1.tar.gz 

   cd python-fchksum-1.1
   mv md5.h ../md5_2.h
   sed -e 's:"md5.h":"md5_2.h":' md5.c > ../md5_2.c
   sed -e 's:"md5.h":"md5_2.h":' fchksum.c > ../fchksum.c

	#for some reason, python 2.0 can't find /usr/lib/python2.0 without this fix to the source code.
	cd ${S}/Python
	cp pythonrun.c pythonrun.c.orig
	sed -e 's:static char \*default_home = NULL:static char \*default_home = "/usr":' pythonrun.c.orig > pythonrun.c
}


src_compile() {   
    cd ${S}
    try ./configure --prefix=/usr --without-libdb
	#libdb3 support is available from http://pybsddb.sourceforge.net/; the one
	#included with python is for db 1.85 only.
    cp Makefile Makefile.orig
    sed -e "s/-g -O2/${CFLAGS}/" Makefile.orig > Makefile
    cd ${S}/Modules
    cp Makefile.pre Makefile.orig
    sed -e "s:MODOBJS=:MODOBJS=fchksum.o md5_2.o:" \
    Makefile.orig > Makefile.pre

    # Parallel make does not work
    cd ${S}
    try make 
}

src_install() {                 
    dodir /usr            
    try make install prefix=${D}/usr
	rm ${D}/usr/bin/python
	dosym python2.0 /usr/bin/python

    dodoc README

#Change OPT setting in /usr/lib/python2.0/config/Makefile
#to CFLAG from /etc/make.conf so optimaization is set for
#subsequent module installs using distutil.
#There is probably a better way :)
    cd ${D}/usr/lib/python2.0/config
    sed -e "s/OPT=[[:blank:]]*-g -O2 -Wall -Wstrict-prototypes/OPT= ${CFLAGS}/" \    Makefile > Makefile.new
    mv Makefile.new  Makefile

#If USE tcltk lets install idle
#Need to script the python version in the path
    if [ "`use tcltk`" ]
    then
        mkdir ${D}/usr/lib/python2.0/tools
        cd ${S}
        mv Tools/idle ${D}/usr/lib/python2.0/tools/
	cd ${D}/usr
#don't quit understand dosym; put idle in PATH
        ln -s lib/python2.0/tools/idle/idle.py bin/idle.py
    fi
}


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2001-07-08  1:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-24 23:42 [gentoo-dev] python ebuild: use tcltk Tod M. Neidt
2001-06-24 23:55 ` Daniel Robbins
2001-07-07  9:34   ` Achim Gottinger
2001-07-07 14:31     ` Achim Gottinger
2001-07-07 19:45       ` Daniel Robbins
2001-06-24 23:57 ` [gentoo-dev] premature posting :) Tod M. Neidt
2001-06-25  0:18   ` Daniel Robbins
2001-06-25  1:23     ` Tod M. Neidt
2001-06-25 12:38       ` Daniel Robbins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox