3 # shell script to build bacula rpm release
4 # copy this script into a working directory with the src rpm to build and execute
5 # 19 Aug 2006 D. Scott Barninger
7 # Copyright (C) 2006 Free Software Foundation Europe e.V.
8 # licensed under GPL-v2
11 # Make sure you have a .rpmmacros file in your home directory containing the following:
14 # %_gpg_name Your Name <your-email@site.org>
16 # the %_gpg_name information must match your key
19 # usage: ./build_rpm.sh
21 ###########################################################################################
22 # script configuration section
27 # build platform for spec
28 # set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5,fc6,fc7,wb3,rhel3,rhel4,centos3,centos4,sl3, sl4,su9,su10,su102,mdk,mdv
31 # platform designator for file names
32 # for RedHat/Fedora set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5,fc6,fc7 OR
33 # for RHEL3/clones wb3, rhel3, sl3 & centos3 set to el3 OR
34 # for RHEL4/clones rhel4, sl4 & centos4 set to el4 OR
35 # for SuSE set to su90, su91, su92, su100 or su101 or su102 OR
36 # for Mandrake set to 101mdk or 20060mdk
40 # set to empty (for MySQL 3), 4 or 5
44 # set to 1 to build wxconsole package else set 0
48 # set to 1 to build bat package else set 0
51 # enter your name and email address here
52 PACKAGER="Your Name <your-email@site.org>"
54 # enter the full path to your RPMS output directory
55 RPMDIR=/usr/src/packages/RPMS/i586
57 # enter the full path to your rpm BUILD directory
58 RPMBUILD=/usr/src/packages/BUILD
60 # enter your arch string here (i386, i586, i686, x86_64)
63 # if the src rpm is not in the current working directory enter the directory location
64 # with trailing slash where it is found.
67 # set to 1 to sign packages, 0 not to sign if you want to sign on another machine.
70 # to save the bacula-updatedb package set to 1, else 0
71 # only one updatedb package is required per release so normally this should be 0
72 # for all contrib packagers
75 # to override your language shell variable uncomment and edit this
76 # export LANG=en_US.UTF-8
78 # Make no changes below this point without consensus
80 ############################################################################################
82 SRPM=${SRPMDIR}bacula-$VERSION-$RELEASE.src.rpm
84 echo Building MySQL packages for "$PLATFORM"...
86 if [ "$WXCONSOLE" = "1" ]; then
87 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
88 --define "build_mysql${MYSQL} 1" \
89 --define "contrib_packager ${PACKAGER}" \
90 --define "build_python 1" \
91 --define "build_wxconsole 1" \
94 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
95 --define "build_mysql${MYSQL} 1" \
96 --define "build_python 1" \
97 --define "contrib_packager ${PACKAGER}" ${SRPM}
101 echo Building PostgreSQL packages for "$PLATFORM"...
103 if [ "$BAT" = "1" ]; then
104 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
105 --define "build_postgresql 1" \
106 --define "contrib_packager ${PACKAGER}" \
107 --define "build_python 1" \
108 --define "build_bat 1" \
109 --define "nobuild_gconsole 1" ${SRPM}
111 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
112 --define "build_postgresql 1" \
113 --define "contrib_packager ${PACKAGER}" \
114 --define "build_python 1" \
115 --define "nobuild_gconsole 1" ${SRPM}
119 echo Building SQLite packages for "$PLATFORM"...
121 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
122 --define "build_sqlite 1" \
123 --define "contrib_packager ${PACKAGER}" \
124 --define "build_python 1" \
125 --define "nobuild_gconsole 1" ${SRPM}
128 # delete the updatedb package and any debuginfo packages built
129 rm -f ${RPMDIR}/bacula*debug*
130 if [ "$SAVEUPDATEDB" = "1" ]; then
131 mv -f ${RPMDIR}/bacula-updatedb* ./;
133 rm -f ${RPMDIR}/bacula-updatedb*;
136 # copy files to cwd and rename files to final upload names
138 mv -f ${RPMDIR}/bacula-mysql-${VERSION}-${RELEASE}.${ARCH}.rpm \
139 ./bacula-mysql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
141 mv -f ${RPMDIR}/bacula-postgresql-${VERSION}-${RELEASE}.${ARCH}.rpm \
142 ./bacula-postgresql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
144 mv -f ${RPMDIR}/bacula-sqlite-${VERSION}-${RELEASE}.${ARCH}.rpm \
145 ./bacula-sqlite-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
147 mv -f ${RPMDIR}/bacula-mtx-${VERSION}-${RELEASE}.${ARCH}.rpm \
148 ./bacula-mtx-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
150 mv -f ${RPMDIR}/bacula-client-${VERSION}-${RELEASE}.${ARCH}.rpm \
151 ./bacula-client-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
153 mv -f ${RPMDIR}/bacula-gconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \
154 ./bacula-gconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
156 mv -f ${RPMDIR}/bacula-wxconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \
157 ./bacula-wxconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
159 mv -f ${RPMDIR}/bacula-bat-${VERSION}-${RELEASE}.${ARCH}.rpm \
160 ./bacula-bat-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
162 # now sign the packages
163 if [ "$SIGN" = "1" ]; then
164 echo Ready to sign packages...;
166 rpm --addsign ./*.rpm;
175 # 16 Jul 2006 initial release
176 # 05 Aug 2006 add python support
177 # 06 Aug 2006 add remote source directory, add switch for signing, refine file names
178 # 19 Aug 2006 add $LANG override to config section per request Felix Schwartz
179 # 27 Jan 2007 add fc6 target
180 # 29 Apr 2007 add sl3 & sl4 target and bat package
181 # 06 May 2007 add fc7 target