From 90ffbf4b2c4cd9fee7192be129da50ec21bcbb61 Mon Sep 17 00:00:00 2001
From: Kevin Deldycke <kevin@nexedi.com>
Date: Wed, 18 Jan 2006 14:46:22 +0000
Subject: [PATCH] Manage RPM release number automaticaly and add some comments

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@5158 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/spec/build-spec | 43 +++++++++++++++++++++++++++++++-----
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/product/ERP5/spec/build-spec b/product/ERP5/spec/build-spec
index c658a62ff9..4ed9f799f5 100755
--- a/product/ERP5/spec/build-spec
+++ b/product/ERP5/spec/build-spec
@@ -6,8 +6,9 @@ PARAMS=1
 # and where we want to store the source code from cvs
 CVS_PATH="/home/$USER/cvs"
 RPM_PATH="/home/$USER/rpm"
+REPOSIT="cvs.erp5.org"
 
-# TODO: The spec repository should be moved from /ERP5/spec to /spec in the CVS
+# TODO: The spec repository should be moved from /ERP5/spec to /spec/Mandriva in the CVS
 SPEC_REPOSITORY="ERP5/spec"
 
 
@@ -24,12 +25,19 @@ then
   exit 0
 fi
 
+
 while test $# -gt 0; do
+
+  ####################
+  # Build the archive from the cvs files
+  ####################
+
   NAME=$1
   shift
   echo Starting Building $NAME
+
   # Retrieve the version in the source code as anonymous user to be sure we get published code only
-  cd $CVS_PATH && cvs -d:pserver:anonymous@cvs.erp5.org:/cvsroot checkout $NAME && cd -
+  cd $CVS_PATH && cvs -d:pserver:anonymous@$REPOSIT:/cvsroot checkout $NAME && cd -
   VERSION=`awk '{print $2}' $CVS_PATH/$NAME/VERSION.txt`
   echo Building --$NAME-- Version --$VERSION--
   rm -rf $CVS_PATH/$NAME-$VERSION/
@@ -37,6 +45,7 @@ while test $# -gt 0; do
   cp -a $CVS_PATH/$NAME $CVS_PATH/$NAME-$VERSION
   # Remove CVS extra files
   find $CVS_PATH/$NAME-$VERSION/* -name "CVS" | xargs rm -rf
+
   # Create the archive
   cd $CVS_PATH/$NAME-$VERSION && tar jcvf $NAME-$VERSION.tar.bz2 $NAME && cd -
   mv $CVS_PATH/$NAME-$VERSION/$NAME-$VERSION.tar.bz2 $CVS_PATH/
@@ -48,9 +57,14 @@ while test $# -gt 0; do
   rm -f $TMP_SPEC
   touch $TMP_SPEC
 
+
+  ####################
+  # Get data from the previous spec file commited in the CVS
+  ####################
+
   # Now we will regenerate a spec file skeleton based on the one stored in the CVS.
   # This spec file need to be modified by hand to get
-  cd $CVS_PATH && cvs -d:pserver:anonymous@cvs.erp5.org:/cvsroot checkout $SPEC_REPOSITORY/$NAME.spec
+  cd $CVS_PATH && cvs -d:pserver:anonymous@$REPOSIT:/cvsroot checkout $SPEC_REPOSITORY/$NAME.spec
   CVS_SPEC_FILE="$CVS_PATH/$SPEC_REPOSITORY/$NAME.spec"
 
   # Get summary and required packages
@@ -79,10 +93,23 @@ while test $# -gt 0; do
 
   TODAY=`env LC_TIME=en date +"%a %b %d %Y"`
 
-  # Generate the spec file
+  # Increase the rpm release number if needed
+  PREVIOUS_VERSION=`grep "^%define version*" $CVS_SPEC_FILE | awk '{print $3}'`
+  PREVIOUS_REL=`grep "^%define release*" $CVS_SPEC_FILE | awk '{print $3}'`
+  if test "x$VERSION" = "x$PREVIOUS_VERSION"; then
+    RELEASE=`expr $PREVIOUS_REL + 1`
+  else
+    RELEASE="1"
+  fi
+  MKREL=`rpm --with unstable --eval "%mkrel $RELEASE"`
+
+  ####################
+  # Build the spec file using the following template
+  ####################
+
   echo "%define product $NAME
 %define version $VERSION
-%define release 1
+%define release $RELEASE
 
 %define zope_home %{_prefix}/lib/zope
 %define software_home %{zope_home}/lib/python
@@ -136,7 +163,7 @@ $DOC
 
 #----------------------------------------------------------------------
 %changelog
-* $TODAY $PACKAGER <$EMAIL> $VERSION-1mdk
+* $TODAY $PACKAGER <$EMAIL> $VERSION-$MKREL
 - $LOG_MSG
 
 $CHANGELOG" >> $TMP_SPEC
@@ -147,6 +174,10 @@ $CHANGELOG" >> $TMP_SPEC
 
   #rpmbuild -ba $RPM_PATH/SPECS/$NAME.spec
 
+  echo "-------------"
+  echo "Please commit the new $NAME.spec file in the Nexedi repository (http://$REPOSIT)"
+  echo "-------------"
+
 done
 
 exit 0
-- 
2.30.9