[packagekit] Semantic issues with GetDeps (and other interface functions)
Tom Parker
palfrey at tevp.net
Fri Aug 31 13:16:37 PDT 2007
Summary: Giving a simple package_id-specified list of dependencies is
non-trivial (plus other interface semantic issues)
Got a problem while thinking about how to build GetDeps. For .deb's, we
can have many "dependancies". Some are "Depends", but then we've got
* "Pre-Depends" - like Depends, but IIRC is more of a hint to the setup
bits to do the *whole* process for Pre-Depends packages before starting
to install this package.
* "Suggests" - "You probably want this package"
* "Recommends" - "Adding this package will help"
* "Conflicts" - "Won't work with that package"
* "Replaces" - "Both can be installed at the same time, but only if you
do this one this second and it'll override some stuff that the other one
would normally do"
(Some of that might be a bit off, need to re-read the Debian Packaging
Policy document, but you get the idea)
Oh, and then they're all potentially versioned ("This applies to all
versions equal to, less than, greater than, etc") and there can be many
options ("You need at least one of these"), so a single
Depends/Suggests/etc may give you a list of packages (especially once we
get into funny business like virtual packages).
I have no idea how much this sort of thing happens with rpm's or any
other package formats, but I don't have any bright ideas offhand about
how to fix this. Current versions of aptitude (my current package
management frontend of choice) actually give you multiple options for
resolving dependencies, which may well include removing or upgrading
various packages. It's even got a nifty little points scheme for giving
you in turn the sets of changes that will change your system the least.
Other related issues: should searches provide only one version of a
named package? My system (admittedly I've gone a bit overboard with the
apt-pinning) can end up with 4 or more versions of particular packages,
all with differing dependencies (and potentially *slightly* different
descriptions).
Something else: Are the searches case dependant?
I think that's everything I can think of offhand, but I'm sure more
thoughts will come to mind.
Ideas anyone?
Tom
More information about the PackageKit
mailing list