Hi!
Target to loads the rpm resolvables from a solv file now.
initializeTarget() does as usual, creates the target object and imports
gpg keys (this is an area where we could gain speed too)
Target::resolvables() was removed. Target::load() was added. load()
creates the .solv file from the rpm database and stores it in
/var/cache/zypp/_rpm.solv
A cookie file is also saved to know if the cache corresponds to the
current rpm state. If it is the solv file is not regenerated. load()
also loads the solv file in the pool.
Now we have to focus on RepoManager and the Repository class. Right now,
RepoManager is ported to use solv files, but the API introduced in 10.3
is very granular. Repository object is still obtained via
createFromCache, and the Repository object still has a resolvables()
interface (which is a hack for now).
We have to figure an API for Repository that is consistent with the one
in Target. An iterator over Resolvables could be an option, this
iterator would use the sat::Repo solvable iterator underneaths. When to
load the .solv? right now the call to resolvables() to it. But target
has load(), it is becoming inconsistent across classes.
Other option is to move the solvables code from Target to RepoManager,
and have these resolvables accesible via createFromSystem() there. That
would allow to access the target repositories with the same API as the
other repositories, and we leave the Target only for commit. It would be
more consistent with the sat concept (where installed resolvables _are_
a repo after all) What do you think?
TODO for those who are helping with this important project ;-)
AI: Pool, top priority -> WIP by Michael
AI: satsolver rpmdb2solv segfaults when setting the vendor to the
solvable. Nobody noticed it? I commented the vendor assignment locally
to be able to run it.
AI: attributes for yum files (required for updates)
AI: right now, rpmdb2solv seems to also not contain any attributes in
the solv file, we need this for the UIs.
I have uploaded tonights svn to buildservice zypp:svn, where we will
integrate all pieces.
Duncan
--
To unsubscribe, e-mail: zypp-devel+unsubscribe(a)opensuse.org
For additional commands, e-mail: zypp-devel+help(a)opensuse.org