Duncan Mac-Vicar Prett schrieb:
- Do a solver run for the case of installing a single package and see which packages the solver mark for installation (isToBeInstalled() isBySolver()) but this also would mark a broken requires for another package for installation, like you have mplayer installed which depends on libsdl, but libsdl was uninstalled by rpm -force, the solver will mark for installation even if it is not a requires of foo, anyway I am not 100% sure if this is the behavior libzypp does right now (moving the system automatically to a consistant state).
Ähm, the solver does regard dependencies of to be installed packages only. So, if libsdl is not required by foo the solver will not blame the requirements of libsdl from mplayer. Anyway, you need a solver run here. In this case you can use following API of the solver: /** * Gives information about WHO has pused an installation of an given item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which has triggered the installation of the given param item. * cap Capability which has triggerd this installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ const solver::detail::ItemCapKindList isInstalledBy (const PoolItem_Ref item); /** * Gives information about WHICH additional items will be installed due the installation of an item. * * \param item Evaluate additional information for this resolvable. * \return A list of structures which contains: * item Item which will be installed due to the installation of the given param item too. * cap Capability which causes the installation * capKind Kind of that capability (e.g. Dep::REQUIRES,Dep::RECOMMENDS,... ) * * Note: In order to have a result start a solver run before. Not matter if it is valid or invalid. * */ const solver::detail::ItemCapKindList installs (const PoolItem_Ref item); I am not sure if we can provide this information in the future by the new SAT-solver. But we will try it. :-) The other way (without solving) has been already described by Michl Andres on this mailing-list. Greetings Stefan -- ******************************************************************************* Stefan Schubert SUSE LINUX GmbH - Maxfeldstrasse 5 - D-90409 Nuernberg, Germany e-mail: schubi@suse.de ------------------------------------------------------------------------------- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org