Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 352850 - emerge --depclean cannot resolve dependencies due to non-existing (and disabled) USE-flag
Summary: emerge --depclean cannot resolve dependencies due to non-existing (and disabl...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 349307
  Show dependency tree
 
Reported: 2011-01-26 18:12 UTC by Alexander Stein
Modified: 2011-01-30 02:14 UTC (History)
2 users (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 Alexander Stein 2011-01-26 18:12:04 UTC
# emerge -pv --depclean
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   media-sound/phonon[-aqua] pulled in by:
 *     x11-libs/qt-webkit-4.7.1-r1

emerge -pv qt-webkit phonon
[ebuild   R   ] media-sound/phonon-4.4.4  USE="vlc xine -debug -gstreamer -pulseaudio" 0 kB
[ebuild   R   ] x11-libs/qt-webkit-4.7.1-r1  USE="dbus debug exceptions jit kde pch (-aqua)" 0 kB

media-sound/phonon-4.4.4 doesn't have the aqua USE-flag while qt-phonon does. Also media-sound/phonon-4.4.3 have it.
This shouldn't occur at all, because aqua is disabled nevertheless.


Reproducible: Always

Steps to Reproduce:
1. Install media-sound/phonon-4.4.4 and x11-libs/qt-webkit-4.7.1-r1 with -aqua
2. emerge --depclean

Actual Results:  
Calculating dependencies... done!
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   media-sound/phonon[-aqua] pulled in by:
 *     x11-libs/qt-webkit-4.7.1-r1

Expected Results:  
The usual list of packages unneeded
Comment 1 Zac Medico gentoo-dev 2011-01-26 18:22:32 UTC
The dependency looks like this:

!kde? ( || ( ~x11-libs/qt-phonon-4.7.1:4[aqua=,dbus=,debug=] media-sound/phonon[aqua=] ) ) kde? ( || ( media-sound/phonon[aqua=] ~x11-libs/qt-phonon-4.7.1:4[aqua=,dbus=,debug] ) )

Since media-sound/phonon doesn't have the aqua flag in IUSE, you're going to need x11-libs/qt-phonon with the aqua flag in IUSE. If you run `emerge -uDN world` then hopefully it will resolve itself automatically.
Comment 2 Alexander Stein 2011-01-26 18:40:04 UTC
As far as I unterstand qt-webkit makes sure, you have either qt-phonon or phonon build with the same aqua USE-flag, either enabled or disabled.
I don't have and can't set aqua, so emerge shouldn't complain about it.
`emerge -pvuDN world` shows nothing to be build, which is what I would expect. So the problem would either be media-libs/phonon-4.4.4 not having aqua USE-Flag now or depclean being not able to handle the disabled and abscent USE-flag.
Comment 3 Zac Medico gentoo-dev 2011-01-26 18:54:52 UTC
(In reply to comment #2)
> As far as I unterstand qt-webkit makes sure, you have either qt-phonon or
> phonon build with the same aqua USE-flag, either enabled or disabled.
> I don't have and can't set aqua, so emerge shouldn't complain about it.
> `emerge -pvuDN world` shows nothing to be build, which is what I would expect.

Absent and disabled are not the same thing. If aqua is not in IUSE then the dependency is considered unsatisfied (even if aqua is supposed to be disabled). If working correctly, `emerge -pvuDN world` should pull in x11-libs/qt-phonon[-aqua] in order to satisfy the dependency. Do you have x11-libs/qt-phonon installed or not, and if installed then what are its USE flag settings?

> So the problem would either be media-libs/phonon-4.4.4 not having aqua USE-Flag

Right, as said above, absent and disabled are not the same thing, and x11-libs/qt-phonon[-aqua] is required to satisfy the dependency.

> now or depclean being not able to handle the disabled and abscent USE-flag.

If working correctly, it should be using x11-libs/qt-phonon[-aqua] to satisfy the dependency if it's installed. If it's not installed, then it is more or less correctly reporting the dependency as unsatisfied.

Please post emerge --info. Some recent versions of portage have had bugs in || dependency handling that may affect your situation, so we need to know which portage version you are using.
Comment 4 Alexander Stein 2011-01-26 19:14:16 UTC
(In reply to comment #3)
> If working correctly, `emerge -pvuDN world` should pull in
> x11-libs/qt-phonon[-aqua] in order to satisfy the dependency. Do you have
> x11-libs/qt-phonon installed or not, and if installed then what are its USE
> flag settings?

I just have media-libs/phonon installed (for KDE) which worked fine for long.

> > So the problem would either be media-libs/phonon-4.4.4 not having aqua USE-Flag
> 
> Right, as said above, absent and disabled are not the same thing, and
> x11-libs/qt-phonon[-aqua] is required to satisfy the dependency.

Well, as media-libs/phonon had aqua till 4.4.3 and got it removed in 4.4.4, maybe it should be added again?

> > now or depclean being not able to handle the disabled and abscent USE-flag.
> 
> If working correctly, it should be using x11-libs/qt-phonon[-aqua] to satisfy
> the dependency if it's installed. If it's not installed, then it is more or
> less correctly reporting the dependency as unsatisfied.
> 
> Please post emerge --info. Some recent versions of portage have had bugs in ||
> dependency handling that may affect your situation, so we need to know which
> portage version you are using.
$ emerge --info
Portage 2.1.9.25 (default/linux/amd64/10.0/desktop/kde, gcc-4.4.4, glibc-2.11.2-r3, 2.6.36-gentoo-r5 x86_64)
=================================================================
System uname: Linux-2.6.36-gentoo-r5-x86_64-AMD_Phenom-tm-_II_X4_905e_Processor-with-gentoo-2.0.1
Timestamp of tree: Wed, 26 Jan 2011 07:45:01 +0000
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.6.6-r1, 3.1.2-r4
dev-util/cmake:      2.8.3-r1
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.7.0
sys-apps/sandbox:    2.4
sys-devel/autoconf:  2.65-r1
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 skype-eula RTCW-ETEULA PUEL AdobeFlash-10.1"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=amdfam10 -pipe"
CHOST="x86_64-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 /var/lib/hsqldb"
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/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=amdfam10 -pipe"
DISTDIR="/usr/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"
LANG="de_DE.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,now -Wl,--sort-common"
LINGUAS="de"
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="/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/local /usr/portage/local/layman/kde /usr/portage/local/layman/kde-sunset"
SYNC="rsync://rsync.lan.local/gentoo-portage"
USE="3dnow X a52 aac ac3 accessibility acct acl acpi addbookmarks aio alias alsa amd64 amr asf autoreplace bash-completion berkdb bluetooth boost bzip2 bzlib cairo calendar caps ccache cdr cli connectionstatus contactnotes cpudetection cracklib crypt css cups curl cxx dbus dga divx4linux djvu dri dts dvd dvdr emboss encode ethereal exif exscalibar fam fbcon fbcondecor ffmpeg firefox flac fluidsynth font-server fontconfig freetype gd gdbm gdu ggi gif gimp gimpprint glib glitz glut gmp gnutls gphoto2 gtk hbci history iconv icu id3tag idn imagemagick imap imlib inotify ipv6 jabber java jpeg jpeg2k kde kerberos lame latex lcms libnotify lm_sensors lzma mad mikmod mime mmx mng modules mozdevelop mozsvg mozxmlterm mp3 mp4 mpeg mplayer mudflap multilib multiuser music ncurses net network-cron nls no-old-linux noantlr nobcel nobeanutils nobsf nobsh nocommonslogging nocommonsnet nojdepend nojsch nojython nolog4j nooro noregexp norhino nowlistening noxalan noxerces nptl nptlonly offensive ofx ogg oggvorbis openal opengl openmp pam pam_krb5 pango pch pcre pdf perl plotutils png pnp policykit ppds pppd pth python qt3support qt4 readline remix sasl scenarios schroedinger screen sdl sdl-image semantic-desktop session smime spell sqlite sqlite3 sse sse2 ssl ssse3 startup-notification statistics subversion svg sysfs taglib tcpd tetex texteffect themes theora threads tidy tiff translator truetype trusted udev unicode usb v4l v4l2 vcd vdpau videos vim-syntax voice vorbis webpresence x264 xcb xine xinerama xml xml2 xorg xosd xulrunner xv xvid zip 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" 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" LINGUAS="de" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia vesa fbdev" 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, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Comment 5 Fabian Groffen gentoo-dev 2011-01-26 19:17:58 UTC
(In reply to comment #4)
> > Right, as said above, absent and disabled are not the same thing, and
> > x11-libs/qt-phonon[-aqua] is required to satisfy the dependency.
> 
> Well, as media-libs/phonon had aqua till 4.4.3 and got it removed in 4.4.4,
> maybe it should be added again?

I think so. @qt, was this on purpose?
Comment 6 Davide Pesavento (RETIRED) gentoo-dev 2011-01-26 21:09:06 UTC
media-sound/phonon is maintained by kde team, not qt. Cc'ing them.
Comment 7 tarek 2011-01-28 12:15:51 UTC
Confirmed:

If you change IUSE definition to 

IUSE="debug gstreamer pulseaudio +vlc xine -aqua"

within phonon-4.4.4.ebuild

the problem immediately goes away.

I note that this phonon ebuild does way with the [aqua=] RDEPEND checks of its predecessors, so it was most likely an intended generalization of the ebuild, with this bug being an unintended side effect.

Comment 8 Zac Medico gentoo-dev 2011-01-29 20:17:37 UTC
(In reply to comment #1)
> The dependency looks like this:
> 
> !kde? ( || ( ~x11-libs/qt-phonon-4.7.1:4[aqua=,dbus=,debug=]
> media-sound/phonon[aqua=] ) ) kde? ( || ( media-sound/phonon[aqua=]
> ~x11-libs/qt-phonon-4.7.1:4[aqua=,dbus=,debug] ) )
> 
> Since media-sound/phonon doesn't have the aqua flag in IUSE, you're going to
> need x11-libs/qt-phonon with the aqua flag in IUSE. If you run `emerge -uDN
> world` then hopefully it will resolve itself automatically.

Now that I've researched this, I've found that portage is portage allows media-sound/phonon-4.4.4 to satisfy media-sound/phonon[aqua-] since profiles/base/use.mask has the aqua flag masked and therefore it's considered to be an implicit member of IUSE. In portage-2.1.9.25, there is a bug which causes --depclean to malfunction. However, this is fixed in portage-2.1.9.35 due to various USE dep matching fixes like this one:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=766988aa56bb1bbd2796f96946e62ed78cdf2599
Comment 9 Zac Medico gentoo-dev 2011-01-30 02:14:40 UTC
As said in comment #8, portage is allowing this since the aqua flag is masked in the base profile. However, given that the aqua flag appears to have been intentionally removed in media-libs/phonon-4.4.4, the x11-libs/qt-webkit dependency on media-libs/phonon[aqua=] is almost certainly incorrect for darwin profiles where the aqua flag is unmasked. If someone finds this to be a problem then they can file a new bug for the qt team in order to have the dependency corrected.