Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bugzilla DB migration completed. Please report issues to Infra team via email via infra@gentoo.org or IRC
Bug 127470 - expat-2.0.0 should advice users to run revdep-rebuild
Summary: expat-2.0.0 should advice users to run revdep-rebuild
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: TCL/TK Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-24 13:01 UTC by Marco Clocchiatti
Modified: 2006-04-04 19:00 UTC (History)
7 users (show)

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


Attachments
proposed patch with new warning (expat-2.0.0.ebuild,1.15 KB, text/plain)
2006-03-26 02:16 UTC, Marco Clocchiatti
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marco Clocchiatti 2006-03-24 13:01:40 UTC
As in the summary, expat-2.0.0 removes the symbolic link /usr/lib/libexpat.so.0.
That breaks a lot of programs (all from kde and some other)
I fixed manually with:

# ln -sfn /usr/lib/libexpat.so.1 /usr/lib/libexpat.so.0

May be useful to fix in some way the ebuild.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-03-24 13:11:20 UTC
You need to run revdep-rebuild, this is not a bug - the ABI changed. Don't symlink anything, that's wrong.
Comment 2 Marco Clocchiatti 2006-03-24 23:00:02 UTC
(In reply to comment #1)
> You need to run revdep-rebuild, this is not a bug - the ABI changed.
> 
I not agree.
It needs to recompile a lot of software, not only some packets.

X server may not start at all and the problem isn't easy to understand for the amministrator.

The ebuild doesn't show any advise.

I know it's wrong to add a symlink, but I thing it needs some other solution then a simple revdep-rebuild.

Comment 3 Michal Jakubowski 2006-03-25 01:54:52 UTC
Back to dev-libs/expat-1.95.8
Salute
Comment 4 Marco Clocchiatti 2006-03-26 02:16:36 UTC
Created attachment 83146 [details]
proposed patch with new warning

I hope the new warning may helps.
Don't expect more from me.
Comment 5 Alexandre Hannud Abdo 2006-03-29 22:44:10 UTC
Silently updating a package which requires you to rebuild all of gnome, openoffice, apache, etc... and that stops you from opening a simple gnome-terminal while you haven't rebuilt those packages (not to mention possibly crashing firefox and others already running...), and given that rebuilding all those packages will take *days* in most systems (in mine it certainly does), I understand this should have been handled with more care.

of course, ~arch is for nutheads like us who want to get screwed from time to time, but maybe this problem should have been taken up to gentoo management, I expected to see at least an announcement in the GWN about this coming update.

at least, i strongly hope to hear some hornets when it gets to 'arch'.

best regards,
ale
Comment 6 Giacomo Graziosi 2006-03-30 03:16:56 UTC
Is it possible to run revdep-rebuild --library libexpat.so.0 -p, then create the symlink to make the system usable and then run revdep-rebuild to link to the new library?
Comment 7 Giacomo Graziosi 2006-03-30 03:31:49 UTC
Ok, I'm running
ln -sf /usr/lib/libexpat.so.1.5.0 /usr/lib/libexpat.so.0 && revdep-rebuild --library libexpat.so.0 && rm /usr/lib/libexpat.so.0
so the system is usable while rebuild packages to the new expat-2.0.0.
Comment 8 Dan Snis 2006-03-30 04:33:42 UTC
Well I can't even do the revdep-rebuild because of missing libexpat.so.0
I've now donwgraded expat to be able to go to this site.
Giacomo, will that work? Newbie me wonders if that won't make the programs still to be linked to the missing library??
Comment 9 Pedro de Oliveira 2006-03-30 05:08:32 UTC
I think that updating a package that makes you rebuild the whole system just because there is a new version (THAT NO APP STILL USES) its a bit odd.

I think that gentoo should choose more wisely the developers. Not everyone has 30GHZ machines to be rebuilding the whole system. In the last few days there have been like a lot of packages that arent even tested, even a few days ago dvdbackup was commited to the portage, and the guy that commited the ebuild didnt even had time to see that it didnt work?

Well.. I think that something that requires building a lot of big packages should be a little more ... tought before commiting.

These are my 20 cents...
Comment 10 Bill Krueger 2006-03-30 05:34:32 UTC
(In reply to comment #8)
> Well I can't even do the revdep-rebuild because of missing libexpat.so.0

Interesting.I'm in the middle of a revdep-rebuild that will hopefully fix this problem (and in regards to "crashing firefox and others already running..." in comment #5 I'm submitting this using Firefox on the same system) it apparently causes varying degrees of lost system functionality. Unfortunatly, KDE is in the rebuild list. 
Comment 11 Harm Geerts 2006-03-30 07:35:38 UTC
Isn't it possible to handle this upgrade the same way as a openssl upgrade?

        if [[ -e ${ROOT}/usr/lib/libcrypto.so.0.9.6 ]] ; then
                ewarn "You must re-compile all packages that are linked against"
                ewarn "OpenSSL 0.9.6 by using revdep-rebuild from gentoolkit:"
                ewarn "# revdep-rebuild --library libssl.so.0.9.6"
                ewarn "# revdep-rebuild --library libcrypto.so.0.9.6"
                ewarn "After this, you can delete /usr/lib/libssl.so.0.9.6 and /usr/lib/libcrypto.so.0.9.6"
                touch -c "${ROOT}"/usr/lib/lib{crypto,ssl}.so.0.9.6
        fi

It's not the nicest way but will prevent some serious problems.
Packages affected on my systems so far are, KDE, Gnome, GTK2, apache.
Comment 12 Hugo 2006-03-30 09:15:08 UTC
There should not be any update that brokes completely the system!! 44 packages in my system!! This is not serious. What is happening in gentoo the last weeks? I hope non well tested packages in ~arch but no entirely system breakage!!!
Comment 13 Matteo Azzali (RETIRED) gentoo-dev 2006-03-30 11:34:20 UTC
149 packages, to safe rebuild them (without any link named libexpat.so.0) I did:

perl-cleaner all (I also updated perl)
emerge -1 XML-Parser
emerge -1 hal (this make sure I can reboot fine)
revdep-rebuild --library libexpat.so.0

I had an issue emerging kradio, revdep-rebuild stopped, so I did:
emerge --unmerge kradio
revdep-rebuild --ignore --library libexpat.so.0

(ignore is to ignore previous results and recalculate list of packages,
otherwise it restart emerging all mine 149 packages...)
Comment 14 Matteo Azzali (RETIRED) gentoo-dev 2006-03-30 11:58:49 UTC
I found also that revdep-rebuild doesn't accept svn ebuilds asking permission
for svn site certificate. (kopete-svn , in my case).
An "emerge -1 kopete-svn" let me accept certificate and fixed,
another revdep-rebuild --ignore --libraby /ur/lib/libexpat.so.0  
will be needed.
Comment 15 Joe Wells 2006-03-30 13:37:08 UTC
(In reply to comment #11)
> Isn't it possible to handle this upgrade the same way as a openssl
> upgrade?

Yes, please!  Or else can expat please be SLOT-ted so we can have both
1.95.8 and 2.0.0 installed at the same time?

See also bug 128108, bug 128065, and bug 128085 for some of the other
trouble this upgrade has caused.

Fortunately, I was still able to immediately downgrade to 1.95.8
before something bad happened.  I am glad my system didn't crash
(sometimes happens to me because I'm running Windows/coLinux), because
I would have had trouble even logging in to fix things as so many
programs were broken (xterm, Firefox, svn, etc.)!
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2006-03-30 13:50:11 UTC
(In reply to comment #15)
> (In reply to comment #11)
> > Isn't it possible to handle this upgrade the same way as a openssl
> > upgrade?
> 
> Yes, please!  Or else can expat please be SLOT-ted so we can have both
> 1.95.8 and 2.0.0 installed at the same time?

No, we've already discussed this for quite some time. It's not safe. You will end up with applications linked against both expat versions, being really broken and much harder to diagnose the real issue.

expat ebuilds not advises users to run revdep-rebuild, therefore this bug is FIXED. No point in more moaning here really, there's simply no better *and* safe way to handle this, sorry.

There are separate bugs about revdep-rebuild, hence this discussion is off-topic here.
Comment 17 Shaw 2006-03-31 23:44:03 UTC
So I made the link as suggested in Giacomo's comment #7: ln -sf /usr/lib/libexpat.so.1.5.0 /usr/lib/libexpat.so.0 && revdep-rebuild
--library libexpat.so.0  This put kde in a state in which it would run, thank you!  Runing revdep-rebuild reports that the oofice binarys are broken and reinstalls them.  Running revdep-rebuild after this results in the same error messages about open orifice and nothing else is rebuilt.  Did the symlink just get removed and need to be relinked?  Is my system gonna start flaking out any minute? 
Comment 18 Michael Evans 2006-04-03 10:50:46 UTC
Open Office (and most other binary applications) will always fail revdep-rebuild.  If those are all you see then they are running just as well as ever, revdeb-rebuild just can't find the files they're pointing to because they were installed differently.
Comment 19 Florian Engelhardt 2006-04-04 01:01:27 UTC
I run in this problem again today. So i did a recompile of most of the software, for example my urxvt (rxvt-unicode), with expat-2.0.0 installed, but it does not only link against expat-2, urxvt also links agains expat-1!

HAL2000 ~ # ldd /usr/bin/urxvt
	linux-gate.so.1 =>  (0xffffe000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0xb7fbf000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb7ed4000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e6a000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7e62000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7e34000)
	libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7e27000)
	libperl.so.1 => /usr/lib/libperl.so.1 (0xb7d27000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb7d14000)
	libnsl.so.1 => /lib/libnsl.so.1 (0xb7cff000)
	libdl.so.2 => /lib/libdl.so.2 (0xb7cfb000)
	libm.so.6 => /lib/libm.so.6 (0xb7cd6000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7ca9000)
	libutil.so.1 => /lib/libutil.so.1 (0xb7ca5000)
	libc.so.6 => /lib/libc.so.6 (0xb7b8c000)
	/lib/ld-linux.so.2 (0xb7fe7000)
	libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.0/libgcc_s.so.1 (0xb7b82000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb7b77000)
	libexpat.so.0 => not found
	libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b73000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b6e000)
	libz.so.1 => /lib/libz.so.1 (0xb7b5d000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b3f000)
Comment 20 Michael Evans 2006-04-04 19:00:24 UTC
I was able to take the following steps to get KDE working, it should probably work for your software as well.  I'm doing this from work so I don't have the exact commands at my fingertips.

I've since also done a 'perl-cleaner all' as someone else had mentioned...

emerge -C expat (If you have expat v1 on your system still)
revdep-rebuild world
(wait for it to fail, if it doesn't fail the following steps aren't necessary)
rev /root/.revdep-rebuild.5(whatever the file was... I know this isn't quite correct) | cut -b4- | cut -d- -f2 | rev | sort -u > /root/revdep-packages
nano -w /root/revdep-packages
-- Manually fix any broken things that are left, you may have to re-iterate the next step a time or two to catch them all...
emerge -C $(</root/revdep-packages)
emerge $(</root/revdep-packages)
emerge --new-flags -Du world

I'm still haven't seen the results of the last command yet... it's waiting at home.

This MAY work as an abriviated procedure.

emerge -c expat (If you have expat v1 on your system still)
revdep-rebuild world
(wait for it to fail, if it doesn't fail the following steps aren't necessary)
rev /root/.revdep-rebuild.5(whatever the file was... I know this isn't quite correct) | cut -b4- | cut -d- -f2 | rev | sort -u > /root/revdep-packages
nano -w /root/revdep-packages
-- Manually fix any broken things that are left, you may have to re-iterate the next step a time or two to catch them all...
emerge (options for Empty and Oneshot?) $(</root/revdep-packages)
emerge --new-flags -Du world