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