From owner-freebsd-current@FreeBSD.ORG Mon Jun 20 19:25:51 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DB5A316A41C; Mon, 20 Jun 2005 19:25:51 +0000 (GMT) (envelope-from phk@critter.freebsd.dk) Received: from pasmtp.tele.dk (pasmtp.tele.dk [193.162.159.95]) by mx1.FreeBSD.org (Postfix) with ESMTP id 990C143D49; Mon, 20 Jun 2005 19:25:51 +0000 (GMT) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (0x535c0e2a.sgnxx1.adsl-dhcp.tele.dk [83.92.14.42]) by pasmtp.tele.dk (Postfix) with ESMTP id 5B5341EC32B; Mon, 20 Jun 2005 21:25:50 +0200 (CEST) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.13.4/8.13.3) with ESMTP id j5KJPa35075028; Mon, 20 Jun 2005 21:25:37 +0200 (CEST) (envelope-from phk@critter.freebsd.dk) To: "M. Warner Losh" From: "Poul-Henning Kamp" In-Reply-To: Your message of "Mon, 20 Jun 2005 12:53:34 MDT." <20050620.125334.10575355.imp@bsdimp.com> Date: Mon, 20 Jun 2005 21:25:36 +0200 Message-ID: <75027.1119295536@critter.freebsd.dk> Sender: phk@critter.freebsd.dk Cc: rwatson@freebsd.org, current@freebsd.org Subject: Re: Summary: experiences with NanoBSD, successes and nits on a Soekris 4801 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jun 2005 19:25:52 -0000 In message <20050620.125334.10575355.imp@bsdimp.com>, "M. Warner Losh" writes: >The big problem is that there's not a build environment separate from >the install environment. I'm not 100% sure I know what you mean here... >At work, we created a system that has this >separation, and it has proven invaluable. The current NO_FOO knobs >aren't useful in the BUILD phase, bare are moderately useful in the >install phase (we actually go a step further, and just have a list of >directories to do an install from). > >This is the single reason that I've not pushed to migrate our build >system at work to using nanobsd as its base... It's worth noting in this context that not even "make release" uses an unadultered installworld, but instead has to use the pseudo-magic "distribution" target followed my manually frobbing the resulting tree. The biggest problem however is not the 'how' but the 'which' question. Take /usr/share/man/man1/gcc.1.gz as an example. That file should not be installed if the user has specified any single one of: NO_GNU # No GNU license code. NO_GCC # No GNU Compiler NO_CC # NO C compiler NO_TOOL_CHAIN # No compiler tools at all NO_MAN # No manual pages NO_CPP_RT # No C++ runtime NO_ROFF # No troff tools NO_GROFF # No GNU groff NO_MDOC # No mdoc macro package (NB: Deliberate exaggeration for illustrative effect) The src/release/Makefile is a good example of why Makefiles is not the right technology to implement conditional behaviour in this level of detail. The ideal solution would be to have complete awareness of the actual dependencies (as a combination of explicit entries and makefile derived information) but unless a exhaustive programme of tinderbox tests were instituted, the manually maintained dependencies would not be correct most of the time. And I will also echo the previously expressed sentiment that this is not to domain area to over-engineer a solution. Right now there is a $24 retail price difference between the smallest CF card I can buy (128M) and one that can contain a non-reduced nanobsd installation (512M). There are templates in the nanobsd sources for media sizes down to 64M for people to start from. I'm not saying that the problem is entirely solved, we are 90% of the way there now, and the last 10% may simply not be worth it. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.