Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Persistent unrelated ERROR while running emerge
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Sun Nov 18, 2012 12:37 pm    Post subject: [SOLVED] Persistent unrelated ERROR while running emerge Reply with quote

Hey there,

for some time now, whenever I run any emerge command, like

Code:
emerge --ask --update -v dev-lang/mono


an ERROR, regarding an older package, keeps popping up, like this:

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

Calculating dependencies | * ERROR: media-sound/qjackctl-0.3.3 failed (depend phase):
.
.
.
[full error message follows]
.
.
.
 * Working directory: '/var/cache/edb'
 * S: '/var/tmp/portage/media-sound/qjackctl-0.3.3/work/qjackctl-0.3.3' 


Thing is: qjackctl has long been sucessfully emerged, /var/tmp/portage/media-sound/qjackctl-0.3.3/ does no longer exist. Still, this error keeps popping up on every emerge run. I suspect it's stuck in some cache of some sort somewhere.

I'd be glad about any hint how to get rid of this error message.

Thanks,

-fberger

UPDATE:

This can temporarily be fixed by renaming the offending ebuild in /var/lib/layman/pro-audio/media-sound/qjackctl/ from `qjackctl-0.3.3.ebuild` to `qjackctl-0.3.3.ebuild~`.


Last edited by fberger on Sun Dec 23, 2012 7:31 pm; edited 1 time in total
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Sun Nov 18, 2012 2:22 pm    Post subject: Reply with quote

Could you post the output of
Code:
equery list -p qjackctl
please?

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Sun Nov 18, 2012 9:23 pm    Post subject: Reply with quote

Here we go:

