]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/contrib-rpm/build_rpm.sh
add remote source directory, add switch for signing, refine file names.
[bacula/bacula] / bacula / platforms / contrib-rpm / build_rpm.sh
1 #!/bin/bash
2
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 # 06 Aug 2006 D. Scott Barninger
6
7 # Copyright (C) 2006 Kern Sibbald
8 # licensed under GPL-v2
9
10 # signing rpms
11 # Make sure you have a .rpmmacros file in your home directory containing the following:
12 #
13 # %_signature gpg
14 # %_gpg_name Your Name <your-email@site.org>
15 #
16 # the %_gpg_name information must match your key
17
18
19 # usage: ./build_rpm.sh
20
21 ###########################################################################################
22 # script configuration section
23
24 VERSION=1.39.18
25 RELEASE=1
26
27 # build platform for spec
28 # set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5,wb3,rhel3,rhel4,centos3,centos4,su9,su10,mdk,mdv
29 PLATFORM=su10
30
31 # platform designator for file names
32 # for RedHat/Fedora set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5 OR
33 # for RHEL3/clones wb3, rhel3 & centos3 set to el3 OR
34 # for RHEL4/clones rhel4 & centos4 set to el4 OR
35 # for SuSE set to su90, su91, su92, su100 or su101 OR
36 # for Mandrake set to 101mdk or 20060mdk
37 FILENAME=su100
38
39 # MySQL version
40 # set to empty (for MySQL 3), 4 or 5
41 MYSQL=4
42
43 # building wxconsole
44 # set to 1 to build wxconsole package else set 0
45 WXCONSOLE=0
46
47 # enter your name and email address here
48 PACKAGER="Your Name <your-email@site.org>"
49
50 # enter the full path to your RPMS output directory
51 RPMDIR=/usr/src/packages/RPMS/i586
52
53 # enter the full path to your rpm BUILD directory
54 RPMBUILD=/usr/src/packages/BUILD
55
56 # enter your arch string here (i386, i586, i686, x86_64)
57 ARCH=i586
58
59 # if the src rpm is not in the current working directory enter the directory location
60 # with trailing slash where it is found.
61 SRPMDIR=
62
63 # set to 1 to sign packages, 0 not to sign if you want to sign on another machine.
64 SIGN=1
65
66 # to save the bacula-updatedb package set to 1, else 0
67 # only one updatedb package is required per release so normally this should be 0
68 # for all contrib packagers
69 SAVEUPDATEDB=0
70
71 ############################################################################################
72
73 SRPM=${SRPMDIR}bacula-$VERSION-$RELEASE.src.rpm
74
75 echo Building MySQL packages for "$PLATFORM"...
76 sleep 2
77 if [ "$WXCONSOLE" = "1" ]; then
78 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
79 --define "build_mysql${MYSQL} 1" \
80 --define "contrib_packager ${PACKAGER}" \
81 --define "build_python 1" \
82 --define "build_wxconsole 1" \
83 ${SRPM}
84 else
85 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
86 --define "build_mysql${MYSQL} 1" \
87 --define "build_python 1" \
88 --define "contrib_packager ${PACKAGER}" ${SRPM}
89 fi
90 rm -rf ${RPMBUILD}/*
91
92 echo Building PostgreSQL packages for "$PLATFORM"...
93 sleep 2
94 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
95 --define "build_postgresql 1" \
96 --define "contrib_packager ${PACKAGER}" \
97 --define "build_python 1" \
98 --define "nobuild_gconsole 1" ${SRPM}
99 rm -rf ${RPMBUILD}/*
100
101 echo Building SQLite packages for "$PLATFORM"...
102 sleep 2
103 rpmbuild --rebuild --define "build_${PLATFORM} 1" \
104 --define "build_sqlite 1" \
105 --define "contrib_packager ${PACKAGER}" \
106 --define "build_python 1" \
107 --define "nobuild_gconsole 1" ${SRPM}
108 rm -rf ${RPMBUILD}/*
109
110 # delete the updatedb package and any debuginfo packages built
111 rm -f ${RPMDIR}/bacula*debug*
112 if [ "$SAVEUPDATEDB" = "1" ]; then
113         mv -f ${RPMDIR}/bacula-updatedb* ./;
114 else
115         rm -f ${RPMDIR}/bacula-updatedb*;
116 fi
117
118 # copy files to cwd and rename files to final upload names
119
120 mv -f ${RPMDIR}/bacula-mysql-${VERSION}-${RELEASE}.${ARCH}.rpm \
121 ./bacula-mysql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
122
123 mv -f ${RPMDIR}/bacula-postgresql-${VERSION}-${RELEASE}.${ARCH}.rpm \
124 ./bacula-postgresql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
125
126 mv -f ${RPMDIR}/bacula-sqlite-${VERSION}-${RELEASE}.${ARCH}.rpm \
127 ./bacula-sqlite-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
128
129 mv -f ${RPMDIR}/bacula-mtx-${VERSION}-${RELEASE}.${ARCH}.rpm \
130 ./bacula-mtx-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
131
132 mv -f ${RPMDIR}/bacula-client-${VERSION}-${RELEASE}.${ARCH}.rpm \
133 ./bacula-client-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
134
135 mv -f ${RPMDIR}/bacula-gconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \
136 ./bacula-gconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
137
138 mv -f ${RPMDIR}/bacula-wxconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \
139 ./bacula-wxconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm
140
141 # now sign the packages
142 if [ "$SIGN" = "1" ]; then
143         echo Ready to sign packages...;
144         sleep 2;
145         rpm --addsign ./*.rpm;
146 fi
147
148 echo
149 echo Finished.
150 echo
151 ls
152
153 # changelog
154 # 16 Jul 2006 initial release
155 # 05 Aug 2006 add python support
156 # 06 Aug 2006 add remote source directory, add switch for signing, refine file names
157
158
159