Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jan 2000 18:11:11 +0100
From:      Marcel Moolenaar <marcel@scc.nl>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        Marcel Moolenaar <marcel@freebsd.org>, cvs-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src Makefile.inc1
Message-ID:  <387B642F.E1C7B658@scc.nl>
References:  <20000111164317.057011CA0@overcee.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------7FB9AA0D17FFB36E1D029E1E
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Peter Wemm wrote:
> 
> install.sh seems to use the wrong binaries.  It should use the hosted tools
> (/bin/test for example) built early on. Otherwise a 'make installworld' runs
> the freshly installed /bin/test and segfaults if you've got a slightly older
> kernel (pre signal changes).

installworld doesn't use install.sh, but you're right about the problem
in principle. I already have a patch that prevents installworld from
running any previously installed binaries by copying anything it needs
to a temporary directory. I choose to not install the patch before the
release, because it's a good way to break the install process. It works,
but I haven't been able to test it under differing situations yet...

I've attached the patch for reference.

BTW install.sh is only used for installing into the object tree.
installworld uses the IMAKE "context"...

-- 
Marcel Moolenaar                        mailto:marcel@scc.nl
SCC Internetworking & Databases           http://www.scc.nl/
The FreeBSD project                mailto:marcel@FreeBSD.org
--------------7FB9AA0D17FFB36E1D029E1E
Content-Type: text/plain; charset=us-ascii;
 name="diff.out"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="diff.out"

Index: Makefile.inc1
===================================================================
RCS file: /home/ncvs/src/Makefile.inc1,v
retrieving revision 1.122
diff -u -r1.122 Makefile.inc1
--- Makefile.inc1	2000/01/09 17:56:40	1.122
+++ Makefile.inc1	2000/01/11 10:37:19
@@ -118,6 +118,10 @@
 STRICTTMPPATH=	${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games
 TMPPATH=	${STRICTTMPPATH}:${PATH}
 
+TMPDIR?=	/tmp
+TMPPID!=	echo $$$$
+INSTALLTMP=	${TMPDIR}/install.${TMPPID}
+
 #
 # Building a world goes through the following stages
 #
@@ -178,7 +182,11 @@
 WMAKE=		${WMAKEENV} ${MAKE} -f Makefile.inc1
 
 # install stage
-IMAKEENV=	${CROSSENV}
+# XXX - DESTDIR must be removed from IMAKEENV. It's for safety during
+# testing only...
+IMAKEENV=	${CROSSENV} \
+		DESTDIR=/usr1/world \
+		PATH=${STRICTTMPPATH}:${INSTALLTMP}
 IMAKE=		${IMAKEENV} ${MAKE} -f Makefile.inc1
 
 USRDIRS=	usr/bin usr/lib/compat/aout usr/games usr/libdata/ldscripts \
@@ -277,7 +285,18 @@
 # Installs everything compiled by a 'buildworld'.
 #
 installworld:
+.if !defined(DESTDIR)
+	mkdir -p ${INSTALLTMP}
+	for prog in [ cat chflags chown date echo egrep find grep install \
+	    install-info ln make makewhatis miniperl mtree mv perl rm sed \
+	    sh sysctl test true uname zic; do \
+		cp `which $$prog` ${INSTALLTMP}; \
+	done
+.endif
 	cd ${.CURDIR}; ${IMAKE} reinstall
+.if !defined(DESTDIR)
+	rm -rf ${INSTALLTMP}
+.endif
 
 #
 # reinstall

--------------7FB9AA0D17FFB36E1D029E1E--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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