Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 245358 - sys-apps/portage - emerge doesn't show output if USE flag dep fails
Summary: sys-apps/portage - emerge doesn't show output if USE flag dep fails
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 210077
  Show dependency tree
 
Reported: 2008-11-03 04:54 UTC by Iain Buchanan
Modified: 2008-11-11 22:26 UTC (History)
0 users

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


Attachments
display parent nodes and the argument that pulled them in (parents.patch,1.29 KB, patch)
2008-11-03 08:05 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Iain Buchanan 2008-11-03 04:54:30 UTC
So I'm happy with the new USE flag dep thing, where portage bombs out if a depended package doesn't have the correct USE flag enabled _before_ it tries to compile.

However, today I did my usual:

$ sudo emerge -vauDN world

but got this:

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds built with USE flags to satisfy ">=media-libs/win32codecs-20071007-r4[real]".
!!! One of the following packages is required to complete your request:
- media-libs/win32codecs-20071007-r4 (Change USE: +real)
(dependency required by "media-libs/realcodecs-11.0.1.1056" [ebuild])


 * GNU info directory index is up-to-date.

Hm, ok great, so realcodecs wants win32codecs compiled with the real USE flag.  Well, what is pulling in realcodecs? Oh, I can't tell anymore because emerge just displays this error and exits!

`emerge -uva world` works, `emerge -uvaD world` doesn't...

Ideally it should still display the emerge list and error, like it does for a blockage...

How else do I know what is pulling in realcodecs?  (Without out using other tools).


Thanks for taking the time to read my suggestion :)


$ emerge --info
Portage 2.2_rc12 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.8_p20080602-r0, 2.6.26-tuxonice i686)
=================================================================
System uname: Linux-2.6.26-tuxonice-i686-Intel-R-_Core-TM-2_Duo_CPU_T9500_@_2.60GHz-with-glibc2.0
Timestamp of tree: Mon, 03 Nov 2008 03:20:01 +0000
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.4.4-r6, 2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.6.2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r4
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /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/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="ftp://morpheus.pcorp.com.au/pub/gentoo-portage/ http://mirror.internode.on.net/pub/gentoo/ http://ftp.swin.edu.au/gentoo/"
LANG="en_AU"
LC_ALL="en_AU"
LDFLAGS="-Wl,-O1"
LINGUAS="en_AU en en_GB en_US"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
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/layman/desktop-effects /usr/local/portage /usr/local/portage-synce-overlay"
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="X aac acl acpi aiglx alsa avahi berkdb bzip2 cli cracklib crypt cups dbus dri esd ffmpeg fortran gdbm gnome gpm gtk hal iconv ipv6 isdnlog jpeg libnotify midi mpeg mudflap ncurses nls nptl nptlonly opengl openmp pam pcre perl pppd python readline reflection samba session smb spl ssl sysfs tcpd unicode x86 xcb xinerama xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_AU en en_GB en_US" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zac Medico gentoo-dev 2008-11-03 08:05:39 UTC
Created attachment 170599 [details, diff]
display parent nodes and the argument that pulled them in

If this is saved as /tmp/parents.patch, then it can be applied as follows:

 patch /usr/lib/portage/pym/_emerge/__init__.py /tmp/parents.patch
Comment 2 Iain Buchanan 2008-11-04 02:18:19 UTC
whoa, thanks for the fast one!

Hm, the output is slightly different, but not what I would expect.

Without the patch:
These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds built with USE flags to satisfy ">=media-libs/win32codecs-20071007-r4[real]".
!!! One of the following packages is required to complete your request:
- media-libs/win32codecs-20071007-r4 (Change USE: +real)
(dependency required by "media-libs/realcodecs-11.0.1.1056" [ebuild])

