public inbox for gentoo-soc@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Lucian Poston" <lucianposton@gmail.com>
To: gentoo-soc@lists.gentoo.org
Cc: "Marius Mauch" <google-soc@genone.de>
Subject: Re: [gentoo-soc] Progress Report - Revdep-rebuild
Date: Thu, 21 Aug 2008 13:09:26 -0500	[thread overview]
Message-ID: <c4cdc1420808211109o77bc6d1dsa32f4ae63aabf3be@mail.gmail.com> (raw)
In-Reply-To: <20080821154740.GD6086@comet>

On Thu, Aug 21, 2008 at 10:47 AM, Donnie Berkholz <dberkholz@gentoo.org> wrote:
> I just encountered a problem recently and wondered whether your work
> might help it at all. The situation is uninstalling a library that
> system packages link against. The problem I hit involves
> sys-apps/shadow[USE=audit] and sys-process/audit, which I just hit on my
> own system, breaking /bin/login.
>
> It seems like this could become part of the linkage map and thus give
> the user a warning, if it's not already -- I haven't been following this
> incredibly closely.
>
> What do you think?

In situations where a package is updated resulting in a new ABI for a
library (eg suppose libaudit.so.0 were updated to libaudit.so.1 in a
newer version of sys-process/audit), preserved libs would keep the old
libraries around by adding them to the CONTENTS of the newer package
so that libaudit.so.0 is still available for binaries that link to it.
 This is done by finding consumers (linked binaries) of files
(libraries) that are being unmerged via calling
LinkageMap.findConsumers on files to be unmerged.  However, in the
situation you provided, the package is removed, so (and I'm assuming
here) the only problem is deciding what to do with those needed
libraries.  Since sys-process/audit is being removed, there is no good
candidate package that would own the files necessary to preserve the
libraries, but throwing a warning to the user is certainly feasible
using a similar method to find preserved libraries.

As for using MissingLibraryConsumerSet in this situation, it'd
probably be too slow to calculate the set after each unmerge since the
set checks dependencies of the entire system.  To give you an idea, on
my older laptop it takes about 20-30 seconds to calculate the set (and
more like 10s on subsequent runs due to vfs caching inodes and such).
So it'd be much quicker to simply find consumers of files to be
unmerged and give a warning if any are found as this won't involve
nearly as much filesystem access.

Now in the situation where needed libraries have already been
uninstalled and binaries are broken, MissingLibraryConsumerSet can be
used to emerge packages necessary to fix the state of the system... if
you can login, that is  :)

Lucian



  reply	other threads:[~2008-08-21 18:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21  3:09 [gentoo-soc] Progress Report - Revdep-rebuild Lucian Poston
2008-08-21 15:47 ` Donnie Berkholz
2008-08-21 18:09   ` Lucian Poston [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-08-11 23:12 Lucian Poston
2008-08-01 21:24 Lucian Poston
2008-07-27  6:28 Lucian Poston
2008-07-20  9:23 Lucian Poston
2008-07-12  3:13 Lucian Poston
2008-06-26  1:30 Lucian Poston
2008-06-26 17:47 ` Marius Mauch
2008-06-15  3:55 Lucian Poston
2008-06-17 15:55 ` Marius Mauch
2008-06-15  3:34 Lucian Poston

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=c4cdc1420808211109o77bc6d1dsa32f4ae63aabf3be@mail.gmail.com \
    --to=lucianposton@gmail.com \
    --cc=gentoo-soc@lists.gentoo.org \
    --cc=google-soc@genone.de \
    /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