summaryrefslogtreecommitdiff
path: root/pkgtools/pkg_rolling-replace
diff options
context:
space:
mode:
authortnn <tnn>2007-08-06 15:07:56 +0000
committertnn <tnn>2007-08-06 15:07:56 +0000
commitc1dcebb038cba2c9b7428591a3e9dc8dc6e5f02f (patch)
treeb76929524b6bfea4d67c5a3d69b0f4c01db0e973 /pkgtools/pkg_rolling-replace
parentd4f34a36b0c9b9ab78d176efca459fb94ca6e333 (diff)
downloadpkgsrc-c1dcebb038cba2c9b7428591a3e9dc8dc6e5f02f.tar.gz
Update to pkg_rolling-replace-0.6:
- Explicitly unset 'unsafe_depends' and 'rebuild' tags after replacing. Needed after changes in pkgsrc/mk/flavor/pkg/replace.mk, fixes PR 36738. - Introduce ${PKG_ADMIN}, ${PKG_INFO}, ${PKG_CHK} variables instead of calling the tools directly by name.
Diffstat (limited to 'pkgtools/pkg_rolling-replace')
-rw-r--r--pkgtools/pkg_rolling-replace/Makefile16
-rwxr-xr-xpkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh36
2 files changed, 31 insertions, 21 deletions
diff --git a/pkgtools/pkg_rolling-replace/Makefile b/pkgtools/pkg_rolling-replace/Makefile
index 42b0a22dc32..55ce902aa91 100644
--- a/pkgtools/pkg_rolling-replace/Makefile
+++ b/pkgtools/pkg_rolling-replace/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.11 2007/08/03 00:55:08 tnn Exp $
+# $NetBSD: Makefile,v 1.12 2007/08/06 15:07:56 tnn Exp $
-DISTNAME= pkg_rolling-replace-0.5
+DISTNAME= pkg_rolling-replace-0.6
CATEGORIES= pkgtools
MASTER_SITES= # empty
DISTFILES= # empty
@@ -22,11 +22,13 @@ USE_LANGUAGES= # none
INSTALLATION_DIRS= sbin ${PKGMANDIR}/man8
-SUBST_CLASSES+= makepath
-SUBST_STAGE.makepath= pre-configure
-SUBST_MESSAGE.makepath= Fixing path to ${MAKE}.
-SUBST_FILES.makepath= pkg_rolling-replace.sh
-SUBST_SED.makepath= -e 's,@MAKE@,${MAKE},g'
+PKG_CHK?= ${PREFIX}/sbin/pkg_chk
+
+SUBST_CLASSES+= tools
+SUBST_STAGE.tools= pre-configure
+SUBST_MESSAGE.tools= Substituting tool locations.
+SUBST_FILES.tools= pkg_rolling-replace.sh
+SUBST_VARS.tools= PKG_INFO_CMD PKG_ADMIN MAKE PKG_CHK
SUBST_CLASSES+= makeconf
SUBST_STAGE.makeconf= pre-configure
diff --git a/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh b/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh
index 5f66a58ba0f..6fff134a115 100755
--- a/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh
+++ b/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# $NetBSD: pkg_rolling-replace.sh,v 1.11 2007/08/03 00:55:09 tnn Exp $
+# $NetBSD: pkg_rolling-replace.sh,v 1.12 2007/08/06 15:07:56 tnn Exp $
#<license>
# Copyright (c) 2006 BBN Technologies Corp. All rights reserved.
#
@@ -64,12 +64,14 @@
# Substituted by pkgsrc at pre-configure time.
MAKE="@MAKE@"
-test -z "$PKG_DBDIR" && PKG_DBDIR=/var/db/pkg
test -z "$MAKECONF" && MAKECONF="@MAKECONF@"
test -f "$MAKECONF" && test -z "$PKGSRCDIR" && PKGSRCDIR="` \
printf '.include "%s"\n_print_pkgsrcdir:\n\t@echo "${PKGSRCDIR}"\n' \
"$MAKECONF" | "$MAKE" -f - BSD_PKG_MK=1 _print_pkgsrcdir`"
test -z "$PKGSRCDIR" && PKGSRCDIR=/usr/pkgsrc
+test -z "$PKG_CHK" && PKG_CHK="@PKG_CHK@"
+test -z "$PKG_INFO" && PKG_INFO="@PKG_INFO_CMD@"
+test -z "$PKG_ADMIN" && PKG_ADMIN="@PKG_ADMIN@"
unset PKG_PATH || true #or pkgsrc makefiles will complain
@@ -118,7 +120,7 @@ OPC='rr>' # continuation
# supported. Newer versions may or may not work (patches welcome).
check_packages_mismatched()
{
- pkg_chk -u -q | while read line; do
+ ${PKG_CHK} -u -q | while read line; do
# duplicate output of pkg_chk to stderr (bypass $(...) or `...`)
echo "${OPC} $line" 1>&2
# Look for the first thing that looks like pkg-version rather
@@ -137,8 +139,8 @@ check_packages_mismatched()
check_packages_w_flag()
{
_flag=$1; shift
- for pkgver in $(pkg_info -e '*'); do
- if pkg_info -Bq $pkgver \
+ for pkgver in $(${PKG_INFO} -e '*'); do
+ if ${PKG_INFO} -Bq $pkgver \
| egrep "^$_flag=[Yy][Ee][Ss]" > /dev/null; then
echo $pkgver | sed 's/-[0-9][^-]*$//'
fi
@@ -148,11 +150,11 @@ check_packages_w_flag()
# echo dep->pkg edges for all installed packages
depgraph_installed()
{
- for pkgver in $(pkg_info -e '*'); do
+ for pkgver in $(${PKG_INFO} -e '*'); do
pkg=$(echo $pkgver | sed 's/-[0-9][^-]*$//')
# Include $pkg as a node without dependencies in case it has none.
echo $pkg $pkg
- for depver in $(pkg_info -Nq $pkg); do
+ for depver in $(${PKG_INFO} -Nq $pkg); do
dep=$(echo $depver | sed 's/-[0-9][^-]*$//')
echo $dep $pkg
done
@@ -301,7 +303,7 @@ while [ -n "$REPLACE_TODO" ]; do
break;
fi
done
- pkgdir=$(pkg_info -Bq $pkg | awk -F= '/PKGPATH=/{print $2}')
+ pkgdir=$(${PKG_INFO} -Bq $pkg | awk -F= '/PKGPATH=/{print $2}')
echo "${OPI} Selecting $pkg ($pkgdir) as next package to replace"
sleep 1
@@ -328,7 +330,7 @@ while [ -n "$REPLACE_TODO" ]; do
if ! is_member $pkg $DEPENDS_CHECKED; then
echo "${OPI} Checking if $pkg has new depends..."
- OLD_DEPENDS=$(pkg_info -Nq $pkg | sed 's/-[0-9][^-]*$//')
+ OLD_DEPENDS=$(${PKG_INFO} -Nq $pkg | sed 's/-[0-9][^-]*$//')
NEW_DEPENDS=
cd "$PKGSRCDIR/$pkgdir"
bdeps=$(${MAKE} show-depends VARNAME=BUILD_DEPENDS)
@@ -351,14 +353,20 @@ while [ -n "$REPLACE_TODO" ]; do
fi
# Do make replace, with clean before, and package and clean afterwards.
- echo "${OPI} Replacing $(pkg_info -e $pkg)"
+ echo "${OPI} Replacing $(${PKG_INFO} -e $pkg)"
FAIL=
+ cmd="cd \"$PKGSRCDIR/$pkgdir\" \
+ && ${MAKE} clean && ${MAKE} replace \
+ && ([ -z \"$(${PKG_INFO} -Q unsafe_depends $pkg)\" ] \
+ || ${PKG_ADMIN} unset unsafe_depends $pkg) \
+ && ([ -z \"$(${PKG_INFO} -Q rebuild $pkg)\" ] \
+ || ${PKG_ADMIN} unset rebuild $pkg) \
+ && ${MAKE} package && ${MAKE} clean \
+ || FAIL=1"
if [ -z "$opt_n" ]; then
- cd "$PKGSRCDIR/$pkgdir" \
- && ${MAKE} clean && ${MAKE} replace && ${MAKE} package && ${MAKE} clean \
- || FAIL=1
+ eval "$cmd"
else
- echo "cd $PKGSRCDIR/$pkgdir && ${MAKE} clean && ${MAKE} replace && ${MAKE} package && ${MAKE} clean"
+ echo "$cmd"
fi
if [ -n "$FAIL" ]; then
echo "*** 'make replace' failed for package $pkg."