Hi I am following 9 Stable. I have read the handbook information and I am now subscribed to this list and the svn-src-stable-9@ list. Even after reading the handbook, what i'm not clear about is this: I see individual commits being submitted to the source tree; do I: - patch and update each individual commit, or; - rebuild world say once every couple of days or even each day to incorporate the changes, and; - does the kernel need to be rebuilt and reinstalled each time if using the first option. Obviously I would have to if rebuilding world (the second option). Am I right in thinking that it also depends on the type of change; i.e. if the change is to a kernel and/or a kernel module then clearly I need to rebuild the kernel. But, then would I need to rebuild the userland as well? I hope I am making sense and not asking dumb questions, I just want to be clear about the process. Essentially, I want to know if it's necessary to rebuild the entire userland and kernel sources just to incorporate a small number of changes. Obviously that's a lot of time compiling. Or, do I just patch the commited files and rebuild that bit of the sourse tree and the kernel if necessary due to the type of change made. I've not followed a FreeBSD stable branch before so just wanted to clarify those points. I'd like to be involved with testing things for the project, etc. Best wishes, Jamie. -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 4514 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20120828/c92aa04c/smime.bin
On Tue, Aug 28, 2012 at 09:31:30PM +0100, Jamie Paul Griffin wrote:> Hi > > I am following 9 Stable. I have read the handbook information and I am now subscribed to this list and the svn-src-stable-9@ list. > > Even after reading the handbook, what i'm not clear about is this: > > I see individual commits being submitted to the source tree; do I: > > - patch and update each individual commit, or; > > - rebuild world say once every couple of days or even each day to incorporate the changes, and; > > - does the kernel need to be rebuilt and reinstalled each time if using the first option. Obviously I would have to if rebuilding world (the second option). > ...Errmmm... Well, here's what I do (briefly): * I maintain /usr/src as an SVN "working copy" -- that is, I created it by (the logical equivalent of): * # cd /usr && rm -fr src && mkdir src && chown david src * $ cd /usr/src && svn co ${repo}/stable/9 . (where "$repo" is a URL for the SVN repo used). Periodically (daily, in my case), after the repo that I use has been updated, I issue: * $ svn update /usr/src and if there were updates, I rebuild. If the only updates are to the kernel sources, I often only rebuild the kernel. If any updates were not for the kernel, I rebuild both userland and kernel. See /usr/src/UPDATING; look for the string "COMMON ITEMS" (about 87% of the way into the file). I use the "To rebuild everything and install it on the current system." with the variation that I usually specify -DNOCLEAN, and I haven't actually needed to perform the "<reboot in single user>" step in longer than I can remember. I do all builds within a script(1) invocation (so I have a record), and usually within screen(1), as well (just in case Something Weird happens). I also usually specify a -j value, in order to take advantage of multiple cores. I hope that helps a bit. Peace, david -- David H. Wolfskill david@catwhisker.org Depriving a girl or boy of an opportunity for education is evil. See http://www.catwhisker.org/~david/publickey.gpg for my public key. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 196 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20120828/4f0206cf/attachment.pgp
On Tue, Aug 28, 2012 at 1:31 PM, Jamie Paul Griffin <jamie@kode5.net> wrote:> I am following 9 Stable. I have read the handbook information and I am now subscribed to this list and the svn-src-stable-9@ list. > > Even after reading the handbook, what i'm not clear about is this: > > I see individual commits being submitted to the source tree; do I: > - patch and update each individual commit, or; > - rebuild world say once every couple of days or even each day to incorporate the changes, and; > - does the kernel need to be rebuilt and reinstalled each time if using the first option. Obviously I would have to if rebuilding world (the second option).Personally, I don't update -STABLE boxes unless a specific change that's useful for my setups comes through. And then I'll usually wait 1-2 days after the specific commit hits the tree in case there's a last-minute fix to that commit. If there's nothing I want to test, or that I need, though, I don't update. So, it all depends on your needs: - are you tracking -STABLE to do development? - are you tracking -STABLE to get updated drivers? - are you tracking -STABLE to get specific functionality? - are you tracking -STABLE to help with bug finding/fixing? - etc ... What your needs are will dictate how often you update the source tree, rebuild the world, and run with the latest bits.> Am I right in thinking that it also depends on the type of change; i.e. if the change is to a kernel and/or a kernel module then clearly I need to rebuild the kernel. But, then would I need to rebuild the userland as well?Most commit logs will include information on whether it's kernel-only, userland-only, 1-module only, kernel+userland, multiple modules, etc. Depending on the speed of your machine, you can do a full buildworld cycle for every update. Or limit it to just the kernel/userland component that's updated. -- Freddie Cash fjwcash@gmail.com
On Tue, Aug 28, 2012 at 1:31 PM, Jamie Paul Griffin <jamie@kode5.net> wrote:> Hi > > I am following 9 Stable. I have read the handbook information and I am now subscribed to this list and the svn-src-stable-9@ list. > > Even after reading the handbook, what i'm not clear about is this: > > I see individual commits being submitted to the source tree; do I: > > - patch and update each individual commit, or; > > - rebuild world say once every couple of days or even each day to incorporate the changes, and; > > - does the kernel need to be rebuilt and reinstalled each time if using the first option. Obviously I would have to if rebuilding world (the second option). > > Am I right in thinking that it also depends on the type of change; i.e. if the change is to a kernel and/or a kernel module then clearly I need to rebuild the kernel. But, then would I need to rebuild the userland as well? > > I hope I am making sense and not asking dumb questions, I just want to be clear about the process. > > Essentially, I want to know if it's necessary to rebuild the entire userland and kernel sources just to incorporate a small number of changes. Obviously that's a lot of time compiling. Or, do I just patch the commited files and rebuild that bit of the sourse tree and the kernel if necessary due to the type of change made. > > I've not followed a FreeBSD stable branch before so just wanted to clarify those points. I'd like to be involved with testing things for the project, etc.Most people DON'T try to update for every commit. Many will rebuild on a daily basis. Many weekly or monthly. Some only when they see a need (such as a fix for a problem they are experiencing) or just get around to it. How you choose to do do it is entirely up to you. Manually applying updates and just rebuilding things that use that change is certainly possible, but requires careful insight as to what a given patch will impact. Does it result in a new library that my, in turn, require the rebuild of code that uses it? Kernel patches can be integrated but it is far easier to just update modules if the patch is to a part of the kernel that can be loaded as a module. In all cases, if you rebuild the kernel, be sure that the old kernel is saved to kernel.old so you can go back to it if there si a problem. 'make installkernel' does this) and, should you fix a problem and re-link the kernel, be sure NOT to overwrite the working kernel ('make reinstallkernel' does this. Also, many kernel changes impact the KBI, so some userland tools that use kernel structures (e.g. top) my fail after a kernel update that is not accompanied by a userland rebuild. In general, I update stable about once a month. I use 'svn up' to update my source tree and then follow the "standard" instructions: cd /usr/src rm -rf /usr/obj/* make -j6 -DNO_CLEAN buildworld mergemaster -p (usually a no-op) make -j6 buildkernel make installkernel shutdown -r now (to single user mode) fsck -p adjkerntz -i (if the hardware clock is not running UTC) swapon -a mount -a -t ufs cd /usr/src/ make installworld mergemaster -iPF (Use -U at your own risk. It saves time, but you might miss something on rare occasion.) make check-old rm -rf any deleted directories (saves time) make delete-old reboot -- R. Kevin Oberman, Network Engineer E-mail: kob6558@gmail.com