From owner-freebsd-current@FreeBSD.ORG Mon Dec 1 16:06:40 2003 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 2417816A4CE; Mon, 1 Dec 2003 16:06:40 -0800 (PST) Received: from smtp3.server.rpi.edu (smtp3.server.rpi.edu [128.113.2.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id 02CB943FF3; Mon, 1 Dec 2003 16:06:34 -0800 (PST) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp3.server.rpi.edu (8.12.10/8.12.9) with ESMTP id hB206UYR016830; Mon, 1 Dec 2003 19:06:30 -0500 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: Date: Mon, 1 Dec 2003 19:06:28 -0500 To: re@FreeBSD.org From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: current@FreeBSD.org Subject: Update to fix 'installworld' for 5.2 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: Tue, 02 Dec 2003 00:06:40 -0000 Here is an update I would like to install before 5.2-release. This fixes the problems that people will run into during 'make installworld' when doing a source-upgrade from 5.1-release or 5.1-security to (what will be) 5.2-release. To test this, I first upgraded a system to 5.1-RELEASE-p11. I then created a /usr/src-curr which was the current source tree, and did a buildworld and buildkernel. I then copied that OS to another set of partitions, booted up into the copy, and tried the normal installkernel-reboot- installworld sequence. The installation was hosed, due to programs in /bin which reference files in a not-yet-existent /libexec. Recovery is possible, but can be somewhat painful. I booted back into a working system, and re-copied the original set of partitions to the test partitions. I booted into the test partitions, applied this update, and tried the same installkernel-reboot-installworld sequence. This did not run into any problems (as long as one follows the rest of the instructions in /usr/src/UPDATING). I have brought this issue up on -current, but no one has responded with a reason why the install for /libexec should *not* be moved up. So, I think it should be moved up, now that I've tested that it does seem to work OK. As near as I can tell, the special check for libexec/rtld-elf never did work, and in any case it will be unnecessary if we unconditionally install all of libexec at that point. Index: Makefile.inc1 =================================================================== RCS file: /usr/cvs/free/depot/src/Makefile.inc1,v retrieving revision 1.397 diff -u -u -r1.397 Makefile.inc1 --- Makefile.inc1 16 Nov 2003 21:17:43 -0000 1.397 +++ Makefile.inc1 1 Dec 2003 23:10:45 -0000 @@ -49,16 +49,8 @@ .if exists(${.CURDIR}/lib) SUBDIR+= lib .endif - -# When upgrading to a dynamically linked root, install the runtime -# linker early into its new location before make(1) has a chance -# to run the dynamically linked /bin/sh. -.if !defined(NO_DYNAMICROOT) && !defined(NOPIC) && \ - (!defined(TARGET_ARCH) || ${TARGET_ARCH} == ${MACHINE_ARCH}) && \ - !defined(DISTDIR) && \ - (!defined(DESTDIR) || empty(DESTDIR) || ${DESTDIR} == "/") && \ - !exists(/libexec/ld-elf.so.1) -SUBDIR+= libexec/rtld-elf +.if exists(${.CURDIR}/libexec) +SUBDIR+= libexec .endif .if exists(${.CURDIR}/bin) @@ -73,9 +65,6 @@ .if exists(${.CURDIR}/kerberos5) && exists(${.CURDIR}/crypto) && \ !defined(NOCRYPT) && !defined(NO_OPENSSL) && !defined(NO_KERBEROS) SUBDIR+= kerberos5 -.endif -.if exists(${.CURDIR}/libexec) -SUBDIR+= libexec .endif .if exists(${.CURDIR}/rescue) && !defined(NO_RESCUE) SUBDIR+= rescue -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu