On 17/03/2015 22:20, Dale wrote:
> Alan McKinnon wrote:
>> I've gotten to the point where I can make sense of portage output (it
>> took a while!) but I have no idea how to explain how I do it :-)
>> Portage makes a very fundamental blunder - it exposes the underlying
>> implementation in the output. The odds are very slim the average user
>> will ever make reasonable sense of it. 
> 
> You prolly got good at it because of so many people on here asking what
> those crpytic messages are saying.  Very few people can figure out what
> they are trying to say.  Every once in a while, I get lucky and can
> keyword a package or something and get past a blocker but sometimes, it
> may as well spit out Greek characters.

Well.... it's because I understand data structures as used in
programming. Things like linked lists and
assoc-arrays/dictionaries/hashmaps. I'v also had to support enough
programmers over the years and get their stuff to work so I know how
their minds work.

It's like anything else, if you do it in your line of work, you get to
understand it after a while :-)

> 
> What gets me on this one, it really didn't give a clue what the real
> problem is.  If it did, I missed it.

To help folks out, I'll walk through the thought process:

The give-away was that util-linux needed to be downgraded, this is very
unusual. I figured it was so unusual that finding out why would show me
your real problem. And it wasn't a case of the version you have has been
removed from the tree. I knew that the only thing that can trigger a
downgrade is a DEPENDS that requires some version or lower, and that
must start with a "<" or "<=".

So I searched your mail looking for "<" and there was only one :-) This one:

    <sys-apps/util-linux-2.25[static-libs] required by
(sys-fs/lvm2-2.02.109:0/0::gentoo, installed)

That's the only line in the entire output that can downgrade util-linux.
I looked in the lvm2 ebuild and there's only one DEPEND
on <sys-apps/util-linux-2.25 and it is only used when USE=static

After that the rest was easy


> I just wonder, is there some way they can make emerge spit out something
> that makes sense or is that something that can not be done?

I'm sure there is a way to do it. Some portage output is very useful,
like conflicting USE. Portage tells you what you can enable or disable
to proceed. And the colorized arrow-heads one line below is really
helpful in following version numbers.

But proper output messages isn't just a case of translate gobbledy-gook
into English. One has to understand what the conditions mean, parse the
data portage has inside, and then figure out something meaningful. That
is not easy, and probably requires custom code for each different kind
of error.

Programmers hate writing error code that has to do that, which is
probably why no-one has ever done it through portage's entire life so
far....

-- 
Alan McKinnon
alan.mckin...@gmail.com


Reply via email to