Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 300517 - dev-python/sip-4.8.2 fails src_install: '--active' option cannot be used in ebuilds of packages supporting installation of multiple versions of Python
Summary: dev-python/sip-4.8.2 fails src_install: '--active' option cannot be used in e...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-11 00:45 UTC by Michael Yagliyan
Modified: 2010-01-14 10:55 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
pYthon.eclass patch for python_need_rebuild (python.eclass-python_need_rebuild.patch,494 bytes, patch)
2010-01-11 14:38 UTC, Oldrich Jedlicka
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Yagliyan 2010-01-11 00:45:56 UTC
I am upgrading a system that hasn't been updated in several months, and the src_install phase of dev-python/sip-4.8.2 is failing.

Reproducible: Always

Steps to Reproduce:
1. emerge -DuNv world (fails during sip)
2. python-updater
3. emerge -DuNv world (fails again, during sip)

Actual Results:  
>>> Emerging (1 of 223) dev-python/sip-4.8.2
 * sip-4.8.2.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                                                               [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                                                              [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                                                             [ ok ]
>>> Unpacking source...
>>> Unpacking sip-4.8.2.tar.gz to /var/tmp/portage/dev-python/sip-4.8.2/work
>>> Source unpacked in /var/tmp/portage/dev-python/sip-4.8.2/work
>>> Preparing source in /var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2 ...
 * Configuration of dev-python/sip-4.8.2 with Python 2.6...
python2.6 configure.py --bindir=/usr/bin --destdir=/usr/lib64/python2.6/site-packages --incdir=/usr/include/python2.6 --sipdir=/usr/share/sip CC=x86_64-pc-linux-gnu-gcc CXX=x86_64-pc-linux-gnu-g++ LINK=x86_64-pc-linux-gnu-g++ LINK_SHLIB=x86_64-pc-linux-gnu-g++ CFLAGS='-march=athlon64 -msse3 -pipe -O2' CXXFLAGS='-march=athlon64 -msse3 -pipe -O2' LFLAGS='-Wl,-O1' STRIP=true
This is SIP 4.8.2 for Python 2.6.4 on linux2.
The SIP code generator will be installed in /usr/bin.
The SIP module will be installed in /usr/lib64/python2.6/site-packages.
The SIP header file will be installed in /usr/include/python2.6.
The default directory to install .sip files in is /usr/share/sip.
The platform/compiler configuration is linux-g++.
Creating sipconfig.py...
Creating top level Makefile...
Creating sip code generator Makefile...
Creating sip module Makefile...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2 ...
 * Building of dev-python/sip-4.8.2 with Python 2.6...
make -j2 
make[1]: Entering directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/sipgen'
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o main.o main.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o transform.o transform.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o gencode.o gencode.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o export.o export.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o heap.o heap.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o parser.o parser.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -O2 -w -DNDEBUG -I. -o lexer.o lexer.c
x86_64-pc-linux-gnu-g++ -Wl,-O1 -o sip main.o transform.o gencode.o export.o heap.o parser.o lexer.o 
make[1]: Leaving directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/sipgen'
make[1]: Entering directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/siplib'
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o siplib.o siplib.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o descriptors.o descriptors.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o qtlib.o qtlib.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o threads.o threads.c
x86_64-pc-linux-gnu-gcc -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o objmap.o objmap.c
x86_64-pc-linux-gnu-g++ -c -march=athlon64 -msse3 -pipe -O2 -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.6 -o bool.o bool.cpp
x86_64-pc-linux-gnu-g++ -Wl,-O1 -shared -Wl,--version-script=sip.exp -o sip.so siplib.o descriptors.o qtlib.o threads.o objmap.o bool.o 
make[1]: Leaving directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/siplib'
>>> Source compiled.
>>> Test phase [not enabled]: dev-python/sip-4.8.2

>>> Install sip-4.8.2 into /var/tmp/portage/dev-python/sip-4.8.2/image/ category dev-python
 * 
 * ERROR: dev-python/sip-4.8.2 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_install
 *             environment, line 1907:  Called python_need_rebuild
 *             environment, line 1813:  Called PYTHON '-A' '--ABI'
 *             environment, line  168:  Called die
 * The specific snippet of code:
 *                   die "${FUNCNAME}(): '--active' option cannot be used in ebuilds of packages supporting installation for multiple versions of Python";
 *  The die message:
 *   PYTHON(): '--active' option cannot be used in ebuilds of packages supporting installation for multiple versions of Python
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-python/sip-4.8.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-python/sip-4.8.2/temp/environment'.
 * 
 * Installation of dev-python/sip-4.8.2 with Python 2.6...
make -j2 DESTDIR=/var/tmp/portage/dev-python/sip-4.8.2/image/ install 
make[1]: Entering directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/sipgen'
cp -f sip /var/tmp/portage/dev-python/sip-4.8.2/image//usr/bin/sip
make[1]: Leaving directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/sipgen'
make[1]: Entering directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/siplib'
cp -f sip.so /var/tmp/portage/dev-python/sip-4.8.2/image//usr/lib64/python2.6/site-packages/sip.so
true /var/tmp/portage/dev-python/sip-4.8.2/image//usr/lib64/python2.6/site-packages/sip.so
cp -f sip.h /var/tmp/portage/dev-python/sip-4.8.2/image//usr/include/python2.6/sip.h
make[1]: Leaving directory `/var/tmp/portage/dev-python/sip-4.8.2/work/sip-4.8.2-2.6/siplib'
cp -f sipconfig.py /var/tmp/portage/dev-python/sip-4.8.2/image//usr/lib64/python2.6/site-packages/sipconfig.py
cp -f sipdistutils.py /var/tmp/portage/dev-python/sip-4.8.2/image//usr/lib64/python2.6/site-packages/sipdistutils.py
>>> Completed installing sip-4.8.2 into /var/tmp/portage/dev-python/sip-4.8.2/image/


>>> Failed to emerge dev-python/sip-4.8.2, Log file:

>>>  '/var/tmp/portage/dev-python/sip-4.8.2/temp/build.log'


FWIW, according to krushia on #gentoo-amd64, this error is caused by Portage's handling of Python 2 vs. Python 3 APIs and that I shouldn't be getting this error for a stable ebuild.  Output of emerge --info:

Portage 2.1.6.13 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.31-gentoo-r6 x86_64)
=================================================================
System uname: Linux-2.6.31-gentoo-r6-x86_64-AMD_Athlon-tm-_64_Processor_3700+-with-gentoo-1.12.13
Timestamp of tree: Sun, 10 Jan 2010 19:30:01 +0000
app-shells/bash:     4.0_p35
dev-java/java-config: 1.3.7-r1, 2.1.8-r1
dev-lang/python:     2.5.4-r3, 2.6.4
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -msse3 -pipe -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -msse3 -pipe -O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans"
GENTOO_MIRRORS="ftp://mirror.iawnet.sandia.gov/pub/gentoo/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://gentoo.mirrors.pair.com/ ftp://gentoo.mirrors.pair.com/ http://gentoo.netnitco.net ftp://gentoo.netnitco.net/pub/mirrors/gentoo/source/ http://gentoo.binarycompass.org "
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en en_US"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac acl acpi alsa amd64 audiofile bash-completion branding bzip2 cairo cddb cdr cli consolekit cracklib crypt cups cxx dbus djvu dri dts dvd dvdr eds emboss encode exif ffmpeg flac fortran gdbm geoip gif gpm hal iconv idn imlib jbig jpeg jpeg2k kde ladspa lame libnotify libsamplerate lm_sensors logitech-mouse mad matroska mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3support qt4 quicktime readline reflection rle sdl session spell spl sse sse2 ssl startup-notification svg sysfs taglib tcpd theora threads thunar tiff truetype unicode usb vcd vim-syntax vorbis wmf x264 xcomposite xine xinerama xml xorg xscreensaver xulrunner xv xvid xvmc zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Michael Yagliyan 2010-01-11 00:54:16 UTC
I just unmasked sip-4.8.2-r1 and tried that instead, but it still fails.
Comment 2 Michael Yagliyan 2010-01-11 01:15:05 UTC
dev-python/dbus-python-0.83.0-r1 just failed src_install as well, with the exact same error.
Comment 3 Fabio Coatti 2010-01-11 12:56:21 UTC
Confirmed here with dev-python/sip-4.9.3-r1
Comment 4 Stoian Ivanov 2010-01-11 13:26:43 UTC
tracked the issue to python_need_rebuild call in the ebuild commenting it out sorts the build-install problem. Don't know what sip is so can't tell if it works ok
Comment 5 Oldrich Jedlicka 2010-01-11 14:19:23 UTC
Same here. The problem looks like to be in python.eclass. According to http://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg31408.html the python_need_rebuild function is used to set PYTHON_NEED_REBUILD to python version the package is compiled with. PYTHON_NEED_REBUILD is then used by python-updater, when you want to update your python packages to the new python version (this is not the only check, this only speeds-up the checking).
Comment 6 Oldrich Jedlicka 2010-01-11 14:38:56 UTC
Created attachment 216070 [details, diff]
pYthon.eclass patch for python_need_rebuild

The PYTHON_NEED_REBUILD doesn't support multiple python ABIs currently, so don't export anything when SUPPORT_PYTHON_ABIS is set. This fixes compilation of packages that use SUPPORT_PYTHON_ABIS and call the python_need_rebuild.
Comment 7 Jason Ash 2010-01-11 15:44:16 UTC
Hi, I'm a newbie, so could anyone please e-mail me a step by step guide in
plain English of how to work around this problem. I can't get kde-meta to
emerge and install because it keeps failing here with this same error. Thanks,
Jason.
Comment 8 Oldrich Jedlicka 2010-01-11 15:53:13 UTC
Download(In reply to comment #7)
> Hi, I'm a newbie, so could anyone please e-mail me a step by step guide in
> plain English of how to work around this problem. I can't get kde-meta to
> emerge and install because it keeps failing here with this same error. Thanks,
> Jason.

Hi.

1) Download the patch to some directory.
2) As root:
2.1) Go to /usr
2.2) Run `patch -p0 < path_to_your_downloaded.patch

The updated python.eclass will be lost every time you do `emerge --sync`, so you will need to repeat the steps every time you sync until it gets fixed by the Gentoo python team.
Comment 9 Davide Pesavento (RETIRED) gentoo-dev 2010-01-11 16:29:02 UTC
It would be great if the python team could explain what's the intended use of python_need_rebuild() in multi-ABI ebuilds...
Comment 10 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2010-01-11 17:37:49 UTC
(In reply to comment #9)
> It would be great if the python team could explain what's the intended use of
> python_need_rebuild() in multi-ABI ebuilds...

There is no use in such ebuilds.

Fixed.