From owner-freebsd-ports Fri Jan 31 00:21:59 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id AAA11835 for ports-outgoing; Fri, 31 Jan 1997 00:21:59 -0800 (PST) Received: from dfw-ix5.ix.netcom.com (dfw-ix5.ix.netcom.com [206.214.98.5]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id AAA11808; Fri, 31 Jan 1997 00:21:38 -0800 (PST) Received: from silvia.HIP.Berkeley.EDU (wck-ca13-18.ix.netcom.com [204.31.231.210]) by dfw-ix5.ix.netcom.com (8.6.13/8.6.12) with ESMTP id AAA27927; Fri, 31 Jan 1997 00:21:04 -0800 Received: (from asami@localhost) by silvia.HIP.Berkeley.EDU (8.8.5/8.6.9) id AAA09630; Fri, 31 Jan 1997 00:21:02 -0800 (PST) Date: Fri, 31 Jan 1997 00:21:02 -0800 (PST) Message-Id: <199701310821.AAA09630@silvia.HIP.Berkeley.EDU> To: ports@freebsd.org, committers@freebsd.org Subject: review request: pkgdir handling improved From: asami@vader.cs.berkeley.edu (Satoshi Asami) Sender: owner-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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