[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: