| 1 | THE FREEBSD CURRENT POLICY |
| 2 | |
| 3 | This document attempts to explain the rationale behind FreeBSD-current, |
| 4 | what you should expect should you decide to run it, and states some |
| 5 | prerequisites for making sure the process goes as smoothly as possible. |
| 6 | |
| 7 | |
| 8 | 1. What is FreeBSD-current? |
| 9 | |
| 10 | FreeBSD-current is, quite literally, nothing more than a daily snapshot of |
| 11 | the working sources for FreeBSD. These include work in progress, experimental |
| 12 | changes, and transitional mechanisms that may or may not be present in |
| 13 | the next official release of the software. While many of us compile |
| 14 | almost daily from FreeBSD-current sources, there are periods of time when |
| 15 | the sources are literally uncompilable. These problems are generally resolved |
| 16 | as expeditiously as possible, but whether or not FreeBSD-current sources bring |
| 17 | disaster or greatly desired functionality can literally be a matter of which |
| 18 | part of any given 24 hour period you grabbed them in! Please read on.. |
| 19 | |
| 20 | Under certain circumstances we will sometimes make binaries for parts of |
| 21 | FreeBSD-current available, but only because we're interested in getting |
| 22 | something tested, not because we're in the business of providing binary |
| 23 | releases of current. If we don't offer, please don't ask! It takes far |
| 24 | too much time to do this as a general task. |
| 25 | |
| 26 | |
| 27 | 2. Who needs FreeBSD-current? |
| 28 | |
| 29 | FreeBSD-current is made generally available for 3 primary interest groups: |
| 30 | |
| 31 | 1. Members of the FreeBSD group who are actively working on one |
| 32 | part or another of the source tree and for whom keeping `current' |
| 33 | is an absolute requirement. |
| 34 | |
| 35 | 2. Members of the FreeBSD group who are active ALPHA/BETA testers |
| 36 | and willing to spend time working through problems in order to |
| 37 | ensure that FreeBSD-current remains as sane as possible. These |
| 38 | are also people who wish to make topical suggestions on changes |
| 39 | and the general direction of FreeBSD. |
| 40 | |
| 41 | 3. Peripheral members of the FreeBSD (or some other) group who merely |
| 42 | wish to keep an eye on things and use the current sources for |
| 43 | reference purposes (e.g. for *reading*, not running). These |
| 44 | people also make the occasional comment or contribute code. |
| 45 | |
| 46 | |
| 47 | 3. What is FreeBSD-current _NOT_? |
| 48 | |
| 49 | 1. A fast-track to getting pre-release bits because there's something |
| 50 | you heard was pretty cool in there and you want to be the first on |
| 51 | your block to have it. |
| 52 | |
| 53 | 2. A quick way of getting bug fixes. |
| 54 | |
| 55 | 3. In any way "officially supported" by us. |
| 56 | |
| 57 | We do our best to help people genuinely in one of the 3 |
| 58 | "legitimate" FreeBSD-current catagories, but we simply DO NOT |
| 59 | HAVE THE TIME to help every person who jumps into FreeBSD-current |
| 60 | with more enthusiasm than knowledge of how to deal with |
| 61 | experimental system software. This is not because we're mean and |
| 62 | nasty people who don't like helping people out (we wouldn't even be |
| 63 | doing FreeBSD if we were), it's literally because we can't answer |
| 64 | 400 messages a day AND actually work on FreeBSD! I'm sure if |
| 65 | given the choice between having us answer lots of questions or |
| 66 | continue to improve FreeBSD, most of you would vote for us |
| 67 | improving it (and so would we! :-). |
| 68 | |
| 69 | |
| 70 | 4. Ok. I still think I "qualify" for FreeBSD-current, so what do I do? |
| 71 | |
| 72 | 1. Join the freebsd-hackers and freebsd-commit mailing lists. |
| 73 | This is not just a good idea, it's ESSENTIAL. If you aren't on |
| 74 | freebsd-hackers, you won't read the comments that people are |
| 75 | making about the current state of the system and thus will end |
| 76 | up stumbling over a lot of problems that others have already |
| 77 | found and solved. Even more importantly, you will miss out on |
| 78 | potentially critical information (e.g. "Yo, Everybody! Before you |
| 79 | rebuild /usr/src, you MUST rebuild the kernel or your system |
| 80 | will crash horribly!"). |
| 81 | |
| 82 | The freebsd-commit list will allow you to see the commit log |
| 83 | entry for each change as its made. This can also contain |
| 84 | important information, and will let you know what parts of the |
| 85 | system are being actively changed. |
| 86 | |
| 87 | To join these lists, send mail to `majordomo@freefall.cdrom.com' |
| 88 | and say: |
| 89 | |
| 90 | subscribe freebsd-hackers |
| 91 | subscribe freebsd-commit |
| 92 | |
| 93 | In the body of your message. Optionally, you can also say `help' |
| 94 | and MajorDomo will send you full help on how to subscribe and |
| 95 | unsubscribe to the various other mailing lists we support. |
| 96 | |
| 97 | 2. Grab the sources from freebsd.cdrom.com. You can do this in |
| 98 | two ways: |
| 99 | |
| 100 | 1. Use the CMU `sup' program (Software Update Protocol). |
| 101 | This is the most recommended method, since it allows you |
| 102 | to grab the entire collection once and then only what's |
| 103 | changed from then on. Many people run sup from cron |
| 104 | and keep their sources up-to-date automatically. |
| 105 | |
| 106 | To get a binary of the sup program for FreeBSD, as well |
| 107 | as the documentation and some sample configuration files, |
| 108 | look in: |
| 109 | |
| 110 | freefall.cdrom.com:~ftp/pub/sup |
| 111 | |
| 112 | 2. Use ftp. The source tree for FreeBSD-current is always |
| 113 | "exported" on: |
| 114 | |
| 115 | freebsd.cdrom.com:~ftp/pub/FreeBSD/FreeBSD-current |
| 116 | |
| 117 | We use `wu-ftpd' which allows compressed/tar'd grabbing |
| 118 | of whole trees. e.g. you see: |
| 119 | |
| 120 | usr.bin/lex |
| 121 | |
| 122 | You can do: |
| 123 | |
| 124 | ftp> cd usr.bin |
| 125 | ftp> get lex.tar.Z |
| 126 | |
| 127 | And it will get the whole directory for you as a compressed |
| 128 | tar file. |
| 129 | |
| 130 | 3. If you're grabbing the sources to run, and not just look at, |
| 131 | then grab ALL of current, not just selected portions. The |
| 132 | reason for this is that various parts of the source depend on |
| 133 | updates elsewhere and trying to compile just a subset is almost |
| 134 | guaranteed to get you into trouble. |
| 135 | |
| 136 | 4. Before compiling current, read the Makefile in /usr/src |
| 137 | carefully. You'll see one-time targets like `bootstrapld' |
| 138 | which *MUST* be run as part of the upgrading process. Reading |
| 139 | freebsd-hackers will keep you up-to-date on other bootstrapping |
| 140 | procedures that sometimes become necessary as we move towards |
| 141 | the next release. |
| 142 | |
| 143 | 5. Be active! If you're running FreeBSD-current, we want to know |
| 144 | what you have to say about it, especially if you have suggestions |
| 145 | for enhancements or bug fixes. Suggestions with accompanying code |
| 146 | are received most enthusiastically! :-) |
| 147 | |
| 148 | |
| 149 | Thank you for taking the time to read this all the way through. We're |
| 150 | always very keen to remain "open" and share the fruits of our labor |
| 151 | with the widest possible audience, but sharing development sources has |
| 152 | always had certain pitfalls associated with it (which is why most |
| 153 | commercial organizations won't even consider it) and I want to make |
| 154 | sure that people at least come into this with their eyes open, and |
| 155 | don't make the leap unless they're good at working without a net! |
| 156 | |
| 157 | Jordan |
| 158 | |
| 159 | |
| 160 | |