PERFORCE change 122325 for review
Gabor Kovesdan
gabor at FreeBSD.org
Tue Jun 26 07:04:28 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=122325
Change 122325 by gabor at gabor_server on 2007/06/26 07:03:29
Use safe mounting of PORTSDIR with mktemp(1). We need to this to
avoid odd cases, where the destination environment already has a
different version of ports tree somehow. Thus it is not enough
to check the existence of the ports tree. E.g. if we want to
install foobar-1.0, we don't want to have foobar-0.9 in the destination
due to an outdated leftover ports tree.
Affected files ...
.. //depot/projects/soc2006/gabor_destdir/Mk/bsd.destdir.mk#3 edit
Differences ...
==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.destdir.mk#3 (text+ko) ====
@@ -19,7 +19,7 @@
DESTDIR_ENV_LIST?=
-DESTDIR_ENV= DESTDIR= CHROOTED=YES
+DESTDIR_ENV= DESTDIR= CHROOTED=YES PORTSDIR=${PORTSDIR_TMP_REL}
.for _var in ${DESTDIR_ENV_LIST}
DESTDIR_ENV+= ${_var}="${${_var}}"
@@ -36,24 +36,21 @@
.endif
.if !target(do-chroot)
+
+PORTSDIR_TMP!= ${MKTEMP} -d ${DESTDIR}/tmp/portsdir.XXXXXX
+PORTSDIR_TMP_REL= ${PORTSDIR_TMP:S,^${DESTDIR},,}
+BUILDDIR= ${.CURDIR:S,^${PORTSDIR},,:S,^,${PORTSDIR_TMP_REL},}
+
do-chroot:
- ${MKDIR} ${DESTDIR}${PORTSDIR}
-# found=0; \
-# for i in `${MOUNT} | ${AWK} {'print $$3'}` ; do \
-# if [ `${REALPATH} ${DESTDIR}${PORTSDIR}` == `${REALPATH} $${i}` ]; then \
-# found=1; \
-# fi ; \
-# done ; \
-# if [ $${found} != 1 ]; then \
-# ${ECHO_CMD} "===> Nullmounting ${PORTSDIR} into ${DESTDIR}..."; \
-# ${MOUNT} -t nullfs ${PORTSDIR} ${DESTDIR}${PORTSDIR}; \
-# fi
+ ${ECHO_CMD} "===> Nullmounting ports tree into ${DESTDIR}..."; \
+ ${MOUNT} -t nullfs ${PORTSDIR} ${DESTDIR}${PORTSDIR_TMP_REL}
.if !exists (${DESTDIR}/dev/null)
${ECHO_CMD} "===> Mounting devfs into ${DESTDIR}..."; \
${MOUNT} -t devfs devfs ${DESTDIR}/dev
.endif
${ECHO_CMD} "===> Starting chrooted make in ${DESTDIR}..."; \
- ${CHROOT} ${DESTDIR} ${SH} -c "(cd ${.CURDIR}; ${MAKE} ${DESTDIR_ENV} ${.TARGETS})"
+ ${CHROOT} ${DESTDIR} ${SH} -c "(cd ${BUILDDIR}; ${MAKE} ${DESTDIR_ENV} ${.TARGETS})"; \
+ ${UMOUNT} ${DESTDIR}${PORTSDIR_TMP_REL}
.endif
.if !target(post-chroot)
More information about the p4-projects
mailing list