Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 373239 - possible KDE eclass regression between emerge '-g' option and KDEDIR
Summary: possible KDE eclass regression between emerge '-g' option and KDEDIR
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-27 20:27 UTC by Guy
Modified: 2011-08-12 21:23 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info for problem binary slave PC (binslave.info,6.14 KB, text/plain)
2011-06-27 20:27 UTC, Guy
Details
emerge --info for binary host PC (binhost.info,5.96 KB, text/plain)
2011-06-27 20:31 UTC, Guy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guy 2011-06-27 20:27:26 UTC
Created attachment 278395 [details]
emerge --info for problem binary slave PC

The instant problem is that I'm having a number of KDE based binary package ebuilds fail. These all fail with the same message. Example:

# emerge -gK konversation
Calculating dependencies... done!

>>> Emerging binary (1 of 1) net-irc/konversation-1.3.1
 * konversation-1.3.1.tbz2 MD5 SHA1 size ;-) ...                         [ ok ]
>>> Extracting info
 * Package:    net-irc/konversation-1.3.1
 * Repository: gentoo
 * USE:        amd64 crypt multilib kernel_linux elibc_glibc handbook userland_GNU
 * FEATURES:   preserve-libs sandbox
 * ERROR: net-irc/konversation-1.3.1 failed (setup phase):
 *   Failed to determine KDEDIR!

Notes:

1) So far, this error does not happen consistently between otherwise identical PCs. Most of the other binary package based PCs behave as expected.

2) On the PC where this happens, it happens for the same packages the same way all the time.

3) I can work around the problem by performing a local source and compile emerge. These are successful every time.

4) If I perform the work around then try to re-install the package using the binary option '-g' flag, the emerge fails on the same KDEDIR issue.

kde-base packages where I've had this fail message include:

   polkit-kde-agent
   polkit-kde-kcmodules 
   plasma-runtime
   thumbnailers
   kdontchangethehostname
   kcontrol
   kdm

independent kde packages where I've had this fail message include:

   krename
   ktorrent
   konversation

I initially posted a write-up in the gentoo forums here:

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

While the work around defeats the purpose of working with binary packages, I'm not prevented in keeping all of my systems up-to-date.

