                        THE FREEBSD CURRENT POLICY 

Last updated: $Date: 1994/10/03 03:48:39 $

This document attempts to explain the rationale behind FreeBSD-current,
what you should expect should you decide to run it, and states some
prerequisites for making sure the process goes as smoothly as possible.


1.  What is FreeBSD-current?

FreeBSD-current is, quite literally, nothing more than a daily snapshot of
the working sources for FreeBSD.  These include work in progress, experimental
changes, and transitional mechanisms that may or may not be present in
the next official release of the software.  While many of us compile
almost daily from FreeBSD-current sources, there are periods of time when
the sources are literally uncompilable.  These problems are generally resolved
as expeditiously as possible, but whether or not FreeBSD-current sources bring
disaster or greatly desired functionality can literally be a matter of which
part of any given 24 hour period you grabbed them in!  Please read on..

Under certain circumstances we will sometimes make binaries for parts of
FreeBSD-current available, but only because we're interested in getting
something tested, not because we're in the business of providing binary
releases of current.  If we don't offer, please don't ask!  It takes far
too much time to do this as a general task.


2. Who needs FreeBSD-current?

FreeBSD-current is made generally available for 3 primary interest groups:

    1.  Members of the FreeBSD group who are actively working on one
        part or another of the source tree and for whom keeping `current'
        is an absolute requirement.

    2.  Members of the FreeBSD group who are active ALPHA/BETA testers
        and willing to spend time working through problems in order to
        ensure that FreeBSD-current remains as sane as possible.  These
        are also people who wish to make topical suggestions on changes
        and the general direction of FreeBSD.

    3.  Peripheral members of the FreeBSD (or some other) group who merely
        wish to keep an eye on things and use the current sources for
        reference purposes (e.g. for *reading*, not running).  These
        people also make the occasional comment or contribute code.


3. What is FreeBSD-current _NOT_?

    1.  A fast-track to getting pre-release bits because there's something
        you heard was pretty cool in there and you want to be the first on
        your block to have it.

    2.  A quick way of getting bug fixes.

    3.  In any way "officially supported" by us.

        We do our best to help people genuinely in one of the 3
        "legitimate" FreeBSD-current catagories, but we simply DO NOT
        HAVE THE TIME to help every person who jumps into FreeBSD-current
        with more enthusiasm than knowledge of how to deal with
        experimental system software.  This is not because we're mean and
        nasty people who don't like helping people out (we wouldn't even be
        doing FreeBSD if we were), it's literally because we can't answer
        400 messages a day AND actually work on FreeBSD!  I'm sure if
        given the choice between having us answer lots of questions or
        continue to improve FreeBSD, most of you would vote for us
        improving it (and so would we! :-).


4.  Ok.  I still think I "qualify" for FreeBSD-current, so what do I do?

    1.  Join the freebsd-hackers and freebsd-commit mailing lists.
        This is not just a good idea, it's ESSENTIAL.  If you aren't on
        freebsd-hackers, you won't read the comments that people are
        making about the current state of the system and thus will end
        up stumbling over a lot of problems that others have already
        found and solved.  Even more importantly, you will miss out on
        potentially critical information (e.g. "Yo, Everybody!  Before you
        rebuild /usr/src, you MUST rebuild the kernel or your system
        will crash horribly!").

        The freebsd-commit list will allow you to see the commit log
        entry for each change as its made.  This can also contain
        important information, and will let you know what parts of the
        system are being actively changed.

        To join these lists, send mail to `majordomo@FreeBSD.ORG'
        and say:

            subscribe freebsd-hackers
            subscribe freebsd-commit

        In the body of your message.  Optionally, you can also say `help'
        and MajorDomo will send you full help on how to subscribe and
        unsubscribe to the various other mailing lists we support.

    2.  Grab the sources from ftp.FreeBSD.ORG.  You can do this in
        three ways:

	1.  Using the CTM facility.  Read the ctm.FAQ file for more
	    information.  Unless you have a good TCP/IP connection at
	    a flat rate, this is the way to do it.

        2.  Use the CMU `sup' program (Software Update Protocol).
            This is the second most recommended method, since it allows 
	    you to grab the entire collection once and then only what's
            changed from then on.  Many people run sup from cron
            and keep their sources up-to-date automatically.

	    The problem is that sup does not use the bandwidth efficient,
	    unless the round-trip is very fast.  If the cost of connection
	    or the duration of the session is a concern, use CTM.

            To get a binary of the sup program for FreeBSD, as well
            as the documentation and some sample configuration files,
            look in:

            FreeBSD.ORG:~ftp/pub/sup

        3.  Use ftp.  The source tree for FreeBSD-current is always
            "exported" on:

             ftp.FreeBSD.ORG:~ftp/pub/FreeBSD/FreeBSD-current

            We use `wu-ftpd' which allows compressed/tar'd grabbing
            of whole trees.  e.g. you see:

            usr.bin/lex

            You can do:

            ftp> cd usr.bin
            ftp> get lex.tar.Z

            And it will get the whole directory for you as a compressed
            tar file.

    3.  If you're grabbing the sources to run, and not just look at,
	then grab ALL of current, not just selected portions.  The
	reason for this is that various parts of the source depend on
	updates elsewhere and trying to compile just a subset is almost
	guaranteed to get you into trouble.

    4.  Before compiling current, read the Makefile in /usr/src
	carefully.  You'll see one-time targets like `bootstrapld'
	which *MUST* be run as part of the upgrading process.  Reading
	freebsd-hackers will keep you up-to-date on other bootstrapping
	procedures that sometimes become necessary as we move towards
	the next release.

    5.  Be active!  If you're running FreeBSD-current, we want to know
	what you have to say about it, especially if you have suggestions
	for enhancements or bug fixes.  Suggestions with accompanying code
	are received most enthusiastically! :-)


Thank you for taking the time to read this all the way through.  We're
always very keen to remain "open" and share the fruits of our labor
with the widest possible audience, but sharing development sources has
always had certain pitfalls associated with it (which is why most
commercial organizations won't even consider it) and I want to make
sure that people at least come into this with their eyes open, and
don't make the leap unless they're good at working without a net!

                                    Jordan



