From bfdfb280f1703db414cc60ebb8e56c913bc4ca54 Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Thu, 13 Jul 2006 14:49:04 +0000 Subject: [PATCH] Benjamin Schieder: ./scripts/Create-UpdList: fix it to support pkgforking ./scripts/functions: adapt parse_desc for use outside the build-root Take 2 BUGFIX! [2006071009034911010] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7723 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- scripts/Create-UpdList | 32 ++++++++++++++++++++------------ scripts/functions | 9 ++++++++- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/scripts/Create-UpdList b/scripts/Create-UpdList index 4d1264b94..ae93e62b0 100755 --- a/scripts/Create-UpdList +++ b/scripts/Create-UpdList @@ -50,38 +50,46 @@ while [ "$1" ] ; do done . scripts/parse-config +. scripts/functions grep '^X' config/$config/packages | cut -f5 -d' ' | \ egrep -vx 'rock-debug|rock-src' | \ while read package ; do confdir="" + pkg=${package%%=*} + xpkg=${package##*=} for x in package/* ; do - if [ -d "$x/$package" ] ; then + if [ -d "$x/$pkg" ] ; then if [ "$confdir" ] ; then confdir=X - else confdir="$x/$package" ; fi + else confdir="$x/$pkg" ; fi fi done if [ -z "$confdir" ] ; then - echo "$package: No such package." + echo "$pkg: No such package." elif [ "$confdir" = X ] ; then - echo "$package: Package in multiple trees." - elif [ ! -f $root/var/adm/packages/$package ] ; then - echo "$package: Not installed." + echo "$pkg: Package in multiple trees." + elif [ ! -f $root/var/adm/packages/$xpkg ] ; then + echo "$xpkg: Not installed." else + unset ${!desc_*} + parse_desc $confdir/$pkg.desc o_ver=$(grep '^Package Name and Version' \ - $root/var/adm/packages/$package | cut -f6 -d' ') - n_ver=$(grep '^\[V\] ' $confdir/$package.desc | cut -f2 -d' ') + $root/var/adm/packages/$xpkg | cut -f6 -d' ') + n_ver=${desc_V##* +} + # this is not a typo! desc_V contains all [V] tags newline separated + n_ver="${n_ver% }" if [ "$o_ver" != "$n_ver" -a "$n_ver" != "0000" ] ; then - echo "$package: New version ($o_ver -> $n_ver)." + echo "$pkg=$xpkg: New version ($o_ver -> $n_ver)." else if [ $ignore_chksum = 0 ] ; then o_ck=$(grep '^ROCK Linux Package Source Checksum' \ - $root/var/adm/packages/$package | cut -f6 -d' ') - n_ck=$(md5sum package/*/$package/* 2> /dev/null | \ + $root/var/adm/packages/$xpkg | cut -f6 -d' ') + n_ck=$(md5sum package/*/$pkg/* 2> /dev/null | \ grep -v '\.cache$' | md5sum | cut -f1 -d' ') if [ "$o_ck" != "$n_ck" ] ; then - echo "$package: New source checksum ($n_ck)." + echo "$pkg=$xpkg: New source checksum ($n_ck)." fi fi fi diff --git a/scripts/functions b/scripts/functions index 5a95774bf..ab721aba8 100644 --- a/scripts/functions +++ b/scripts/functions @@ -350,9 +350,16 @@ postflist_libs() { # save the tag data in $desc_*. # parse_desc() { + parser="$( which descparser )" + [ -z "${parser}" ] && parser="$base/src/descparser" + if [ ! -x "${parser}" ] ; then + mkdir -p $base/src + cc -o $base/src/descparser $base/misc/tools-source/descparser.c + fi + [ ! -x "${parser}" ] && abort "Couldn't find \`descparser'! Please run ./scripts/Build-Tools!" tag="`grep '^\[' $base/Documentation/Developers/PKG-DESC-FORMAT | \ sed 's, (\*),,; s,\] \[,|,g; s,\[,,; s,\],,;'`" - descfile="$( pkg="$pkg" xpkg="$xpkg" descparser < $1 )" + descfile="$( pkg="$pkg" xpkg="$xpkg" $parser < $1 )" for tag in $tag ; do tagdata="`echo "$descfile" | egrep "^\[($tag)\]" | \ cut -f2- -d']' | sed 's,^ ,,'`"