From c1dcebb038cba2c9b7428591a3e9dc8dc6e5f02f Mon Sep 17 00:00:00 2001 From: tnn Date: Mon, 6 Aug 2007 15:07:56 +0000 Subject: 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. --- pkgtools/pkg_rolling-replace/Makefile | 16 +++++----- .../files/pkg_rolling-replace.sh | 36 +++++++++++++--------- 2 files changed, 31 insertions(+), 21 deletions(-) (limited to 'pkgtools/pkg_rolling-replace') 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 $ # # 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." -- cgit v1.2.3