Date: Mon, 22 Jan 2007 13:41:45 -0500 From: John Baldwin <jhb@freebsd.org> To: Ken Smith <kensmith@cse.buffalo.edu> Cc: re@freebsd.org, freebsd-doc@freebsd.org, Murray Stokely <murray.stokely@gmail.com>, Ruslan Ermilov <ru@freebsd.org>, doc@freebsd.org, Marc Ren? Arns <dienst@marcrenearns.de> Subject: Re: make buildkernel fails without complete source tree Message-ID: <200701221341.46518.jhb@freebsd.org> In-Reply-To: <1169489832.11889.64.camel@opus.cse.buffalo.edu> References: <200701171832.28368.dienst@marcrenearns.de> <200701221111.56264.jhb@freebsd.org> <1169489832.11889.64.camel@opus.cse.buffalo.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 22 January 2007 13:17, Ken Smith wrote: > On Mon, 2007-01-22 at 11:11 -0500, John Baldwin wrote: > > On Sunday 21 January 2007 16:24, Ruslan Ermilov wrote: > > > On Thu, Jan 18, 2007 at 01:48:14PM -0800, Murray Stokely wrote: > > > > On 1/18/07, John Baldwin <jhb@freebsd.org> wrote: > > > > =================================================================== > > > > >- { " sys", "/usr/src/sys (FreeBSD kernel)", > > > > >+ { " sys", "/usr/src/sys (FreeBSD kernel; requires > > > > >'base' > > > > >to build)", > > > > > > > > I think this is a good solution. > > > > > > > I don't think this is a good idea as it's not actually required. > > > The sys/ part have traditionally been standalone. And if you're > > > not upgrading then "buildkernel" is just a convenience alias for > > > config/make method. Actually this method is always used except > > > that in the buildkernel case it will use an upgraded toolchain > > > if it was previously built by "buildworld". > > > > It is required for buildkernel as otherwise there's no Makefile in /usr/src > > with a buildkernel target. It's only not required if you do 'config, etc.' > > by hand, but 'make buildkernel' requires some sort of /usr/src/Makefile, > > obviously. :) > > I think that's what Ruslan meant by it having "traditionally been > standalone". By tradition someone who just extracted the sys stuff > wasn't expecting to do 'make buildkernel', they expected to do the > 'config, etc'. For example someone who wanted to build custom kernels > but had no intention of updating the machine using the source tree, and > they knew how to build the kernels manually. Yes, but the thread started because someone installed 'ssys' and tried to build it using 'buildkernel' because that's what the handbook mentions. In fact, the handbook doesn't even mention the old way anymore at all, so for new users ssys for all intents and purposes does depend on sbase. > The truth is the message should read "(FreeBSD kernel; requires 'base' > to build if you insist on using 'make buildkernel' in /usr/src to build > a kernel but if you know how to build a kernel 'manually' then 'base' is > not required)". But I don't think that fits in 80 columns... :-) If someone knows how to build it the old way, they probably know they can just install ssys, and installing sbase won't hurt them anyway, it's really small in terms of disk space. OTOH, someone who is new to FreeBSD might just pick the kernel sources and end up in the OP's situation by following the handbook. However, to counter that, if a new(er) user chooses the 'Kernel Developer' or 'X-Kernel Developer' from the dist menu, they will get sbase and ssys installed, so it's really when they go and dink with the src dists by hand that the get into trouble, so maybe we just leave it as it is. They asked for pain and they got pain. :) Alternatively, you could also add a note to the handbook near the kernel building instructions to note that if you wish to build a kernel from the src dists in sysinstall, you need to have both the 'ssys' and 'sbase' dists installed. That might actually be the best solution. It can even be one of those fancy Note: boxes via a <note> tag. :) On another side note, the name "Kernel Developer" in the dist menu is probably confusing. Most new users probably don't consider themselves a "kernel developer", so probably don't go for that option. Shoot, there are people who probably don't consider themselves "developers" in that they don't churn out mountains of C/C++ code, but they need the kernel sources to compile custom kernels to tweak their boxes. > The message as proposed above also begs the question "So why have sys as > a separate thing if all you can do is look at it?. That's not true but > it is what the message suggests. Because some people may just want to look at it. :) You can also still build modules by hand by going to /sys/modules/foo without having sbase installed. (Similar to installing 'sbin' and going to /usr/src/bin/foo to build 'foo'). -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701221341.46518.jhb>