[packagekit] Gentoo backend
dberkholz at gentoo.org
Thu Nov 15 00:47:27 PST 2007
I'm looking into adding a Gentoo backend. It looks like people have
discussed the idea a little [1-3], so I want to explain my vision for
how and why it would work. Here's a couple of use cases to help explain
1. Joe installs Gentoo, and at install-time, he uses one of the many
available methods to configure his feature settings (USE flags). After
that, he pretty much sticks with his original setup. We'll treat
changing features as a rare occurrence and posit that it occurs much
less often than installing, removing, updating, searching or checking
for updates. I don't see enough reasons these two actions need to be
part of the same tool; let the USE-flag editors do one thing and do it
2. Bob's site uses Gentoo, but he's not the admin. He is a developer,
and he needs to install or update programs on a fairly regular basis.
Using PolicyKit should work out pretty well to allow him to do this in
the framework of Portage without giving him too many privileges.
Some issues I'll need to deal with:
- During transactions, various output spits out, some of which should
be read. It can also be logged, so I was thinking of just showing the
log or telling people to read it post-transaction.
- At the end of a transaction, the number of config files to update is
shown. That needs to get displayed in PackageKit.
- Checking for updates in Gentoo requires a fairly large rsync of
150,000 files. That means it's something we don't want to do
frequently. There is a timestamp file we can check without that huge
sync, but that only tells us whether the sync is newer, not whether it
affects us in any way.
Gentoo's got three decently working package managers. I'll probably try
pkgcore at first, since it's got a clean and stable Python API, it's
fast and I'm already somewhat familiar with it. I see that numerous
backends use Python, so there's already a nice set of examples.
I think there's a need for doing simple tasks simply, even in a distro
like Gentoo. I'd appreciate any comments or suggestions you may have, or
any particular backends that may be better to base my work from.
More information about the PackageKit