Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Jan 1997 00:21:02 -0800 (PST)
From:      asami@vader.cs.berkeley.edu (Satoshi Asami)
To:        ports@freebsd.org, committers@freebsd.org
Subject:   review request: pkgdir handling improved
Message-ID:  <199701310821.AAA09630@silvia.HIP.Berkeley.EDU>

next in thread | raw e-mail | index | archive | help
Please review.  Highlights:

(1) Moved /var/db/pkg/${PKGNAME} existence check to beginning of
    install target and make the failure fatal (and also suggest a
    workaround in case pkg_delete doesn't work).
Suggested by: someone I forgot, sorry

(2) Don't put "@pkgdep Error code 2.  Exit" kind of junk in
    +CONTENTS. ;)
Pointed out by: a lot of people

(3) Make distclean not fail if ${DISTDIR}/${DIST_SUBDIR} doesn't
    exist.
Bug introduced by: obrien, I think

Satoshi
-------
Index: bsd.port.mk
===================================================================
RCS file: /usr/cvs/src/share/mk/bsd.port.mk,v
retrieving revision 1.249
diff -u -r1.249 bsd.port.mk
--- bsd.port.mk	1997/01/25 02:45:09	1.249
+++ bsd.port.mk	1997/01/31 05:18:02
@@ -1025,6 +1025,17 @@
 	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} build-depends lib-depends misc-depends
 .endif
 .if make(real-install)
+.if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER)
+	@if [ -d ${PKG_DBDIR}/${PKGNAME} ]; then \
+		${ECHO_MSG} "===>  ${PKGNAME} is already installed - perhaps an older version?"; \
+		${ECHO_MSG} "      If so, you may wish to \`\`pkg_delete ${PKGNAME}'' and install"; \
+		${ECHO_MSG} "      this port again by \`\`make reinstall'' to upgrade it properly."; \
+		${ECHO_MSG} "      If you really wish to overwrite the old port of ${PKGNAME}"; \
+		${ECHO_MSG} "      without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \
+		${ECHO_MSG} "      in your environment or the \"make install\" command line."; \
+		exit 1; \
+	fi
+.endif
 	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} run-depends lib-depends
 .endif
 .if make(real-install)
@@ -1212,8 +1223,10 @@
 .if !target(distclean)
 distclean: pre-distclean clean
 	@${ECHO_MSG} "===>  Dist cleaning for ${PKGNAME}"
-	@(cd ${_DISTDIR}; \
-	${RM} -f ${DISTFILES} ${PATCHFILES})
+	@(if [ -d ${_DISTDIR} ]; then \
+		cd ${_DISTDIR}; \
+		${RM} -f ${DISTFILES} ${PATCHFILES}; \
+	fi)
 .if defined(DIST_SUBDIR)
 	@${RMDIR} ${_DISTDIR}  
 .endif
@@ -1324,7 +1337,11 @@
 package-depends:
 	@for i in ${RUN_DEPENDS} ${LIB_DEPENDS} ${DEPENDS}; do \
 		dir=`${ECHO} $$i | ${SED} -e 's/.*://'`; \
-		(cd $$dir ; ${MAKE} package-name package-depends); \
+		if [ -d $$dir ]; then \
+			(cd $$dir ; ${MAKE} package-name package-depends); \
+		else \
+			${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \
+		fi; \
 	done
 .endif
 
@@ -1599,7 +1616,7 @@
 		if [ -f ${PKGDIR}/REQ ]; then \
 			${CP} ${PKGDIR}/REQ ${PKG_DBDIR}/${PKGNAME}/+REQ; \
 		fi; \
-		for dep in `make package-depends | sort -u`; do \
+		for dep in `make package-depends ECHO_MSG=/usr/bin/true | sort -u`; do \
 			if [ -d ${PKG_DBDIR}/$$dep ]; then \
 				if ! ${GREP} ^${PKGNAME}$$ ${PKG_DBDIR}/$$dep/+REQUIRED_BY \
 					>/dev/null 2>&1; then \
@@ -1607,10 +1624,6 @@
 				fi; \
 			fi; \
 		done; \
-	else \
-		${ECHO_MSG} "===>  ${PKGNAME} is already installed - perhaps an older version?"; \
-		${ECHO_MSG} "      If so, you may wish to \`\`pkg_delete ${PKGNAME}'' and install"; \
-		${ECHO_MSG} "      this port again by \`\`make reinstall'' to upgrade it properly."; \
 	fi
 .endif
 



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