When emerging @kdebase-4.2 portage pulls in nepomuk, even though it should not be mandatory when semantic-desktop is unset (globally, in my case). Now everytime I want to upgrade my system it tries to also pull in nepomuk and as a consequence soprano. Imo nepomuk should not be in that set and only get pulled in by semantic-desktop USE-flag if it is really needed. Solution: Remove "kde-base/nepomuk" from .../layman/kde-testing/sets/kdebase-4.2
note that this does not affect just kdebase-4.2 but rather all the kdebase sets from kde-crazy overlay nepomuk build fails when semantic-desktop is disabled for kdelibs, so one cannot do emerge -uDN world etc. btw, the error message goes like this: ... -- Could NOT find NEPOMUK (missing: NEPOMUK_LIBRARIES NEPOMUK_INCLUDE_DIR) -- Looking for include files HAVE_SYS_WAIT_H -- Looking for include files HAVE_SYS_WAIT_H - found -- Looking for include files HAVE_SYS_TIME_H -- Looking for include files HAVE_SYS_TIME_H - found -- ----------------------------------------------------------------------------- -- The following external packages were located on your system. -- This installation will have the extra features provided by these packages. + Soprano ----------------------------------------------------------------------------- -- The following OPTIONAL packages could NOT be located on your system. -- Consider installing them to enable more features from this software. + Nepomuk: Nepomuk Libraries <kdelibs> Required to build Nepomuk. ----------------------------------------------------------------------------- -- Configuring done -- Generating done -- Build files have been written to: /var/tmp/portage/kde-base/nepomuk-4.1.85/work/nepomuk_build >>> Source configured. >>> Compiling source in /var/tmp/portage/kde-base/nepomuk-4.1.85/work/nepomuk-4.1.85 ... make -j2 >>> Source compiled. >>> Test phase [not enabled]: kde-base/nepomuk-4.1.85 >>> Install nepomuk-4.1.85 into /var/tmp/portage/kde-base/nepomuk-4.1.85/image/ category kde-base make -j2 install DESTDIR=/var/tmp/portage/kde-base/nepomuk-4.1.85/image/ make: *** No rule to make target `install'. Stop. - maybe it would be worth mentioning upstream that if it does not build due to missing _something_ that in that case _something_ is not OPTIONAL package, but rather mandatory ...
It only means that nepomuk depends on kdelibs[semantic-desktop]. AFAIK you shouldn't need nepomuk if you have semantic-desktop disabled.
Sets don't support conditional deps, so until we get PROPERTIES="meta", we won't fix this. The current purpose of a set is to install all packages in a tarball. For now, you can install individual apps and not a set, or remove the unwanted apps and run emerge as "emerge -uDavN @<set>/@installed".
Couldn't you pull nepomuk as dep of kdelibs if semantic-desktop use flag is set?
No. First you don't want it as a kdelibs DEP, but at most as a PDEP. Second and most important, sets must list all apps. The purpose of sets is to provide a "clean way" to install, reinstall or remove *all* apps.
Ok, that's perfectly understood now. ;)
Working workaround for now would be to add locally nepomuk to package.provided so that it's not actually installed by any set.
(In reply to comment #7) > Working workaround for now would be to add locally nepomuk to package.provided > so that it's not actually installed by any set. > I'd say the best long-term solution is to create your own set anyway in /etc/portage/sets based on @kdebase-4.2 (or whichever you prefer) + putting all your additional KDE applications into. Just be sure to use a unique name. You not only solve that nepomuk problem, you also get the benefit of simple upgrading and/or transition of your KDE set to other systems, and unmerging KDE4 (once KDE5 has arrived) will be a no-brainer.
Git helps here:) You could delete it from kdebase-4.2, commit that change, and it will be preserved with future updates of kde-testing. Portage lacks here because of ancient rsync, but there are ways to use git for portage already.