(Very) bogus package dependencies

Beech Rintoul beech at freebsd.org
Mon Dec 10 11:10:49 PST 2007

On Monday 10 December 2007, Paul Schmehl said:
> --On Monday, December 10, 2007 16:33:20 +0200 Andriy Gapon
> <avg at icyb.net.ua> wrote:
> >> From a small research it seems that the only thing needed from
> >> cdrtools
> >
> > is isoinfo utility which gets called in FreeBSD-specific code
> > (hald/freebsd/probing/probe-volume.c) like follows:
> > isoinfo -p -i %s
> > And it seems that its only usage is to detect presence of
> > directories named 'VIDEO_TS|VCD|SVCD', so that properties like
> > volume.disc.is_videodvd could be set.
> >
> > Maybe there is a way to write code for this functionality that
> > could be included into hal source code or as a port patch, so
> > that hal doesn't have to depend on cdrtools.
> While I have no objections to this particular  suggestion, my
> question would be - where do you stop?  You could easily do this
> for hundreds (if not thousands of ports) that depend upon some
> other port because of one piece of code.
> In general. port maintainers follow the guidelines of the software
> developer.  If the developer states that the software depends upon
> cdrtools, then the maintainer is going to include that dependency
> in the port.  Many of us don't have sufficient skill to audit code
> and determine where a dependency could be replaced by some
> additional code.
> So, while this might make sense in isolated cases, I don't think it
> scales well.  Furthermore, modern machines generally have enough
> disc space that the addition of a few "unused" ports to include
> necessary code is a small price to pay to distribute the load of
> providing ports over a larger population of volunteers.  (And yes,
> I know not everyone has a modern machine or large discs to work
> with.)

I agree. The ports tree is a moving target. Any time you add custom 
code to a port it puts you (as maintainer) in the position of being 
both developer and maintainer. Frequently building a port will pull 
in dependencies all of which are maintained by different people. We 
already run into the problem where updating port foo requires port 
bar be updated first. Fortunately, there is a lot of cooperation by 
those on the project and  it's rarely an issue. However, adding 
dependent code into the port itself would make this situation an 
absolute nightmare. Instead of maintaining one port, now you're 
maintaining two or more (not to mention license issues). We already 
have ports in the tree which download and extract other ports, but 
only use a specific piece. These tend to all be from the same master 
port or family.  If disk space is a premium common tools like 
autotools can be removed after the port is built, but doing that will 
quickly paint you into a corner where you no longer have the space to 
build. We have options in ports that frequently determine if a 
dependency will be built or not depending on choice. It's up to the 
individual maintainer to include options. Many ports have additional 
options which can be set (or unset) from the command line. We tend to 
include the most common options, but that doesn't mean others aren't 
available. Anyone with interest at this level is strongly encouraged 
to read the port's Makefile before building and installing.

Beech Rintoul - FreeBSD Developer - beech at FreeBSD.org
/"\   ASCII Ribbon Campaign  | FreeBSD Since 4.x
\ / - NO HTML/RTF in e-mail   | http://www.freebsd.org
 X  - NO Word docs in e-mail | Latest Release:
/ \  - http://www.FreeBSD.org/releases/6.2R/announce.html

More information about the freebsd-ports mailing list