Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Fatal fail when emerge can't update to the latest version
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
ManDay
Apprentice
Apprentice


Joined: 22 Jan 2008
Posts: 193

PostPosted: Sun Apr 15, 2012 8:02 am    Post subject: Fatal fail when emerge can't update to the latest version Reply with quote

I must admit that this is perhaps the 3rd time that I bring this topic up, mostly because it still has not been solved to my satisfaction.

I do have gtk+ in ~amd64

Now, when I emerge -uDN world or even just emerge -u gtk+, portage fatally fails because newer gtk+ in ~amd64 is blocked by my current Xorg-server.

That immediately brings up two questions:

1) Why does portage complain about a block rather than saying something like "keywords required for xorg-server", so that the block would be resolved?

2) Why does this happen at all (which is the topic I've repeatedly brought up)! Portage should just *not* update instead of failing with a fatal error. At best, it may wish to inform me that there is a newer version in ~amd64 which can currently not be updated to. But not in this manner with a fatal error!

With regard to 2), I vaguely recall that this has something to do with autounmask and disabling it, so I would get the behaviour I described - but I can't recall the details. Either way, this inconsitent behaviour of throwing a fatal error should not be the default!

Emerge *should*, in oder to be self-consistent, behave according to the policy:

-u means "update everything to the newest version possible"

which, by definition, makes errors impossible.
Back to top
View user's profile Send private message
genstorm
Advocate
Advocate


Joined: 05 Apr 2007
Posts: 2238
Location: Austria

PostPosted: Sun Apr 15, 2012 10:49 am    Post subject: Reply with quote

What's the emerge output actually?
_________________
backend.cpp:92:2: warning: #warning TODO - this error message is about as useful as a cooling unit in the arctic
Back to top
View user's profile Send private message
ManDay
Apprentice
Apprentice


Joined: 22 Jan 2008
Posts: 193

PostPosted: Sun Apr 15, 2012 3:57 pm    Post subject: Reply with quote

Here,

http://paste.pocoo.org/show/581900/
Back to top
View user's profile Send private message
Hu
Watchman
Watchman


Joined: 06 Mar 2007
Posts: 7609

PostPosted: Sun Apr 15, 2012 5:23 pm    Post subject: Re: Fatal fail when emerge can't update to the latest versio Reply with quote

ManDay wrote:
I must admit that this is perhaps the 3rd time that I bring this topic up, mostly because it still has not been solved to my satisfaction.
How many inadequate answers do we need to give before you give up? ;)
ManDay wrote:
Now, when I emerge -uDN world or even just emerge -u gtk+, portage fatally fails because newer gtk+ in ~amd64 is blocked by my current Xorg-server.
Do I understand correctly that you have marked x11-libs/gtk+ as ~arch, but have not marked x11-base/xorg-server as ~arch? Mixing stable and unstable can work, but often leaves you in a much less supported configuration than sticking purely with one or the other. Could you provide the output of emerge --info ; cat -n /etc/portage/package.accept_keywords?
ManDay wrote:

That immediately brings up two questions:

2) Why does this happen at all (which is the topic I've repeatedly brought up)! Portage should just *not* update instead of failing with a fatal error. At best, it may wish to inform me that there is a newer version in ~amd64 which can currently not be updated to. But not in this manner with a fatal error!

With regard to 2), I vaguely recall that this has something to do with autounmask and disabling it, so I would get the behaviour I described - but I can't recall the details. Either way, this inconsitent behaviour of throwing a fatal error should not be the default!

Emerge *should*, in oder to be self-consistent, behave according to the policy:

-u means "update everything to the newest version possible"

which, by definition, makes errors impossible.
Under such a policy, how do you propose emerge behave when all newer versions are unavailable? How should this interact with the situation that skipping the update leaves the user with a configuration that is broken, unsupported, or vulnerable to known security problems?

For example, what if there were a security bug in <=x11-libs/fake-package-3.2:3 for which all users need an immediate upgrade and the user has in world a package with RDEPEND="=x11-libs/fake-package-3.0*:3"? Such a user must either skip the security update or remove the package which requires the vulnerable version of fake-package. If I were that user, I would want emerge to throw a fairly obvious and scary error that I need to make a decision about how to proceed. If I do not run with --quiet-build=y or --quiet, then printing a warning and continuing will not necessarily leave the text where I can see it later.
Back to top
View user's profile Send private message
ManDay
Apprentice
Apprentice


Joined: 22 Jan 2008
Posts: 193

PostPosted: Sun Apr 15, 2012 7:38 pm    Post subject: Re: Fatal fail when emerge can't update to the latest versio Reply with quote

