Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 423647 - dev-python/ipython-0.12.1: incorrect variable used in dependencies
Summary: dev-python/ipython-0.12.1: incorrect variable used in dependencies
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-26 13:46 UTC by Paweł Rumian
Modified: 2012-06-27 12:25 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paweł Rumian 2012-06-26 13:46:03 UTC
As below:

$ ipython 
WARNING: IPython History requires SQLite, your history will not be saved

$ emerge -pv ipython
[ebuild   R    ] dev-python/ipython-0.12.1  USE="matplotlib readline sqlite -doc -emacs -examples -mongodb -notebook -qt4 -smp -test -wxwidgets" 0 kB

$ emerge -pv sqlite
[ebuild   R    ] dev-db/sqlite-3.7.13  USE="extensions fts3 readline threadsafe -debug -doc -icu -secure-delete -soundex -tcl -test -unlock-notify" 0 kB


$ emerge --info
Portage 2.2.0_alpha112 (default/linux/amd64/10.0/desktop, gcc-4.7.1, glibc-2.15-r2, 3.4.0-gentoo x86_64)
=================================================================
System uname: Linux-3.4.0-gentoo-x86_64-AMD_Athlon-tm-_II_X3_450_Processor-with-gentoo-2.1
Timestamp of tree: Mon, 25 Jun 2012 10:30:01 +0000
app-shells/bash:          4.2_p29
dev-java/java-config:     2.1.12
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/cmake:           2.8.8-r3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.3
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.5, 1.12.1
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2, 4.7.1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo local-repo
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /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"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="pl_PL.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="pl"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --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 a52 aac acpi alsa amd64 bash-completion bluetooth branding bzip2 cairo cdda cdr cli cracklib crypt cups cxx dri dts dvd dvdr emboss encode exif fam firefox flac fortran gif gnutls gpm gtk iconv ipv6 jpeg lapack lcms mad mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png ppds pppd python readline session smp spell sse sse2 ssl startup-notification svg tcpd threads tiff truetype udev udisks unicode upower usb vdpau vorbis x264 xcb xml xmp xorg xulrunner xv xvid zlib" ALSA_CARDS="emu10k1" 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="directory" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="radeon r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Rafał Mużyło 2012-06-26 15:03:40 UTC
...and 'emerge -1pv python' (for all python slots) ?
Comment 2 Paweł Rumian 2012-06-26 15:14:57 UTC
$ emerge -pv1 =python-2.7.3-r2
[ebuild   R    ] dev-lang/python-2.7.3-r2  USE="ipv6 ncurses readline ssl threads (wide-unicode) xml -berkdb -build -doc -examples -gdbm -sqlite -tk -wininst" 0 kB

$ emerge -pv1 =python-3.2.3-r1
[ebuild   R    ] dev-lang/python-3.2.3-r1  USE="ipv6 ncurses readline ssl threads (wide-unicode) xml -build -doc -examples -gdbm -sqlite -tk -wininst" 0 kB

You think it may be python[+sqlite] case? I'll rebuild and report back...
Comment 3 Paweł Rumian 2012-06-26 15:46:48 UTC
OK, it was indeed the case of python[sqlite], thank you.

