TODO, in part based on feedback from users (thanks!): * Be better at detecting broken dependency trees; eg, if a package claims to depend on another package that does not exist. * Make it more difficult to accidentally have pkgmanager nuke all packages on the first run - be clearer to the user on the fact that pkgmanager is about to remove packages. * Do something about clisp constantly complaining about charsets on startup. * Do something about character encoding errors (triggered by at least one user). * Create some form of interactive want list editing facility that makes it easier for users to manage their want list. In particular, focus on making it easier to create an initial want list. * Allow the user to proceed with only parts of the actions pkgmanager wants to take. E.g. - skipping package removals. * Allow the user to manually override dirty/depupdate logic to avoid rebuilding huge amounts of packages when the user is quite certain it is not needed. * Support a mode in which pkgmanager looks at package versions and allows updating only packages whose upstream versions have changed (and dependents). * Have pkgmanager understand expected error conditions, such as unacceptable license failures etc. pkgmanager should not treat such failures as internal errors/bugs, as it currently does. * Forced rebuilds of packages (e.g., libc changes in DFly), either specifically for certain packages or globally. * Ability to supress pkgsrc build output and just see pkgmanager progress messages (combine with logging). * Logging of pkgsrc messages (for future reference, eg save those containing MESSAGE output), or outputs for failed builds. * Finer-grained control of verbosity, with a documented interface. DONE: * Have pkgmanager automatically add 'core' packages to the want list the first time it is run, and warn users when they try to remove them. * Don't stupidly ask about invalidating summary cache in response to mk.conf changes when the user is trying to do just that with flush-cache. * Consider both /etc/mk.conf and ${PREFIX}/etc/mk.conf. * Re-evaluate how to implement the summary cache, as it is currently unable to reliably detect changes in the pkgsrc tree. Perhaps go for a manual method where the user must trigger an update when changes have occurred (slow).