Lately more and more text packages are adding X extensions. Quite often these are useless or even counter-intuitive (taking mouse control focus in vim inside of an Xterm, for instance)
Since for most of these packages the X support is a hack or kludge, it really should be kept seperate. vim is fully useful without being compiled with X support. a seperate package (vim-x) containing simply the vim binary would suffice for X support. Other packages I've noticed that suffer from GUI bloat: mtools. Quick, who can tell me why mtools needs xlib6 installed? who can tell me why this functionality is needed in a command-line program (with NO graphical output whatsoever)? And why it can't be in a seperate package? ytalk. the X mode has nowhere near the support that any xterm/rxvt has. No select/cut-paste etc. It's so pointless that I alias ytalk to ytalk -x on a system-wide basis. Yet I'm forced to install xlib6 anyway. Does anyone actually USE the X mode of ytalk? spim/xspim. xspim can depend on spim being installed and again, just be the x-enabled-binary and manpage. global. global includes gozilla. What is gozilla? From the manpage: gozilla - force mozilla to display specified source file bloat bloat bloat. NETHACK. Yes. The classic text game we all know and love; bloated with X requirements for a seperate binary. Again, seperate package depending on the first. I'm not sure why festival requires so many X libraries, I can't find any refrence in the manpage to a graphical mode. But I'm not familiar with the package so the manpage may just have omitted it. imagemagick, required for many CGI applications, needs X for a few functions that will never be needed in anything but display/convert. That's probably an upstream issue we won't be able to solve, though. gifsicle. From the description: Gifsicle is a powerful command-line program for manipulating GIF images However, it includes a rudimentary gif viewer as well, which needs X. So much for 'command-line'. At this point, you get the picture. I'm about 25% through the list of packages that require X11, so I'm sure there's more examples. Now, debian is the only distribution that's really good about being a server-OS. The package management is really suited to multi-deployment. However, these heavy ties to a not-very-light GUI have to go. Yes, xlib6g itself isn't very large, but when you add up all the bloat of every package that requires it (generally in a seperate, redundant binary) for a generally useless non-feature, it gets rather hefty. Also, I have a hard time deleting /usr/X11R6 on my servers because so many non-intuitive applications depend on X. Since the freeze has been pushed back, now might be a good time to identify some of these packages and split them. Many that I've pointed out are quite easy to repackage. Others require a few tweaks to the build process to create X/nonX binaries. Some will not be possible, due to historic or upstream reasons. (Much as I'd love to kill the X mode of ytalk, it's been there too long. It's still suprising, though.) For those WITH X, Here's a proposal. Conditional reccomendations. This may be useful for other things as well, but in this case: Package: nethack Reccomends: (xnethack IF xserver) --Dan