From owner-freebsd-current@FreeBSD.ORG Wed Aug 25 13:10:57 2004 Return-Path: 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 53D4016A4CE; Wed, 25 Aug 2004 13:10:57 +0000 (GMT) Received: from tigra.ip.net.ua (tigra.ip.net.ua [82.193.96.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 38BDE43D62; Wed, 25 Aug 2004 13:10:55 +0000 (GMT) (envelope-from ru@ip.net.ua) Received: from heffalump.ip.net.ua (heffalump.ip.net.ua [82.193.96.213]) by tigra.ip.net.ua (8.12.11/8.12.11) with ESMTP id i7PDAm1T093451 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 25 Aug 2004 16:10:49 +0300 (EEST) (envelope-from ru@ip.net.ua) Received: (from ru@localhost) by heffalump.ip.net.ua (8.13.1/8.13.1) id i7PDAqEP005957; Wed, 25 Aug 2004 16:10:52 +0300 (EEST) (envelope-from ru) Date: Wed, 25 Aug 2004 16:10:52 +0300 From: Ruslan Ermilov To: Harti Brandt Message-ID: <20040825131052.GA5872@ip.net.ua> References: <20040824130849.GA12431@megalogika.lt> <20040824170917.Y517@beagle.kn.op.dlr.de> <20040824163608.GD37217@ip.net.ua> <200408250817.38664.tim@contentspace.demon.co.uk> <20040825135315.I553@beagle.kn.op.dlr.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="J2SCkAp4GZ/dPZZf" Content-Disposition: inline In-Reply-To: <20040825135315.I553@beagle.kn.op.dlr.de> User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new cc: Tim Hawkins cc: freebsd-current@freebsd.org Subject: Re: problems during upgrade to RELENG_5 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Wed, 25 Aug 2004 13:10:57 -0000 --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 25, 2004 at 02:09:19PM +0200, Harti Brandt wrote: > On Wed, 25 Aug 2004, Tim Hawkins wrote: >=20 > TH>On Tuesday 24 August 2004 17:36, Ruslan Ermilov wrote: > TH> > TH>I had the same problem without using make includes, the result of an= =20 > TH>installworld failure. I had to copy the version of genatmtree from /us= r/obj=20 > TH>to userland in order to be able to rebuild world to fix it.=20 > TH> > TH>I also had the same problem with "make" where I could not rebuild anyt= hing=20 > TH>untill I had copied /usr/obj version to userland >=20 > Perhaps osreldate.h gets clobbered too early in the install process. If= =20 > the install process breaks at some point osreldate may contain the new=20 > FreeBSD version already. If the user then removes /usr/obj and buildworld= s=20 > again, the tools won't get build because Makefile.inc1 gets the wrong=20 > BOOTSTRAPPING version. >=20 > Just a guess. >=20 Yes, I remember this exactly happening to some users. But it does not change the fact: their build systems were broken as a result, and a working and consistent build system is a strong prerequisite for a successful buildworld. In the past, there was no such thing like OSRELDATE, and we could upgrade from any supported __FreeBSD_version system. Some developers didn't like this, and insisted on a more granular bootstrapping procedure: i.e., if you've just upgraded your world and kernel, and try to "make buildworld" again using the same sources, it shouldn't bootstrap anything in the bootstrap-tools stage. This is what is implemented right now, and the drawback is that it made broken build systems much more fragile (read: if your /usr/include/osreldate.h doesn't match reality, chances are very high now that buildworld will fail). For those with broken build systems, we still have an opportunity to cheat by setting OSRELDATE to 0. For anyone upgrading a lot of different __FreeBSD_version machines in the cluster (there's no 100% guarantee it will work), I recommend putting OSRELDATE=3D0 to /etc/make.conf on the build machine. Chuck, if you're reading this, it affects you as well. The guarantee in this case would probably be 99%. By setting OSRELDATE=3D0, you're telling your buildworld/buildkernels: "Hey, you two, you and your "install" counterparts should be able to run on the lowest supported __FreeBSD_version system." Unfortunately, this doesn't do the magic -- there're still a lot of things to consider: bootstrap-tools are bootstrapped using the build host's environment, using its /usr/include and /usr/lib. If, for example, your build host has libc with some new syscall, and some of the bootstrap-tools use this syscall, the resulting static binary (yes, all of the bootstrap-tools are statically linked to be agnostic to in-place library upgrades), and your install host's kernel doesn't know about it, running such a tool will result in ENOSYS. By considering all of this, let me tell this once again: it's much more safer to use the build host to install stuff, by NFS mounting remote /, /usr, and /var partitions read-write, and installing with DESTDIR pointing to a remote root. Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --J2SCkAp4GZ/dPZZf Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (FreeBSD) iD8DBQFBLI/cqRfpzJluFF4RAkq5AJ0Rqtsi75g7ftsPGtrg/VEx4ZNimgCeLW46 GFPBUb6TftMRp4avYM++OfU= =WKhT -----END PGP SIGNATURE----- --J2SCkAp4GZ/dPZZf--