source: trunk/server/packaging/RHEL/makerpms.git.sh@ 1036

Last change on this file since 1036 was 414, checked in by Herwig Bauernfeind, 16 years ago

Samba 3.5.0: Initial import

File size: 3.5 KB
Line 
1#!/bin/sh
2# Copyright (C) John H Terpstra 1998-2002
3# Copyright (C) Gerald (Jerry) Carter 2003
4# Copyright (C) Michael Adam 2008
5
6# Script to build RPMs for RHEL from inside a git checkout.
7
8# The following allows environment variables to override the target directories
9# the alternative is to have a file in your home directory calles .rpmmacros
10# containing the following:
11# %_topdir /home/mylogin/redhat
12#
13# Note: Under this directory rpm expects to find the same directories
14# that are under the /usr/src/redhat directory.
15
16# Set DOCS_TARBALL to the path to a docs release tarball in .tar.bz2 format.
17# This tarball should contain the compiled docs with a prefix of "docs/".
18
19# extra options passed to rpmbuild
20EXTRA_OPTIONS="$1"
21
22RPMSPECDIR=`rpm --eval %_specdir`
23RPMSRCDIR=`rpm --eval %_sourcedir`
24
25# At this point the RPMSPECDIR and RPMSRCDIR variables must have a value!
26
27USERID=`id -u`
28GRPID=`id -g`
29
30DIRNAME=$(dirname $0)
31TOPDIR=${DIRNAME}/../..
32SRCDIR=${TOPDIR}/source3
33VERSION_H=${SRCDIR}/include/version.h
34
35SPECFILE="samba.spec"
36DOCS="docs.tar.bz2"
37RPMVER=`rpm --version | awk '{print $3}'`
38RPM="rpmbuild"
39
40##
41## Check the RPM version (paranoid)
42##
43case $RPMVER in
44 4*)
45 echo "Supported RPM version [$RPMVER]"
46 ;;
47 *)
48 echo "Unknown RPM version: `rpm --version`"
49 exit 1
50 ;;
51esac
52
53##
54## determine the samba version and create the SPEC file
55##
56pushd ${SRCDIR}
57./script/mkversion.sh
58popd
59if [ ! -f ${VERSION_H} ] ; then
60 echo "Error creating version.h"
61 exit 1
62fi
63
64VERSION=`grep "^#define SAMBA_VERSION_OFFICIAL_STRING " ${VERSION_H} | awk '{print $3}'`
65vendor_version=`grep "^#define SAMBA_VERSION_VENDOR_SUFFIX " ${VERSION_H} | awk '{print $3}'`
66if test "x${vendor_version}" != "x" ; then
67 VERSION="${VERSION}-${vendor_version}"
68fi
69VERSION=`echo ${VERSION} | sed 's/-/_/g'`
70VERSION=`echo ${VERSION} | sed 's/\"//g'`
71echo "VERSION: ${VERSION}"
72sed -e s/PVERSION/${VERSION}/g \
73 -e s/PRELEASE/1/g \
74 -e s/PRPMREV//g \
75 < ${DIRNAME}/${SPECFILE}.tmpl \
76 > ${DIRNAME}/${SPECFILE}
77
78
79##
80## create the tarball
81##
82pushd ${TOPDIR}
83rm -rf ../samba-${VERSION}
84git archive --prefix=samba-${VERSION}/ HEAD | (cd .. && tar -xf -)
85RC=$?
86popd
87if [ $RC -ne 0 ]; then
88 echo "Build failed!"
89 exit 1
90fi
91
92if [ "x${DOCS_TARBALL}" != "x" ] && [ -f ${DOCS_TARBALL} ]; then
93 cp ${DOCS_TARBALL} /tmp/${DOCS}
94 pushd ${TOPDIR}/../samba-${VERSION}
95 tar xjf /tmp/${DOCS}
96 RC=$?
97 rm -f /tmp/${DOCS}
98 popd
99 if [ $RC -ne 0 ]; then
100 echo "Build failed!"
101 exit 1
102 fi
103fi
104
105pushd ${TOPDIR}/..
106chown -R ${USERID}.${GRPID} samba-${VERSION}${REVISION}
107if [ ! -d samba-${VERSION} ]; then
108 ln -s samba-${VERSION}${REVISION} samba-${VERSION} || exit 1
109fi
110echo -n "Creating samba-${VERSION}.tar.bz2 ... "
111tar --exclude=.svn -cf - samba-${VERSION}/. | bzip2 > ${RPMSRCDIR}/samba-${VERSION}.tar.bz2
112RC=$?
113rm -rf samba-${VERSION}/
114popd
115echo "Done."
116if [ $RC -ne 0 ]; then
117 echo "Build failed!"
118 exit 1
119fi
120
121
122##
123## copy additional source files
124##
125pushd ${DIRNAME}
126chmod 755 setup/filter-requires-samba.sh
127tar --exclude=.svn -jcvf - setup > ${RPMSRCDIR}/setup.tar.bz2
128cp -p ${SPECFILE} ${RPMSPECDIR}
129popd
130
131##
132## Build
133##
134echo "$(basename $0): Getting Ready to build release package"
135pushd ${RPMSPECDIR}
136${RPM} -ba $EXTRA_OPTIONS $SPECFILE
137if [ "x$?" = "x0" ] && [ `arch` = "x86_64" ]; then
138 echo "Building 32 bit winbind libs"
139 # hi ho, a hacking we will go ...
140 ln -sf /lib/libcom_err.so.2 /lib/libcom_err.so
141 ln -sf /lib/libuuid.so.1 /lib/libuuid.so
142 ln -sf /lib/libkeyutils.so.1 /lib/libkeyutils.so
143 ${RPM} -ba --rebuild --target=i386 $SPECFILE
144fi
145
146popd
147
148echo "$(basename $0): Done."
149
Note: See TracBrowser for help on using the repository browser.