Resend, as I've incorporated Dan's suggestions from last time. The feature set is still the same, but I've thought about how removal of optdepends should work. See https://wiki.archlinux.org/index.php/User:Moben/Pacman_OptDepends This implements most features from https://wiki.archlinux.org/index.php/User:Allan/Pacman_OptDepends What is there: - No regressions afaics - Only show uninstalled optdepends during install/upgrade - In package info, show [installed] after installed optdepends - In package info (local or -ii) show packages which optionally depend on the queried package - '-Qt' doesn't consider optdepends to be orphans, unless '--nooptdeps/-n' is given What is still missing: - Show which of the packages listed by '-Qtn' is an optdepend and what optdeps on it - In package info display the description alongside the "reverse optdeps" - Recursive removal of unneeded optdeps - Anything listed under "Other Ideas" - Tests (mainly needed for the package removal stuff I think) - Docs with less sucky english ;-) --- Benedikt PS: I'll start working on the rest soon, but that might be delayed due to me going on vacation in the first two weeks of August ;-) Benedikt Morbach (6): Split optdep into alpm_depend_t and description Hook new optdepend structures up Only display uninstalled optdepends during install/upgrade Show optdep install status in package info optdepends are not orphans unless --nooptdepends is specified Make package info show optional requirements doc/pacman.8.txt | 6 +++ lib/libalpm/alpm.h | 14 ++++++- lib/libalpm/be_local.c | 11 ++++- lib/libalpm/be_package.c | 5 +- lib/libalpm/be_sync.c | 7 +++- lib/libalpm/deps.c | 68 +++++++++++++++++++++++++++++++ lib/libalpm/deps.h | 3 + lib/libalpm/package.c | 39 ++++++++++++------ src/pacman/conf.h | 1 + src/pacman/package.c | 13 +++++- src/pacman/pacman.c | 3 + src/pacman/query.c | 16 ++++++- src/pacman/util.c | 99 ++++++++++++++++++++++++++++++++++++++++------ src/pacman/util.h | 1 + src/util/pactree.c | 2 +- 15 files changed, 251 insertions(+), 37 deletions(-) -- 1.7.6