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

Re: Is debhelper build-essential?



to, 2005-01-13 kello 04:07 +0000, Scott James Remnant kirjoitti:
> The stats:
> 
>   8,920  source packages in Debian unstable main.
>   8,254  declare a build-dependency on debhelper
> 
>   = 92% of packages build-depend on debhelper.
> 
> Is that sufficient to declare it build-essential?

Hm, I get slightly different numbers:

$ awk '/^Build-Depends/ { $1 = ""; print }' Sources | tr , '\n' | \
awk '{ print $1 }' | sort | uniq -c | sort -nr | head
   8278 debhelper
    895 perl
    820 cdbs
    752 xlibs-dev
    556 autotools-dev
    508 dpatch
    460 zlib1g-dev
    409 gettext
    386 libncurses5-dev
    379 libgtk2.0-dev

The exact numbers are not, however, important. It is clear that
debhelper is by far the most popular explicit build dependency, by an
order of magnitude. (Incidentally, there seems to be a few packages that
explicitly build-depend on build-essential, which is probably not what
the package was meant for.)

The Policy Manual says this about build essential packages:

        It is not necessary to explicitly specify build-time
        relationships on a minimal set of packages that are always
        needed to compile, link and put in a Debian package a standard
        "Hello World!" program written in C or C++.

I don't think debhelper fits into this category. On the other hand,
build-essential (version 10.1) already depends on file, html2text,
debconf-utils, and po-debconf, which I think are also not necessary for
building a "hello, world" program.

I happen to think that explicit dependencies are in general better than
implicit ones. Being explicit tends to simplify things. We invented
build-essential, however, because having to explicitly build-depend on,
say, perl all the time is more error prone than having the dependency be
implicit. perl (not just perl-base) is, in practice, on every Debian
machine used for building packages, and if one had to explicitly
build-depend on it, there would be lots of accidentally missing build
depedencies on it. This would result in needless FTBFS bugs, if nothing
else.

I don't think debhelper is in the same category as perl is: pretty much
all packages that need it already properly build depend on it. (The rest
could be fixed.)

I don't mind debhelper becoming build-essential, but I don't think
that's what build-essential was really meant for. If we expand its
meaning, we should probably clarify its description in the Policy Manual
as well.



Reply to: