Subject: Re: solaris pkgsrc, gcc, and bulk builds (fwd)
To: Mark Linimon <linimon@lonesome.com>
From: Alistair Crooks <agc@pkgsrc.org>
List: tech-pkg
Date: 02/08/2005 11:46:18
On Mon, Feb 07, 2005 at 06:42:41PM -0600, Mark Linimon wrote:
> On Mon, 7 Feb 2005, Eric Boutilier wrote:
> 
> > In the world of open-source software (OSS) there are just a few
> > "distros" that are source-based. The two major ones appear to be
> > Portage (gentoo.org) and Pkgsrc (netbsd.org).
> 
> I don't wish to be rude here, as I'm a FreeBSD developer who just
> monitors the list to stay informed, but ...
> 
> According to my latest statistics, the FreeBSD ports collection stands
> at 12313 ports*, the majority of which are source-based (a few include
> Linux RPMs that we run in compatibility mode; there are a scattered
> number of other binary-only ports.)
>
> Currently of the above number, we package up over 11000.  (A few
> hundred cannot be packaged due to licensing restrictions; the others
> have various build problems.)
 
I talked about this kind of thing at last year's pkgsrccon, in Vienna. 
At the last count, pkgsrc has less than half the number of
packages/ports that FreeBSD has, and, last time I looked, Debian had a
similar number to FreeBSD, although Debian tends to concentrate on
what we would call binary packages, rather ironically in view of the
GPL and its emphasis on source code.  But I believe (strongly) that
the depth of packages is only one part of the story - pkgsrc runs on
all of the different NetBSD architectures (and, in the past, that has
meant BE and LE, a.out and ELF, LP64 and ILP32, and various
combinations of those, including migrating the i386 port from a.out to
ELF "seamlessly"). 

And, over time, pkgsrc has evolved to run on a number of different
platforms, not just NetBSD - Interix, and Solaris are probably two
ends of the spectrum there.  Mac OS X, FreeBSD and OpenBSD are
covered, too, as are Linux and others.  So the number of packages is a
good metric, yes, but it's just one citerion, and certainly not the
only one by which you can judge the effectiveness, worth and
usefulness of a packaging system.  I like to think of it
multi-dimensionally, where number of packages is the height, and
native OS platforms are the breadth, and "foreign" OS coverage the
depth in the graph.
 
> This is not to say that the Ports Collection is either better or worse
> than pkgsrc -- for one thing, they have different goals and methodologies.
> (pkgsrc is branched and FreeBSD's tree isn't; FreeBSD runs on far fewer
> architectures, although it does include sparc64.  Each of these allows
> certain simplifications.)  The point of this post isn't really to belabor
> any of the above -- but surely any survey of source-based applications
> frameworks should include FreeBSD's work.

Indeed - FreeBSD should be included as well.
 
> * the FreeBSD terminology is: 'port' is the application framework
> such as Makefiles; 'package' is the resulting binary.  This is as
> opposed to the NetBSD meaning of 'port' as 'processor architecture'.

Yes, this was one of the first things that had to be changed when we
imported the original FreeBSD framework - "port" already had a meaning
in the NetBSD community, and "package" was the obvious use.  To be
blunt, "package" is much more informative to me than "port", but maybe
I'm biased.  BTW, the origins can be seen in certain immutable things
- the LOCAL_PORTS directory, for example - although we should be
looking at symbolic links or null mounts to migrate away from this
kind of thing.

Regards,
Alistair