[Slackbuilds-users] [FYI]SlackBuild for python modules should be architecture dependent
Grissiom
chaos.proton at gmail.com
Thu May 28 13:48:39 UTC 2009
Hi folks,
While I was taking train this afternoon, a thought came up in my mind --
SlackBuilds for python modules and many programs that written in pure python
(say, decorator, pysetuptools, logilab-common etc) should be arch dependent.
Maybe most of them are installed via "distutils", if you see something like
"python setup.py install --root=$PKG", it will be the case.
I think setup.py just do what "./configure && make && make install" do --
detect the python installation structure, compile .py files to .pyc
bytecodes. The bytecodes is platorm independent but the installation
structure is not. So in slackware64, things will be installed into
/usr/lib64/python2.6/site-packages/xxx but in slackware, things will be
installed into /usr/lib/python2.6/site-packages/xxx. The conclusion is the
files in the package in arch indenpendent but the direcory structure is arch
dependent.
After some hack, I found a solution for this: write the SlackBuilds like
this:
....
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
fi
....
....
python setup.py install --prefix=/usr
--install-lib=/usr/lib${LIBDIRSUFFIX}/python2.6/site-packages/ --root=$PKG
....
Thus the package will install files to /usr/lib for 32bit slack and
/usr/lib64 for slackware64.(note python in slackware12.2 is still 2.5.x you
may need to adjust the install command for 12.2)
Saying so much, I hope I have expressed my idea clearly and it will do some
help.
--
Cheers,
Grissiom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20090528/89b60417/attachment.htm>
More information about the SlackBuilds-users
mailing list