#!/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`"
;;
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