Bug 245358 - sys-apps/portage - emerge doesn't show output if USE flag dep fails
|
Bug#:
245358
|
Product: Portage Development
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: dev-portage@gentoo.org
|
Reported By: iaindb@netspace.net.au
|
|
Component: Core - Interface (emerge)
|
|
|
URL:
|
|
Summary: sys-apps/portage - emerge doesn't show output if USE flag dep fails
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2008-11-03 04:54 0000
|
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
Created an attachment (id=170599) [details]
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
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.
(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...
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.
(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!
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.