Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 409713 - Confusing message for unsatisfied semantic-desktop= USE dependency
Summary: Confusing message for unsatisfied semantic-desktop= USE dependency
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 409715 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-03-26 02:24 UTC by dE
Modified: 2012-03-30 01:28 UTC (History)
0 users

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 dE 2012-03-26 02:24:10 UTC
This problem can be best understood with this thread - 

http://forums.gentoo.org/viewtopic-p-6995406.html#6995406

Reproducible: Always




Portage 2.2.0_alpha90_p21 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.3, glibc-2.13-r4, 3.0.4 x86_64)
=================================================================
System uname: Linux-3.0.4-x86_64-AMD_Athlon-tm-_64_X2_Dual-Core_Processor_TK-55-with-gentoo-2.1
Timestamp of tree: Sat, 17 Mar 2012 11:30:01 +0000
app-shells/bash:      4.2_p20
dev-java/java-config: 2.1.11-r3
dev-lang/python:      2.7.2-r3, 3.1.4-r3, 3.2.2
dev-util/cmake:       2.8.6-r4
dev-util/pkgconfig:   0.26
sys-apps/baselayout:  2.1
sys-apps/openrc:      0.9.9.3
sys-apps/sandbox:     2.5
sys-devel/autoconf:   2.68
sys-devel/automake:   1.11.1
sys-devel/binutils:   2.21.1-r1
sys-devel/gcc:        4.5.3-r2
sys-devel/gcc-config: 1.5-r2
sys-devel/libtool:    2.4-r1
sys-devel/make:       3.82-r1
sys-libs/glibc:       2.13-r4
Repositories: gentoo sunrise proaudio mozilla sardemff7 x11 sabayon my-tree
Installed sets: 
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
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"
CXXFLAGS="-march=native -O2 -fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=n --complete-graph --binpkg-respect-use=y"
FEATURES="assume-digests binpkg-logs candy distlocks ebuild-locks fail-clean fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
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="/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/sunrise /var/lib/layman/pro-audio /var/lib/layman/mozilla /var/lib/layman/sardemff7 /var/lib/layman/x11 /var/lib/layman/sabayon /home/de/dev-tree"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X a52 a53 aac aalib acc acpi adns alsa amd64 amr atm audiofile branding bzip2 cdda cdr cli consolekit cracklib css cups custom-cflags custom-optimization cxx dbus dbx declarative dga dirac dri dts dv dvd dvdr emboss encode enscript exif ffmpeg firefox flac fortran gdu gif gles glut gmp gsm gstreamer gzip iconv icu imlib ipc jpeg jpeg2k kde ladspa lame lcms libedit libnotify libsamplerate libwww lzma lzo mad matroska matrox mikmod mime minimal mmap mmx mng modules mozilla mp3 mp4 mpeg mplayer mudflap multilib musepack networkmanager nntp nocd nptl nptlonly nsplugin offensive ogg openal openexr opengl openmp optimization orc osc pam pango pch pdf phonon plasma png policykit posix ppds pppd qt3support qt4 quicktime raw readline schroedinger sharedmem shorten smp sndfile sockets socks5 speex spell sse sse2 startup-notification strong-optimization svg symlink sysfs taglib tcpd theora threads tiff toolame truetype twolame udev unicode usb vcd vhosts vorbis wavpack wmf x264 xcb xcomposite xine xinerama xml xorg xpm xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 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 stage tables krita karbon braindump" CAMERAS="ptp2" 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 synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon r300" 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, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zac Medico gentoo-dev 2012-03-26 02:45:20 UTC
The relevant(In reply to comment #0)
> This problem can be best understood with this thread - 
> 
> http://forums.gentoo.org/viewtopic-p-6995406.html#6995406

According to this message, your semantic-desktop USE setting differs for kde-base/kdeplasma-addons and kde-base/kdeplasma-addons:

emerge: there are no ebuilds built with USE flags to satisfy ">=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]". 
!!! One of the following packages is required to complete your request: 
- kde-base/kdelibs-4.7.4::gentoo (Change USE: -semantic-desktop) 
- kde-base/kdeplasma-addons-4.7.4::gentoo (Change USE: +semantic-desktop) 
(dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild]) 
(dependency required by "@selected" [set]) 
(dependency required by "@world" [argument])

