Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 116866 - media-gfx/digikam is missing required RDEPENDs
Summary: media-gfx/digikam is missing required RDEPENDs
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-27 05:21 UTC by Chr. Schaefer
Modified: 2006-01-04 12:59 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 Chr. Schaefer 2005-12-27 05:21:11 UTC
Hi,

I'm creating binary packages for all my emerges (feature buildpkg) because I'm using them on two machines. I did the following:

1. emerge digikam
System emerged digikam and seven dependencies (usbutils, hotplug, libgphoto2, ...)

2. emerge -C digikam && emerge --depclean
System unmerged digikam and the dependend packages

3. emerge --usepkg digikam
System emerged only digikam, but not the dependencies => digikam can't work

I expected the system to also emerge the dependencies from their binary packages. This worked for me always, last time I tried with kde 3.5 meta ebuilds.

Please see output of different emerge commands:

# emerge --pretend digikam

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

Calculating dependencies ...done!
[ebuild  N    ] sys-apps/usbutils-0.11-r5
[ebuild  N    ] sys-apps/hotplug-20040923-r1
[ebuild  N    ] media-libs/libgphoto2-2.1.6
[ebuild  N    ] dev-libs/cdk-4.9.10.20020809-r1
[ebuild  N    ] media-gfx/gphoto2-2.1.5
[ebuild  N    ] media-libs/libkipi-0.1.1
[ebuild  N    ] media-libs/libkexif-0.2.1
[ebuild  N    ] media-gfx/digikam-0.7.1

# emerge --usepkg --pretend digikam

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

Calculating dependencies ...done!
[binary  N    ] media-gfx/digikam-0.7.1

[Comment: I expected the same package list here as above.]

# emerge --usepkg --pretend --update digikam

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

Calculating dependencies ...done!
[ebuild     U ] kde-base/kde-env-3-r4 [3-r3]
[binary  N    ] media-gfx/digikam-0.7.1

This seems very similar to bug #83948 which was flagged invalid. I also tried the --newuse option suggested by Nicholas Jonas, but as no useflags changed, with no effect.

I checked the ebuild also. I don't know much about this, but it sets only DEPEND and does not modify RDEPEND, which should be ok.

Please, before marking this bug invalid also, explain some more why not emerging dependencies for a binary emerge is a feature.

Thanks,
Christian.
Comment 1 Chr. Schaefer 2005-12-27 05:22:23 UTC
# emerge info
Portage 2.0.53 (default-linux/x86/2005.1, gcc-3.4.4, glibc-2.3.5-r2, 2.6.13-suspend2-r4 i686)
=================================================================
System uname: 2.6.13-suspend2-r4 i686 Pentium III (Coppermine)
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [disabled]
dev-lang/python:     2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium3 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium3 -fomit-frame-pointer -pipe"
DISTDIR="/mnt/nfs_portage/distfiles"
FEATURES="autoconfig buildpkg confcache distcc distlocks parallel-fetch sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://gentoo.oregonstate.edu/ http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="de_DE@euro"
LINGUAS="de"
MAKEOPTS="-j4"
PKGDIR="/mnt/nfs_portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/mnt/nfs_portage"
PORTDIR_OVERLAY="/mnt/nfs_local_portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 X alsa apm arts audiofile avi berkdb bitmap-fonts browserplugin bzip2 cdr crypt cups curl directfb dvd dvdr eds emboss encode esd exif expat fam ffmpeg flac foomaticdb fortran gdbm gif glut gmp gpm gstreamer gtk2 idn imagemagick imlib ipv6 java jpeg kde kdeenablefinal lcms libg++ libwww mad mikmod mmx mng motif mp3 mpeg ncurses nls nptl nptlonly nsplugin ogg oggvorbis opengl pam pcre pda pdflib perl png ppds python qt quicktime readline samba sdl slang spell sse ssl svga tcpd tiff truetype truetype-fonts type1-fonts udev usb vorbis xml2 xmms xv zlib linguas_de userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LC_ALL, LDFLAGS
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2005-12-27 05:54:16 UTC
Confirmed bug.
Comment 3 Jason Stubbs (RETIRED) gentoo-dev 2005-12-27 06:31:06 UTC
Not a regression. I made a mistake in my initial testing.

