diff options
author | gdt <gdt@pkgsrc.org> | 2007-11-07 13:50:09 +0000 |
---|---|---|
committer | gdt <gdt@pkgsrc.org> | 2007-11-07 13:50:09 +0000 |
commit | 61acf9d4222b998e32f43200b848bf831ab231da (patch) | |
tree | f6ce40c12da8081115ee311ada20f842f6293357 | |
parent | 5d0e9e75a1e38fdb8df35794d8f1b2e86aca97fc (diff) | |
download | pkgsrc-61acf9d4222b998e32f43200b848bf831ab231da.tar.gz |
Allow make replace to replace a package with a name other than the new
one, via "make replace OLDNAME=oldpkgname".
Enhance replace-names to use OLDNAME if present. Move replace-names
target before replace-tarup, and change replace-tarup to use the
computed oldname. Make deinstall respect OLDNAME.
Tested on netbsd-current with standard make replace and with OLDNAME.
-rw-r--r-- | mk/flavor/pkg/deinstall.mk | 8 | ||||
-rw-r--r-- | mk/flavor/pkg/replace.mk | 23 |
2 files changed, 21 insertions, 10 deletions
diff --git a/mk/flavor/pkg/deinstall.mk b/mk/flavor/pkg/deinstall.mk index 07485b89fd8..d3a8be1772c 100644 --- a/mk/flavor/pkg/deinstall.mk +++ b/mk/flavor/pkg/deinstall.mk @@ -1,4 +1,4 @@ -# $NetBSD: deinstall.mk,v 1.3 2007/03/09 00:39:55 rillig Exp $ +# $NetBSD: deinstall.mk,v 1.4 2007/11/07 13:50:09 gdt Exp $ # Set the appropriate flags to pass to pkg_delete(1) based on the value # of DEINSTALLDEPENDS (see pkgsrc/mk/install/deinstall.mk). @@ -31,7 +31,11 @@ _PKG_ARGS_DEINSTALL+= -N -f # update w/o removing any files # _flavor-deinstall: ${_PKG_SILENT}${_PKG_DEBUG} \ - found="`${PKG_INFO} -e \"${PKGNAME}\" || ${TRUE}`"; \ + if [ x"$OLDNAME" = x ]; then \ + found="`${PKG_INFO} -e \"${PKGNAME}\" || ${TRUE}`"; \ + else \ + found=${OLDNAME}; \ + fi; \ case "$$found" in \ "") found="`${_PKG_BEST_EXISTS} ${PKGWILDCARD:Q} || ${TRUE}`" ;; \ esac; \ diff --git a/mk/flavor/pkg/replace.mk b/mk/flavor/pkg/replace.mk index 37848966486..1d556928786 100644 --- a/mk/flavor/pkg/replace.mk +++ b/mk/flavor/pkg/replace.mk @@ -1,4 +1,4 @@ -# $NetBSD: replace.mk,v 1.20 2007/09/22 15:19:47 gdt Exp $ +# $NetBSD: replace.mk,v 1.21 2007/11/07 13:50:09 gdt Exp $ # # _flavor-replace: @@ -13,8 +13,8 @@ # can be confused when a +REQUIRED_BY files suddenly disappears. # _flavor-replace: \ - replace-tarup \ replace-names \ + replace-tarup \ replace-preserve-installed-info \ replace-preserve-required-by \ deinstall \ @@ -76,9 +76,10 @@ undo-replace-check: .PHONY replace-tarup: .PHONY ${RUN} [ -x ${_PKG_TARUP_CMD:Q} ] \ || ${FAIL_MSG} ${_PKG_TARUP_CMD:Q}" was not found."; + ${_REPLACE_OLDNAME_CMD}; \ ${SETENV} PKG_DBDIR=${_PKG_DBDIR} PKG_SUFX=${PKG_SUFX} \ PKGREPOSITORY=${WRKDIR} \ - ${_PKG_TARUP_CMD} ${PKGBASE} + ${_PKG_TARUP_CMD} $${oldname} ###################################################################### ### undo-replace-install (PRIVATE) @@ -93,14 +94,20 @@ undo-replace-install: .PHONY ${PKG_ADD} ${WRKDIR}/$${oldname}${PKG_SUFX} ###################################################################### -### replace-names, undo-replace-names (PRIVATE) +### replace-names (PRIVATE) ###################################################################### -### replace-names and undo-replace-names save the correct names of the -### installed and replacement packages into files queried by other -### targets. + +### replace-names computes and saves the full names of the installed +### package to be replaced (oldname) and the package that will be +### installed (newname) into files for later use. ### replace-names: .PHONY - ${RUN} ${_PKG_BEST_EXISTS} ${PKGWILDCARD:Q} > ${_REPLACE_OLDNAME_FILE} + ${RUN} if [ x"${OLDNAME}" = x ]; then \ + wildcard=${PKGWILDCARD:Q}; \ + else \ + wildcard="${OLDNAME}-[0-9]*"; \ + fi; \ + ${_PKG_BEST_EXISTS} "$${wildcard}" > ${_REPLACE_OLDNAME_FILE} ${RUN} ${ECHO} ${PKGNAME} > ${_REPLACE_NEWNAME_FILE} ${RUN} ${CP} -f ${_REPLACE_NEWNAME_FILE} ${_COOKIE.replace} |