Hu wrote:
ManDay wrote:
Now, when I emerge -uDN world or even just emerge -u gtk+, portage fatally fails because newer gtk+ in ~amd64 is blocked by my current Xorg-server.
Do I understand correctly that you have marked x11-libs/gtk+ as ~arch, but have not marked x11-base/xorg-server as ~arch?

Yes
Quote:
Mixing stable and unstable can work, but often leaves you in a much less supported configuration than sticking purely with one or the other. Could you provide the output of emerge --info ; cat -n /etc/portage/package.accept_keywords?

What do you mean by "purely one or the other"? Purely ~amd64 system?!

emerge --info
cat -n /etc/portage/package.accept_keywords
Quote:
ManDay wrote:

That immediately brings up two questions:

2) Why does this happen at all (which is the topic I've repeatedly brought up)! Portage should just *not* update instead of failing with a fatal error. At best, it may wish to inform me that there is a newer version in ~amd64 which can currently not be updated to. But not in this manner with a fatal error!
.
Under such a policy, how do you propose emerge behave when all newer versions are unavailable?


Do nothing. At most *inform* (warn) the user about more recent, but unreachable versions.

Quote:
How should this interact with the situation that skipping the update leaves the user with a configuration that is broken, unsupported, or vulnerable to known security problems?


Such a version (say, vulnerable) would be removed from portage, running -u will then down/upgrade to the best version possible.

Quote:
For example, what if there were a security bug in <=x11-libs/fake-package-3.2:3 for which all users need an immediate upgrade and the user has in world a package with RDEPEND="=x11-libs/fake-package-3.0*:3"? Such a user must either skip the security update or remove the package which requires the vulnerable version of fake-package. If I were that user, I would want emerge to throw a fairly obvious and scary error that I need to make a decision about how to proceed. If I do not run with --quiet-build=y or --quiet, then printing a warning and continuing will not necessarily leave the text where I can see it later.


In this case you would get an error. The vulnerable version would be removed from portage, hence no longer available. Downgrading will not satisfy fake-package and upgrading is impossible - an impasse which causes an error.
Back to top
View user's profile Send private message
castor_fou
Apprentice
Apprentice


Joined: 23 May 2002
Posts: 246
Location: Clermont-Ferrand, France

PostPosted: Thu Apr 19, 2012 7:30 pm    Post subject: Reply with quote

Did it in 2 steps (adding appropriate keywords when needed)

Code:
emerge -v --oneshot xorg-server nvidia-drivers


then

Code:
emerge -vu world
Back to top
View user's profile Send private message
ManDay
Apprentice
Apprentice


Joined: 22 Jan 2008
Posts: 193

PostPosted: Sun Apr 22, 2012 8:45 pm    Post subject: Reply with quote

castor_fou wrote:
Did it in 2 steps (adding appropriate keywords when needed)

Code:
emerge -v --oneshot xorg-server nvidia-drivers


then

Code:
emerge -vu world


What?
Back to top
View user's profile Send private message
Jaglover
Advocate
Advocate


Joined: 29 May 2005
Posts: 3973
Location: Saint Amant, Acadiana

PostPosted: Sun Apr 22, 2012 10:55 pm    Post subject: Reply with quote

I just saw your other thread.
Running stable is OK, everything should build as expected.
Running testing is OK, too. If something does not build you should make your contribution and report a bug.
Mixing stable and testing? You are in your own, if builds fail fix it for yourself, do not complain, do not expect support, do not file a bug.
_________________
Please learn how to denote units correctly!
Back to top
View user's profile Send private message
ManDay
Apprentice
Apprentice


Joined: 22 Jan 2008
Posts: 193

PostPosted: Mon Apr 23, 2012 11:33 am    Post subject: Reply with quote

I call this nonsense, Jaglover.
Back to top
View user's profile Send private message
Hu
Watchman
Watchman


Joined: 06 Mar 2007
Posts: 7609

PostPosted: Tue Apr 24, 2012 2:51 am    Post subject: Reply with quote

Call it what you like, but the comments from Jaglover could have come from any of the long time forum posters. Mixed branches can often be made to work, but when you get a failure, the first response will usually be to ensure that all the involved packages are from the same branch.
Back to top
View user's profile Send private message
kimmie
Guru
Guru


Joined: 08 Sep 2004
Posts: 531
Location: Australia

PostPosted: Tue Apr 24, 2012 6:15 am    Post subject: Reply with quote

EDIT: Please read follow-ups before responding to this.

From a long-time forum poster who mixes stable and testing: Jaglover's comments oversimplify the situation. Sure, trying to run libpng-1.6 on a stable system is a really bad idea, and if you try a good spanking is the right response. BUT many of us have stable systems with a few top-level packages where we really need the testing (read: upstream stable) version. 99.9% of the time, this works fine. And when it doesn't "do not pass Go, do not collect $200, go directly to jail" isn't at all what has to happen. Support is available on these forums. I've provided it myself. Sometimes the result of sorting out these issues is exactly the input the maintainer needs to get a package stabilised.


Last edited by kimmie on Tue Apr 24, 2012 7:48 am; edited 1 time in total
Back to top
View user's profile Send private message
cach0rr0
Moderator
Moderator


Joined: 13 Nov 2008
Posts: 4117
Location: Houston, Republic of Texas

PostPosted: Tue Apr 24, 2012 7:16 am    Post subject: Reply with quote

kimmie wrote:
From a long-time forum poster who mixes stable and testing: Jaglover's comments oversimplify the situation. Sure, trying to run libpng-1.6 on a stable system is a really bad idea, and if you try a good spanking is the right response. BUT many of us have stable systems with a few top-level packages where we really need the testing (read: upstream stable) version. 99.9% of the time, this works fine. And when it doesn't "do not pass Go, do not collect $200, go directly to jail" isn't at all what has to happen. Support is available on these forums. I've provided it myself. Sometimes the result of sorting out these issues is exactly the input the maintainer needs to get a package stabilised.


agree with this for the most part, but that's when the desired end game is $foo package installed successfully
it's a different can of worms when the desired end in a mixed arch/~arch environment is "why is portage doing this? this is wrong!"

from a general QA perspective (in my paid work, mind you, here I'm but a simple human spam filter) QA against all "arch" is sensible, as is QA against all "~arch". It is not, however, sensible to expect QA to test every single permutation of Package A as "arch" combined with Package B that's "~arch".

When mixing the two you do so with an expectation that the setup you are using has not been fully QA'd, and that encountering difficulty with installation is a probability if not an inevitability. What would a commercial software vendor, for example - someone you're actually paying for product and support - tell someone running a setup that hasn't been signed off on by QA? The lazy ones, "you're SOL", the good ones "we'll try to help you make this work, but within reasonable limits". To that same end, it is not a reasonable expectation for that customer to have that the vendor performs QA against a setup that is specifically and strongly advised against up front.

Which brings us back I suppose, to the question of what's reasonable to expect in Gentoo land with regards to running a non-QA'd setup (mixed arch/~arch). People will generally try to help you get things working. But such situations are unlikely to be particularly strong drivers for standard/default/expected behaviour. Furthermore as human bandwidth is finite no matter how large the operation, be it a FOSS project or Ubermegasoftware Corp, expect pushback before recommendations are considered for changing default behaviour, that pushback being "does this happen with a QA'd setup (non-mixed environment)? If so, we'll look into it, if not, we're not changing default behaviour - though we might help you work around it". IMHO it isn't fair to expect the various combinations of keywords among the ~35,000 different packages in Portage to all be tested with every conceivable permutation of each; the math on that for the number of required tests is non-trivial.

NOTE: none of this is to say that combinations of such things don't receive any testing - they do. But as with any vendor, commercial or otherwise, expected behaviour is determined by testing ONLY officially supported, fully QA'd environments.
_________________
Lost configuring your system?
dump lspci -n here | see Pappy's guide | Link Stash
Back to top
View user's profile Send private message
kimmie
Guru
Guru


Joined: 08 Sep 2004
Posts: 531
Location: Australia

PostPosted: Tue Apr 24, 2012 7:32 am    Post subject: Reply with quote

Oops, was distracted, now fully back on-topic:

Manday,

You seem to be stuck on a point about the meaning of -u as "update to the latest version _possible_". Which is what it does mean, if you're fully on the testing or stable branch. As it is, you've manually specified you want to mix branches. How should portage resolve this? By telling you which additional packages to switch to testing? Or by ignoring the fact that you've asked for gtk+ to be on the testing branch, and settling for stable? Either way, it can't do what you've asked for, so why shouldn't that be a fatal error?

To me trying to run a keyworded gtk+ (or any package with so many inter-dependencies) on an otherwise stable system is really asking for trouble; wanting portage to make it easier for you to do this is even more so.


Last edited by kimmie on Tue Apr 24, 2012 7:43 am; edited 1 time in total
Back to top
View user's profile Send private message
kimmie
Guru
Guru


Joined: 08 Sep 2004
Posts: 531
Location: Australia

PostPosted: Tue Apr 24, 2012 7:42 am    Post subject: Reply with quote

cach0rr0, I agree, I don't think portage is wrong. Like I said, I was distracted, and I was taking jaglover's comments more at face value, rather than in the context of this topic.
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