From owner-svn-src-projects@FreeBSD.ORG Mon Feb 9 16:52:26 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EE37D4FA; Mon, 9 Feb 2015 16:52:26 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A971DCA7; Mon, 9 Feb 2015 16:52:26 +0000 (UTC) Received: from new-host-2.home (pool-173-54-116-245.nwrknj.fios.verizon.net [173.54.116.245]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id AC486B91E; Mon, 9 Feb 2015 11:52:25 -0500 (EST) Message-ID: <54D8E5CD.8050304@FreeBSD.org> Date: Mon, 09 Feb 2015 11:52:29 -0500 From: John Baldwin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Baptiste Daroussin Subject: Re: svn commit: r278447 - projects/release-pkg/release/packages/kernel References: <201502091025.t19APxwK057568@svn.freebsd.org> <2379227.vPTf1TCfaA@ralph.baldwin.cx> <20150209161830.GH29891@ivaldir.etoilebsd.net> In-Reply-To: <20150209161830.GH29891@ivaldir.etoilebsd.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 09 Feb 2015 11:52:25 -0500 (EST) Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2015 16:52:27 -0000 On 2/9/15 11:18 AM, Baptiste Daroussin wrote: > On Mon, Feb 09, 2015 at 11:07:19AM -0500, John Baldwin wrote: >> On Monday, February 09, 2015 10:25:59 AM Baptiste Daroussin wrote: >>> Author: bapt >>> Date: Mon Feb 9 10:25:58 2015 >>> New Revision: 278447 >>> URL: https://svnweb.freebsd.org/changeset/base/278447 >>> >>> Log: >>> Rerunning kldxref after installing the kernel is still needed as >>> rc.d/kldxref will happen too late >>> >>> Added: >>> projects/release-pkg/release/packages/kernel/post-install >>> - copied unchanged from r278395, >>> projects/release-pkg/release/packages/kernel/post-install >>> >>> Copied: projects/release-pkg/release/packages/kernel/post-install (from >>> r278395, projects/release-pkg/release/packages/kernel/post-install) >>> =========================================================================== >>> === --- /dev/null 00:00:00 1970 (empty, because file is newly added) >>> +++ projects/release-pkg/release/packages/kernel/post-install Mon Feb 9 >>> 10:25:58 2015 (r278447, copy of r278395, >>> projects/release-pkg/release/packages/kernel/post-install) @@ -0,0 +1 @@ >>> +/usr/sbin/kldxref /boot/kernel >> >> Hmm, are you hardcoding /boot/kernel as the location for kernels? I like to >> keep an up-to-date GENERIC on all my boxes at /boot/kernel.GENERIC along with >> /boot/kernel which runs the machine's "custom" config. I do think I like that >> the packages default to /boot/kernel in general (so I can 'pkg install kernel- >> ' to pick a specific conf), but it might be nice to be able to install a >> fallback kernel under an alternate name. > > We are at very early state of packaging but yes before it becomes official it > will allow to have custom location for the kernel (chosen at build time) Hmm, it might be nice to choose it at runtime. Maybe I want to use GENERIC as the main kernel so I want it at /boot/kernel, maybe I wnat to install the "official" FreeBSD GENERIC kernel as /boot/kernel.GENERIC so I'd like to be able to override the "prefix" as it were. Similarly, I might want to install a test kernel package to /boot/test so I can use it with nextboot without changing the machine's default kernel. In the case of the kernel all the bits live in one directory, so if you allow the directory to be fungible during install that should be doable. I can't think of other things besides the kernel that have this sort of behavior. >> Also, do you have a graceful way of switching configs? That is, if kernel-FOO >> is installed at /boot/kernel and I want to switch to kernel-BAR, do you just >> have to delete FOO and install BAR? That's fine if so, though there is a >> window where you don't have a kernel if you crash / power-failure. :-P Not >> sure how easy it would be to be able to move the FOO kernel to kernel.old in >> that case and install BAR as /boot/kernel? > Nothing planned for that so far, I'm open for suggestions, nothing is done in > pkg yet to allow to move a directory with its content before actually upgrading. > > IMHO that would be a bad idea to have kernel specific hacks, but it sounds a > good idea to first anyway create the kernel.old directory. Still don't know how > to do that. Could you use a pre-install script to move the current /boot/kernel (or other path if specified) to /boot/kernel.old? That would be all that is needed. The kernel Makefiles are a bit trickier in that they only save the previous kernel this way if it is the running kernel (by checking the kern.bootfile sysctl). If you have a pre-install script you could incorporate the same logic. It does mean you can't "remove" the previous version of the kernel using pkg, but typically you just have 1 kernel.old that will keep getting updated on each upgrade. >> On a related note, I assume that for base packages you will keep the behavior >> of preserving /boot/loader.old and /libexec/ld-elf.so.1.old each time the >> respective file changes? (I think those are the only files in userland with >> that kind of special magic.) > > I haven't thought about those, but it is easy to make I'll modity pkg(8) to > allow such behaviour. They aren't often needed, but when you do need them they are nice to have. -- John Baldwin