| @@ -1,16 +1,16 @@ | | | @@ -1,16 +1,16 @@ |
1 | #!@SH@ -e | | 1 | #!@SH@ -e |
2 | # | | 2 | # |
3 | # $Id: pkg_chk.sh,v 1.53 2008/02/17 00:55:21 tnn Exp $ | | 3 | # $Id: pkg_chk.sh,v 1.54 2008/02/17 01:05:39 tnn Exp $ |
4 | # | | 4 | # |
5 | # TODO: Make -g check dependencies and tsort | | 5 | # TODO: Make -g check dependencies and tsort |
6 | # TODO: Variation of -g which only lists top level packages | | 6 | # TODO: Variation of -g which only lists top level packages |
7 | # TODO: List top level packages installed but not in config | | 7 | # TODO: List top level packages installed but not in config |
8 | | | 8 | |
9 | PATH=${PATH}:/usr/sbin:/usr/bin | | 9 | PATH=${PATH}:/usr/sbin:/usr/bin |
10 | | | 10 | |
11 | SUMMARY_FILE=pkg_summary.gz | | 11 | SUMMARY_FILE=pkg_summary.gz |
12 | OLD_SUMMARY_FILE=pkg_chk-summary | | 12 | OLD_SUMMARY_FILE=pkg_chk-summary |
13 | | | 13 | |
14 | is_binary_available() | | 14 | is_binary_available() |
15 | { | | 15 | { |
16 | if [ -n "$PKGDB" ]; then | | 16 | if [ -n "$PKGDB" ]; then |
| @@ -177,27 +177,27 @@ extract_variables() | | | @@ -177,27 +177,27 @@ extract_variables() |
177 | PKG_ADMIN PKG_INFO PKG_SUFX SED SORT SU_CMD TSORT | | 177 | PKG_ADMIN PKG_INFO PKG_SUFX SED SORT SU_CMD TSORT |
178 | if [ -z "$PACKAGES" ];then | | 178 | if [ -z "$PACKAGES" ];then |
179 | PACKAGES=$PKGSRCDIR/packages | | 179 | PACKAGES=$PKGSRCDIR/packages |
180 | fi | | 180 | fi |
181 | elif [ $MAKECONF != /dev/null ] ; then | | 181 | elif [ $MAKECONF != /dev/null ] ; then |
182 | extract_make_vars $MAKECONF PACKAGES PKGCHK_CONF PKGCHK_UPDATE_CONF \ | | 182 | extract_make_vars $MAKECONF PACKAGES PKGCHK_CONF PKGCHK_UPDATE_CONF \ |
183 | PKGCHK_TAGS PKGCHK_NOTAGS PKG_SUFX | | 183 | PKGCHK_TAGS PKGCHK_NOTAGS PKG_SUFX |
184 | if [ -z "$PACKAGES" ] ; then | | 184 | if [ -z "$PACKAGES" ] ; then |
185 | PACKAGES=`pwd` | | 185 | PACKAGES=`pwd` |
186 | fi | | 186 | fi |
187 | fi | | 187 | fi |
188 | | | 188 | |
189 | # .tgz/.tbz to regexp | | 189 | # .tgz/.tbz to regexp |
190 | PKG_SUFX_RE=`echo $PKG_SUFX | sed 's/[.]/[.]/'` | | 190 | PKG_SUFX_RE=`echo $PKG_SUFX | ${SED} 's/[.]/[.]/'` |
191 | | | 191 | |
192 | if [ ! -d $PKG_DBDIR ] ; then | | 192 | if [ ! -d $PKG_DBDIR ] ; then |
193 | fatal "Unable to access PKG_DBDIR ($PKG_DBDIR)" | | 193 | fatal "Unable to access PKG_DBDIR ($PKG_DBDIR)" |
194 | fi | | 194 | fi |
195 | | | 195 | |
196 | if [ -z "$PKGCHK_CONF" ];then | | 196 | if [ -z "$PKGCHK_CONF" ];then |
197 | PKGCHK_CONF=$PKGSRCDIR/pkgchk.conf | | 197 | PKGCHK_CONF=$PKGSRCDIR/pkgchk.conf |
198 | fi | | 198 | fi |
199 | if [ -z "$PKGCHK_UPDATE_CONF" ];then | | 199 | if [ -z "$PKGCHK_UPDATE_CONF" ];then |
200 | PKGCHK_UPDATE_CONF=$PKGSRCDIR/pkgchk_update-$(hostname).conf | | 200 | PKGCHK_UPDATE_CONF=$PKGSRCDIR/pkgchk_update-$(hostname).conf |
201 | fi | | 201 | fi |
202 | } | | 202 | } |
203 | | | 203 | |
| @@ -249,27 +249,27 @@ get_build_ver() | | | @@ -249,27 +249,27 @@ get_build_ver() |
249 | if [ -n "$opt_b" -a -z "$opt_s" ] ; then | | 249 | if [ -n "$opt_b" -a -z "$opt_s" ] ; then |
250 | ${PKG_INFO} -. -q -b $PACKAGES/$PKGNAME$PKG_SUFX | ${GREP} . | | 250 | ${PKG_INFO} -. -q -b $PACKAGES/$PKGNAME$PKG_SUFX | ${GREP} . |
251 | return | | 251 | return |
252 | fi | | 252 | fi |
253 | # Unfortunately pkgsrc always outputs to a file, but it does helpfully | | 253 | # Unfortunately pkgsrc always outputs to a file, but it does helpfully |
254 | # allows # us to specify the name | | 254 | # allows # us to specify the name |
255 | rm -f $MY_TMPFILE | | 255 | rm -f $MY_TMPFILE |
256 | ${MAKE} _BUILD_VERSION_FILE=$MY_TMPFILE $MY_TMPFILE | | 256 | ${MAKE} _BUILD_VERSION_FILE=$MY_TMPFILE $MY_TMPFILE |
257 | cat $MY_TMPFILE | | 257 | cat $MY_TMPFILE |
258 | } | | 258 | } |
259 | | | 259 | |
260 | list_bin_pkgs () | | 260 | list_bin_pkgs () |
261 | { | | 261 | { |
262 | ls -t $PACKAGES | grep "$PKG_SUFX_RE"'$' | sed "s|^|$PACKAGES/|" | | 262 | ls -t $PACKAGES | grep "$PKG_SUFX_RE"'$' | ${SED} "s|^|$PACKAGES/|" |
263 | } | | 263 | } |
264 | | | 264 | |
265 | # Given a binary package filename as the first argumennt, return a list | | 265 | # Given a binary package filename as the first argumennt, return a list |
266 | # of exact package versions against which it was built and on which it | | 266 | # of exact package versions against which it was built and on which it |
267 | # depends | | 267 | # depends |
268 | # | | 268 | # |
269 | list_dependencies() | | 269 | list_dependencies() |
270 | { | | 270 | { |
271 | ${PKG_INFO} -. -q -n $1 | ${GREP} .. || true | | 271 | ${PKG_INFO} -. -q -n $1 | ${GREP} .. || true |
272 | } | | 272 | } |
273 | | | 273 | |
274 | # Pass a list of pkgdirs, outputs a tsorted list including any dependencies | | 274 | # Pass a list of pkgdirs, outputs a tsorted list including any dependencies |
275 | # | | 275 | # |
| @@ -784,27 +784,27 @@ fi | | | @@ -784,27 +784,27 @@ fi |
784 | | | 784 | |
785 | if [ "`${ID} -u`" = 0 ] ; then | | 785 | if [ "`${ID} -u`" = 0 ] ; then |
786 | SU_CMD= | | 786 | SU_CMD= |
787 | fi | | 787 | fi |
788 | | | 788 | |
789 | if [ -n "$opt_N" ]; then | | 789 | if [ -n "$opt_N" ]; then |
790 | ${PKG_INFO} | \ | | 790 | ${PKG_INFO} | \ |
791 | ${SED} -e "s/[ ].*//" -e "s/-[^-]*$//" \ | | 791 | ${SED} -e "s/[ ].*//" -e "s/-[^-]*$//" \ |
792 | -e "s/py[0-9][0-9]pth-/py-/" \ | | 792 | -e "s/py[0-9][0-9]pth-/py-/" \ |
793 | -e "s/py[0-9][0-9]-/py-/" | \ | | 793 | -e "s/py[0-9][0-9]-/py-/" | \ |
794 | while read a | | 794 | while read a |
795 | do | | 795 | do |
796 | b=$(grep "o $a-[0-9]" $PKGSRCDIR/doc/TODO | \ | | 796 | b=$(grep "o $a-[0-9]" $PKGSRCDIR/doc/TODO | \ |
797 | sed -e "s/[ ]*o //") | | 797 | ${SED} -e "s/[ ]*o //") |
798 | if [ "$b" ] | | 798 | if [ "$b" ] |
799 | then | | 799 | then |
800 | echo $a: $b | | 800 | echo $a: $b |
801 | fi | | 801 | fi |
802 | done | | 802 | done |
803 | fi | | 803 | fi |
804 | | | 804 | |
805 | AWK_PARSE_SUMMARY='$1=="PKGNAME"{pkgname=$2} $1=="PKGPATH"{pkgpath=$2} NF==0{if (pkgpath && pkgname) print pkgpath ":" pkgname; pkgpath=""; pkgname=""} END{if (pkgpath && pkgname) print pkgpath ":" pkgname}' | | 805 | AWK_PARSE_SUMMARY='$1=="PKGNAME"{pkgname=$2} $1=="PKGPATH"{pkgpath=$2} NF==0{if (pkgpath && pkgname) print pkgpath ":" pkgname; pkgpath=""; pkgname=""} END{if (pkgpath && pkgname) print pkgpath ":" pkgname}' |
806 | | | 806 | |
807 | if [ -n "$opt_b" -a -z "$opt_s" ] ; then | | 807 | if [ -n "$opt_b" -a -z "$opt_s" ] ; then |
808 | case $PACKAGES in | | 808 | case $PACKAGES in |
809 | http://*|ftp://*) | | 809 | http://*|ftp://*) |
810 | PKGDB=`ftp -o - $PACKAGES/$SUMMARY_FILE | ${GZIP_CMD} -cd \ | | 810 | PKGDB=`ftp -o - $PACKAGES/$SUMMARY_FILE | ${GZIP_CMD} -cd \ |