?mode=patch&uid=2006123116311172410
Open Patch: 2006123116311172410 (by stf)
+ stf
Votecheck 'core-strong': Missing 1 qualified vote(s) (clifford, fake, teha)
scripts/Check-PkgFormat
scripts/Check-PkgFormat: fix for forked packages
scripts/Check-PkgFormat: fix for forked packages --- scripts/Check-PkgFormat (Revision 83) +++ scripts/Check-PkgFormat (Revision 84) @@ -47,10 +47,15 @@ exit 1 fi +. ./scripts/functions +# from ../scripts/parse-config +base=$(pwd -P) + for package ; do + pkg=${package%=*} ; xpkg=${package#*=} lastpdir="" - for pdir in package/*/$package ; do - [ -f $pdir/$package.desc ] || continue + for pdir in package/*/$pkg ; do + [ -f $pdir/$pkg.desc ] || continue [ "$lastpdir" ] && echo "$package: Found dup: $pdir $lastpdir" lastpdir="$pdir" done @@ -60,41 +65,41 @@ pdir="$lastpdir" fi - if [ -f $pdir/$package.conf ] ; then - if egrep -q '^[^#]*\bflistdel' $pdir/$package.conf ; then + if [ -f $pdir/$pkg.conf ] ; then + if egrep -q '^[^#]*\bflistdel' $pdir/$pkg.conf ; then echo "$package: Use of \$flistdel is evil!" fi fi - if [ -f $pdir/$package.desc ] ; then - grep '[^ ]' $pdir/$package.desc | \ + if [ -f $pdir/$pkg.desc ] ; then + grep '[^ ]' $pdir/$pkg.desc | \ egrep -v '^(\[[A-Z0-9-]+\]( |$)|#)' | \ - sed "s,^,$package: Syntax error in $package.desc: ," + sed "s,^,$package: Syntax error in $pkg.desc: ," - egrep '^\[[A-Z0-9-]+\]( |$)' $pdir/$package.desc | \ + egrep '^\[[A-Z0-9-]+\]( |$)' $pdir/$pkg.desc | \ tr '[]' '||' | cut -f2 -d'|' | \ while read tag ; do grep -q "\\[$tag\\]" Documentation/Developers/$( )PKG-DESC-FORMAT && continue [ "${tag#X-}" != "$tag" ] && continue - echo "$package: Unknown tag in $package.desc: [$tag]" + echo "$package: Unknown tag in $pkg.desc: [$tag]" done - for x in `egrep '^\[(C|CATEGORY)\]' $pdir/$package.desc | \ + for x in `egrep '^\[(C|CATEGORY)\]' $pdir/$pkg.desc | \ cut -f2- -d']'` ; do egrep -q "^$x( |$)" Documentation/Developers/$( )PKG-CATEGORIES && continue echo "$package: Unknown package category: $x" done - for x in `egrep '^\[(F|FLAG)\]' $pdir/$package.desc | \ + for x in `egrep '^\[(F|FLAG)\]' $pdir/$pkg.desc | \ cut -f2- -d']'` ; do egrep -q "^$x " Documentation/Developers/$( )PKG-FLAGS && continue echo "$package: Unknown package flag: $x" done - for x in `egrep '^\[(S|STATUS)\]' $pdir/$package.desc | \ + for x in `egrep '^\[(S|STATUS)\]' $pdir/$pkg.desc | \ cut -f2- -d']'` ; do case $x in Alpha|Beta|Gamma|Stable) ;; @@ -103,7 +108,7 @@ esac done - for x in `egrep '^\[(L|LICENSE)\]' $pdir/$package.desc | \ + for x in `egrep '^\[(L|LICENSE)\]' $pdir/$pkg.desc | \ cut -f2- -d']'` ; do case $x in Unknown|GPL|LGPL|MPL|FDL|MIT|BSD) ;; @@ -117,15 +122,16 @@ grep '^\[.*(\*)$' Documentation/Developers/PKG-DESC-FORMAT | sed 's/. ./|/g; s/|\*)//; s/^\[//;' | \ while read line ; do - egrep -q "^\[($line)\]" $pdir/$package.desc || - echo "$package: No [$line] tag found." + parse_desc $pdir/$pkg.desc "${line%%\|*}" + eval tag="desc_${line%%\|*}" + eval [ -z "$tag" ] && echo "$package: No [$line] tag found." done else - echo "$package: File not found: $pdir/$package.desc" + echo "$package: File not found: $pdir/$pkg.desc" fi - if [ -f $pdir/$package.conf ] ; then - bash -n $pdir/$package.conf 2>&1 | sed "s,^,$package: ," + if [ -f $pdir/$pkg.conf ] ; then + bash -n $pdir/$pkg.conf 2>&1 | sed "s,^,$package: ," fi done [Download this patch]