Many users including myself are experiencing problems with updating to expat 2.0.1. See the forums post for details. Reproducible: Always Steps to Reproduce: 1.emerge a system based on expat-2.0.0 2.Update the system to expat-2.0.1 3.Reboot Actual Results: Many applications will not work with no warning from Gentoo. this can cuasue unneeded server down time and is unprofessional. Expected Results: Expat 2.0.1 should be a blocker.
*** This bug has been marked as a duplicate of bug 128069 ***
<snip> pkg_postinst() { ewarn "Please note that the soname of the library changed!" ewarn "If you are upgrading from a previous version you need" ewarn "to fix dynamic linking inconsistencies by executing:" ewarn "revdep-rebuild -X --library libexpat.so.0" } </snip> If you don't care about this and don't use ELOG feature that portage provides, that's your own fault and not a bug. ABI change is no bug either.
Not a dup of bug 128069 because that was a different version update (2.0.0) and this is a matter of Gentoo procedure. man ebuild 5 states "ewarn "warning message" Same as einfo, but should be used when showing a warning to the user." A warning is not what is appropriate for when emerging something will break the system. A pkg_postinst() does not offer the user the choice of wether to spend the next few days with down servers or not it is a post install message. The ebuild is not about choice & violates the gentoo philosophy. SEE "http://www.gentoo.org/main/en/philosophy.xml" " This is only possible when the tool is designed to reflect and transmit the will of the user" In this case the tool is the ebuild and it does not reflect and transmit the will of the user as to the question at hand break the entire ABI kill the server and loose your job or not. "PDEPEND This should contain a list of all packages that will have to be installed after the program has been merged. You may use the same syntax to vary dependencies as seen above in DEPEND." A package that will require the entire system to be rebuilt should have one of the following; PDEPEND= revdep-rebuild of affected librarys after it is finished. and/or get user input with a pkg_setup . Something like "Will break system continue merging? Type "YES" or "NO"" typed by the user. Or a USE flag called "ABI-break" that must be set that requires the user to want to make the choice to have the system librarys broken. Or worst option but least work is use a fetch restriction. AND There are over 5 forums threads full of people posting problems related to this. The energy it takes to deal with a landslide of users in the forums is greater than adding a feature that will stop an emerge that will cause mass system breakage. Not many packages do this and it is good policy. Cheers turtle
I have to say that I personally never had any issues. I used the LDFLAG --as-needed for all my KDE packages. Working towards a non-hackish 100% support of --as-needed would work for any ABI change in a package if --as-needed is supported as a LDFLAG. Currently it is not officially supported or recommended for general system use. I guess what I am saying is, I would rather time and energy be put into supporting --as-needed which has the potential of preventing widespread rebuilds and breakages when the linker incorrectly adds in unnecessary libraries (like in this case libexpat) to many programs. If it was supported, and we had --as-needed enabled by default in Gnome/KDE, then users would not have had this issue (or at least not as serious). Is this a viable alternative, rather than creating unnecessary use flags like "ABI Breakage" or making installs interactive? Just a thought.
expat-2.0.1 needs to block on <expat-2.0.0 . This is exactly what blocking is for. Severity of this bug should be SEVERE!
This is not a discussion forum, move this out of bugzilla. *** This bug has been marked as a duplicate of bug 128069 ***
1) Agreed there is nothing to discuss the Gentoo Philsophy is written in stone. 2) The bug you marked it a dup of is a different version update that is from "Opened: 2006-03-29 21:53" over a year old. It is against the Gentoo philosophy (unconstitutional) because it does not stop the emerge and give the user a choice before the package is installled and the other is removed. The warning happens after. Thus making the entire system unstable thus a bug. Some users are not able to recover from this unstability see the discussion forums link.
Stop reopening this bug. This is NOT a place for discussions and endless rants.
Sorry Jakub, but I'll gladly reopen it. I knew about the update, emerged expat and curl first, then ran revdep-rebuild -X and then continued with the update which should be pretty much the correct way of treating this update and still broke my system because revdep-rebuild didn't pull in all the necessary packages (I also filed a bug against this). This has happened for me on *three* machines, two "x86" and one *ppc*, so I don't suppose this is something peculiar in my configuration. Running revdep-rebuild without -X also didn't work because some of the ebuilds it wanted to pull in have been removed from portage (and I update in 2-4 weeks intervals). The only thing that did work for me in the end was taking the list of broken packages found by revdep-rebuild, modifying it by hand and then running emerge myself. Since the ordering didn't get correct this way I had to change the order several times on one of the machines. If you look at the forum, it seems that many others seems to see the same behavior. Since the procedure suggested by the ewarn message doesn't work and leaves the user with a broken system I think this qualifies as a blocker.
Restricting this bug to avoid more noise.