#!/bin/sh # # Fix the SPEC of a package submitted for official Mandriva bugfix updates: # - currently must be run in the correct environment (chroot) # - original SRPM is untouched # - sets subrel if package doesn't have it defined # - increases subrel if package already has it defined # - adds changelog entry with correct E-V-R and boilerplate "- build for updates" # - works on tempdir, cleaned up at end # - final SRPM is put on current dir # AUTHOR="Oden Eriksson " CL_MSG="- rebuild" usage() { cat <"$SPEC" elif [ $SUBREL -eq 1 ]; then NEWSUBREL="`sed -e '/%define[ \\t]\\+subrel/!d; s/[ \\t]*%define[ \\t]\\+subrel[ \\t]\\+//' <$SPEC.bak`" NEWSUBREL=$(($NEWSUBREL+1)) sed -e "/%define[ \\t]\+subrel/s/\\(^[ \\t]*%define[ \\t]\\+subrel[ \\t]\\+\\)[0-9]\+/\1$NEWSUBREL/" <"$SPEC.bak" >"$SPEC" else echo "Bad SRPM: Multiple subrel definitions." exit 1 fi fi EVR="`rpm -q --qf '%{EPOCH}:%{VERSION}-%{RELEASE}\n' --specfile $SPEC 2>/dev/null | sed -e '2,$d; s/^(none)://'`" awk -v AUTHOR="$AUTHOR" -v EVR="$EVR" -v CL_MSG="$CL_MSG" ' /^%changelog/ { print; print strftime("* %a %b %d %Y "AUTHOR" "EVR); print CL_MSG; print "" } ! /^%changelog/{ print }' \ "$SPEC" >"$SPEC.new" mv -fv "$SPEC.new" "$SPEC" diff -u "$SPEC.bak" "$SPEC" SRPM="`rpmbuild --nodeps --define "_topdir $TOPDIR" --nodeps -bs "$SPEC" | sed 's/^Wrote: //'`" popd mv -i "$SRPM" . rm -rf "$TOPDIR" SRPM="./`basename $SRPM`" echo "$SRPM"