Hi there! This should implement everything that's listed on this page: https://wiki.archlinux.org/index.php/User:Allan/Pacman_OptDepends I know that this is probably 4.1 material and will most likely need quite a bit of polish, but I'd like to gather some comments now before the bit-rot creeps in. If you like, you can also get the code at https://github.com/moben/pacman on the optdep branch. Please take a look and comment. --- Benedikt Benedikt Morbach (15): 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 --optdeps is specified Make package info show optional requirements Make recursive removal consider optdepends Show list of optrequires with -Qtdn Add config option for showing all optdeps again Warn on optdep removal Add flag to recurse through optdepends Show status on optdepends that are part of transaction Add option to install all optdepends by default Add option to ask which optdeps to install Make both HandleOptdeps settings work together doc/pacman.8.txt | 11 +++ doc/pacman.conf.5.txt | 14 ++++ etc/pacman.conf.in | 3 + lib/libalpm/add.c | 4 +- lib/libalpm/alpm.h | 25 ++++++- lib/libalpm/be_local.c | 12 +++- lib/libalpm/be_package.c | 5 +- lib/libalpm/be_sync.c | 8 ++- lib/libalpm/deps.c | 127 ++++++++++++++++++++++++++++++---- lib/libalpm/deps.h | 5 +- lib/libalpm/error.c | 2 + lib/libalpm/package.c | 40 ++++++++--- lib/libalpm/remove.c | 22 +++++-- lib/libalpm/sync.c | 2 +- lib/libalpm/trans.c | 10 ++- src/pacman/conf.c | 28 ++++++++ src/pacman/conf.h | 10 +++ src/pacman/package.c | 24 +++++-- src/pacman/pacman.c | 7 ++ src/pacman/query.c | 27 ++++++- src/pacman/remove.c | 35 ++++++++-- src/pacman/sync.c | 125 ++++++++++++++++++++++++++++++++-- src/pacman/upgrade.c | 2 +- src/pacman/util.c | 172 +++++++++++++++++++++++++++++++++++++++------ src/pacman/util.h | 5 +- src/util/pactree.c | 2 +- src/util/testdb.c | 2 +- 27 files changed, 635 insertions(+), 94 deletions(-) -- 1.7.6.1