...every day a little pondering, backstage information, jokes, tips and tricks.
1
Little Pondering
Completeness of a Software Distribution
There are only 10 types of people in the world
— those who understand binary, and those who don't.
According to the
OpenPKG package
browser, OpenPKG-CURRENT has "just" about 1,000 packages. But
FreeBSD seems to have over 15,000 "ports" and Debian GNU/Linux seems
to have even over 20,000 "dpkg" packages. So what? Well, comparing the
absolute number of packages between different software distributions
is more or less useless. There are three major reasons.
Single package from multiple components
First, a single "package" of an arbitrary software distribution can
contain just one or lots of upstream vendor software components. The
most extreme example here are Perl packages from CPAN: FreeBSD ports
and Debian GNU/Linux provide one package for each Perl module. On the
other hand OpenPKG bundles together between 10 and 60 Perl modules
into a single package.
Multiple packages from single component
Second, a single upstream vendor software components can be split into
multiple packages. For instance Debian GNU/Linux splits OSSP uuid
into one package providing the C library, one package providing its
Perl bindings, one package providing its PHP bindings, one package
providing its PostgreSQL bindings, etc. On the other hand OpenPKG
provides just a single package for OSSP uuid which contains both
the C library and the Perl, PHP and PostgreSQL bindings. To still
achieve the same flexibility, the OpenPKG package leverages build-time
"options" which can be used to enable or disable the individual
language bindings.
Different Packaging Scopes
Third, not all software distributions have the same scope. While
FreeBSD ports and Debian/GNU Linux package software for both
server and desktop computing, OpenPKG packages mainly just server
applications.
Once you take those three points into account, you see that from a
completeness point of view there is no real difference between OpenPKG
and other popular software distributions. They all try hard to provide
a rather complete set of packaged software components. They just have
different philosophies
how to package them.