Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 288247 - dev-python/bpython ebuild incorrectly sets the SUPPORT_PYTHON_ABIS variable
Summary: dev-python/bpython ebuild incorrectly sets the SUPPORT_PYTHON_ABIS variable
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High normal
Assignee: Andrey Grozin
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-08 19:42 UTC by solj
Modified: 2009-10-11 14:27 UTC (History)
1 user (show)

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


Attachments
Remove SUPPORT_PYTHON_ABIS until it works properly (bpython.patch,362 bytes, patch)
2009-10-08 19:44 UTC, solj
Details | Diff
emerge --sync output (sync.log,165.67 KB, text/plain)
2009-10-09 21:41 UTC, solj
Details
python.eclass.patch (python.eclass.patch,376 bytes, patch)
2009-10-10 13:08 UTC, Arfrever Frehtes Taifersar Arahesis (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description solj 2009-10-08 19:42:25 UTC
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.
Comment 1 solj 2009-10-08 19:44:29 UTC
Created attachment 206470 [details, diff]
Remove SUPPORT_PYTHON_ABIS until it works properly
Comment 2 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-10-08 19:52:02 UTC
You probably failed to run `emerge --sync`.
dev-python/bpython-0.9.5.2 obviously does support installation for multiple Python versions.
Comment 3 solj 2009-10-09 12:09:29 UTC
(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.
Comment 4 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-10-09 16:46:01 UTC
(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`.
Comment 5 solj 2009-10-09 21:41:17 UTC
(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
Comment 6 solj 2009-10-09 21:41:49 UTC
Created attachment 206589 [details]
emerge --sync output
Comment 7 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-10-09 22:26:59 UTC
(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`.
Comment 8 solj 2009-10-09 23:54:19 UTC
(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
Comment 9 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-10-10 13:08:38 UTC
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
Comment 10 solj 2009-10-10 14:27:58 UTC
(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 11 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-10-11 14:27:01 UTC
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.