Code:
$ equery list -p qjackctl
 * Searching for qjackctl ...
 * ERROR: media-sound/qjackctl-0.3.3 failed (depend phase):
 *   qt4.eclass could not be found by inherit()
 *
 * Call stack:
 *               ebuild.sh, line 541:  Called source '/var/lib/layman/pro-audio/media-sound/qjackctl/qjackctl-0.3.3.ebuild'
 *   qjackctl-0.3.3.ebuild, line   7:  Called inherit 'eutils' 'qt4'
 *               ebuild.sh, line 259:  Called die
 * The specific snippet of code:
 *         [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 *
 * If you need support, post the output of `emerge --info '=media-sound/qjackctl-0.3.3'`,
 * the complete build log and the output of `emerge -pqv '=media-sound/qjackctl-0.3.3'`.
 * This ebuild is from an overlay named 'proaudio': '/var/lib/layman/pro-audio/'
 * Working directory: '/root'
 * S: '/var/tmp/portage/media-sound/qjackctl-0.3.3/work/qjackctl-0.3.3'
 * ERROR: media-sound/qjackctl-9999 failed (depend phase):
 *   qt4.eclass could not be found by inherit()
 *
 * Call stack:
 *              ebuild.sh, line 541:  Called source '/var/lib/layman/pro-audio/media-sound/qjackctl/qjackctl-9999.ebuild'
 *   qjackctl-9999.ebuild, line   7:  Called inherit 'eutils' 'qt4' 'subversion'
 *              ebuild.sh, line 259:  Called die
 * The specific snippet of code:
 *         [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 *
 * If you need support, post the output of `emerge --info '=media-sound/qjackctl-9999'`,
 * the complete build log and the output of `emerge -pqv '=media-sound/qjackctl-9999'`.
 * This ebuild is from an overlay named 'proaudio': '/var/lib/layman/pro-audio/'
 * Working directory: '/root'
 * S: '/var/tmp/portage/media-sound/qjackctl-9999/work/qjackctl-9999'
[-P-] [ ~] media-sound/qjackctl-0.3.8:0
[-P-] [ ~] media-sound/qjackctl-0.3.9:0
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Mon Nov 19, 2012 2:29 am    Post subject: Reply with quote

Hmm. Interesting. It may be there's old package database cruft left behind by mistake. Post the output of
Code:
ls -d /var/db/pkg/media-sound/qjackctl*
please.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Tue Nov 20, 2012 8:42 pm    Post subject: Reply with quote

There you go:

Code:
$ ls -d /var/db/pkg/media-sound/qjackctl*
/var/db/pkg/media-sound/qjackctl-0.3.3


And, if that helps

Code:
$ emerge --search qjackctl
Searching...   - * ERROR: media-sound/qjackctl-0.3.3 failed (depend phase):
 *   qt4.eclass could not be found by inherit()
 *
 * Call stack:
 *               ebuild.sh, line 541:  Called source '/var/lib/layman/pro-audio/media-sound/qjackctl/qjackctl-0.3.3.ebuild'
 *   qjackctl-0.3.3.ebuild, line   7:  Called inherit 'eutils' 'qt4'
 *               ebuild.sh, line 259:  Called die
 * The specific snippet of code:
 *         [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 *
 * If you need support, post the output of `emerge --info '=media-sound/qjackctl-0.3.3'`,
 * the complete build log and the output of `emerge -pqv '=media-sound/qjackctl-0.3.3'`.
 * This ebuild is from an overlay named 'proaudio': '/var/lib/layman/pro-audio/'
 * Working directory: '/root'
 * S: '/var/tmp/portage/media-sound/qjackctl-0.3.3/work/qjackctl-0.3.3'
 * ERROR: media-sound/qjackctl-9999 failed (depend phase):
 *   qt4.eclass could not be found by inherit()
 *
 * Call stack:
 *              ebuild.sh, line 541:  Called source '/var/lib/layman/pro-audio/media-sound/qjackctl/qjackctl-9999.ebuild'
 *   qjackctl-9999.ebuild, line   7:  Called inherit 'eutils' 'qt4' 'subversion'
 *              ebuild.sh, line 259:  Called die
 * The specific snippet of code:
 *         [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 *
 * If you need support, post the output of `emerge --info '=media-sound/qjackctl-9999'`,
 * the complete build log and the output of `emerge -pqv '=media-sound/qjackctl-9999'`.
 * This ebuild is from an overlay named 'proaudio': '/var/lib/layman/pro-audio/'
 * Working directory: '/root'
 * S: '/var/tmp/portage/media-sound/qjackctl-9999/work/qjackctl-9999'           
[ Results for search key : qjackctl ]
[ Applications found : 1 ]

*  media-sound/qjackctl
      Latest version available: 0.3.3
      Latest version installed: 0.3.3
      Size of files: 262 kB
      Homepage:      http://qjackctl.sourceforge.net/
      Description:   A Qt application to control the JACK Audio Connection Kit and ALSA sequencer connections.
      License:       GPL-2


The ebuild is from the 'proaudio': '/var/lib/layman/pro-audio/' overlay, in case that matters.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Tue Nov 20, 2012 8:49 pm    Post subject: Reply with quote

Do you not have that overlay installed any more? Is this an extremely old system that you're belatedly updating? I have a couple of approaches to resolve the problem but want the answers to those two questions first.

The root of the issue is that there is an old ebuild (and an old installation) of qjackctl-0.3.3 in Portage's database.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
dol-sen
Developer
Developer


Joined: 30 Jun 2002
Posts: 2559
Location: Richmond, BC, Canada

PostPosted: Wed Nov 21, 2012 4:36 am    Post subject: Reply with quote

Code:
*   qt4.eclass could not be found by inherit()


There's the main source of the problem. If you check your tree it is no longer in the main portage tree.

Code:
brian@big_daddy ~ $ ls -l /usr/portage/eclass/qt*
-rw-r--r-- 1 root root 26184 Nov 12 01:31 /usr/portage/eclass/qt4-build.eclass
-rw-r--r-- 1 root root  8716 Nov  8 02:01 /usr/portage/eclass/qt4-r2.eclass
brian@big_daddy ~ $


You will need to disable that overlay or at least that package for now. In order for it to work again, the ebuild has to either be migrated to the new qt4-r2 eclass or the old qt4 eclass will need to be included in the proaudio overlay.
_________________
Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch...
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Thu Nov 29, 2012 5:23 pm    Post subject: Reply with quote

John R. Graham wrote:
Do you not have that overlay installed any more?


No, it's still there, at /var/lib/layman/pro-audio/.

John R. Graham wrote:
Is this an extremely old system that you're belatedly updating?


Guilty here, I suppose. It's a very slim system, so I run emerge --world reluctantly, and rather update single packages here and there.

dol-sen wrote:
Code:
*   qt4.eclass could not be found by inherit()


There's the main source of the problem. [...] You will need to disable that overlay or at least that package for now.


I'd rather not remove the overlay, as it's really useful otherwise.

How do I disable a single package? Do you mean unmerging the package? Will this fix this stuck error?

What I'd love to understand, apart from resolving the problem, is why portage keeps bugging me with what looks like an installation error for a package that has nothing to do with what I currently do with 'emerge'. In what step does it actually stumble over this again and again?

Any help will still be very much appreciated.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Fri Nov 30, 2012 2:59 pm    Post subject: Reply with quote

Okay, there are two options, then:
  • First, you could find the qt4.eclass in the attic and put it in "/usr/portage/eclass". You may get other complaints about missing files. Get them from the attic, too. That will allow Portage to do whatever it wants to do with the installed package (probably upgrade it). A subsequent "emerge --sync" will remove the old eclass(es) and your system will be totally clean.
  • Second, you could just manually erase the database entry for the out of date package. That would be,
    Code:
    rm -r /var/db/pkg/media-sound/qjackctl-0.3.3
    This will leave behind the installed out-of-date package but will erase Portage's knowledge that it is installed. If it is a dependency of something else, Portage will install a new version and report on some collisions with the old version files. You can safely erase the reported collisions until Portage no longer complains.
The first solution is preferred but there's a chance that it won't work because of compatibility issues with the old eclass and the new Portage. The second solution will ultimately succeed but is not preferred because it may leave behind cruft (files from the old package that didn't collide with the new version).

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Fri Nov 30, 2012 3:30 pm    Post subject: Reply with quote

I did a third thing. I renamed the offending ebuild in /var/lib/layman/pro-audio/media-sound/qjackctl/ from `qjackctl-0.3.3.ebuild` to `qjackctl-0.3.3.ebuild~`.

Since then, no error reports upon using `emerge`.

I know that this is only a temporary fix.

I'm still not comprehending how portage is stumbling upon this every single run. Does it walk through the package tree and look for such errors every single time? Why does renaming (for portage's point of view: removing) the offending ebuild file fix it? After all, I didn't touch the database.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7838
Location: Somewhere over Atlanta, Georgia

PostPosted: Fri Nov 30, 2012 3:37 pm    Post subject: Reply with quote

Perhaps dol-sen will comment because I'm not sure, but I don't believe that Portage parses every ebuild in the tree every time it's executed, nor even every ebuild for every installed package. I think Portage must want to do something with that package.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Fri Nov 30, 2012 3:49 pm    Post subject: Reply with quote

John R. Graham wrote:
I think Portage must want to do something with that package.


That's what I call software with personality. :-)

I maybe should dive into the portage sources to understand what's going on. For now, waiting for dol-sen and enlightenment. :)

Thanks,
fberger
Back to top
View user's profile Send private message
dol-sen
Developer
Developer


Joined: 30 Jun 2002
Posts: 2559
Location: Richmond, BC, Canada

PostPosted: Sat Dec 01, 2012 5:06 pm    Post subject: Reply with quote

Actually that level of detail in portage I don't know. This last question would be better explained by zmedico or genone.

I would guess that portage is needing to access data from the overlay, so needed to scan it for linking to needed eclasses and building a dependency tree for an installed pkg from that overlay.

The real fix for this problem is to pester the maintainer of the pro-audio overlay to update that ebuild or remove it due to the removal of the qt4.eclass
_________________
Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch...
Back to top
View user's profile Send private message
zmedico
Developer
Developer


Joined: 02 Jan 2004
Posts: 284
Location: California USA

PostPosted: Sat Dec 01, 2012 7:03 pm    Post subject: Reply with quote

fberger wrote:
I'd rather not remove the overlay, as it's really useful otherwise.

How do I disable a single package? Do you mean unmerging the package? Will this fix this stuck error?


The error will go away if you just remove that single ebuild from the overlay. You can remove it manually, and maybe layman has a way to exclude it when you sync the overlay.

fberger wrote:
What I'd love to understand, apart from resolving the problem, is why portage keeps bugging me with what looks like an installation error for a package that has nothing to do with what I currently do with 'emerge'. In what step does it actually stumble over this again and again?

Any help will still be very much appreciated.


It happens because of the emerge --dynamic-deps option which is enabled by default. See `man emerge` for the docs on that option:

Quote:
--dynamic-deps < y | n >
In dependency calculations, substitute the dependencies of installed packages with the dependencies of corresponding unbuilt ebuilds from source repositories. This causes the effective dependencies of installed packages to vary dynamically when source ebuild dependencies are modified. This option is enabled by default.
WARNING: If you want to disable --dynamic-deps, then it may be necessary to first run fixpackages(1) in order to get the best results. The fixpackages(1) command performs two different operations that can also be performed separately by the `emaint --fix moveinst` and `emaint --fix movebin` commands (see emaint(1)).


This option is enable by default because there tend to be a fair number of ebuilds with poorly specified dependencies that lead to problems in dependency calculations (typically slot conflicts or missed updates) if we don't use dynamic deps.
_________________
Zac
Back to top
View user's profile Send private message
fberger
n00b
n00b


Joined: 04 Dec 2006
Posts: 57
Location: Germany

PostPosted: Sun Dec 23, 2012 7:28 pm    Post subject: Reply with quote

zmedico wrote:
It happens because of the emerge --dynamic-deps option which is enabled by default.


Thanks. That clarifies a lot.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum