diff options
author | rillig <rillig@pkgsrc.org> | 2008-01-05 22:06:20 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2008-01-05 22:06:20 +0000 |
commit | f185f4e34c91ba006f2395716aa0dfd396952e67 (patch) | |
tree | 10e4594bc236a4cdf4875e4a6504c7e1ae845b25 /mk/flavor/pkg | |
parent | 12a13117ce823a1f30dfaf2315ceb63aea025542 (diff) | |
download | pkgsrc-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.mk | 3 | ||||
-rw-r--r-- | mk/flavor/pkg/package.mk | 9 |
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) |