If you don't want semantic-desktop enabled for kdelibs, then disable it. This should do it:

  echo 'USE="${USE} -semantic-desktop"' >> /etc/make.conf

Also, check /etc/portage/package.use and make sure it's not enabled there. Then rebuild kdelibs and try again. Make sure the flag is disabled by running this command:

  emerge -pv kde-base/kdelibs

Then go ahead and rebuild it if it shows that semantic-desktop is disabled like you want.
Comment 2 dE 2012-03-27 08:50:18 UTC
(In reply to comment #1)
> 
> According to this message, your semantic-desktop USE setting differs for
> kde-base/kdeplasma-addons and kde-base/kdeplasma-addons:
> 
> emerge: there are no ebuilds built with USE flags to satisfy
> ">=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]". 
> !!! One of the following packages is required to complete your request: 
> - kde-base/kdelibs-4.7.4::gentoo (Change USE: -semantic-desktop) 
> - kde-base/kdeplasma-addons-4.7.4::gentoo (Change USE: +semantic-desktop) 
> (dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild]) 
> (dependency required by "@selected" [set]) 
> (dependency required by "@world" [argument])

Yes, I want to build it without semantic-desktop

> 
> If you don't want semantic-desktop enabled for kdelibs, then disable it.
> This should do it:
> 
>   echo 'USE="${USE} -semantic-desktop"' >> /etc/make.conf
> 
> Also, check /etc/portage/package.use and make sure it's not enabled there.
> Then rebuild kdelibs and try again. Make sure the flag is disabled by
> running this command:
> 
>   emerge -pv kde-base/kdelibs
> 
> Then go ahead and rebuild it if it shows that semantic-desktop is disabled
> like you want.

It happens that I require that RSS USE with kde-base/plasma-workspace, thus enabled kde-base/kdelibs[semantic-desktop], kde-base/kdepimlib[semantic-desktop] (in package.use).

$ cat /etc/portage/package.use | grep semantic-desktop
kde-base/kdeplasma-addons -desktopglobe -semantic-desktop
kde-base/kdelibs semantic-desktop
kde-base/kdepimlibs semantic-desktop
#kde-base/kdeplasma-addons semantic-desktop
#kde-base/plasma-workspace semantic-desktop 
#kde-base/activitymanager semantic-desktop
#kde-base/dolphin semantic-desktop
#kde-base/gwenview semantic-desktop

But I don't require it for anything else.

Also why is it that equery results in blank answers?
Comment 3 dE 2012-03-27 09:15:58 UTC
*** Bug 409715 has been marked as a duplicate of this bug. ***
Comment 4 Zac Medico gentoo-dev 2012-03-27 14:21:11 UTC
(In reply to comment #2)
> It happens that I require that RSS USE with kde-base/plasma-workspace, thus
> enabled kde-base/kdelibs[semantic-desktop],
> kde-base/kdepimlib[semantic-desktop] (in package.use).
> 
> $ cat /etc/portage/package.use | grep semantic-desktop
> kde-base/kdeplasma-addons -desktopglobe -semantic-desktop
> kde-base/kdelibs semantic-desktop
> kde-base/kdepimlibs semantic-desktop
> #kde-base/kdeplasma-addons semantic-desktop
> #kde-base/plasma-workspace semantic-desktop 
> #kde-base/activitymanager semantic-desktop
> #kde-base/dolphin semantic-desktop
> #kde-base/gwenview semantic-desktop

You don't need those settings, and you don't want them, so you should remove them. The relevant dependency atoms from kde-base/plasma-workspace-4.7.4 are:

  >=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]
  >=kde-base/kdepimlibs-4.7.4:4[aqua=,semantic-desktop=]

