public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Tod M. Neidt" <tneidt@fidnet.com>
To: "gentoo-dev@cvs.gentoo.org" <gentoo-dev@cvs.gentoo.org>
Subject: [gentoo-dev] python ebuild: use tcltk
Date: Sun Jun 24 23:42:02 2001	[thread overview]
Message-ID: <3B36CF99.2B031242@fidnet.com> (raw)

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


             reply	other threads:[~2001-06-25  5:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-24 23:42 Tod M. Neidt [this message]
2001-06-24 23:55 ` [gentoo-dev] python ebuild: use tcltk 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3B36CF99.2B031242@fidnet.com \
    --to=tneidt@fidnet.com \
    --cc=gentoo-dev@cvs.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox