#!/bin/sh

WORKDIR=/tmp/rpmlog
RPMSDIR=`pwd`
CHANGELOG=`pwd`/changelog.txt

mkdir -p $WORKDIR
rm -f $CHANGELOG

for s in $RPMSDIR/*src.rpm; do
  pushd $WORKDIR 2>&1 > /dev/null
  SPECFILE=`rpm2cpio "$s" | cpio -it '*.spec' 2>/dev/null`
  TMPSPEC=""
  for n in $SPECFILE; do
    if echo $TMPSPEC | grep -qv "^self-build-"; then
      TMPSPEC=$n
    fi
  done
  SPECFILE=$TMPSPEC

  rpm2cpio "$s" | cpio -i "$SPECFILE"  2>/dev/null
  popd 2>&1 > /dev/null

  echo "checking: $s"

  RELEASE=`rpm -qp --qf '%{release}' "$s"`
  ARCH=`rpm -qp --qf '%{arch}' "$s"`
  DIST=`echo $RELEASE | perl -pe 's/^.+(vl\d+)$/$1/'`

  PKGS=`basename $s`
  COMPLETE=1

  for a in i686 x86_64; do
    RPMS=`rpmspec -q --define "_dist_release $DIST" --target="$a" --rpms $WORKDIR/$SPECFILE`

    for r in $RPMS; do
      if [ $a = "i686" ] || echo $r | grep -qv 'noarch$'; then
echo $r;
        if [ -f $RPMSDIR/$r.rpm ]; then
          PKGS="$PKGS $r.rpm"
        else
          if [ $a = "i686" ] || echo $r | grep -qv "^compat32-"; then
            COMPLETE=0
          fi
        fi
      fi
    done
  done

  if [ $COMPLETE -eq 1 ]; then
    for r in $PKGS; do
      echo $r >> $CHANGELOG
    done
    echo >> $CHANGELOG
    LANG=C rpm -q --specfile --changelog $WORKDIR/$SPECFILE | tr "\n" "\r" | perl -pe 's/\r\r.+//s' | tr "\r" "\n" >> $CHANGELOG
    echo >> $CHANGELOG
    echo >> $CHANGELOG
  fi

  rm -f $WORKDIR/$SPECFILE

  echo
done

exit 0
