[PATCH 5 of 6] buildrpm: build full RPM package including sources

Gilles Moris gilles.moris at free.fr
Mon Nov 9 03:21:46 CST 2009


 contrib/buildrpm |  20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)


# HG changeset patch
# User Gilles Moris <gilles.moris at free.fr>
# Date 1257497995 -3600
# Node ID 614a3d9dc6b3973f2521dc0730791060d3c78889
# Parent  7d4058110c69bb0558d96a3236662d83e4f87a8f
buildrpm: build full RPM package including sources

diff --git a/contrib/buildrpm b/contrib/buildrpm
--- a/contrib/buildrpm
+++ b/contrib/buildrpm
@@ -34,10 +34,8 @@
 rpmdir="$PWD/rpmbuild"
 
 rm -rf $rpmdir
-mkdir -p $rpmdir/RPMS
-$HG clone -u . . $rpmdir/BUILD
+mkdir -p $rpmdir/SOURCES $rpmdir/SPECS $rpmdir/RPMS $rpmdir/SRPMS $rpmdir/BUILD
 
-tmpspec=/tmp/`basename "$specfile"`.$$ # FIXME: Insecure /tmp handling
 # make setup.py build the version string
 python setup.py build_py -c -d .
 hgversion=`$HG version | sed -ne 's/.*(version \(.*\))$/\1/p'`
@@ -52,13 +50,14 @@
     release='0'
 fi
 
+$HG archive -t tgz $rpmdir/SOURCES/mercurial-$version.tar.gz
+rpmspec=$rpmdir/SPECS/mercurial-$version.spec
+
 sed -e "s,^Version:.*,Version: $version," \
     -e "s,^Release:.*,Release: $release," \
-    -e "s,^%prep.*,\n\0," \
-    -e 's,^%setup.*,,' \
-    $specfile > $tmpspec
+    $specfile > $rpmspec
 
-cat <<EOF >> $tmpspec
+cat <<EOF >> $rpmspec
 %changelog
 * `LANG=en_US date +'%a %b %d %Y'` `$HG showconfig ui.username` $version-$release
 - Automatically built via $0
@@ -69,12 +68,11 @@
      .hgtags \
   | sed -e 's/^\(\* [MTWFS][a-z][a-z]\), \([0-3][0-9]\) \([A-Z][a-z][a-z]\) /\1 \3 \2 /' \
         -e '/^\* [MTWFS][a-z][a-z] /{s/ [012][0-9]:[0-9][0-9]:[0-9][0-9] [+-][0-9]\{4\}//}' \
-   >> $tmpspec
+   >> $rpmspec
 
-rpmbuild --define "_topdir $rpmdir" -bb $tmpspec --clean
+rpmbuild --define "_topdir $rpmdir" -ba $rpmspec --clean
 if [ $? = 0 ]; then
-    mv $rpmdir/RPMS/*/* $rpmdir && rm -r $rpmdir/RPMS
     echo
     echo "Packages are in $rpmdir:"
-    ls -l $rpmdir/*.rpm
+    ls -l $rpmdir/*RPMS/*
 fi


More information about the Mercurial-devel mailing list