Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Sep 2003 22:34:56 -0400
From:      Rahul Siddharthan <rsidd@online.fr>
To:        chat@freebsd.org
Subject:   Re: The Old Way Was Better
Message-ID:  <20030908023456.GA3126@online.fr>
In-Reply-To: <Pine.BSF.4.44.0309070044200.75233-100000@s1.stradamotorsports.com>

next in thread | previous in thread | raw e-mail | index | archive | help
For around 4 months now I've been mainly using Debian because I couldn't
get FreeBSD to work on my new laptop.  I really like the way they do
things.  In a nutshell, they always have *three* branches:

"stable" -- frozen, only bugfixes go in
"testing" -- stuff in a queue for a "stable" release
"unstable" -- the main development distribution

"Unstable" packages are typically the latest bleeding-edge versions, and
therefore a new package may break a lot of others, etc.  Packages are
imported from "unstable" into "testing" automatically by a script, when
it satisfies the criteria given at http://www.debian.org/devel/testing
and "testing" becomes "stable" when the bug-count drops to acceptable
levels (to facilitate this they "freeze" it when they think it's getting
ready for a release).  When "testing" becomes the new "stable", the old
"stable" is archived.  

There are security advisories and bugfixes for "stable" but little else
(so it's like our -RELEASE branches).  It is thus ideal for production
environments where you want a solid system and not the latest bells and
whistles, but if you look at the package list it has a distinctly musty,
old-fashioned smell.  Security advisories are not a priority for
"testing" or "unstable" (because of lack of resources).  "unstable"
tends to have the latest versions of packages so should be secure
generally.  I run a mixture of "testing" and "unstable" and the whole
setup has been remarkably bugfree so far.

I don't know how this could work for the FreeBSD base system, which is
not a collection of packages.  But it actually strikes me as an
excellent idea for the ports system.  My big peeve with the ports system
has long been the way a single port can break your entire system: you
have port foo 1.0 installed, but the latest version is 1.1 and port bar
requires foo 1.1 and pulls it in, but that breaks 200 other packages
using foo 1.0.  Recent example: gettext.  Older example, the one that
bit me: libpng 1.0->1.2.  (Of course, if you have lots of bandwidth and
cpu time, you could just use portupgrade to rebuild all your ports.  We
need a better answer.) This really arises from the fact that the ports
system can only have one version of a port at a time, so it is forced to
be bleeding-edge.  Even worse, it's the same ports tree for RELENG-4 and
RELENG-5.  Another bottleneck is that each contributed port must come in
via a PR and then be committed by a committer, who ultimately is
responsible for testing it and seeing what breaks, in contrast to
Debian's more "distributed" system and automated unstable->testing move
process.

The DragonFly people seem to have some ambitious goals, and Matt even
mentions Debian as an example of how to do packaging right.  I'd like to
give DF a spin, but I may have no better luck on this laptop than with
FreeBSD.

Rahul



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030908023456.GA3126>