pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/pkgtools/pkg_rolling-replace Update to pkg_rolling-rep...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a35d452755dc
branches:  trunk
changeset: 531794:a35d452755dc
user:      tnn <tnn%pkgsrc.org@localhost>
date:      Mon Aug 06 15:07:56 2007 +0000

description:
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:

 pkgtools/pkg_rolling-replace/Makefile                     |  16 +++--
 pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh |  36 +++++++++-----
 2 files changed, 31 insertions(+), 21 deletions(-)

diffs (136 lines):

diff -r f5cc13749e26 -r a35d452755dc pkgtools/pkg_rolling-replace/Makefile
--- a/pkgtools/pkg_rolling-replace/Makefile     Mon Aug 06 14:59:20 2007 +0000
+++ b/pkgtools/pkg_rolling-replace/Makefile     Mon Aug 06 15:07:56 2007 +0000
@@ -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 @@
 
 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 -r f5cc13749e26 -r a35d452755dc pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh
--- a/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh Mon Aug 06 14:59:20 2007 +0000
+++ b/pkgtools/pkg_rolling-replace/files/pkg_rolling-replace.sh Mon Aug 06 15:07:56 2007 +0000
@@ -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 @@
 # 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_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 @@
 # 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 @@
             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 @@
 
     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 @@
     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."



Home | Main Index | Thread Index | Old Index