summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorjoerg <joerg>2009-06-09 08:40:27 +0000
committerjoerg <joerg>2009-06-09 08:40:27 +0000
commit169c728d44c995d61736fb4405d7ff0f3a788338 (patch)
treea97e9ab4b2cc82fd7e37b1b33aef2abe2071284c /mk
parentdb4b5579830b35e567ba2176e6d073b57617f811 (diff)
downloadpkgsrc-169c728d44c995d61736fb4405d7ff0f3a788338.tar.gz
Add support for using USE_DESTDIR=yes and replace together.
Based on the patch send to tech-pkg in 2008, but less intrusive.
Diffstat (limited to 'mk')
-rw-r--r--mk/flavor/README3
-rw-r--r--mk/flavor/pkg/replace.mk26
-rw-r--r--mk/install/replace.mk15
-rw-r--r--mk/package/package.mk4
4 files changed, 41 insertions, 7 deletions
diff --git a/mk/flavor/README b/mk/flavor/README
index 1b9b4deb75b..d3906e984be 100644
--- a/mk/flavor/README
+++ b/mk/flavor/README
@@ -1,4 +1,4 @@
-$NetBSD: README,v 1.6 2007/10/01 10:08:20 rillig Exp $
+$NetBSD: README,v 1.7 2009/06/09 08:40:27 joerg Exp $
= Introduction =
@@ -58,6 +58,7 @@ The following make targets must be implemented:
* tarup-pkg
* package-install
* _flavor-replace
+* _flavor-destdir-replace
* _flavor-undo-replace
= Bugs =
diff --git a/mk/flavor/pkg/replace.mk b/mk/flavor/pkg/replace.mk
index e58ff9f3196..7ed4317c40a 100644
--- a/mk/flavor/pkg/replace.mk
+++ b/mk/flavor/pkg/replace.mk
@@ -1,8 +1,11 @@
-# $NetBSD: replace.mk,v 1.24 2008/01/23 14:48:50 gdt Exp $
+# $NetBSD: replace.mk,v 1.25 2009/06/09 08:40:27 joerg Exp $
#
# _flavor-replace:
-# Updates a package in-place on the system.
+# Updates a package in-place on the system (USE_DESTDIR=yes).
+#
+# _flavor-destdir-replace:
+# Updates a package in-place on the system (USE_DESTDIR=yes).
#
# See also:
# replace
@@ -24,6 +27,13 @@ _flavor-replace: \
replace-fixup-installed-info \
.PHONY
+_flavor-destdir-replace: \
+ replace-names \
+ replace-destdir \
+ replace-fixup-required-by \
+ replace-fixup-installed-info \
+ .PHONY
+
# _flavor-undo-replace:
# Undoes the actions from a previous _flavor-replace.
#
@@ -172,3 +182,15 @@ replace-clean: .PHONY
${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \
${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \
${_COOKIE.replace}
+
+replace-destdir: .PHONY
+ @${PHASE_MSG} "Updating using binary package of "${PKGNAME:Q}
+.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
+ @${MKDIR} ${_CROSS_DESTDIR}${PREFIX}
+ ${PKG_ADD} -u -m ${MACHINE_ARCH} -I -p ${_CROSS_DESTDIR}${PREFIX} ${PKGFILE}
+ @${ECHO} "Fixing recorded cwd..."
+ @${SED} -e 's|@cwd ${_CROSS_DESTDIR}|@cwd |' ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS > ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp
+ @${MV} ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS
+.else
+ ${PKG_ADD} -u ${PKGFILE}
+.endif
diff --git a/mk/install/replace.mk b/mk/install/replace.mk
index a4f6c8db3a7..75cd16e44b0 100644
--- a/mk/install/replace.mk
+++ b/mk/install/replace.mk
@@ -1,4 +1,4 @@
-# $NetBSD: replace.mk,v 1.10 2007/03/09 03:28:58 rillig Exp $
+# $NetBSD: replace.mk,v 1.11 2009/06/09 08:40:28 joerg Exp $
#
# Public targets:
#
@@ -14,12 +14,19 @@
# Private targets that must be defined by the package system flavor:
#
# _flavor-replace:
-# Updates a package in-place on the system.
+# Updates a package in-place on the system (USE_DESTDIR=no).
+#
+# _flavor-destdir-replace:
+# Updates a package in-place on the system (USE_DESTDIR=yes).
#
# _flavor-undo-replace:
# Undoes a previous "make _flavor-replace".
+.if ${_USE_DESTDIR} == "no"
_REPLACE_TARGETS+= ${_PKGSRC_BUILD_TARGETS}
+.else
+_REPLACE_TARGETS+= package
+.endif
_REPLACE_TARGETS+= replace-message
_REPLACE_TARGETS+= unprivileged-install-hook
@@ -38,7 +45,11 @@ replace-message: .PHONY
@${PHASE_MSG} "Replacing for ${PKGNAME}"
@${WARNING_MSG} "experimental target - DATA LOSS MAY OCCUR."
+.if ${_USE_DESTDIR} == "no"
su-replace: .PHONY _flavor-replace
+.else
+su-replace: .PHONY _flavor-destdir-replace
+.endif
MAKEFLAGS.su-replace= _UPDATE_RUNNING=yes
#
diff --git a/mk/package/package.mk b/mk/package/package.mk
index 6a752acb600..c068db5357f 100644
--- a/mk/package/package.mk
+++ b/mk/package/package.mk
@@ -1,4 +1,4 @@
-# $NetBSD: package.mk,v 1.20 2009/03/17 22:13:36 rillig Exp $
+# $NetBSD: package.mk,v 1.21 2009/06/09 08:40:28 joerg Exp $
#
# This file provides the code for the "package" phase.
#
@@ -13,7 +13,7 @@
#
_PACKAGE_TARGETS+= check-vulnerable
-.if make(replace)
+.if make(replace) && ${_USE_DESTDIR} == "no"
_PACKAGE_TARGETS+= replace
.else
_PACKAGE_TARGETS+= install