trying to get HEAD building again. If you want the code
[kai/samba.git] / packaging / RedHat / makerpms.sh.tmpl
index 1767176a1fe94743a7dd51af106e4426549bab6c..dc82033b06a6efc930da99f4faa4734fa4dd4f76 100644 (file)
@@ -1,36 +1,57 @@
 #!/bin/sh
-# Copyright (C) John H Terpstra 1998
+# Copyright (C) John H Terpstra 1998-2002
 # Updated for RPM 3 by Jochen Wiedmann, joe@ispsoft.de
+# Changed for a generic tar file rebuild by abartlet@pcug.org.au
+# Changed by John H Terpstra to build on RH7.2 - should also work for earlier versions jht@samba.org
+
+# The following allows environment variables to override the target directories
+#   the alternative is to have a file in your home directory calles .rpmmacros
+#   containing the following:
+#   %_topdir  /home/mylogin/redhat
+#
+# Note: Under this directory rpm expects to find the same directories that are under the
+#   /usr/src/redhat directory
 #
+if [ -r ~/.rpmmacros ]; then
+       TOPDIR=`awk '/topdir/ {print $2}' < ~/.rpmmacros`
+       if [ z$TOPDIR != "z" ]; then
+               SPECDIR=${TOPDIR}/SPECS
+               SRCDIR=${TOPDIR}/SOURCES
+       fi
+fi
+
+SPECDIR=${SPECDIR:-/usr/src/redhat/SPECS}
+SRCDIR=${SRCDIR:-/usr/src/redhat/SOURCES}
+
+# At this point the SPECDIR and SRCDIR vaiables must have a value!
+
 USERID=`id -u`
 GRPID=`id -g`
+VERSION='PVERSION'
+SPECFILE="samba3.spec"
+
+RPMVER=`rpm --version | awk '{print $3}'`
+RPM="rpm"
+echo The RPM Version on this machine is: $RPMVER
 
-rpm3var () {
-    echo "rpm3var start $1" >>/tmp/log
-    var=`rpm --showrc \
-         | awk "/-[0-9]+[:=][[:blank:]]+$1[[:blank:]]/ {print \\$3}"`
-    echo "var=$var" >>/tmp/log
-    while test -n "`echo $var | egrep '%{[_a-zA-Z]+}'`"; do
-       v=`echo $var | sed 's/.*%{\([_a-zA-Z]\+\)}.*/\1/'`
-       echo "Loop: v=$v" >>/tmp/log
-       w="`rpm3var $v`"
-       var=`echo $var | sed "s,%{\\([_a-zA-Z]\\+\\)},$w,g"`
-       echo "Loop: var=$var" >>/tmp/log
-    done
-    echo "rpm3var stop $1 $var" >>/tmp/log
-    echo $var
-}
-
-case `rpm --version | awk '{print $3}'` in
-    2.*)
-       RPMDIR=`rpm --showrc | awk '/^rpmdir/ { print $3}'`
-       SPECDIR=`rpm --showrc | awk '/^specdir/ { print $3}'`
-       SRCDIR=`rpm --showrc | awk '/^sourcedir/ { print $3}'`
+case $RPMVER in
+    2*)
+       echo Building for RPM v2.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba.spec > $SPECFILE
        ;;
-    3.*)
-       RPMDIR=`rpm3var _rpmdir`
-       SPECDIR=`rpm3var _specdir`
-       SRCDIR=`rpm3var _sourcedir`
+    3*)
+       echo Building for RPM v3.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba.spec > $SPECFILE
+       ;;
+    4.0*)
+       ## catch rpm v4.0.x first
+       echo Building for RPM v4.0
+       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba.spec > $SPECFILE
+       ;;
+    4.*)
+       echo Building for RPM v4.1 or later
+       RPM="rpmbuild"
+       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba.spec > $SPECFILE
        ;;
     *)
        echo "Unknown RPM version: `rpm --version`"
@@ -38,10 +59,16 @@ case `rpm --version | awk '{print $3}'` in
        ;;
 esac
 
-( cd ../../.. ; chown -R ${USERID}.${GRPID} ${SRCDIR}/samba-PVERSION )
-( cd ../../.. ; tar czvf ${SRCDIR}/samba-PVERSION.tar.gz samba-PVERSION )
+( cd ../../source; if [ -f Makefile ]; then make distclean; fi )
+( cd ../../.. ; chown -R ${USERID}.${GRPID} samba-${VERSION} )
+
+( cd ../../.. ; tar --exclude=CVS -cf - samba-${VERSION}/. | bzip2 > ${SRCDIR}/samba-${VERSION}.tar.bz2 )
+
+cp -av $SPECFILE ${SPECDIR}
+
+echo Getting Ready to build release package
+cd ${SPECDIR}
+${RPM} -ba -v --clean --rmsource $SPECFILE
+
+echo Done.
 
-cp -a *.spec $SPECDIR
-cp -a *.patch smb.* samba.log $SRCDIR
-cd $SPECDIR
-rpm -ba -v samba2.spec