Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 18603 - Gentoo downgrades by default if switching from unstable to stable or if manually emerging unstable packages and doing emerge -u world
Summary: Gentoo downgrades by default if switching from unstable to stable or if manua...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: High critical (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on: 13616 25230
Blocks:
  Show dependency tree
 
Reported: 2003-04-01 15:17 UTC by Michael Postmann
Modified: 2011-10-30 22:21 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Postmann 2003-04-01 15:17:58 UTC
I recently wanted to emerge a package (i think it was aumix or something) and 
got and configure-error. I posted this in the bugzilla and a few minutes later 
the package was fixed (congratulations!). But the corrected version was from the 
next release of aumix and this has been unstable. So I emerge the ebuild itself 
manually. But when doing emerge -u world the next time, portage tried to 
downgrade aumix. But the old ebuild was broken. I didn't know of the -U option 
to emerge and so i entered ~i386 as the hostmask in my make.conf to change to an 
unstable system. A few weeks later i uncommented this line because I thought an 
unstable system is not what I want.


Then at the next emerge -u world  gentoo began to downgrade all the unstable 
packeges. One of them was glibc.


After downgrading it, nearly nothing was working at all....


I'm currently reinstalling my whole linux-box.


So if you change from unstable back to stable and forget -U one time your gentoo 
is broken.


Reproducible: Always
Steps to Reproduce:
1. Switch to an unstable system


2. emerge -u world


3. Switch back to a stable system


4. emerge -u world



Actual Results:  
A lot of applications (I can't remember wich ones but they were a lot as you can 
imagine) didn't run because they were linked with a more recent version of 
glibc.


Expected Results:  
There should be a flag for telling portage to NOT downgrade any packages in the 
make.globals which is set to on. If one wants to downgrad a specific package he 
could do it manually by emerging the specific ebuild. And power users could 
overwrite this by a setting in their make.conf.


I think it would be more safe especially for not so skilled users as me if 
downgrading is disabled by default because normaly noone has to downgrade 
anything. And if one really wants to downgrade something he must be knowing what 
he is doing and thus he should know how to downgrade a packed manually by 
emerging the old ebuild.
Comment 1 Danny Milosavljevic 2003-04-01 15:36:09 UTC
Also, the whole idea of a global ACCEPT_KEYWORDS does not appeal to me.
I rather use alias ex='ACCEPT_KEYWORDS="~x86" '  in /etc/profile and then:
ex emerge -U whatever  for experimental
and
emerge -U whatever   for "normal"

which is in turn connected with the question "why isn't -U default, and -u the special case ?", I am wondering... (ok, it doesnt make much difference if you write -u or -U... though I'd rather like to see a make.conf option for this, as _nobody_ in his right frame of mind should even consider using only "-u" after he ran "-U" once and installed stuff -- it pretty much leaves stuff unusable... already happened to me as well, though only with a small subset, fortunately)

Also I'm using http://ifurita.kicks-ass.net/localportage.tar.gz to make portage use a local  /usr/local/portage/profiles/package.mask too (it works like this: emerge gets wrapped, the wrapper catches "sync" and after emerge-original did sync, it modifies the /usr/portage/profiles/package.mask according to /usr/local/portage/profiles/package.mask... which is a hack, but it allows me to *add and remove* entries from package.mask "once and for all" as I want my system ;) -- its all a matter of taste, I guess..)
(Installation: link it somewhere into PATH *before* the original emerge's path, for example /usr/bin/wrappers -- you have to emerge colorgcc to get this directory up and working)
If you are asking for a reason why I do this, I'm reading many of the packages' sources and I mask those which look horrible / have obvious bugs / etc... ;) (can you say "metalog", for example :->)

Comment 2 Wayne Davison 2003-05-07 05:00:10 UTC
I think that portage should be improved to remember what masked packages were
installed by the user and to treat that version as unmasked on the current
system.  For instance, if I say something like this:

 emerge --unmask mozilla-1.3-r1

This would install the masked package and make a note that, on this system,
that package is now unmasked.  When the package gets unmasked in the official
release, this "temporary unmask" note would be removed.

This would not interfere with normal ebuilds since they would not get marked
as needing a local unmasking, and thus, if an ebuild should ever get remasked,
portage would continue to recommend a downgrade of such a package.

This unmask note would have to occur at the same level as the cached KEYWORD
info and not try to kludge things by tweaking versions in the world file
(since that does not work reliably).

Currently I kludge around this by having a perl script forcibly unmask a
list of packages after every "emerge sync".  It does this by directly
tweaking the KEYWORDS line in the ebuilds.  I'd like something less kludgey
for the future, though, especially since signed ebuilds are coming and that
will presumably break my kludge method.
Comment 3 Nicholas Jones (RETIRED) gentoo-dev 2003-12-12 11:14:00 UTC
package.keywords
bug 13616