Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Dec 2003 19:06:28 -0500
From:      Garance A Drosihn <drosih@rpi.edu>
To:        re@FreeBSD.org
Cc:        current@FreeBSD.org
Subject:   Update to fix 'installworld' for 5.2
Message-ID:  <p06002020bbf181dacd90@[128.113.24.47]>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p06002020bbf181dacd90>