openSUSE / libzypp

ZYpp Package Management library
http://doc.opensuse.org/projects/libzypp/HEAD/
Other
116 stars 81 forks source link

stop using repo2solv #534

Open dcermak opened 5 months ago

dcermak commented 5 months ago

libzypp depends on libsolv-tools due to a single line of code where repo2solv is invoked: https://github.com/openSUSE/libzypp/blob/fb7deafb939552116b7677007305e2ea0d28bdd1/zypp/RepoManager.cc#L452

Would it be possible to drop this external call and use parts of libsolv directly? I know that https://github.com/openSUSE/libsolv/blob/master/tools/repo2solv.c is not exactly small, but maybe not all of its functionality is absolutely required?

This would allow us to make our containers a bit smaller by dropping the libsolv-tools dependency entirely.

bzeller commented 5 months ago

Since we are currently rewriting code to be executed async we'd need to build our own repo2solv binary ( libsolv has no thread support )... which probably would not be smaller than the one we are currently shipping..

bzeller commented 5 months ago

Once we are there we can try and build a binary that only does what we want and links libsolv directly and see if its smaller.

mlandres commented 5 months ago

We're currently using repo2solv and rpmdb2solv. And we wan't dumpsolv to be available on the system. (we may depend on mergesolv in the future)

Maybe @mlschroe likes to split a few things into a basic libsolv-tools and move the stuff also covered by repo2solv into an extra package (updateinfoxml2solv, susetags2solv, rpmmd2solv, rpms2solv, helix2solv, deltainfoxml2solv..)

lnussel commented 5 months ago

libsolv could also expose those features as library function