With the patch:
These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds built with USE flags to satisfy ">=media-libs/win32codecs-20071007-r4[real]".
!!! One of the following packages is required to complete your request:
- media-libs/win32codecs-20071007-r4 (Change USE: +real)
(dependency required by "media-libs/realcodecs-11.0.1.1056" [ebuild])
(dependency required by "media-video/realplayer-11.0.1.1056-r2" [ebuild])
(dependency required by "media-video/mplayer-1.0_rc2_p27725-r1" [installed])
(dependency required by "@world" [argument])

There's a bit more info in there, but I still can't see the good 'ole package list.  eg, this is for openoffice:

$ sudo emerge -va openoffice
Password: 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] perl-core/File-Spec-3.29  128 kB
[ebuild  N    ] dev-libs/icu-3.8.1-r1  USE="-debug -doc -examples" 10,742 kB
[ebuild  N    ] media-libs/vigra-1.6.0  USE="jpeg zlib -doc -fftw -png -tiff" 16,139 kB
[ebuild  N    ] app-text/libwpd-0.8.14  USE="-doc" 415 kB
[ebuild  N    ] virtual/perl-File-Spec-3.29  0 kB
[ebuild  N    ] dev-perl/Archive-Zip-1.26  190 kB
[ebuild  N    ] app-office/openoffice-3.0.0  USE="cups dbus gnome gtk opengl pam -debug -eds -gstreamer -java -kde -ldap -mono -nsplugin -odk -templates" LINGUAS="<snip>" 338,400 kB
[blocks B     ] app-office/openoffice-bin ("app-office/openoffice-bin" is blocking app-office/openoffice-3.0.0)

Total: 7 packages (7 new), Size of downloads: 366,010 kB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked

IMHO it would make sense to show the list of packages to install, with some sort of blocker-like message against (in this case) "media-libs/realcodecs-11.0.1.1056" as realcodecs is blocked by a USE flag dependancy.

thoughts? thanks.
Comment 3 Iain Buchanan 2008-11-04 02:21:10 UTC
(In reply to comment #2)
>
> IMHO it would make sense to show the list of packages to install, with some
> sort of blocker-like message against (in this case)
> "media-libs/realcodecs-11.0.1.1056" as realcodecs is blocked by a USE flag
> dependancy.
>

actually, the blocker would probably be media-libs/win32codecs-20071007-r4 as this version (without USE:real) is blocking realcodecs-11.0.1.1056.

But you guys know that...
Comment 4 Zac Medico gentoo-dev 2008-11-04 03:13:01 UTC
Now I see what you want. We can do that by pruning off the part of the graph with unsatisfied dependencies, and continuing to build the rest of the graph. For example, due to the unsatisfied ">=media-libs/win32codecs-20071007-r4[real]" dependency, the final graph would exclude realcodecs, realplayer, and mplayer since they would all have unsatisfied dependencies.
Comment 5 Iain Buchanan 2008-11-05 06:24:04 UTC
(In reply to comment #4)
> Now I see what you want. We can do that by pruning off the part of the graph
> with unsatisfied dependencies, and continuing to build the rest of the graph.
> For example, due to the unsatisfied
> ">=media-libs/win32codecs-20071007-r4[real]" dependency, the final graph would
> exclude realcodecs, realplayer, and mplayer since they would all have
> unsatisfied dependencies.

It would be nice to see part of the graph, but I guess the point of showing the graph was so that one could see the whole dependency pull for win32codecs[real].  I guess though that your original patch from comment 1 does this, so perhaps I'm only being fussy with wanting to see the graph :)

At least your current patch seems to look the same as when version dependencies aren't met (ie. I'm too aggressive in package.mask) - in which case the graph isn't shown either.

So the patch works, some graph would be a bonus, but not necessary!
Comment 6 Zac Medico gentoo-dev 2008-11-11 22:26:47 UTC
This is fixed in 2.2_rc14.

(In reply to comment #5)
> So the patch works, some graph would be a bonus, but not necessary!

Ok, marking as fixed. You can file a separate feature enhancement but for the other thing if you want.