summaryrefslogtreecommitdiff
path: root/mk/flavor/pkg
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2008-01-05 22:06:20 +0000
committerrillig <rillig@pkgsrc.org>2008-01-05 22:06:20 +0000
commitf185f4e34c91ba006f2395716aa0dfd396952e67 (patch)
tree10e4594bc236a4cdf4875e4a6504c7e1ae845b25 /mk/flavor/pkg
parent12a13117ce823a1f30dfaf2315ceb63aea025542 (diff)
downloadpkgsrc-f185f4e34c91ba006f2395716aa0dfd396952e67.tar.gz
Explicitly record the PKGNAME via the @name command. That way, it is
possible to create the package file using a temporary file first, and if everything has succeeded, to rename it to the real name. This time, I tested it creating various binary packages and installing them afterwards, so I'm pretty sure it works now.
Diffstat (limited to 'mk/flavor/pkg')
-rw-r--r--mk/flavor/pkg/metadata.mk3
-rw-r--r--mk/flavor/pkg/package.mk9
2 files changed, 9 insertions, 3 deletions
diff --git a/mk/flavor/pkg/metadata.mk b/mk/flavor/pkg/metadata.mk
index 5e1bf7a6f02..9cdc9ada3cf 100644
--- a/mk/flavor/pkg/metadata.mk
+++ b/mk/flavor/pkg/metadata.mk
@@ -1,4 +1,4 @@
-# $NetBSD: metadata.mk,v 1.27 2007/09/20 18:30:34 rillig Exp $
+# $NetBSD: metadata.mk,v 1.28 2008/01/05 22:06:20 rillig Exp $
######################################################################
### The targets below are all PRIVATE.
@@ -311,6 +311,7 @@ _DEPENDS_PLIST= ${WRKDIR}/.PLIST_deps
${_DEPENDS_PLIST}: ${PLIST}
${RUN} { \
+ ${ECHO} "@name ${PKGNAME}"; \
${AWK} '$$1 == "full" { printf "@blddep %s\n@pkgdep %s\n", $$3, $$2; }' < ${_RDEPENDS_FILE}; \
${AWK} '$$1 == "bootstrap" || $$1 == "build" { printf "@blddep %s\n", $$3; }' < ${_RDEPENDS_FILE}; \
${CAT} ${PLIST}; } > ${.TARGET}
diff --git a/mk/flavor/pkg/package.mk b/mk/flavor/pkg/package.mk
index 5d937e59999..b4a7a39e425 100644
--- a/mk/flavor/pkg/package.mk
+++ b/mk/flavor/pkg/package.mk
@@ -1,4 +1,4 @@
-# $NetBSD: package.mk,v 1.14 2008/01/04 14:22:06 rillig Exp $
+# $NetBSD: package.mk,v 1.15 2008/01/05 22:06:20 rillig Exp $
PKG_SUFX?= .tgz
PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
@@ -40,7 +40,12 @@ _PKG_ARGS_PACKAGE+= -E
${PKGFILE}: ${_CONTENTS_TARGETS}
${RUN} ${MKDIR} ${.TARGET:H}
- ${RUN} ${PKG_CREATE} ${_PKG_ARGS_PACKAGE} ${.TARGET}
+ ${RUN} tmpname=${.TARGET:S,${PKG_SUFX}$,.tmp${PKG_SUFX},}; \
+ if ${PKG_CREATE} ${_PKG_ARGS_PACKAGE} "$$tmpname"; then \
+ ${MV} -f "$$tmpname" ${.TARGET}; \
+ else \
+ exitcode=$$?; ${RM} -f "$$tmpname"; exit $$exitcode; \
+ fi
######################################################################
### package-remove (PRIVATE)