Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-19 Thread Alan McKinnon
On Tuesday 18 March 2008, Enrico Weigelt wrote:
 BTW: if libexpat.so.0 was there before the update and now isn't,
 there's an major bug in expat (either the ebuild or the source).

There's no bug in expat, the OP is doing an *expat*upgrade*, which means 
that libexpat.so.0 was there before and libexpat.so.1 is there now. 
Thus any app that links explicitly to libexpat.so.0 is now broken.

A source based distro like Gentoo runs this risk with every library 
upgrade and sometimes it hits a low level lib with deep dependencies 
like expat. There are only two possible solutions to this:

1. Track the links between every app and every lib, and as soon as one 
is detected with a lib upgrade then fire an event to trigger a 
recompile of the linking app. This solution is so ugly, so error-prone 
that I cannot suffer it to live.

2. Something like revdep-rebuild that scans the system looking for 
errors and is triggered manually by the user.

Getting through these upgrades is a serious PITA. But at least on Gentoo 
we can fix it. Imagine using a binary distro where the packager didn't 
pick this up and you are left stranded with no easy way to fix it...

-- 
Alan McKinnon
alan dot mckinnon at gmail dot com

-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-19 Thread Enrico Weigelt
* Alan McKinnon [EMAIL PROTECTED] wrote:
 On Tuesday 18 March 2008, Enrico Weigelt wrote:
  BTW: if libexpat.so.0 was there before the update and now isn't,
  there's an major bug in expat (either the ebuild or the source).
 
 There's no bug in expat, the OP is doing an *expat*upgrade*, which 
 means that libexpat.so.0 was there before and libexpat.so.1 is there 
 now. Thus any app that links explicitly to libexpat.so.0 is now broken.

If an upgrade breaks primary things, it's simply broken. 
You can now choose, whether the bug is expat or the ebuild/portage.

 2. Something like revdep-rebuild that scans the system looking for 
 errors and is triggered manually by the user.

This is also ugly and error-prone. After every slightest upgrade 
you have to fear nothing's running anymore and everything has to be 
rebuilt first. If downtimes don't matter, fine. But for critical 
systems, this is very dangerous.

Why not modeling/storing the *runtime* dependencies and doing 
an *clean* MVCC ? Isn't this what slotting was meant for ? ;-P

 Imagine using a binary distro where the packager didn't 
 pick this up and you are left stranded with no easy way to fix it...

Then the package manager's obviously broken ...


cu
-- 
-
 Enrico Weigelt==   metux IT service - http://www.metux.de/
-
 Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
 Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
-
-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-19 Thread brullo nulla
Ok, you all can stop ranting about ebuilds etc. being broken. :)

I found the culprit, it seems something wrong in the kdelibs building.
Basically, when kdelibs builds dcopidl,  it happily *says* oh, this
would need libXft, that in turn has a broken link to libexpat.so.0.
But who cares, let's go along with it! instead of stopping and
telling me that libXft is broken.

I have no more the relevant compilation output snippet, but that's the
meaning. So, I just emerged libXft, fixing the expat link, and
everything went pretty smooth.

Now I have the problem that Thunderbird starts, but no window comes
out, but it's a different stuff...

m.
-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-18 Thread Enrico Weigelt
* brullo nulla [EMAIL PROTECTED] wrote:

 So I equeried dcopidl, and dcopidl belongs to kdelibs itself!
 
 What does it mean?

