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
I just unmasked sip-4.8.2-r1 and tried that instead, but it still fails.
dev-python/dbus-python-0.83.0-r1 just failed src_install as well, with the exact same error.
Confirmed here with dev-python/sip-4.9.3-r1
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
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).
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.
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.
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.
It would be great if the python team could explain what's the intended use of python_need_rebuild() in multi-ABI ebuilds...
(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.