Subject: audit on pkg DEPENDS needed ?
To: None <tech-pkg@netbsd.org>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-pkg
Date: 11/21/2000 16:17:55
I have a suspicion (well, more than a suspicion) that some of
the DEPENDS in some of the pkgs are totally absurd...

This is kind of a hard problem to be certain of, as obviously
adding a DEPENDS to a package won't hurt it (except in perhaps
the odd case where it causes a conflict) - ie: adding

DEPENDS+= kdebase-1.1.2:../../x11/kdebase

into the Makefile for shells/bash2 won't stop bash from building
or running - it won't make the slightest difference, except to
how long it takes to build (and only then if you don't have kde
installed).

But removing such a thing is hard once it is there, as it is never
quite clear just why the thing is there.

The worst of these stray dependancies I have found is that gcombust
(the GUI for CD recording) has a DEPENDS on gv (the GUI for viewin
postscript files).   A while ago I came across that one, when adding
a CD burner to a system without a display - I'd never had a reason to
install ghostscript (or gv) on that system, as being headless, I never
use it for reading files.   But a gui for making CDs seemed like a
good idea.

When I saw it start to ramble off and fetch ghostscript to make the
thing I was astounded...   but not for too long, editing the DEPENDS
line out of the gcombust Makefile soon proved that the dependency
was totally specious - gcombust doesn't require gv for anything at all.

Now it is possible that the interface may be improved a little, or
that some extra functionality might be available if gv is installed,
gcombust has the ability to use cdlabelgen to produce a label for the
CD, and if you want to view that before printing it, then a postscript
viewer would be a good thing to have - but it isn't needed.

Even the depenency on cdlabelgen in gcombust is arguably wrong, it isn't
essential for the program, it is just a nice frill to have.

Another example of this is the dependency of lesstif upon lynx.   As best
I can make out, the only purpose of this is so some htmp doc can be
converted into plain text.  The lesstif configure script seems to work
just fine without lynx - it tests for it, and seems to know how to
avoid using it if it doesn't exist.   So, is the dependency really
required, or is it just one of the "this will do better if this package
is also present, so let's require it".

An example of a package that's done exactly right is exmh - it has just
3 dependencies - it really requires tk (it is a wish script), it
is absolutely useless without mh (nmh) installed, and it needs metamail (mm)
to handle accessing mime messages - all part of the basic functionality of
exmh.

But exmh works better if glimpse, ispell, faces, and several different
variants of pgp are also installed (and most likely more I don't recall).
But none of those are essential, they're not required for exmh, so they
shouldn't be dependencies, and fortunately, aren't.   Well done on that
one.

kre