(apologies to Johannes for initially replying to him and not the list on accident) On 6/8/07, Johannes Winkelmann <jw@smts.ch> wrote: * snip *
c. Some package may have no dependent packages, but you want to keep them nevertheless. Consider this real world example: the window manager 'openbox' comes with a configuration tool, called 'obconf'. The 'obconf' port from the portdb depends on 'openbox'. Now imagine you've had openbox installed before, and decide to try 'obconf'; after a while you realize you don't like it. 'prt-get remove obconf' as you imagine it would then remove openbox as well, since there are no other packages depending on it on the system. Here, you have to bring in external knowledge about the user's preferences.
One of my credos for prt-get has always been "If you can't do it right, don't do it at all", and with that in mind, adding a 'depremove' feature which would potentially do the wrong thing at times seemed a bad idea.
I think you'd need a way to separate 'libraries' (packages that merely exist to add functionality to other packages) from 'binaries' (packages which contain actual applications the user runs). Of course, for example, the sqlite library also contains a binary tool for manipulating sqlite databases. So, you'd basically have to add metadata to Pkgfiles in the comment section, in which case you'd run the risk of being burnt by a ports update breaking your system. Or, you could add metadata to the package database, which would really start turning the package manager into something more like rpm or dpkg. I've really been frustrated by this problem for years, and the only solutions I've come up with are: 1. Stop caring that you may have some extra packages you don't need lying around (this is actually the best approach unless you are crammed for space). If you run prt-get depinst gnome-terminal, don't expect to get your system back to the pristine state it started in when you first installed crux. 2. Be very careful about installing software. Understand what exactly goes on when you do a prt-get depinst, and keep track of the dependencies on your own. 3. Every now and then, list all your installed ports and find any ports you don't need any more. Nathan