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
...and 'emerge -1pv python' (for all python slots) ?
$ 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...
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?
(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.
+ 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>
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...
(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
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>
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"
(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
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
(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.
Ok, I was just curious :) Thank you!