]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/rpms/redhat/bacula-client-static.spec.in
rpm: Remove libbacsd.la for both Red Hat and Suse
[bacula/bacula] / bacula / platforms / rpms / redhat / bacula-client-static.spec.in
1 # Bacula RPM spec file
2 #
3 #
4 # Copyright (C) 2000-2015 Kern Sibbald
5 # License: BSD 2-Clause; see file LICENSE-FOSS
6 #
7
8 # Platform Build Configuration
9 # TODO: merge all plugins into one spec file
10
11 # basic defines for every build
12 %define _release           @RELEASE@
13 %define _version           @VERSION@
14 %define product            bacula
15 %define _packager Kern Sibbald <kern@sibbald.com>
16 %define depkgs_version @DEPKGS_VERSION@
17
18 # Don't strip binaries
19 %define __os_install_post %{nil}
20 %define __debug_install_post %{nil}
21 %define debug_package %{nil}
22
23 %define single_dir 1
24 %{?single_dir_install:%define single_dir 1}
25
26 # Installation Directory locations                                                                                            
27 %if %{single_dir}
28 # Installation Directory locations
29 %define _prefix        /opt/bacula
30 %define _sbindir       /opt/bacula/sbin
31 %define _bindir        /opt/bacula/bin
32 %define _subsysdir     /opt/bacula/working
33 %define sqlite_bindir  /opt/bacula/sqlite
34 %define _mandir        /usr/share/man
35 %define _man_bacula    /opt/bacula/share/man/
36 %define sysconf_dir    /opt/bacula/etc
37 %define scripts_dir    /opt/bacula/scripts
38 %define working_dir    /opt/bacula/working
39 %define pid_dir        /opt/bacula/working
40 %define plugin_dir     /opt/bacula/plugins
41 %define lib_dir        /opt/bacula/lib
42 %define script_dir     /opt/bacula/scripts
43 %define doc_dir        /opt/bacula/share/doc
44 %define var_dir        /opt/bacula/var
45 %else
46 %define _prefix        /usr
47 %define _sbindir       %_prefix/sbin
48 %define _bindir        %_prefix/bin
49 %define _subsysdir     /var/lock/subsys
50 %define sqlite_bindir %_libdir/bacula/sqlite
51 %define _mandir        %_prefix/share/man
52 %define sysconf_dir    /etc/bacula
53 %define script_dir     %_libdir/bacula
54 %define working_dir    /var/lib/bacula
55 %define pid_dir        /var/run
56 %define plugin_dir     %_libdir/bacula/plugins
57 %define lib_dir        %_libdir/bacula/lib
58 %endif
59
60 #--------------------------------------------------------------------------
61 # it should not be necessary to change anything below here for a release
62 # except for patch macros in the setup section
63 #--------------------------------------------------------------------------
64
65 %define file_daemon_user        root
66 %define daemon_group            bacula
67
68 %define base_package_name bacula
69
70 %{?contrib_packager:%define _packager %{contrib_packager}}
71
72 Summary: Bacula - The Network Backup Solution
73 Name: %{base_package_name}-client-static
74 Version: %{_version}
75 Release: %{_release}
76 Group: System Environment/Daemons
77 License: AGPLv3
78 BuildRoot: %{_tmppath}/%{name}-root
79 URL: http://www.baculasystems.com/
80 Vendor: Bacula Project
81 Packager: %{_packager}
82 Prefix: %{_prefix}
83 Distribution: Bacula Static Client
84 Source0: https://www.baculasystems.com/dl/download/bacula-%{_version}.tar.gz
85
86 %description
87 %{blurb} This is Bacula static FD package.
88
89 # define the basic package description
90 %define blurb Bacula static FD - The Network Backup Solution.
91 %define blurb2 Bacula static FD staticly linked FD
92
93 BuildRequires: gcc, gcc-c++, make, autoconf
94 BuildRequires: glibc, glibc-devel
95 BuildRequires: ncurses-devel, perl, readline-devel
96 BuildRequires: libstdc++-devel, zlib-devel
97 BuildRequires: libacl-devel
98 BuildRequires: pkgconfig
99
100 Provides: bacula-fd
101 Conflicts: bacula-client
102
103 Summary: Bacula static fd package - The Network Backup Solution
104 Group: System Environment/Daemons
105
106 %prep
107 %setup -T -D -n bacula-%{_version} -b 0
108
109 %build
110
111 cd ../bacula-%{_version}
112 ./configure \
113         --prefix=%{_prefix} \
114         --sbindir=%{_sbindir} \
115         --sysconfdir=%{sysconf_dir} \
116         --with-scriptdir=%{scripts_dir} \
117         --with-working-dir=%{working_dir} \
118         --with-plugindir=%{plugin_dir} \
119         --with-pid-dir=%{pid_dir} \
120         --with-subsys-dir=%{_subsysdir} \
121         --enable-smartalloc \
122         --disable-bat \
123         --enable-client-only \
124         --with-basename="XXX_HOSTNAME_XXX" \
125         --with-hostname="XXX_HOSTNAME_XXX" \
126         --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
127         --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
128         --enable-static-fd=yes \
129         --enable-static-tools=yes \
130         --enable-static-cons=yes \
131         --without-openssl \
132         --disable-libtool
133 make -j3
134
135 %install
136
137 cwd=${PWD}
138 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
139 mkdir -p $RPM_BUILD_ROOT/etc/init.d
140 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
141 mkdir -p $RPM_BUILD_ROOT%{_bindir}
142 mkdir -p $RPM_BUILD_ROOT%{plugin_dir}
143 mkdir -p $RPM_BUILD_ROOT%{sysconf_dir}
144 mkdir -p $RPM_BUILD_ROOT%{working_dir}
145 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d/bacula
146
147 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/static-bacula-fd
148 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
149
150 make DESTDIR=$RPM_BUILD_ROOT install
151
152 # fix me - building enable-client-only installs files not included in bacula-client package
153 # Program docs not installed on client
154
155 cp $RPM_BUILD_ROOT%{sysconf_dir}/bacula-fd.conf $RPM_BUILD_ROOT%{sysconf_dir}/static-bacula-fd.conf
156
157 rm -f $RPM_BUILD_ROOT%{_sbindir}/bconsole
158 rm -f $RPM_BUILD_ROOT%{_sbindir}/bbconsjson
159 rm -f $RPM_BUILD_ROOT%{_sbindir}/btraceback
160 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/mtx-changer.conf.new
161 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/btraceback.mdb
162 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/dvd-handler.old
163 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/storage-ctl.conf.new
164 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/disk-changer.old
165 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/bacula-ctl-sd
166 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/bconsole
167 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/btraceback.gdb
168 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/disk-changer
169 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/dvd-handler
170 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/storage-ctl
171 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/mtx-changer
172 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/mtx-changer.conf
173 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/bacula-ctl-dir
174 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/bconsole.conf.new
175 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/storage-ctl.conf
176 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/btraceback.dbx
177 rm -f $RPM_BUILD_ROOT%{sysconf_dir}/bacula-fd.conf
178 rm -f $RPM_BUILD_ROOT%{_bindir}/bfdjson
179 rm -f $RPM_BUILD_ROOT%{_bindir}/bacula
180 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
181 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula-fd
182 rm -f $RPM_BUILD_ROOT%{_sbindir}/bfdjson
183 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man1/bacula-tray-monitor.1.gz
184 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man1/bat.1.gz
185 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man1/bsmtp.1.gz
186 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bacula-dir.8.gz
187 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bacula-sd.8.gz
188 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bacula.8.gz
189 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bcopy.8.gz
190 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bextract.8.gz
191 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bls.8.gz
192 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bregex.8.gz
193 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bscan.8.gz
194 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/btape.8.gz
195 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/btraceback.8.gz
196 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/bwild.8.gz
197 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man8/dbcheck.8.gz
198 rm -f $RPM_BUILD_ROOT%{_man_bacula}/man1/bacula-bwxconsole.1.gz
199 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
200 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
201 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
202 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
203 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
204 rm -f $RPM_BUILD_ROOT%{script_dir}/breload
205 rm -f $RPM_BUILD_ROOT%{script_dir}/btraceback.dbx
206 rm -f $RPM_BUILD_ROOT%{script_dir}/btraceback.gdb
207 rm -f $RPM_BUILD_ROOT%{script_dir}/btraceback.mdb
208 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
209 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
210 rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl
211 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
212 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
213 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
214 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
215 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/ChangeLog
216 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/INSTALL
217 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/LICENSE
218 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/README
219 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/ReleaseNotes
220 rm -f $RPM_BUILD_ROOT%{doc_dir}/bacula/VERIFYING
221 rm -f $RPM_BUILD_ROOT%/opt/bacula/share/man/man1/bacula-bwxconsole.1.gz
222
223 %files
224 %defattr(-,root,root)
225
226 %attr(-, root, %{daemon_group}) %dir %{script_dir}
227 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
228 %attr(-, root, %{daemon_group}) %dir %{working_dir}
229 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
230 %attr(-, root, %{daemon_group}) %dir %{plugin_dir}
231 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/static-bacula-fd.conf
232 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
233 %attr(-, root, %{daemon_group}) %{_sbindir}/static-bconsole
234 %attr(-, root, %{daemon_group}) %{_sbindir}/static-bacula-fd
235
236 %attr(-, root, %{daemon_group}) /etc/init.d/static-bacula-fd
237 %attr(-, root, %{daemon_group}) %dir /etc/logrotate.d/bacula
238 %attr(-, root, %{daemon_group}) %{_man_bacula}/man8/bconsole.8.gz
239 %attr(-, root, %{daemon_group}) %{_man_bacula}/man8/bacula-fd.8.gz
240
241 %post
242 # add our link
243
244 if [ "$1" -ge 1 ] ; then
245    /sbin/chkconfig --add static-bacula-fd
246 fi
247
248 if [ -d %{sysconf_dir} ]; then
249    cd %{sysconf_dir}
250    if [ ! -f .rpm.sed ]; then
251        (umask 0177
252         echo "# This file is used to ensure that all passwords will" > .rpm.sed
253         echo "# match between configuration files"                  >> .rpm.sed
254        )
255        for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PAS\
256 SWORD_XXX; do
257            pass=`openssl rand -base64 33`
258            echo "s@${string}@${pass}@g" >> .rpm.sed
259        done
260    fi
261    host=`hostname -s`
262    echo "s@XXX_HOSTNAME_XXX@${host}@g" >> .rpm.sed
263    for file in *.conf; do
264       sed -f .rpm.sed $file > $file.new
265       sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
266       rm -f $file.new
267    done
268    rm .rpm.sed
269    cd /tmp
270    cat /etc/init.d/static-bacula-fd | sed s@bacula-fd@static-bacula-fd@g > .rpm.sed
271    cp .rpm.sed /etc/init.d/static-bacula-fd
272    chmod 755 /etc/init.d/static-bacula-fd
273    rm .rpm.sed   
274    cd %{sysconf_dir}
275 fi
276
277 %preun
278 # delete our link
279 if [ $1 = 0 ]; then
280    /sbin/chkconfig --del static-bacula-fd
281 fi
282
283 %clean
284 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
285
286 %changelog