Policy on X requirements.
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
Reply to: