Subject: pkg/17069: [PATCH]: Enable $PKG_DBDIR and $MAKECONF support in pkg_chk(8)
To: None <gnats-bugs@gnats.netbsd.org>
From: None <sketch@rd.bbc.co.uk>
List: netbsd-bugs
Date: 05/27/2002 08:42:46
>Number: 17069
>Category: pkg
>Synopsis: [PATCH]: Enable $PKG_DBDIR and $MAKECONF support in pkg_chk(8)
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon May 27 08:43:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Jonathan Perkin
>Release: 1.5ZC
>Organization:
British Broadcasting Corporation
>Environment:
NetBSD batfink.intra.nut 1.5ZC NetBSD 1.5ZC (BATFINK) #0: Tue May 21 14:04:10 BST 2002 sketch@batfink.intra.nut:/usr/src/sys/arch/i386/compile/BATFINK i386
>Description:
pkg_chk is nice, but has some hard-coded pathnames which is sub-optimal
for those of us on i.e. solaris machines using zoularis without root :)
The following patch also cleans it up a bit, adding $MAKECONF support.
Not very well tested, especially on real NetBSD machines. All breakages
are my own.
>How-To-Repeat:
>Fix:
Index: pkgchk.8
===================================================================
RCS file: /cache/ncvs/pkgsrc/pkgtools/pkgchk/files/pkgchk.8,v
retrieving revision 1.12
diff -u -r1.12 pkgchk.8
--- pkgchk.8 2002/03/17 22:47:40 1.12
+++ pkgchk.8 2002/05/27 15:37:14
@@ -150,9 +150,18 @@
.Bl -tag -width xxxx
.It Ev PKGSRCDIR
Base of pkgsrc tree. If not set in environment then read from
+.Pa ${MAKECONF}
+or
.Pa /etc/mk.conf .
Defaults to
.Pa /usr/pkgsrc
+.It Ev PKG_DBDIR
+pkgsrc database directory. If not set in environment then read from
+.Pa ${MAKECONF}
+or
+.Pa /etc/mk.conf .
+Defaults to
+.Pa /var/db/pkg
.It Ev PACKAGES
Location of binary packages. If not set in environment then read from
.Pa /etc/mk.conf .
Index: pkgchk.sh
===================================================================
RCS file: /cache/ncvs/pkgsrc/pkgtools/pkgchk/files/pkgchk.sh,v
retrieving revision 1.31
diff -u -r1.31 pkgchk.sh
--- pkgchk.sh 2002/04/01 20:20:05 1.31
+++ pkgchk.sh 2002/05/27 15:24:43
@@ -28,7 +28,7 @@
echo "Unable to extract PKGNAME for $pkgdir"
exit 1
fi
- if [ ! -d /var/db/pkg/$PKGNAME ];then
+ if [ ! -d $PKG_DBDIR/$PKGNAME ];then
echo_n "$PKGNAME: "
pkg=`echo $PKGNAME | sed 's/-[0-9].*//'`
pkginstalled=`sh -c "${PKG_INFO} -e $pkg" || true`
@@ -48,7 +48,7 @@
else
if [ -n "$opt_B" ];then
current_build_ver=`get_build_ver`
- installed_build_ver=`sed "s|^[^:]*/[^:]*:||" /var/db/pkg/$PKGNAME/+BUILD_VERSION`
+ installed_build_ver=`sed "s|^[^:]*/[^:]*:||" $PKG_DBDIR/$PKGNAME/+BUILD_VERSION`
if [ x"$current_build_ver" != x"$installed_build_ver" ];then
echo "$PKGNAME: build version information mismatch"
MISMATCH_TODO="$MISMATCH_TODO $PKGNAME"
@@ -84,7 +84,9 @@
#
if [ -z "$PKGSRCDIR" ];then
- if [ -f /etc/mk.conf ] ;then
+ if [ -f $MAKECONF ];then
+ eval `printf 'BSD_PKG_MK=1\nx:\n\t@echo PKGSRCDIR=${PKGSRCDIR}\n' | ${MAKE} -f - -f $MAKECONF x`
+ elif [ -f /etc/mk.conf ];then
eval `printf 'BSD_PKG_MK=1\nx:\n\t@echo PKGSRCDIR=${PKGSRCDIR}\n' | ${MAKE} -f - -f /etc/mk.conf x`
fi
if [ -z "$PKGSRCDIR" ];then
@@ -96,6 +98,24 @@
exit 1;
fi
+ # Establish PKG_DBDIR
+ #
+
+ if [ -z "$PKG_DBDIR" ];then
+ if [ -f $MAKECONF ];then
+ eval `printf 'BSD_PKG_MK=1\nx:\n\t@echo PKG_DBDIR=${PKG_DBDIR}\n' | ${MAKE} -f - -f $MAKECONF x`
+ elif [ -f /etc/mk.conf ];then
+ eval `printf 'BSD_PKG_MK=1\nx:\n\t@echo PKG_DBDIR=${PKG_DBDIR}\n' | ${MAKE} -f - -f /etc/mk.conf x`
+ fi
+ if [ -z "$PKG_DBDIR" ];then
+ PKGSRCDIR=/var/db/pkg
+ fi
+ fi
+ if [ ! -d $PKG_DBDIR ];then
+ echo "Unable to locate PKG_DBDIR '$PKG_DBDIR'"
+ exit 1;
+ fi
+
# Now we have PKGSRCDIR, use it to determine PACKAGES, and PKGCHK_CONF
# as well as AWK, GREP, SED, PKGCHK_TAGS and PKGCHK_NOTAGS
#
@@ -159,7 +179,7 @@
PKGDIR=$2
INSTALL=$3
- if [ -d /var/db/pkg/$PKGNAME ];then
+ if [ -d $PKG_DBDIR/$PKGNAME ];then
echo "$PKGNAME installed in previous stage"
elif [ -n "$opt_b" -a -f $PACKAGES/All/$PKGNAME.tgz ] ; then
if [ $INSTALL = Update ];then
@@ -175,7 +195,7 @@
run_cmd "cd $PKGSRCDIR/$PKGDIR && ${MAKE} update"
fi
- if [ -z "$opt_n" -a ! -d /var/db/pkg/$PKGNAME ];then
+ if [ -z "$opt_n" -a ! -d $PKG_DBDIR/$PKGNAME ];then
FAIL=1
fi
@@ -423,8 +443,8 @@
set -- $UPDATE_TODO
while [ $# != 0 ]; do
PKGNAME=`echo $1 | sed 's/-[0-9].*//'`
- if [ -f /var/db/pkg/$PKGNAME-[0-9]*/+REQUIRED_BY ];then
- LIST="$LIST$1|$2|`cat /var/db/pkg/$PKGNAME-[0-9]*/+REQUIRED_BY | xargs echo`\n"
+ if [ -f $PKG_DBDIR/$PKGNAME-[0-9]*/+REQUIRED_BY ];then
+ LIST="$LIST$1|$2|`cat $PKG_DBDIR/$PKGNAME-[0-9]*/+REQUIRED_BY | xargs echo`\n"
else
LIST="$LIST$1|$2\n"
fi
>Release-Note:
>Audit-Trail:
>Unformatted: