Mike Frysinger posted on Sat, 30 Jun 2012 11:16:51 -0400 as excerpted:

> On Saturday 30 June 2012 07:22:39 Zac Medico wrote:
>> On 06/30/2012 04:07 AM, Pacho Ramos wrote:
>> > I would like to discuss a bit more issues like:
>> > https://bugs.gentoo.org/show_bug.cgi?id=423087
>> > 
>> > Even if there are "a lot" of packages that can cause this breakage
>> > when downgraded, I think it should be prevented and package managers
>> > shouldn't try to downgrade this kind of packages as they will later
>> > cause a total breakage. People is not supposed to know that
>> > downgrading some package system will, for example, have an unusable
>> > gcc.
>> 
>> It seems like a die in pkg_pretend would serve pretty well.
> 
> doing it on a per-ebuild basis doesn't make much sense.  a simple
> version compare (like we do in glibc as an exception to this rule
> because of its much wider implication) is incorrect: the new version
> might not introduce any new symbols compared to the old one, and even if
> it has, other packages might not have been linked against the new
> symbols.

glibc was the example that popped up in my mind as well.  Two comments:

* Please make sure there's an override in case the user needs it, like 
glibc has.

* Glibc's override is unfortunately broken in one specific case: binpkgs.  
The binpkg must have been built with the override (I_KNOW_WHAT_IM_DOING=1 
or whatever) set, or it won't work.

I found this out the hard way, when I upgraded a glibc and immediately 
found it broken for something or other.  I hadn't rebuilt anything else 
yet (I try to do glibc upgrades by themselves, /because/ of their 
critical nature), so everything was still built against the old glibc and 
there would have been no breakage.  Since I run FEATURES=buildpkg by 
default, I thought "no problem, I'll just emerge the old binpkg."  
WRONG!  Because it wasn't built with the override variable set, it 
wouldn't let me downgrade using the binpkg!

But whatever breakage I had wasn't letting me rebuild, either!

Which is exactly why I have multiple bootable rootfs (with everything 
portage installs on it) setup, so I can boot into a bakup root if my 
normal working one gets hosed, somehow.  So I just booted into it, 
mounted my normal working rootfs, set ROOT= to point to it, and went from 
there.

It would be MUCH easier if a glibc binpkg downgrade could look only at 
the existing portage environment for that variable, not check the one in 
the binpkg!

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


Reply via email to