Those dependencies mean that you can disable semantic-desktop if you have it disabled in all of the packages.

> But I don't require it for anything else.
> 
> Also why is it that equery results in blank answers?

I guess you're referring to this comment:

http://forums.gentoo.org/viewtopic-p-6994046.html?sid=238d7061406d7a409e6685de806a16a5#6994046

There you ran "equery depends kde-base/kdepimlib" and you didn't spell it right (you forgot the "s" on the end), so it gave no results.
Comment 5 dE 2012-03-28 07:35:38 UTC
(In reply to comment #4)
> (In reply to comment #2)
> > It happens that I require that RSS USE with kde-base/plasma-workspace, thus
> > enabled kde-base/kdelibs[semantic-desktop],
> > kde-base/kdepimlib[semantic-desktop] (in package.use).
> > 
> > $ cat /etc/portage/package.use | grep semantic-desktop
> > kde-base/kdeplasma-addons -desktopglobe -semantic-desktop
> > kde-base/kdelibs semantic-desktop
> > kde-base/kdepimlibs semantic-desktop
> > #kde-base/kdeplasma-addons semantic-desktop
> > #kde-base/plasma-workspace semantic-desktop 
> > #kde-base/activitymanager semantic-desktop
> > #kde-base/dolphin semantic-desktop
> > #kde-base/gwenview semantic-desktop
> 
> You don't need those settings, and you don't want them, so you should remove
> them. The relevant dependency atoms from kde-base/plasma-workspace-4.7.4 are:
> 
>   >=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]
>   >=kde-base/kdepimlibs-4.7.4:4[aqua=,semantic-desktop=]
> 
> Those dependencies mean that you can disable semantic-desktop if you have it
> disabled in all of the packages.

But I need semantic-desktop in kdelibs and kdepimlibs indirectly cause - 

equery depends kde-base/kdepimlibs 
 * These packages depend on kde-base/kdepimlibs:
...
kde-base/plasma-workspace-4.7.4 (rss ? >=kde-base/kdepimlibs-4.7.4:4[aqua=,semantic-desktop=])
...

I need that rss USE.

The cat /etc/portage/package.use | grep semantic-desktop appears to be wrong, this's what I really meant - 

kde-base/kdeplasma-addons -desktopglobe -semantic-desktop
kde-base/kdelibs semantic-desktop
kde-base/kdepimlibs semantic-desktop
kde-base/kdeplasma-addons -semantic-desktop
kde-base/plasma-workspace -semantic-desktop 
kde-base/activitymanager -semantic-desktop
kde-base/dolphin -semantic-desktop
kde-base/gwenview -semantic-desktop

i.e. I just need kde-base/kdelibs[semantic-desktop] and kde-base/kdepimlibs [semantic-desktop] for kde-base/plasma-workspace[rss]. For rest of the packages, I don't need it.

Then - 

emerge -pv --newuse --autounmask=n world

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

Calculating dependencies                 ... done!

emerge: there are no ebuilds built with USE flags to satisfy ">=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]".
!!! One of the following packages is required to complete your request:
- kde-base/kdelibs-4.7.4::gentoo (Change USE: -semantic-desktop)
- kde-base/kdeplasma-addons-4.7.4::gentoo (Change USE: +semantic-desktop)
(dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

To me, this message looks like kde-base/kdeplasma-addons is a dependency of kde-base/kdelibs, but, it's not - 

equery depends kde-base/kdeplasma-addons
 * These packages depend on kde-base/kdeplasma-addons:

So why does portage persist on kde-base/kdeplasma-addons[semantic-desktop]? (since kde-base/kdelibs[semantic-desktop] is required by me).

After that -- 

(dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])

Which apparently makes no sense.

PS: The intention of this bug report is to make emerge's messages clearer.

> 
> > But I don't require it for anything else.
> > 
> > Also why is it that equery results in blank answers?
> 
> I guess you're referring to this comment:
> 
> http://forums.gentoo.org/viewtopic-p-6994046.
> html?sid=238d7061406d7a409e6685de806a16a5#6994046
> 
> There you ran "equery depends kde-base/kdepimlib" and you didn't spell it
> right (you forgot the "s" on the end), so it gave no results.

Yeah, stupid mistake.
Comment 6 Zac Medico gentoo-dev 2012-03-28 19:59:30 UTC
(In reply to comment #5)
> PS: The intention of this bug report is to make emerge's messages clearer.

The summary made me think that you were complaining about a dependency resolution problem rather than an output problem. So, I'll adjust the summary to reflect your intention.
Comment 7 Zac Medico gentoo-dev 2012-03-28 20:04:32 UTC
(In reply to comment #5)
> emerge: there are no ebuilds built with USE flags to satisfy
> ">=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]".
> !!! One of the following packages is required to complete your request:
> - kde-base/kdelibs-4.7.4::gentoo (Change USE: -semantic-desktop)
> - kde-base/kdeplasma-addons-4.7.4::gentoo (Change USE: +semantic-desktop)
> (dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])
> (dependency required by "@selected" [set])
> (dependency required by "@world" [argument])
> 
> To me, this message looks like kde-base/kdeplasma-addons is a dependency of
> kde-base/kdelibs, but, it's not - 
> 
> equery depends kde-base/kdeplasma-addons
>  * These packages depend on kde-base/kdeplasma-addons:
> 
> So why does portage persist on kde-base/kdeplasma-addons[semantic-desktop]?
> (since kde-base/kdelibs[semantic-desktop] is required by me).

The intention of the message is to give you a choice between two possible actions. That's why it says "One of the following packages". It wants you to choose one of these package/USE combinations.

> After that -- 
> 
> (dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])
> 
> Which apparently makes no sense.

The unsatisfied dependency is >=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=], and this atom comes from kde-base/kdeplasma-addons-4.7.4. Does that make sense?
Comment 8 dE 2012-03-29 05:12:48 UTC
(In reply to comment #7)
> (In reply to comment #5)
> > emerge: there are no ebuilds built with USE flags to satisfy
> > ">=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=]".
> > !!! One of the following packages is required to complete your request:
> > - kde-base/kdelibs-4.7.4::gentoo (Change USE: -semantic-desktop)
> > - kde-base/kdeplasma-addons-4.7.4::gentoo (Change USE: +semantic-desktop)
> > (dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])
> > (dependency required by "@selected" [set])
> > (dependency required by "@world" [argument])
> > 
> > To me, this message looks like kde-base/kdeplasma-addons is a dependency of
> > kde-base/kdelibs, but, it's not - 
> > 
> > equery depends kde-base/kdeplasma-addons
> >  * These packages depend on kde-base/kdeplasma-addons:
> > 
> > So why does portage persist on kde-base/kdeplasma-addons[semantic-desktop]?
> > (since kde-base/kdelibs[semantic-desktop] is required by me).
> 
> The intention of the message is to give you a choice between two possible
> actions. That's why it says "One of the following packages". It wants you to
> choose one of these package/USE combinations.
> 

Does this mean kde-base/kdelibs[semantic-desktop] depends on kde-base/kdeplasma-addons[semantic-desktop]?

> > After that -- 
> > 
> > (dependency required by "kde-base/kdeplasma-addons-4.7.4" [ebuild])
> > 
> > Which apparently makes no sense.
> 
> The unsatisfied dependency is
> >=kde-base/kdelibs-4.7.4:4[aqua=,semantic-desktop=], and this atom comes
> from kde-base/kdeplasma-addons-4.7.4. Does that make sense?

Only if kde-base/kdeplasma-addons[semantic-desktop] is required when kde-base/kdelibs is build with [semantic-desktop]. But is that the case? Seems very unlikely.

Let's take a hypothetical example.

Suppose package X and Y have a common use -- h264. For Y to be compiled with h264 USE, X too has to be compiled with h264 USE, thus in Y's ebuild - 

h264? ( X[h264])

X being a library, does not depend on Y, but Y being an application and using X, depends on it and it's capabilities.

As a result, if I want Y[-h264], I may or may not build X with h264, this USE does not matter if Y[-h264] is the case.

In the above case X is kdelibs and Y is kdeplasma-addons, thus kdeplasma-addons[semantic-desktop] depends on kdelibs[semantic-desktop], if I want kdeplasma-addons[-semantic-desktop], it does not matter if I build kdelibs with or without semantic-desktop. But in this particular case portage is still enforcing semantic-desktop on kdeplasma-addons, but no ebuild depends on kdeplasma-addons[semantic-desktop].
Comment 9 Zac Medico gentoo-dev 2012-03-29 05:24:54 UTC
(In reply to comment #8)
> Does this mean kde-base/kdelibs[semantic-desktop] depends on
> kde-base/kdeplasma-addons[semantic-desktop]?

Yes, and also it means that kde-base/kdelibs[-semantic-desktop] depends on kde-base/kdeplasma-addons[-semantic-desktop]. A semantic-desktop= USE dependency means both.

> Only if kde-base/kdeplasma-addons[semantic-desktop] is required when
> kde-base/kdelibs is build with [semantic-desktop]. But is that the case?
> Seems very unlikely.

Whether or not it really is the the case, that's the meaning of the dependency. If the dependency is expressed incorrectly, then you can file a bug for kde-base/kdeplasma-addons to have the dependency corrected.

> But in this particular case
> portage is still enforcing semantic-desktop on kdeplasma-addons, but no
> ebuild depends on kdeplasma-addons[semantic-desktop].

Portage is behaving as it's designed to behave for the way that the dependency i expressed. If you think it's expressed incorrectly, then you can change the sematic-desktop= USE dependency and test to see if it works. Then you can file a bug for kde-base/kdeplasma-addons to have the dependency corrected.
Comment 10 dE 2012-03-29 11:59:58 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > Does this mean kde-base/kdelibs[semantic-desktop] depends on
> > kde-base/kdeplasma-addons[semantic-desktop]?
> 
> Yes, and also it means that kde-base/kdelibs[-semantic-desktop] depends on
> kde-base/kdeplasma-addons[-semantic-desktop]. A semantic-desktop= USE
> dependency means both.
> 

Ok, so, kde-base/kdeplasma-addons is not necessary, and if one has installed it, it's semantic-desktop USE should be at sync with kde-base/kdelibs's.

Also it's the first time I'm listening about this '=' after a USE, it's undocumented

In this case, I think equery should provide some output about this. Also where is this dependency information written? Apparently it's not in the ebuild, unless some classes got inherited.
Comment 11 Zac Medico gentoo-dev 2012-03-29 14:17:45 UTC
(In reply to comment #10)
> Also it's the first time I'm listening about this '=' after a USE, it's
> undocumented

Portage documents this syntax in `man 5 ebuild` in the "Conditional USE Dependencies" part of the DEPEND documentation. There's a reference to ebuild(5) from the emerge man page where it defines "atom".

> In this case, I think equery should provide some output about this.

I don't see an equery option for that. It can be queried with portageq like this:

  portageq metadata / ebuild kde-base/kdeplasma-addons-4.7.4 DEPEND RDEPEND PDEPEND

> Also
> where is this dependency information written? Apparently it's not in the
> ebuild, unless some classes got inherited.

DEPEND, RDEPEND, and PDEPEND can be defined directly in the ebuild and also in any of the eclasses that it inherits (see the "eclass" directory).
Comment 12 dE 2012-03-30 01:28:24 UTC
Thanks for the info.