The ebuild contains `need-kde 3.2` which sets RDEPEND. Therefore portage does not set RDEPEND to DEPEND as it is already set.
Comment 4 Carsten Lohrke (RETIRED) gentoo-dev 2006-01-01 08:44:50 UTC
(In reply to comment #3)
> Not a regression. I made a mistake in my initial testing.
> 
> The ebuild contains `need-kde 3.2` which sets RDEPEND. Therefore portage does
> not set RDEPEND to DEPEND as it is already set.

Well, when you look at the need-kde() in kde-functions.eclass, it sets 

DEPEND="${DEPEND} ..."

and does so for RDEPEND as well. That's why need-kde/qt and similar functions (At least Apache related stuff handles dependencies this way, too) need to be called after having R/DEPEND set in the ebuild. This is imho pretty ugly and the better way would be to have a NEED_<FOO> variable set before inheriting the eclasses, but this is something to change for KDE 4. The issue regarding KDE predates my role as a Gentoo dev, the Apache guys knew what they're up to, since I told them. Don't know whereelse this pattern is applied.

I did not try to reproduce this, yet, but to me the question to ask for looks more like "Why is Portage fucking up dependencies, when creating binary packages?".



Comment 5 Carsten Lohrke (RETIRED) gentoo-dev 2006-01-01 15:09:42 UTC
Forget my last comment. This can be fixed either by adding RDEPEND=$DEPEND in every affected ebuild or in the eclass and considering considering RDEPEND only then empty, when a token is given (e.g. RDEPEND="~EMPTY") and replacing that in the eclass. I'd propose the latter, since it means less changes in existing ebuilds and keeps them also smaller. Any argument against it?
Comment 6 Gregorio Guidi (RETIRED) gentoo-dev 2006-01-02 01:41:37 UTC
I thought we solved this issue time ago, by not setting RDEPEND in the eclass if it was unset. Actually I can see the correct DEPEND and RDEPEND in /usr/portage/metadata/cache/media-gfx/digikam-*.

When was the last time you created the package?
Comment 7 Carsten Lohrke (RETIRED) gentoo-dev 2006-01-02 02:18:58 UTC
(In reply to comment #6)
> I thought we solved this issue time ago, by not setting RDEPEND in the eclass
> if it was unset.

Um, invalid bash syntax ${FOO:-bar}, not ${FOO-bar}. But this doesn't work anyways. The KDE runtime dependencies need to be applied allways.
Comment 8 Gregorio Guidi (RETIRED) gentoo-dev 2006-01-02 02:50:59 UTC
That's intended, "omitting the colon results in a test only for a parameter that is unset".
Look at the metadata, it is correct. I don't see any bug :-/
Comment 9 Carsten Lohrke (RETIRED) gentoo-dev 2006-01-02 03:24:44 UTC
(In reply to comment #8)
> That's intended, "omitting the colon results in a test only for a parameter
> that is unset".

O.k., you're right. But it still stands that the standard Portage behaviour - when no RDEPEND is given - is, that RDEPEND=$DEPEND is implied. Speak, when the ebuilds RDEPEND isn't set the eclass should set RDEPEND="$DEPEND ...".


Comment 10 Chr. Schaefer 2006-01-03 13:21:58 UTC
(In reply to comment #6)
> When was the last time you created the package?

# ls -lu /usr/portage/packages/All/digikam-0.7.1.tbz2
-rw-r--r--  1 root root 8311858 Dec 27 22:00 /usr/portage/packages/All/digikam-0.7.1.tbz2

Just before I reported the bug.

(In reply to comment #8)
> Look at the metadata, it is correct. I don't see any bug :-/

I see the dependencies to >=media-gfx/gphoto2-2.0-r1 media-libs/imlib2 >=media-libs/libkexif-0.2.1 in the first and second line of file /usr/portage/metadata/cache/media-gfx/digikam-0.7.1. Is this where DEPEND and RDEPEND should go to?

But still, I get:
# emerge -pvt digikam

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

Calculating dependencies ...done!
[ebuild  N    ] media-gfx/digikam-0.7.1  +arts -debug +kdeenablefinal -xinerama 0 kB
[ebuild  N    ]  media-libs/libkexif-0.2.1  +arts -debug +kdeenablefinal -xinerama 0 kB
[ebuild  N    ]  media-libs/libkipi-0.1.1  +arts -debug +kdeenablefinal -xinerama 0 kB
[ebuild  N    ]  media-gfx/gphoto2-2.1.5  -aalib +jpeg +ncurses +nls +readline 0 kB
[ebuild  N    ]   dev-libs/cdk-4.9.10.20020809-r1  0 kB
[ebuild  N    ]   media-libs/libgphoto2-2.1.6  -doc -exif +jpeg +nls -nousb 0 kB
[ebuild  N    ]   media-libs/libexif-0.6.12-r4  +nls 525 kB

Total size of downloads: 525 kB
# emerge -pvtk digikam

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

Calculating dependencies ...done!
[binary  N    ] media-gfx/digikam-0.7.1  +arts -debug +kdeenablefinal -xinerama

Total size of downloads: 0 kB

Regards,
Christian.
Comment 11 Carsten Lohrke (RETIRED) gentoo-dev 2006-01-04 12:59:52 UTC
Fixed the eclass. Will take a bit untill the mirrors have it.