Simple: KDE folks still aren't confident with the concept of 
modularity (even it's an standard pattern since about 50 years) ;-P

BTW: if libexpat.so.0 was there before the update and now isn't,
there's an major bug in expat (either the ebuild or the source).

I don't know if the Gentoo QM policies say that those bugs have to
be fixed or relying on the revdep-rebuild workaround is enough. 
In the first case, you should file a bug. Otherwise could leave 
it out to save yourself from personal rants ;-o


cu
-- 
-
 Enrico Weigelt==   metux IT service - http://www.metux.de/
-
 Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
 Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
-
-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-18 Thread Paul Varner

On Mon, 2008-03-17 at 19:29 +0100, brullo nulla wrote:
   What output do you get from 'revdep-rebuild -p -i' ?
 
 Here it is:
 
 Evaluating package order...
 Warning: Failed to resolve package order.
 Will merge in random order!
 Possible reasons:
 - An ebuild is no longer in the portage tree.
 - An ebuild is masked, use /etc/portage/packages.keyword
   and/or /etc/portage/package.unmask to unmask it
 . done.
   (/root/.revdep-rebuild.5_order)

emerge =gentoolkit-0.2.4_rc3 and see what revdep-rebuild gives with that
version.  Unfortunately, the --package-names in gentoolkit-0.2.3 doesn't
work correctly, which causes problems with rebuilding after the expat
upgrade.

Regards,
Paul
-- 
gentoo-user@lists.gentoo.org mailing list



[gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-17 Thread brullo nulla
Hi folks,

I am finally getting through the expat update. I am currently stuck at
kdelibs for what looks like a circular problem (or a linking problem).
Forums and google tell me of problems with kdelibs and expat upgrade,
but mostly qt3 related -this seems not to be the case. The ebuild
stops with:

../dcop/dcopidl/dcopidl ./ksycoca.h  ksycoca.kidl || ( rm -f
ksycoca.kidl ; false )
../dcop/dcopidl/dcopidl: error while loading shared libraries:
libexpat.so.0: cannot open shared object file: No such file or
directory

So I equeried dcopidl, and dcopidl belongs to kdelibs itself!

What does it mean? kdelibs needs a working kdelibs itself to be built
(very strange)? Or when it compiles dcopidl, fails to link it against
the new expat? Or I failed at finding the dcopidl ebuild?

Thanks for your help,
M.
-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-17 Thread Alan McKinnon
On Monday 17 March 2008, brullo nulla wrote:
 Hi folks,

 I am finally getting through the expat update. I am currently stuck
 at kdelibs for what looks like a circular problem (or a linking
 problem). Forums and google tell me of problems with kdelibs and
 expat upgrade, but mostly qt3 related -this seems not to be the case.
 The ebuild stops with:

 ../dcop/dcopidl/dcopidl ./ksycoca.h  ksycoca.kidl || ( rm -f
 ksycoca.kidl ; false )
 ../dcop/dcopidl/dcopidl: error while loading shared libraries:
 libexpat.so.0: cannot open shared object file: No such file or
 directory

 So I equeried dcopidl, and dcopidl belongs to kdelibs itself!

What output do you get from 'revdep-rebuild -p -i' ?



-- 
Alan McKinnon
alan dot mckinnon at gmail dot com

-- 
gentoo-user@lists.gentoo.org mailing list



Re: [gentoo-user] expat upgrade, kdelibs: circular problem?

2008-03-17 Thread Alan McKinnon
On Monday 17 March 2008, brullo nulla wrote:
   What output do you get from 'revdep-rebuild -p -i' ?

 Here it is:

 Evaluating package order...
 Warning: Failed to resolve package order.
 Will merge in random order!
 Possible reasons:
 - An ebuild is no longer in the portage tree.
 - An ebuild is masked, use /etc/portage/packages.keyword
   and/or /etc/portage/package.unmask to unmask it
 . done.
   (/root/.revdep-rebuild.5_order)

snip HUGE package list...

Hmmm. I seem to recall the expat upgrade being similar for me too. 
Unless you receive good advice to the contrary, you could try doing 
what I eventually did:

emerge -avuND world
then 
emerge --skipfirst --resume
as many times as needed to get to the end. Mask and unmask stuff 
manually as required. Eventually it all ends :-) and you are left with 
a consistent system. The final test is to run:

emerge -avuND world
emerge -av --depclean
revdep-rebuild -p -i

and all three should result in nothing to do.

-- 
Alan McKinnon
alan dot mckinnon at gmail dot com

-- 
gentoo-user@lists.gentoo.org mailing list