Alan McKinnon wrote:
On Thursday 10 April 2008, Dale wrote:
Alan McKinnon wrote:
On Wednesday 09 April 2008, Uwe Thiem wrote:
Hi folks,

emerge --update world tells me:
[blocks B     ] dev-util/gtk-doc-am (is blocking
dev-util/gtk-doc-1.8-r2)

emerge --unmerge gtk-doc-am tells me:
--- Couldn't find 'gtk-doc-am' to unmerge.

So let's be more specific:
emerge --unmerge =dev-util/gtk-doc-am-1.10 tells me:
--- Couldn't find '=dev-util/gtk-doc-am-1.10' to unmerge.
emerge -C gtk-doc

Look closely at the error message, it's like one of those optical
illusions where you don't quite get it first time :-)
Well said.  I'm still not sure I get it.  I would have went to
console and unmerged the whole lot and started over.  LOL

hehe, emerge's output can be tricky to parse. Here's the long version:

In this line:
[blocks B ] dev-util/gtk-doc-am (is blocking dev-util/gtk-doc-1.8-r2)

everything there comes out of the gtk-doc-am ebuild, including what it's not happy with. This specific case says that gtk-doc-1.8-r2 is already installed and gtk-doc-am will not merge itself while it's there.

The [blocks B ] bit says that gtk-doc-am is not already installed (there isn't an R or U or D there at all) so there is nothing to unmerge.

Usually with blockers, you have to unmerge the thing being blocked (in brackets on the above line) first. Or, if you don't want that, don't merge the main package, or mask it out.

The correct merge approach would be to build a suitable upgraded gtk-doc, merge it (which unmerges the old one) and then merge gtk-doc-am (on the assumption that gtk-doc-am is happy with the new version of gtk-doc). For some reason portage can't do that this time, probably build order, so it's telling the user to do it manually and try again.

If you want to look deeper into what is going on, the solution is in the ebuild. From /var/portage/dev-util/gtk-doc-am/gtk-doc-am-1.10.ebuild:

DEPEND="!<=dev-utils/gtk-doc-1.10"

Aha, so the only current version that will work is gtk-doc-1.10-r1. This was probably revised to accomodate gtk-doc-am.

It gets even better. From /var/portage/dev-util/gtk-doc/gtk-doc-1.8-r2.ebuild:
DEPEND="!dev-util/gtk-doc-am"

and from /var/portage/dev-util/gtk-doc/gtk-doc-1.10-r1.ebuild:
DEPEND="=dev-util/gtk-doc-am-${PV}

Now it all becomes clearer with a little reading between the lines. The dev took gtk-doc and split it into two packages, to get the automake (-am) stuff into it's own ebuild. But that will mean that gtk-doc-am will trash files that gtk-doc put there. This is a collision and portage won't do it. It's written to pass the buck to a human instead :-)



It appears this human is a bit dense. I !think! I get it but not real sure. May have to read that a few more times. Sounds like the clue is the missing U and D part.
Thanks

Dale

:-) :-) --
gentoo-user@lists.gentoo.org mailing list

Reply via email to