From: "Jesús Guerrero" <i92guboj@terra.es>
To: <gentoo-user@lists.gentoo.org>
Subject: Re: [gentoo-user] revdep-rebuild vs. @preserved-rebuild [was: Kmplayer, video and audio not syncing.]
Date: Mon, 02 Nov 2009 17:39:12 +0100 [thread overview]
Message-ID: <68c1fe7a7ee0a17e840b56baccd3ee31@localhost> (raw)
In-Reply-To: <200911021650.19528.wonko@wonkology.org>
Thanks everyone for the input, it's being quite informative and valuable.
I guess I'll have to research on this at some point. Still I'd like to keep
responses coming if anyone can bring some light into the issue. :)
I am responding only to one post, but I've read Alan's one as well, as
said, thanks to everyone that answered.
On Mon, 2 Nov 2009 16:50:19 +0100, Alex Schuster <wonko@wonkology.org>
wrote:
> Jesús Guerrero writes:
>
>> On Mon, 2 Nov 2009 16:12:49 +0200, Alan McKinnon
>> <alan.mckinnon@gmail.com> wrote:
>> > On Monday 02 November 2009 15:58:57 Jesús Guerrero wrote:
>> >> On Mon, 2 Nov 2009 13:25:08 +0000, Neil Bothwick
<neil@digimed.co.uk>
>> >> wrote:
>> >> > On Mon, 02 Nov 2009 13:58:03 +0100, Jesús Guerrero wrote:
>> >> >> @preserved-rebuild never worked for me, maybe it's just that it
>> >> >> doesn't like ~arch. I am just too lazy to work on how to fix a
>> >> >> thing when there's an alternative that always worked reliably,
>> >> >> revdep-rebuild.
>
> I like the preserve-libs FEATURE. With revdep-rebuild, things are fixed
> after they were broken by an update of a library. And there is a time
(in
> case of the dreaded expat update, a large one, expecially if revdep-
> rebuilding stuff fails for some packages) in which things do not work. I
> always hated that and considered it a serious bug.
> With preserve-libs, things do not break in the first place, because the
> old
> libraries are still in place.
Ok, well, then the libs are preserved at merge time. Using Alan's analogy,
when you update the lib to y.1.0.1.so. It is *at this time* when y.1.0.0 is
kept, and that has nothing with using "emerge @preserved-rebuild" *in the
future*. You could still use revdep-rebuild and the effect will be the same
(except that old libs will not ever be cleaned if I got it right). Right?
So, it's not "emerge @preserved-rebuild" which fixes the problem (as I
said, by the time you run "emerge @preserved-rebuild" it's already too
late, by then the libs are either preserved or broken), but a whole new
portage behavior, which is quite different. And maybe only if you have a
given FEATURE enabled, which takes this even more far away from the
@revdep-rebuild set.
So, if this all is correct, this set is intended to *fix* the breakage,
just like revdep-rebuild, and *not to prevent* it. It's portage which
prevents it by preserving all .so files. Note that revdep-rebuild didn't
break anything either. That's false. revdep-rebuild only fixes what portage
breaks. It all comes down to one thing: are you using the preserve feature
or not? And not the tool you use to fix the binaries.
>
>> >> > If it didn't work on ~arch, how would it ever make it into arch?
>> >>
>> >> I am not the one to answer that, all I can say is that the few times
>> >> I've tried it, it kept rebuilding the same packages again, and
>> >> again, and again ad infinitum, as said, I didn't even bother to find
>> >> what the problem was, because I have a working alternative. Sure it
>> >> could be better, but that hasn't been the case for me with
>> >> @preserved-rebuild.
>
> I had the same problem with emerge @preserved-rebuild looping endlessly,
> but that's probably just a minor issue. Just use emerge
@preserved-rebuild
> once to make sure the new libs are being used, and remove
> /var/lib/portage/preserved_libs_registry afterwards to get rid of the
> preserved-libs message.
That's good to know. However this needs to be fixed, which is probably one
of the reasons why portage 2.2 is taking quite a bit to be released.
>> >> > The trouble with revdep-rebuild is that you have to break your
>> >> > system and then fix it. Most of the time this is trivial, but
>> >> > updates like expat-2.0 showed the usefulness of being able to
>> >> > recompile the packages before they were broken.
>> >>
>> >> I can't understand that. You CAN'T recompile your packages against
>> >> the new ABI's until the new ABI is in your system, and hence your
>> >> system is already broken. There's no preemptive measure against
>> >> this. Both methods fix the system *after* it's broken.
>> >
>> > Unless the old and the new ABI version are installed side by side.
When
>> > @preserved-rebuild is run, it deletes the old libs only after
>> > everything left that used it is now linked against the new one.
>>
>> Thanks for the feedback. However there's one thing I can't understand:
>> whether the libraries are kept of removed is decided at the merge time,
>> isn't it? So, whatever breaks, breaks when using "emerge" to update the
>> offending library, the one that will break the ABI. So, how can using a
>> tool *after that* have any impact over what's broken? It can fix the
>> problem, but so can revdep-rebuild.
>
> Again, things do not break in the first place with the preserved-rebuild
> FEATURE. As a library gets updated, the new library is installed along
> with
> the old one. Applications linked to the old one still work. When they
are
> re-compiled, the are linked to the new library, making the old libraries
> obsolete when this is done for all packages depending on them.
>
>> I mean: if the old libs with the old abi's are kept, how it is relevant
>> if you are using @preserved-rebuild, revdep-rebuild or another method,
>> or none at all? Your programs will continue to work ok without needing
>> to rebuild anything, won't them? And after rebuilding the package it's
>> irrelevant *how* did you rebuild them... I must obviously be missing
>> something here, if you have the time please, direct me to an adequate
>> source of information or explain a bit, I am curious.
>
> I think the revdep-rebuild way would not work here. I assume it uses ldd
> to
> check all binaries for existance of their libraries, and rebuild them if
> there are problems. When the old libraries are still in place, there is
no
> problem for ldd, and nothing gets re-compiled. No big problem, but you
> clutter your system with old libraries staying in place, and programs
> still
> using them do not take possible advantage ob the newer libraries.
Thanks, these two paragraphs seem to confirm my thoughts above. I finally
understand what this is about :)
--
Jesús Guerrero
next prev parent reply other threads:[~2009-11-02 16:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-24 20:16 [gentoo-user] Kmplayer, video and audio not syncing Dale
2009-10-24 20:21 ` Alan McKinnon
2009-10-24 20:36 ` Dale
2009-10-24 21:25 ` Alan McKinnon
2009-10-30 11:17 ` Dale
2009-10-30 16:22 ` Jesús Guerrero
2009-10-31 3:34 ` Dale
2009-10-31 19:26 ` Alan McKinnon
2009-10-31 21:30 ` Dale
2009-11-01 15:06 ` Jesús Guerrero
2009-11-01 18:21 ` Dale
2009-11-01 19:20 ` Jesús Guerrero
2009-11-01 22:56 ` Dale
2009-11-02 6:08 ` Dale
2009-11-02 12:58 ` Jesús Guerrero
2009-11-02 13:25 ` Neil Bothwick
2009-11-02 13:44 ` Dale
2009-11-02 13:58 ` Jesús Guerrero
2009-11-02 14:12 ` Alan McKinnon
2009-11-02 15:01 ` [gentoo-user] revdep-rebuild vs. @preserved-rebuild [was: Kmplayer, video and audio not syncing.] Jesús Guerrero
2009-11-02 15:39 ` Alan McKinnon
2009-11-02 16:31 ` [gentoo-user] Re: revdep-rebuild vs. @preserved-rebuild Harry Putnam
2009-11-02 17:52 ` Alan McKinnon
2009-11-02 15:40 ` [gentoo-user] " Graham Murray
2009-11-02 23:13 ` Neil Bothwick
2009-11-02 15:50 ` [gentoo-user] revdep-rebuild vs. @preserved-rebuild [was: Kmplayer, video and audio not syncing.] Alex Schuster
2009-11-02 16:39 ` Jesús Guerrero [this message]
2009-11-02 14:49 ` [gentoo-user] Kmplayer, video and audio not syncing Neil Bothwick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=68c1fe7a7ee0a17e840b56baccd3ee31@localhost \
--to=i92guboj@terra.es \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox