According to #gentoo-dev-help: 14:23 < solj> what exactly does the SUPPORT_PYTHON_ABIS variable in ebuilds do? 14:27 < Tommy[D]_> it tells the eclass, which versions of python are supported, the eclass will then install the ebuild to all supported python versions Reproducible: Always Steps to Reproduce: 1. Attempt to install bpython-0.9.5.2 Actual Results: >>> Verifying ebuild manifests >>> Emerging (1 of 1) dev-python/bpython-0.9.5.2 * bpython-0.9.5.2.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] File "/usr/lib64/portage/bin/portageq", line 52 print "ERROR: insufficient parameters!" ^ SyntaxError: invalid syntax File "/usr/lib64/portage/bin/portageq", line 52 print "ERROR: insufficient parameters!" ^ SyntaxError: invalid syntax * Please rebuild dev-lang/python:3.1 with the following USE flags enabled: ncurses * * ERROR: dev-python/bpython-0.9.5.2 failed. * Call stack: * ebuild.sh, line 49: Called pkg_setup * ebuild.sh, line 1273: Called python_pkg_setup * python.eclass, line 595: Called python_execute_function '-q' 'python_pkg_setup_check_USE_flags' * python.eclass, line 466: Called python_pkg_setup_check_USE_flags * python.eclass, line 579: Called python_pkg_setup_fail 'Please rebuild dev-lang/python:3.1 with the following USE flags enabled: ncurses' * python.eclass, line 556: Called die * The specific snippet of code: * die "${1}" * The die message: * Please rebuild dev-lang/python:3.1 with the following USE flags enabled: ncurses * * 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/bpython-0.9.5.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/bpython-0.9.5.2/temp/die.env'. * >>> Failed to emerge dev-python/bpython-0.9.5.2, Log file: >>> '/var/tmp/portage/dev-python/bpython-0.9.5.2/temp/build.log' Expected Results: Install bpython successfully.
Created attachment 206470 [details, diff] Remove SUPPORT_PYTHON_ABIS until it works properly
You probably failed to run `emerge --sync`. dev-python/bpython-0.9.5.2 obviously does support installation for multiple Python versions.
(In reply to comment #2) > You probably failed to run `emerge --sync`. Nope, I synced yesterday. And I would guess there is not a newer version than the one that came out less than a week ago: # $Header: /var/cvsroot/gentoo-x86/dev-python/bpython/bpython-0.9.5.2.ebuild,v 1.1 2009/10/02 01:51:18 arfrever Exp $ > dev-python/bpython-0.9.5.2 obviously does support installation for multiple > Python versions. > No. It obviously _doesn't_ support installation for multiple Python versions as you can see from the output I pasted above.
(In reply to comment #3) > (In reply to comment #2) > > You probably failed to run `emerge --sync`. > > Nope, I synced yesterday. And I would guess there is not a newer version than > the one that came out less than a week ago: It was fixed in python.eclass, not in dev-python/bpython. Maybe you use an overlay with older version of python.eclass which overrides python.eclass from the main tree. Post the output of `emerge --sync`.
(In reply to comment #4) > > It was fixed in python.eclass, not in dev-python/bpython. Okay. Does this mean that what I was told in the dev channel is incorrect? What does the SUPPORT_PYTHON_ABIS variable do exactly? > Maybe you use an overlay with older version of python.eclass which overrides > python.eclass from the main tree. What would I need to check for in the overlay. I currently have only one package there. > Post the output of `emerge --sync`. > See attachment. Thanks, Sol
Created attachment 206589 [details] emerge --sync output
(In reply to comment #5) > (In reply to comment #4) > > > > It was fixed in python.eclass, not in dev-python/bpython. > > Okay. Does this mean that what I was told in the dev channel is incorrect? Yes. I already explained to Tommy[D] that he was wrong. > What does the SUPPORT_PYTHON_ABIS variable do exactly? It tells that given package supports installation for multiple versions of Python, but it doesn't tell which versions of Python are supported. (This variable also doesn't need to be set in EAPI >= 3. The behavior enabled by this variable or EAPI >= 3 cannot be automatically enabled for all packages, because it usually requires small changes in ebuilds, and the absence of these changes would cause installation failures of some packages. The changes are performed by maintainers during conversion of ebuilds to support installation for multiple Python versions.) > > Maybe you use an overlay with older version of python.eclass which > > overrides python.eclass from the main tree. > > What would I need to check for in the overlay. I currently have only one > package there. > > > Post the output of `emerge --sync`. Sorry. I meant `emerge --info` :( . Also post the output of `emerge -ptv eselect-python`.
(In reply to comment #7) > (In reply to comment #5) > > (In reply to comment #4) > > What does the SUPPORT_PYTHON_ABIS variable do exactly? > > It tells that given package supports installation for multiple versions of > Python, but it doesn't tell which versions of Python are supported. > > (This variable also doesn't need to be set in EAPI >= 3. The behavior enabled > by this variable or EAPI >= 3 cannot be automatically enabled for all packages, > because it usually requires small changes in ebuilds, and the absence of these > changes would cause installation failures of some packages. The changes are > performed by maintainers during conversion of ebuilds to support installation > for multiple Python versions.) > Ah, okay. Thanks for the explanation. > > Sorry. I meant `emerge --info` :( . # emerge --info Portage 2.1.6.13 (default/linux/amd64/2008.0/no-multilib, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r4 x86_64) ================================================================= System uname: Linux-2.6.30-gentoo-r4-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9650_@_3.00GHz-with-gentoo-2.0.0 Timestamp of tree: Fri, 09 Oct 2009 21:30:01 +0000 app-shells/bash: 4.0_p28 dev-java/java-config: 2.1.8-r1 dev-lang/python: 2.6.2-r1, 3.1.1-r1 dev-util/cmake: 2.6.4 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.4.3-r3 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 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.6a virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=core2 -mtune=core2 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=core2 -mtune=core2 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.osuosl.org/ ftp://ftp.gtlib.gatech.edu/pub/gentoo ftp://mirror.iawnet.sandia.gov/pub/gentoo/ " LDFLAGS="-Wl,-O1" MAKEOPTS="-j5" 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" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X acl alsa amd64 avahi bash-completion berkdb bonjour bzip2 cleartype cli cracklib crypt cuda cups curl dbus divx dri flac fortran gdbm gmedia gmp google-gadgets gpg gpm iconv imap ipv6 isdnlog kde kerberos kvm ldap lvm mmx modules mp3 mudflap ncurses nls nptl nptlonly nsplugin ogg opengl openmp pam pcre perl plotutils png postscript pppd pulseaudio python python3 qt4 quicktime readline realmedia reflection rss session sidebar smime spl sse sse2 sse3 ssl ssse3 svg symlink sysfs tcpd truetype unicode vim-with-x wma wmp xcomposite xorg xscreensaver xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS > Also post the output of `emerge -ptv eselect-python`. > # emerge -ptv eselect-python These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild R ] app-admin/eselect-python-20090824 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB
Created attachment 206657 [details, diff] python.eclass.patch Please test this patch. If you save it as /tmp/python.eclass.patch, then you can apply it using: patch /usr/portage/eclass/python.eclass /tmp/python.eclass.patch
(In reply to comment #9) > Created an attachment (id=206657) [details] > python.eclass.patch > > Please test this patch. If you save it as /tmp/python.eclass.patch, then you > can apply it using: > patch /usr/portage/eclass/python.eclass /tmp/python.eclass.patch > That works. Is this patch available in a more recent version of portage? It appears as though all the more recent versions are hard-masked for me. Thanks for the fix!
Comment on attachment 206657 [details, diff] python.eclass.patch This patch was never committed. This problem is properly fixed in Portage 2.1.7.1.