I'm not a programmer but I'll be happy to make reasonable efforts under someone's guidance to collect more information. Feel free to contact me here or PM me in the forums.
Comment 1 Guy 2011-06-27 20:31:42 UTC
Created attachment 278397 [details]
emerge --info for binary host PC
Comment 2 Zac Medico gentoo-dev 2011-06-27 22:24:30 UTC
Well, it's not bug 366939, since you're using latest portage. So, apparently there's something going wrong with the kde ebuild/eclass.
Comment 3 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-06-28 00:19:24 UTC
What KDE packages and versions?
Are you sure you're not trying to merge a binary package built before the slot move in a box where you have already updated your system and go the slot move that was done a few days ago to all KDE packages?
Comment 4 Guy 2011-06-28 01:22:18 UTC
(In reply to comment #3)
> What KDE packages and versions?
> Are you sure you're not trying to merge a binary package built before the slot
> move in a box where you have already updated your system and go the slot move
> that was done a few days ago to all KDE packages?

Regular world update which included KDE-4.6.3 to KDE-4.6.4.

The thread I originally started in the forums (linked above) has quite a bit more information.

I'd like to repeat that I performed the identical process on other (what are functionally identical) boxes without a problem.

If you have any commands you'd like me to run to gather more information, I'll be happy to do so.

I didn't see any other posts in the forums nor here which were similar w/regards to KDEDIR other than it might be of use to have the 'die' command print the value of KDEDIR upon exit {if possible}.
Comment 5 Guy 2011-06-28 01:36:25 UTC
(In reply to comment #3)
> What KDE packages and versions?
> Are you sure you're not trying to merge a binary package built before the slot
> move in a box where you have already updated your system and go the slot move
> that was done a few days ago to all KDE packages?

I just realized I'm not actually understanding your question. Are you asking if I had done some partial emerges before starting over again with a world update?

If so, the answer is no.
Comment 6 Guy 2011-06-28 01:42:10 UTC
(In reply to comment #2)
> Well, it's not bug 366939, since you're using latest portage. So, apparently
> there's something going wrong with the kde ebuild/eclass.

{laughs}

Um .. yes. I was the original reporter for that bug.

This is something completely different.

BTW - I never did say 'thank you' for that bug fix. I did then and still do appreciate it.
Comment 7 Zac Medico gentoo-dev 2011-06-28 01:44:13 UTC
(In reply to comment #0)
>  * ERROR: net-irc/konversation-1.3.1 failed (setup phase):
>  *   Failed to determine KDEDIR!

The konversation-1.3.1 seems to inherit kde4-base_pkg_setup:

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/kde4-base.eclass?view=log

I don't see any "Failed to determine KDEDIR!" die message in the latest version of kde4-base_pkg_setup in kde4-base.eclass, so it seems like the problem has already been fixed. However, you'll have to rebuild you binary packages in order to get the eclass changes.
Comment 8 Guy 2011-07-25 17:02:48 UTC
I've finally figured out how to correctly work around this problem manually.

It is some kind of 'out of compilation order' issue between binary packages and their binary dependencies as they are installed on a binary package consumer.

On the binary PC, I got the following message:

# emerge -g k3b
Calculating dependencies... done!

>>> Emerging binary (1 of 1) app-cdr/k3b-2.0.2-r1
 * k3b-2.0.2-r1.tbz2 MD5 SHA1 size ;-) ...                               [ ok ]
>>> Extracting info
 * ERROR: app-cdr/k3b-2.0.2-r1 failed (setup phase):
 *   Failed to determine KDEDIR!
 * 
 * Call stack:
 *     ebuild.sh, line   56:  Called pkg_setup
 *   environment, line 3530:  Called kde4-base_pkg_setup
 *   environment, line 2838:  Called die
 * The specific snippet of code:
 *               [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!";

Earlier, on the same machine, I had noticed that "emerge -p --depclean" had flagged 'emovix' for deletion. 

 media-video/emovix
    selected: 0.9.0 
   protected: none 
     omitted: none

On the binary package generator/host, I checked to see what depended on 'emovix' and discovered that 'k3b' needed 'emovix' if USE='emovix' was set.

I promptly recompiled 'emovix' and 'k3b' on the binary host PC using the command:

emerge emovix && emerge k3b
..
>>> Emerging (1 of 1) media-video/emovix-0.9.0
 * emovix-0.9.0.tar.gz RMD160 SHA1 SHA256 size ;-) ...
..
>>> Emerging (1 of 1) app-cdr/k3b-2.0.2-r1
 * k3b-2.0.2.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...

I brought the newly re-compiled, same version binary packages back to the binary consumer PC and re-installed them with this command:

emerge -g emovix && emerge -g k3b
..
>>> Emerging binary (1 of 1) media-video/emovix-0.9.0
 * emovix-0.9.0.tbz2 MD5 SHA1 size ;-) ...                               [ ok ]
>>> Extracting info
>>> Extracting media-video/emovix-0.9.0

>>> Installing (1 of 1) media-video/emovix-0.9.0
..
>>> Emerging binary (1 of 1) app-cdr/k3b-2.0.2-r1
 * k3b-2.0.2-r1.tbz2 MD5 SHA1 size ;-) ...                               [ ok ]
>>> Extracting info
>>> Extracting app-cdr/k3b-2.0.2-r1

>>> Installing (1 of 1) app-cdr/k3b-2.0.2-r1

When I had originally tried to emerge 'k3b' as part of my latest global update, the system determined (correctly) that 'emovix' did not require an update. See this eix query:

# eix media-video/emovix
[I] media-video/emovix
     Available versions:  0.9.0{tbz2} {win32codecs}
     Installed versions:  0.9.0{tbz2}(05:33:20 PM 10/25/2010)(-win32codecs)
     Homepage:            http://movix.sourceforge.net
     Description:         Micro Linux distro to boot from a CD and play every video file localized in the CD root.

Note the last time I had compiled 'emovix' was Oct 25, 2010. While the 'emovix' version hasn't changed, I'd suggest that some of the stored paths in the binary 'emovix' object were no longer valid or compatible with the new 'k3b' binary even though 'emovix' had otherwise not changed. This is a pure guess on my part.

I believe the reason for KDE based packages which are not installed through a *-meta package object were such a problem is the potential for old, otherwise valid dependencies built with old paths and not requiring a package update themselves is high. Given the KDE slot simplification, this possibility makes sense. Once again, this is a pure guess on my part.

Note 1: I have been able to successfully eliminate the KDEDIR message in all cases by ensuring that older dependencies are re-compiled and rebuilt on the binary host and that they are re-installed prior to their respective main binary packages.

Note 2: I believe this issue is limited to ONLY binary package installations. I've not seen this on any of the PCs I maintain where with re-compilation in place upgrades.
Comment 9 Guy 2011-07-25 17:11:32 UTC
(In reply to comment #7)
> (In reply to comment #0)
> >  * ERROR: net-irc/konversation-1.3.1 failed (setup phase):
> >  *   Failed to determine KDEDIR!
> 
> The konversation-1.3.1 seems to inherit kde4-base_pkg_setup:
> 
> http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/kde4-base.eclass?view=log
> 
> I don't see any "Failed to determine KDEDIR!" die message in the latest version
> of kde4-base_pkg_setup in kde4-base.eclass, so it seems like the problem has
> already been fixed. However, you'll have to rebuild you binary packages in
> order to get the eclass changes.

I'm sorry, I didn't see your reply before I posted comment #8. I'm assuming that the key is rebuilding all pertinent binary packages. So I don't know if my guesses are any near applicable.

I don't really know what everything is that gets stored in the binary versions of the packages. I do suspect however, that if I had recompiled all dependencies at the time before installing the main packages, that this would have worked without the eclass change.

Something to think about anyway.

Thank you very much for your help. Please feel free to close. I believe the problem is resolved.
Comment 10 Andreas K. Hüttel archtester gentoo-dev 2011-08-12 21:23:45 UTC
Hi Guy, 

thanks a lot for your efforts. I'm sorry, we usually dont test binary packages at all... 

I have a suspicion that this may be related to the big slotmove (4.X to 4) of all kde packages, which happened sometime around these versions. However I dont have any proof or details to support that.

> 
> Thank you very much for your help. Please feel free to close. I believe the
> problem is resolved.

OK, I'll resolve it. Feel free to reopen if the problem reoccurs, or to add new info.