From f435245a772f518d13c0b02dbaa48b7ce141400c Mon Sep 17 00:00:00 2001 From: gdt Date: Wed, 8 Aug 2007 01:44:24 +0000 Subject: Improve previous: Per tnn@ suggestion, don't do pkg_admin unset unless +INSTALLED_INFO is present, to avoid complaint from pkg_admin (see pkg/36741). Separate tag removal into a separate target, and use STEP_MSG and _PKG_DEBUG properly. --- mk/flavor/pkg/replace.mk | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/mk/flavor/pkg/replace.mk b/mk/flavor/pkg/replace.mk index 02bb8bc5abd..649e69babc3 100644 --- a/mk/flavor/pkg/replace.mk +++ b/mk/flavor/pkg/replace.mk @@ -1,4 +1,4 @@ -# $NetBSD: replace.mk,v 1.10 2007/08/07 22:27:12 gdt Exp $ +# $NetBSD: replace.mk,v 1.11 2007/08/08 01:44:24 gdt Exp $ # # _flavor-replace: @@ -21,6 +21,7 @@ _flavor-replace: \ install-clean \ install \ replace-fixup-required-by \ + replace-fixup-installed-info \ .PHONY # _flavor-undo-replace: @@ -137,17 +138,13 @@ replace-preserve-required-by: .PHONY ### replace-fixup-required-by (PRIVATE) ###################################################################### ### replace-fixup-required-by fixes the +CONTENTS files of dependent -### packages to refer to the replacement package. It also removes -### unsafe_depends* and rebuild tags from this package. +### packages to refer to the replacement package. replace-fixup-required-by: .PHONY @${STEP_MSG} "Fixing @pkgdep entries in dependent packages." ${_PKG_SILENT}${_PKG_DEBUG} \ set -e; \ ${TEST} -f ${_REPLACE_OLDNAME_FILE} || exit 0; \ ${TEST} -f ${_REPLACE_NEWNAME_FILE} || exit 0; \ - for var in unsafe_depends rebuild; do \ - ${PKG_ADMIN} unset $$var ${PKGBASE}; \ - done; \ ${TEST} -f ${_REQUIRED_BY_FILE} || exit 0; \ oldname=`${CAT} ${_REPLACE_OLDNAME_FILE}`; \ newname=`${CAT} ${_REPLACE_NEWNAME_FILE}`; \ @@ -168,6 +165,20 @@ replace-fixup-required-by: .PHONY ${PKG_ADMIN} set unsafe_depends=YES $$pkg; \ done +###################################################################### +### replace-fixup-installed-info (PRIVATE) +###################################################################### +### replace-fixup-installed-info removes unsafe_depends* and rebuild +### tags from this package. +### XXX pkg_admin should not complain on unset with no +INSTALLED_INFO. +replace-fixup-installed-info: .PHONY + @${STEP_MSG} "Removing unsafe_depends tag." + ${_PKG_SILENT}${_PKG_DEBUG} \ + for var in unsafe_depends rebuild; do \ + ${TEST} ! -f ${_PKG_DBDIR}/${PKGNAME}/+INSTALLED_INFO || \ + ${PKG_ADMIN} unset $$var ${PKGBASE}; \ + done + ###################################################################### ### replace-clean (PRIVATE) ###################################################################### -- cgit v1.2.3