Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Feb 2015 11:45:34 -0600
From:      John Goerzen <jgoerzen@complete.org>
To:        freebsd-questions@freebsd.org
Subject:   Ports/Packages and release engineering
Message-ID:  <54DF89BE.6010005@complete.org>

next in thread | raw e-mail | index | archive | help
Hello folks,

FreeBSD was my first Unix roughly 20 years ago now, and I'm looking to
pick it back up again.  (I've been using Debian since then.)  My
knowledge is, ahem, dated ;-)  I have some questions pertaining to the
ports and packages -- hopefully this is the right list for them (I could
take it to -ports if that would be better.)

The questions mainly relate to two main lines of thought: ensuring
consistency within the ports/packages collection, and ensuring
consistency between ports and the base system.  A lot of my questions
may be "OK, I'm used to this happening in way X.  What is the FreeBSD way=
?"

So, it looks to me that ports is essentially always a -CURRENT tree.  I
don't see any reference in the handbook to selecting different branches
of ports, or different branches that might happen to match different
RELEASE versions.  How, then, is quality maintained within the ports?=20
Is it just luck of the draw on when a local update happens that it gets
a version that didn't have a silly bug that got corrected a day later,
or how do ports get tested before being released to everyone?

One thing I know from Debian is that there we often have "transitions"
from Debian's unstable (roughly -CURRENT) to testing (roughly -STABLE)
when certain groups of packages have to be transitioned in sync in order
to avoid breakage.  This might be things relating to KDE (such as
Digikam), or another example is Haskell, where new versions of the
compiler ghc introduce a different ABI requiring all the Haskell module
packages to be rebuilt.  There are plenty of examples, though.  How are
these handled in FreeBSD?

When packages are updated, what happens to their config files and rc.d
scripts?  Are files in /usr/local/etc, /etc, {/usr/local,}/etc/rc.d
never modified automatically, or is the administrator prompted on what
to do (as in Debian)?  If they are never modified automatically, how
does a person know what changes to make after an update?

This brings me to the question of how the ports/packages relate to the
base system.  A couple of things surprised me in researching this
question: the first being the comment in the Handbook to reinstall the
entire ports/packages system after a base system upgrade to a new major
version, due to ABI incompatibilities.  I would have thought backward
ABI compatibility would be a pretty important design goal in FreeBSD.=20
The other thing was that ports are only tested against -CURRENT and
-STABLE, therefore implying that even the current -RELEASE may not have
working ports (let alone even an LTS -RELEASE).  That leaves me
concerned about the long-term viability of managing FreeBSD systems, but
also wondering if I'm missing out on some important bit of information he=
re.

Speaking of which, when the base system is upgraded, how are
administrator customizations in /etc and related configuration locations
preserved?  (Same question as with the ports updates above.)

Another small question: I ran something like "pkg install xserver-xorg
digikam vim screen bash" the other day in my FreeBSD test VM.  I
discovered quite a bit of information was printed out at the end from
various packages, which scrolled off the screen.  Is there a way to
re-display all that information?  It seems if it's important enough to
display, it's important enough to display long enough to read ;-)

Thanks everyone,

John





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