From owner-freebsd-stable@FreeBSD.ORG Tue Aug 28 21:04:01 2012 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E0F1A106566B for ; Tue, 28 Aug 2012 21:04:00 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by mx1.freebsd.org (Postfix) with ESMTP id 7307B8FC15 for ; Tue, 28 Aug 2012 21:04:00 +0000 (UTC) Received: by wgbed3 with SMTP id ed3so3404691wgb.8 for ; Tue, 28 Aug 2012 14:03:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=gbr1B/Bjo44i52VFU9ObLUOMpueBX43NSPEbmjLg2fA=; b=h1dFEA8w8cjCCIHXsQIrkDAWc/MLSHW9Uqvat9d1GHYDOs3ai28F1ZzIeAwqiqA7rB VtLANDhj9F8ZJKkzCPkWAVDeh82N6cJtDzW4w9XyftTFpMZiKswWgl52WaONzuraug1b uDbA5mZmECGQ1aSGJ1Lwq0PGJ94dXGCuOLPfTdsG+adiq5jgIARNwb+xYGN8+J+ouTL2 LMBl1DtQvUmPToFUKFUD4nJWpS7iP74P6kaxa4o+4PMTllVaNPyhrq2ci5eM68Qox++u 2QtNiWV1d61XLZSb+3rqluhV3RJEBR32GgIQtRPb6n7qVAz6p2bzTRrlfBM9vr76nyuo pk6A== MIME-Version: 1.0 Received: by 10.180.107.103 with SMTP id hb7mr35517861wib.3.1346187839089; Tue, 28 Aug 2012 14:03:59 -0700 (PDT) Received: by 10.223.63.76 with HTTP; Tue, 28 Aug 2012 14:03:59 -0700 (PDT) In-Reply-To: <20120828203130.GB78051@kontrol.kode5.net> References: <20120828203130.GB78051@kontrol.kode5.net> Date: Tue, 28 Aug 2012 14:03:59 -0700 Message-ID: From: Kevin Oberman To: Jamie Paul Griffin Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-stable@freebsd.org Subject: Re: Question About Tracking the Stable Branch X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Aug 2012 21:04:01 -0000 On Tue, Aug 28, 2012 at 1:31 PM, Jamie Paul Griffin wrote= : > Hi > > I am following 9 Stable. I have read the handbook information and I am no= w 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. i= f the change is to a kernel and/or a kernel module then clearly I need to r= ebuild 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 userl= and and kernel sources just to incorporate a small number of changes. Obvio= usly 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 clarif= y 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 --=20 R. Kevin Oberman, Network Engineer E-mail: kob6558@gmail.com