Hi Florian! On Tue, Jan 03, 2012 at 01:08:42PM +0100, Florian Festi wrote:
[...] Libsolv is an interesting implementation for a depsolver but does not offer the API we are looking for. It needs some kind of abstraction layer to hide all the moving parts. This is one of the things libzypp does.
Yes, the "bare bone" C part of libsolv is probably not what you're looking for. The usage of Ids instead of pointers is a tad confusing, e.g. a package is described by (pool,id). A pointer to a package can become invalid when another package is added and so on. The interface itself isn't moving that rapidly, I just used the sat-solver -> libsolv rename to get rid of some old cruft and do some function name cleanup. But did you look at the perl/python/ruby bindings? They provide a saner high level interface (at the cost of slowing things down, obviously). (Klaus Kaempf also wrote some glue code called "applayer", which offers a similar interface in C for the old sat-solver library. He used it for his bindings, I currently have the layer in the swig code.) It seems like you also want to provide repository management and download functions in your new API, that's currently not in scope of libsolv (and probably never will be). Are you already in discussions with the yum folks about their needs? Maybe they have some suggestions about how the interface could look like. (You do want yum to use your new API, right?) Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org To contact the owner, e-mail: zypp-devel+owner@opensuse.org