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