Now I am not keen on the 'python eclass cruft' (as commented in the ebuild), but isn't it the PYTHON_USE_DEPEND not working correctly? Shouldn't it be PYTHON_USE_WITH instead?
Comment 4 Rafał Mużyło 2012-06-26 16:21:00 UTC
(In reply to comment #3)
> Now I am not keen on the 'python eclass cruft' (as commented in the ebuild),
> but isn't it the PYTHON_USE_DEPEND not working correctly? Shouldn't it be
> PYTHON_USE_WITH instead?
Well, python eclass is quite hard to understand - part of the reason is the price for its wide coverage of different usecases in various ebuilds  - but you seem to be right.
Comment 5 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-06-27 06:51:43 UTC
+  27 Jun 2012; Kacper Kowalik <xarthisius@gentoo.org> ipython-0.12-r1.ebuild,
+  ipython-0.12.1.ebuild:
+  Add missing PYTHON_DEPEND, use proper PYTHON_USE_WITH wrt #423647 by Paweł
+  Rumian <gorkypl@gmail.com>
Comment 6 Paweł Rumian 2012-06-27 09:41:56 UTC
Thanks Kacper. 
Unfortunately it still does not pull python with [sqlite], 

After reading this document: http://www.gentoo.org/proj/en/Python/developersguide.xml I guess that the ebuild may still lack 'inherit python' and (maybe) python_pkg_setup...
Comment 7 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-06-27 10:31:22 UTC
(In reply to comment #6)
> Thanks Kacper. 
> Unfortunately it still does not pull python with [sqlite], 
> 
> After reading this document:
> http://www.gentoo.org/proj/en/Python/developersguide.xml I guess that the
> ebuild may still lack 'inherit python' and (maybe) python_pkg_setup...
inherit python is brought by inherit distutils
Comment 8 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-06-27 10:42:34 UTC
Those flags are no longer conditional so I've just removed '?', should be fine now

+  27 Jun 2012; Kacper Kowalik <xarthisius@gentoo.org> ipython-0.12-r1.ebuild,
+  ipython-0.12.1.ebuild:
+  PYTHON_USE_WITH are no longer conditional wrt #423647 by Paweł Rumian
+  <gorkypl@gmail.com>
Comment 9 Paweł Rumian 2012-06-27 11:38:45 UTC
Uh, both flags have no effect now.

# emerge -pqv ipython
[ebuild   R   ] dev-python/ipython-0.12.1  USE="matplotlib -doc -emacs -examples -mongodb -notebook -qt4 -smp -test -wxwidgets (-readline%*) (-sqlite%*)" 

# emerge -pqv =dev-lang/python-2.7.3-r2
[ebuild   R   ] dev-lang/python-2.7.3-r2  USE="ipv6 ncurses readline ssl threads (wide-unicode) xml -berkdb -build -doc -examples -gdbm -sqlite* -tk -wininst"
Comment 10 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-06-27 11:44:30 UTC
(In reply to comment #9)
> Uh, both flags have no effect now.
> 
> # emerge -pqv ipython
> [ebuild   R   ] dev-python/ipython-0.12.1  USE="matplotlib -doc -emacs
> -examples -mongodb -notebook -qt4 -smp -test -wxwidgets (-readline%*)
> (-sqlite%*)" 

I don't understand the problem. You currently have python:2.7 installed *with*
readline and sqlite. That's shown by:

> # emerge -pqv =dev-lang/python-2.7.3-r2
> [ebuild   R   ] dev-lang/python-2.7.3-r2  USE="ipv6 ncurses readline ssl
> threads (wide-unicode) xml -berkdb -build -doc -examples -gdbm -sqlite* -tk
> -wininst"

What do you expect portage to do? It won't switch on USE flags for you. If you reemerge python with USE="readline -sqlite" and then try to reemerge ipython, portage *will* complain
Comment 11 Paweł Rumian 2012-06-27 12:11:11 UTC
I have expected that when portage detects that python will be rebuilt without USE="sqlite", it will complain for unmet dependencies for ipython (all this when doing emerge -avuDN world).

The problem is that portage checked *python-3.2* for the presence of USE="sqlite" (and it had it enabled), not the *python-2.7*.

So for test purposes I have rebuilt both python-2.7 and python-3.2 with USE="-sqlite" and got what I have expected:

# emerge -pqv ipython
[ebuild   R   ] dev-lang/python-3.2.3-r1  USE="ipv6 ncurses readline sqlite* ssl threads (wide-unicode) xml -build -doc -examples -gdbm -tk -wininst" 
[ebuild   R   ] dev-python/ipython-0.12.1  USE="matplotlib -doc -emacs -examples -mongodb -notebook -qt4 -smp -test -wxwidgets (-readline%*) (-sqlite%*)" 

The following USE changes are necessary to proceed:
#required by dev-python/ipython-0.12.1, required by ipython (argument)
>=dev-lang/python-3.2.3-r1 sqlite


Blindly following the portage advice I have enabled USE="sqlite" ONLY for python-3.2 and the ipython fails with:

 * Please rebuild dev-lang/python:2.7 with the following USE flags enabled: readline sqlite
 * ERROR: dev-python/ipython-0.12.1 failed (setup phase):
 *   Please rebuild dev-lang/python:2.7 with the following USE flags enabled: readline sqlite

So I guess that portage should check for presence of USE="sqlite" in python-2.7, not the python-3.2, but I don't know if it is the limitation of python eclass or just a way that portage works? 

For completeness:
# eselect python list
Available Python interpreters:
  [1]   python2.7 *
  [2]   python3.2
Comment 12 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-06-27 12:16:51 UTC
(In reply to comment #11)
> I have expected that when portage detects that python will be rebuilt
> without USE="sqlite", it will complain for unmet dependencies for ipython
> (all this when doing emerge -avuDN world).
> 
> The problem is that portage checked *python-3.2* for the presence of
> USE="sqlite" (and it had it enabled), not the *python-2.7*.
> 
> So for test purposes I have rebuilt both python-2.7 and python-3.2 with
> USE="-sqlite" and got what I have expected:
> 
> # emerge -pqv ipython
> [ebuild   R   ] dev-lang/python-3.2.3-r1  USE="ipv6 ncurses readline sqlite*
> ssl threads (wide-unicode) xml -build -doc -examples -gdbm -tk -wininst" 
> [ebuild   R   ] dev-python/ipython-0.12.1  USE="matplotlib -doc -emacs
> -examples -mongodb -notebook -qt4 -smp -test -wxwidgets (-readline%*)
> (-sqlite%*)" 
> 
> The following USE changes are necessary to proceed:
> #required by dev-python/ipython-0.12.1, required by ipython (argument)
> >=dev-lang/python-3.2.3-r1 sqlite
> 
> 
> Blindly following the portage advice I have enabled USE="sqlite" ONLY for
> python-3.2 and the ipython fails with:
> 
>  * Please rebuild dev-lang/python:2.7 with the following USE flags enabled:
> readline sqlite
>  * ERROR: dev-python/ipython-0.12.1 failed (setup phase):
>  *   Please rebuild dev-lang/python:2.7 with the following USE flags
> enabled: readline sqlite
> 
> So I guess that portage should check for presence of USE="sqlite" in
> python-2.7, not the python-3.2, but I don't know if it is the limitation of
> python eclass or just a way that portage works? 

I see. The functionality you want unfortunately won't happen with portage and python.eclass in their current state :/
There's a solution to that under development but I'm afraid there's nothing I can do right now.
Comment 13 Paweł Rumian 2012-06-27 12:25:33 UTC
Ok, I was just curious :)

Thank you!