Bug 189642 - dev-libs/expat 2.0.1 ebuild does not give the user choice as to hoze system or not
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.