From owner-freebsd-hackers@FreeBSD.ORG Thu May 5 09:06:24 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4CA5316A4CE for ; Thu, 5 May 2005 09:06:24 +0000 (GMT) Received: from zibbi.icomtek.csir.co.za (zibbi.icomtek.csir.co.za [146.64.24.58]) by mx1.FreeBSD.org (Postfix) with ESMTP id B63DD43D8F for ; Thu, 5 May 2005 09:06:16 +0000 (GMT) (envelope-from jhay@icomtek.csir.co.za) Received: from zibbi.icomtek.csir.co.za (localhost [127.0.0.1]) j4595VEm031698; Thu, 5 May 2005 11:05:31 +0200 (SAST) (envelope-from jhay@zibbi.icomtek.csir.co.za) Received: (from jhay@localhost)j4595Lpb031697; Thu, 5 May 2005 11:05:21 +0200 (SAST) (envelope-from jhay) Date: Thu, 5 May 2005 11:05:21 +0200 From: John Hay To: Warner Losh Message-ID: <20050505090521.GA25752@zibbi.icomtek.csir.co.za> References: <20050503222512.GA53874@crow.addict.de> <20050503.233855.116351361.imp@bsdimp.com> <200505042215.26426.Thomas.Sparrevohn@btinternet.com> <20050504.152324.41637276.imp@bsdimp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050504.152324.41637276.imp@bsdimp.com> User-Agent: Mutt/1.4.1i cc: freebsd-hackers@freebsd.org cc: Thomas.Sparrevohn@btinternet.com Subject: Re: mergemaster improvement (auto-update for not modified files) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2005 09:06:24 -0000 > > > > > > The technical reasons are very simple. If a new system call is > > > created, and programs use that new system call, then if you do an > > > installworld before you boot the kernel, that can result in binaries > > > not working. This has happened with important ones like /bin/sh in > > > the past. In addition, if you aren't running single user, many > > > different races exist in the installation process that can result in > > > bad behavior. There are also potential problems with symbols in > > > there's a large jump between the revisions being updated. > > > > > > Usually you can get away with it, but if you want to be safe, you must > > > do the install in single user. Usually, however, has lead in the past > > > to problems, which is why the project recommendations are > > > conservative. > > > > > > > A auto-scripted install directly run from rc.d in single-user mode would cover > > both requirements - I seem to recall that Solaris had something like it at a > > point. Somewhat along the lines of nextboot would be nice. > > How do you know where to get the sources from? What environment to > build them from? > > However, if you could cover those issues, I'd love to see a script to > deal. Maybe you could implement something that would be robust enough > for the project to recommend... What I do sometimes is to (in multiuser mode) make a copy of /etc to say /etc.new, the run mergmaster and stop it after it created /var/tmp/temproot and then rename the etc inside it also to etc.new and then run mergemaster -r. Then go to single user mode and rename /etc.new to /etc and reboot. This still does have all the work, but it does minimize the downtime in single user mode. John -- John Hay -- John.Hay@icomtek.csir.co.za / jhay@FreeBSD.org