Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 118504 - rss-glx-0.8.0-r2 forces kscreensaver and kdeartwork emerge when not wanted
Summary: rss-glx-0.8.0-r2 forces kscreensaver and kdeartwork emerge when not wanted
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-01-10 01:19 UTC by Peter Hyman
Modified: 2006-01-11 06:14 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 Peter Hyman 2006-01-10 01:19:14 UTC
I just upgraded KDE to 3.5 BUT only installed a few KDE apps. So I built kdelibs and a few apps although they do not depend on xscreensaver. I _had_ xscreensaver in my make.conf and later changed to -xscreensaver.

I had rss-glx installed. Now, when doing an emerge -puD or emerge -puDN world, it still wants to pull in kscreensaver and kdeartwork-screensaver (even with -xscreensaver).

These are the packages that I would merge, in reverse order:

Calculating world dependencies ...done!
[ebuild   R   ] x11-misc/rss-glx-0.8.0-r2  
[ebuild  N    ]  kde-base/kdeartwork-kscreensaver-3.5.0  +arts -debug -kdeenablefinal -kdexdeltas +opengl -xinerama -xscreensaver 16,221 kB 
[ebuild  N    ]   kde-base/kscreensaver-3.5.0  +arts -debug -kdeenablefinal -kdexdeltas +opengl -xinerama 0 kB[ebuild 

I believe it's because of the logic in the ebuild which seems to want to emerge the kde apps if any kde is installed. Even when -xscreensaver is set! In the above example the apps will be build -xscreensaver and the ebuild will fail.

DEPEND="virtual/x11
        virtual/opengl
        >=media-gfx/imagemagick-5.5.7
        kde? ( || ( kde-base/kdeartwork-kscreensaver kde-base/kdeartwork ) )
        !kde? ( >=x11-misc/xscreensaver-4.22-r2 )
        xscreensaver? ( >=x11-misc/xscreensaver-4.22-r2 )
        openal? ( media-libs/openal )"

I do not believe kde should be a DEPEND. What if someone had installed just kopete or another utility, but does NOT use the KDE desktop? Would he be forced to use install these kscreensaver?

Perhaps another test should be used to determine whether or not to install the kde hacks. Or one like this (psuedocode)

DEPEND 
   if I use KDE AND I use xscreensaver then test for kdeartwork-screensaver...)

I also think pkg_setup needs change too since it IS possible someone emerges parts of KDE and set the xscreensaver use flag. This will cause rss-glx to abort installation.

I suppose this is my mistake since I _had_ the xscreensaver flag set initially. But I'm not sure it would have made a difference since only kdeartwork-kscreensaver seems to test for it. Maybe make the KDE apps an optional RDEPEND with an xscreensaver test only if +xscreensaver is used???

Something like this:

RDEPEND="xscreensaver? ( use kde && ( kde-base/kdeartwork-kscreensaver kde-base/kdeartwork ) )"

And remove KDE from DEPEND. Then the logic of pkg_setup should be changed to avoid an abort. Sounds complicated, but this situation can happen. I grepped portaged and only gaim uses the xscreensaver USE variable, so a conflict like this could still happen.

pkg_setup() {
        if use kde && use xscreensaver ; then


Good luck, not sure how to resolve this. for now, I'm just sticking them into package.provided to avoid this.
Comment 1 Peter Hyman 2006-01-10 01:53:43 UTC
Well I hacked around with this, but think this is not the correct solution. I think the proper approach is to only check to see if kscreensaver is installed AND xscreensaver is in use. Sorry, I don't know the efunctions well, but in pseudocode, something like this.

DEPEND only check for xscreensaver
RDEPEND nothing

pkg_setup
   if !use xscreensaver AND kscreensaver IS installed
        abort gracefully

src_install

   do xscreensaver-related install by default

   if kscreensaver IS installed
      do kde related install
   
I think using the KDE use variable is a mistake. Something like this:
        if use kde; then
                find . -name '*.desktop' -exec \
                        sed -i \
                                -e 's:Exec=kxsrun \(.*\):Exec=kxsrun \1:g' \
                                -e 's:Exec=kxsconfig \(.*\):Exec=kxsconfig \1:g'
 \
                                '{}' \
                        \; \
                        || die "couldnt sed desktop files"
                myconf="${myconf} -with-kdessconfigdir=/usr/share/applnk/System
/ScreenSavers"

will fail incorrectly. HTH
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-01-10 01:55:49 UTC
USE="-kde" emerge rss-glx does NOT depend on kdeartwork-kscreensaver or kdeartwork, I don't see what's your problem here.
Comment 3 Peter Hyman 2006-01-10 02:02:02 UTC
when installing any kde apps, kde is set automatically. the user should not have to fight use variables. RU saying that I should set -kde in make.conf? Even when I have kde applications installed? If so, this should be documented somewhere. In any event, the logic is still wrong on this app. Consider reopening and sending to the maintainer.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-01-10 02:06:17 UTC
(In reply to comment #3)
> when installing any kde apps, kde is set automatically. the user should not
> have to fight use variables. 

Not an ebuild bug at all; use.defaults feature has been discussed extensively on gentoo-dev mailing list and it has been decided that it should be removed in future. 
Comment 5 Peter Hyman 2006-01-10 02:13:12 UTC
forwarding directly to maintainer.
Comment 6 Krzysztof Pawlik (RETIRED) gentoo-dev 2006-01-11 06:14:36 UTC
(In reply to comment #3)
> when installing any kde apps, kde is set automatically. the user should not
> have to fight use variables. RU saying that I should set -kde in make.conf?
> Even when I have kde applications installed?

Disable KDE just for rss-glx, snippet from `man portage`:

package.use
 Per-package USE flags.  Useful for tracking local USE flags or for
 enabling USE  flags  for  certain  packages  only. Perhaps  you 
 develop GTK and thus you want documentation for it, but you don't
 want documentation for  QT. Easy as pie my friend!

 Format:
 - comments begin with #
 - one DEPEND atom per line with space-delimited USE flags

 Example:
 # turn on docs for GTK 2.x
 =x11-libs/gtk+-2* doc
 # disable mysql support for QT
 x11-libs/qt -mysql