When creating the binary package, first create a temporary file, and if
everything went well, rename it to the real name. That way, it is less likely that broken binary packages are created. It is a common assumption that binary package files, if they exist, are usable. An example for a broken binary package is security/sudo-1.6.9p10, in which sbin/visudo wasn't readable when creating the package as an unprivileged user.
This commit is contained in:
parent
f484c25be4
commit
8df3cdc4f6
1 changed files with 8 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: package.mk,v 1.12 2007/11/07 17:30:01 rillig Exp $
|
||||
# $NetBSD: package.mk,v 1.13 2008/01/03 23:21:48 rillig Exp $
|
||||
|
||||
PKG_SUFX?= .tgz
|
||||
PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
|
||||
|
@ -40,7 +40,13 @@ _PKG_ARGS_PACKAGE+= -E
|
|||
|
||||
${PKGFILE}: ${_CONTENTS_TARGETS}
|
||||
${RUN} ${MKDIR} ${.TARGET:H}
|
||||
${RUN} ${PKG_CREATE} ${_PKG_ARGS_PACKAGE} ${.TARGET}
|
||||
${RUN} if ${PKG_CREATE} ${_PKG_ARGS_PACKAGE} ${.TARGET}.tmp; then \
|
||||
${MV} -f ${.TARGET}.tmp ${.TARGET}; \
|
||||
else \
|
||||
exitcode=$$?; \
|
||||
${RM} -f ${.TARGET}.tmp; \
|
||||
exit $$exitcode; \
|
||||
fi
|
||||
|
||||
######################################################################
|
||||
### package-remove (PRIVATE)
|
||||
|
|
Loading…
Reference in a new issue