> On Saturday 26 April 2008, Mark Knecht wrote:
(...)
> default so it's really slow). I'm thinking of these things:
>
> - Install every currently installed ebuild to an overlay, or install
> specific ebuilds or specific categories to an overlay.
> - Copy an installed ebuild and it's entire installed DEPEND tree to an
> overlay - this is for cases where <arb_lib> is not in world but is
> required as a deep dependency of something that is. The user will
> probably not be aware of this dependency and not having that ebuild
> will break stuff.
It hasn't been mentioned yet, but ebuilds of all installed packages can be found in /var/db/pkg/<category>/<pkg>-<ver>/<pkg>-<ver>.ebuild. emerge --sync can mess around with /usr/portage all it wants, your ebuilds will still be there until you unmerge the package. Right?
> - Copy an entire profile to an overlay
Could one integrate that with eselect profile? How about copying the current profile to /var/db/profile?
> - Copy everything in an installed ebuild's SRC_URI (or all installed
> ebuilds) to a different DISTDIR for safety (think ATI driver downloads
> or kernels here)
>
> - Remove old ebuilds and profiles from the overlay that you have since
> upgraded
> - Possibly more
>
(...)
Here's my idea: How hard would it be to have eix-test-obsolete
verify against the global database instead of the local database? If I
ran it that way *before* I ran emerge --sync then it would tell me
effectively which packages would be removed after syncing. I could
then move what I need to move by hand, run emerge --sync, and I'd
still be clean because I've saved my files into my private overlay
before the sync operation can delete them.
This is about losing ebuilds? See comment about /var/db/pkg/...
If an enhancement like that is fairly simple - I have no idea -
then that would be a great start. Still, it's not protection against
the root cause of the problem, but it's a simple way to see ahead of
time what might happen.
Cheers,
Mark
~Henry