]> git.pld-linux.org Git - packages/bacula.git/blame_incremental - bacula.spec
- user/group/config fixes
[packages/bacula.git] / bacula.spec
... / ...
CommitLineData
1# TODO:
2# - files section
3# - rpm scripts
4#
5Summary: Bacula - The Network Backup Solution
6Name: bacula
7Version: 1.34.6
8Release: 0.1
9Epoch: 0
10Group: Networking/Utilities
11License: GPL v2
12Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
13# Source0-md5: 9de593cb206df126a8e27774281c5bf6
14Source1: http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/tomsrtbt-2.0.103.tar.gz
15# Source1-md5: d5ee50efb28986d564547d5da5de2483
16Source2: %{name}-manpages.tar.bz2
17# Source2-md5: e4dae86d6574b360e831efd3913e7f4c
18Source10: %{name}-dir.init
19Source11: %{name}-fd.init
20Source12: %{name}-sd.init
21Source13: %{name}.logrotate
22Patch0: %{name}-pidfile.patch
23URL: http://www.bacula.org/
24BuildRequires: mtx
25BuildRequires: wxGTK2-devel
26BuildRequires: openssl-devel
27BuildRequires: pkgconfig
28BuildRequires: ncurses-devel
29BuildRequires: readline-devel
30BuildRequires: sqlite2-devel
31BuildRequires: libwrap-devel
32BuildRequires: zlib-devel
33BuildRequires: acl-devel
34BuildRequires: libstdc++-devel
35BuildRequires: glibc-static
36BuildRequires: acl-static
37BuildRequires: libwrap-static
38BuildRequires: libstdc++-static
39BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40
41%define _sysconfdir /etc/%{name}
42%define _localstatedir /var/lib/%{name}
43
44%description
45Bacula - It comes by night and sucks the vital essence from your
46computers.
47
48Bacula is a set of computer programs that permit you (or the system
49administrator) to manage backup, recovery, and verification of
50computer data across a network of computers of different kinds. In
51technical terms, it is a network client/server based backup program.
52Bacula is relatively easy to use and efficient, while offering many
53advanced storage management features that make it easy to find and
54recover lost or damaged files.
55
56%package common
57Summary: Common files for bacula package
58Group: Networking/Utilities
59Conflicts: bacula-dir < %{epoch}:%{version}-%{release}
60Conflicts: bacula-fd < %{epoch}:%{version}-%{release}
61Conflicts: bacula-sd < %{epoch}:%{version}-%{release}
62Conflicts: bacula-console < %{epoch}:%{version}-%{release}
63
64%description common
65Bacula - It comes by night and sucks the vital essence from your
66computers.
67
68Bacula is a set of computer programs that permit you (or the system
69administrator) to manage backup, recovery, and verification of
70computer data across a network of computers of different kinds. In
71technical terms, it is a network client/server based backup program.
72Bacula is relatively easy to use and efficient, while offering many
73advanced storage management features that make it easy to find and
74recover lost or damaged files.
75
76%package dir
77Summary: Bacula Director and Catalog services
78Group: Networking/Utilities
79Prereq: bacula-common = %{epoch}:%{version}-%{release}
80
81%description dir
82Bacula - It comes by night and sucks the vital essence from your
83computers.
84
85Bacula Director is the program that supervises all the backup,
86restore, verify and archive operations. The system administrator uses
87the Bacula Director to schedule backups and to recover files. Catalog
88services are comprised of the software programs responsible for
89maintaining the file indexes and volume databases for all files backed
90up. The Catalog services permit the System Administrator or user to
91quickly locate and restore any desired file, since it maintains a
92record of all Volumes used, all Jobs run, and all Files saved. This
93build requires sqlite to be installed separately as the catalog
94database.
95
96%package console
97Summary: Bacula Console
98Group: Networking/Utilities
99Prereq: bacula-common = %{epoch}:%{version}-%{release}
100
101%description console
102Bacula - It comes by night and sucks the vital essence from your
103computers.
104
105Bacula Console is the program that allows the administrator or user to
106communicate with the Bacula Director. This is the text only console
107interface.
108
109%package console-wx
110Summary: Bacula wxWindows Console
111Group: Networking/Utilities
112Prereq: bacula-common = %{epoch}:%{version}-%{release}
113
114%description console-wx
115Bacula - It comes by night and sucks the vital essence from your
116computers.
117
118Bacula Console is the program that allows the administrator or user to
119communicate with the Bacula Director. This is the wxWindows GUI
120interface.
121
122%package fd
123Summary: Bacula File services (Client)
124Group: Networking/Utilities
125Prereq: bacula-common = %{epoch}:%{version}-%{release}
126
127%description fd
128Bacula - It comes by night and sucks the vital essence from your
129computers.
130
131Bacula File services (or Client program) is the software program that
132is installed on the machine to be backed up. It is specific to the
133operating system on which it runs and is responsible for providing the
134file attributes and data when requested by the Director. The File
135services are also responsible for the file system dependent part of
136restoring the file attributes and data during a recovery operation.
137This program runs as a daemon on the machine to be backed up, and in
138some of the documentation, the File daemon is referred to as the
139Client (for example in Bacula configuration file).
140
141%package sd
142Summary: Bacula Storage services
143Group: Networking/Utilities
144Prereq: bacula-common = %{epoch}:%{version}-%{release}
145
146%description sd
147Bacula - It comes by night and sucks the vital essence from your
148computers.
149
150Bacula Storage services consist of the software programs that perform
151the storage and recovery of the file attributes and data to the
152physical backup media or volumes. In other words, the Storage daemon
153is responsible for reading and writing your tapes (or other storage
154media, e.g. files). The Storage services runs as a daemon on the
155machine that has the backup device (usually a tape drive).
156
157%package rescue
158Summary: Bacula - The Network Backup Solution
159Group: Networking/Utilities
160Requires: coreutils
161Requires: util-linux
162Requires: bacula-fd
163
164%description rescue
165Bacula - It comes by night and sucks the vital essence from your
166computers.
167
168Bacula is a set of computer programs that permit you (or the system
169administrator) to manage backup, recovery, and verification of
170computer data across a network of computers of different kinds. In
171technical terms, it is a network client/server based backup program.
172Bacula is relatively easy to use and efficient, while offering many
173advanced storage management features that make it easy to find and
174recover lost or damaged files. Bacula source code has been released
175under the GPL version 2 license.
176
177This package installs scripts for disaster recovery and builds rescue
178floppy disks for bare metal recovery. This package includes tomsrtbt
179(http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a
180tool to build a boot floppy disk.
181
182To create a boot disk run "./getdiskinfo" from the
183%{_sysconfdir}/rescue directory (this is done when the package is
184first installed), then run "./install.s" from the
185%{_sysconfdir}/rescue/tomsrtbt/ directory. To make the bacula rescue
186disk run "./make_rescue_disk --copy-static-bacula
187- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
188 recreate the rescue information for this system run ./getdiskinfo
189 again.
190
191%package updatedb
192Summary: Bacula - The Network Backup Solution
193Group: Networking/Utilities
194
195%description updatedb
196Bacula - It comes by night and sucks the vital essence from your
197computers.
198
199Bacula is a set of computer programs that permit you (or the system
200administrator) to manage backup, recovery, and verification of
201computer data across a network of computers of different kinds. In
202technical terms, it is a network client/server based backup program.
203Bacula is relatively easy to use and efficient, while offering many
204advanced storage management features that make it easy to find and
205recover lost or damaged files. Bacula source code has been released
206under the GPL version 2 license.
207
208This package installs scripts for updating older versions of the
209bacula database.
210
211%prep
212%setup -q -a 1 -a 2
213%patch0 -p1
214sed -i -e 's#wx-config#wxgtk2-2.4-config#g' configure*
215sed -i -e 's#-lreadline -ltermcap#-lreadline#g' configure*
216
217%build
218# patches for the bundled sqlite scripts
219# patch the make_sqlite_tables script for installation bindir
220patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
221# patch the create_sqlite_database script for installation bindir
222patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch
223# patch the make_catalog_backup script for installation bindir
224patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
225# patch the update_sqlite_tables script for installation bindir
226patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
227
228CPPFLAGS="-I%{_includedir}/ncurses -I%{_includedir}/readline"
229%configure \
230 --with-scriptdir=%{_libexecdir}/%{name} \
231 --disable-gnome \
232 --disable-conio \
233 --enable-smartalloc \
234 --enable-wx-console \
235 --with-readline \
236 --with-tcp-wrappers \
237 --with-working-dir=%{_var}/lib/%{name} \
238 --with-dump-email="root@localhost" \
239 --with-job-email="root@localhost" \
240 --with-smtp-host=localhost \
241 --with-pid-dir=/var/run \
242 --with-subsys-dir=/var/lock/subsys \
243 --with-sqlite \
244 --enable-static-fd \
245 --with-dir-password="#FAKE#DIR#PASSWORD#PLD#" \
246 --with-fd-password="#FAKE#FD#PASSWORD#PLD#" \
247 --with-sd-password="#FAKE#SD#PASSWORD#PLD#"
248
249%{__make}
250
251%install
252rm -rf $RPM_BUILD_ROOT
253
254install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,security/console.apps}
255install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rescue/tomsrtbt,updatedb}
256install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_mandir},%{_bindir}}
257
258%{__make} install \
259 DESTDIR=$RPM_BUILD_ROOT
260
261# static daemon
262strip src/filed/static-bacula-fd
263install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
264
265install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
266install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
267install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
268install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
269
270install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
271
272# install the rescue stuff, these are the rescue scripts
273install rescue/linux/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
274install rescue/linux/format_floppy $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
275install rescue/linux/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
276install rescue/linux/make_rescue_disk $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
277install rescue/linux/restore_bacula $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
278install rescue/linux/restore_etc $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
279install rescue/linux/run_grub $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
280install rescue/linux/run_lilo $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
281install rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue/
282
283# this is the tom's root boot disk
284install tomsrtbt-*/* $RPM_BUILD_ROOT%{_sysconfdir}/rescue/tomsrtbt/
285
286# install the updatedb scripts
287install updatedb/* $RPM_BUILD_ROOT%{_sysconfdir}/updatedb/
288
289# manual
290cp -a man1 man8 $RPM_BUILD_ROOT%{_mandir}
291
292install -d html-manual
293cp -a doc/html-manual/*.{html,jpg,gif,css} html-manual/
294
295# some file changes
296rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
297rm -f $RPM_BUILD_ROOT%{_sbindir}/static-bacula-fd
298rm -f $RPM_BUILD_ROOT%{_mandir}/man1/gnome*
299touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
300
301cat << EOF > $RPM_BUILD_ROOT/etc/security/console.apps/bconsole
302USER=root
303PROGRAM=%{_sbindir}/bconsole
304SESSION=true
305EOF
306install scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/bconsole
307ln -s consolehelper $RPM_BUILD_ROOT%{_bindir}/bconsole
308
309cat << EOF > $RPM_BUILD_ROOT/etc/security/console.apps/wx-console
310USER=root
311PROGRAM=%{_sbindir}/wx-console
312SESSION=true
313EOF
314cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/wx-console
315ln -s consolehelper $RPM_BUILD_ROOT%{_bindir}/wx-console
316
317%pre common
318if [ -n "`getgid bacula`" ]; then
319 if [ "`getgid bacula`" != "136" ]; then
320 echo "Error: group bacula doesn't have gid=136. Correct this before installing bacula." 1>&2
321 exit 1
322 fi
323else
324 /usr/sbin/groupadd -g 136 -r -f bacula
325fi
326if [ -n "`id -u bacula 2>/dev/null`" ]; then
327 if [ "`id -u bacula`" != "136" ]; then
328 echo "Error: user bacula doesn't have uid=136. Correct this before installing bacula." 1>&2
329 exit 1
330 fi
331else
332 /usr/sbin/useradd -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula 1>&2
333fi
334
335%postun common
336if [ "$1" = "0" ]; then
337 %userremove bacula
338 %groupremove bacula
339fi
340
341%post dir
342umask 077
343[ -s %{_localstatedir}/bacula.db ] && \
344 DB_VER=`echo "select * from Version;" | \
345 %{_bindir}/sqlite %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
346if [ -z "$DB_VER" ]; then
347# grant privileges and create tables
348 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
349 %{_libexecdir}/%{name}/create_bacula_database > dev/null
350 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
351elif [ "$DB_VER" -lt "7" ]; then
352 echo "Backing up bacula tables"
353 echo ".dump" | sqlite %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
354 type=sqlite
355 echo "Upgrading bacula tables"
356 if [ "$DB_VER" -lt "6" ]; then
357 if [ "$DB_VER" -lt "5" ]; then
358 %{_libexecdir}/%{name}/update_${type}_tables_4_to_5
359 fi
360 %{_libexecdir}/%{name}/update_${type}_tables_5_to_6
361 fi
362 %{_libexecdir}/%{name}/update_bacula_tables
363 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
364fi
365chown -R bacula:bacula %{_localstatedir}
366chmod -R u+rX,go-rwx %{_localstatedir}/*
367
368/sbin/chkconfig --add bacula-dir
369if [ -f /var/lock/subsys/bacula-dir ]; then
370 /etc/rc.d/init.d/bacula-dir restart 1>&2
371else
372 echo "Run \"/etc/rc.d/init.d/bacula-dir start\" to start Bacula Director daemon."
373fi
374
375%preun dir
376if [ "$1" = "0" ]; then
377 if [ -f /var/lock/subsys/bacula-dir ]; then
378 /etc/rc.d/init.d/bacula-dir stop 1>&2
379 fi
380 /sbin/chkconfig --del bacula-dir
381fi
382
383%post fd
384/sbin/chkconfig --add bacula-fd
385if [ -f /var/lock/subsys/bacula-fd ]; then
386 /etc/rc.d/init.d/bacula-fd restart 1>&2
387else
388 echo "Run \"/etc/rc.d/init.d/bacula-fd start\" to start Bacula File daemon."
389fi
390
391%preun fd
392if [ "$1" = "0" ]; then
393 if [ -f /var/lock/subsys/bacula-fd ]; then
394 /etc/rc.d/init.d/bacula-fd stop 1>&2
395 fi
396 /sbin/chkconfig --del bacula-fd
397fi
398
399%post sd
400/sbin/chkconfig --add bacula-sd
401if [ -f /var/lock/subsys/bacula-sd ]; then
402 /etc/rc.d/init.d/bacula-sd restart 1>&2
403else
404 echo "Run \"/etc/rc.d/init.d/bacula-sd start\" to start Bacula Storage daemon."
405fi
406
407%preun sd
408if [ "$1" = "0" ]; then
409 if [ -f /var/lock/subsys/bacula-sd ]; then
410 /etc/rc.d/init.d/bacula-sd stop 1>&2
411 fi
412 /sbin/chkconfig --del bacula-sd
413fi
414
415%pre console
416if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
417 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
418fi
419
420%post updatedb
421echo "The database update scripts were installed to %{_sysconfdir}/updatedb"
422
423%clean
424rm -rf $RPM_BUILD_ROOT
425
426%post rescue
427# link our current installed conf file to the rescue directory
428ln -s %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
429
430# run getdiskinfo
431echo "Creating rescue files for this system..."
432cd %{_sysconfdir}/rescue
433./getdiskinfo
434
435%preun rescue
436# remove the files created after the initial rpm installation
437rm -f %{_sysconfdir}/rescue/bacula-fd.conf
438rm -f %{_sysconfdir}/rescue/partition.*
439rm -f %{_sysconfdir}/rescue/format.*
440rm -f %{_sysconfdir}/rescue/mount_drives
441rm -f %{_sysconfdir}/rescue/start_network
442rm -f %{_sysconfdir}/rescue/sfdisk
443rm -rf %{_sysconfdir}/rescue/diskinfo/*
444
445%files common
446%defattr(644,root,root,755)
447%dir %{_sysconfdir}
448%attr(755, root, root) %{_sbindir}/btraceback
449%attr(755, root, root) %{_sbindir}/bsmtp
450%dir %{_libexecdir}/%{name}
451%{_libexecdir}/%{name}/btraceback.gdb
452%attr(700, bacula, bacula) %dir %{_localstatedir}
453
454%files dir
455%defattr(644,root,root,755)
456%doc ChangeLog CheckList ReleaseNotes kernstodo
457%doc doc/*.pdf html-manual examples
458%attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-dir.conf
459%ghost %{_sysconfdir}/.pw.sed
460%attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
461%{_mandir}/man8/bacula-dir.8*
462%{_mandir}/man1/dbcheck.1*
463%defattr (755, root, root)
464%attr(754,root,root) /etc/rc.d/init.d/bacula-dir
465%attr(755,root,root) %{_sbindir}/bacula-dir
466%attr(755,root,root) %{_sbindir}/dbcheck
467%{_libexecdir}/%{name}/create_sqlite_database
468%{_libexecdir}/%{name}/drop_sqlite_database
469%{_libexecdir}/%{name}/drop_sqlite_tables
470%{_libexecdir}/%{name}/grant_sqlite_privileges
471%{_libexecdir}/%{name}/make_sqlite_tables
472%{_libexecdir}/%{name}/update_sqlite_tables*
473%{_libexecdir}/%{name}/create_bacula_database
474%{_libexecdir}/%{name}/drop_bacula_database
475%{_libexecdir}/%{name}/drop_bacula_tables
476%{_libexecdir}/%{name}/grant_bacula_privileges
477%{_libexecdir}/%{name}/make_bacula_tables
478%{_libexecdir}/%{name}/update_bacula_tables
479%{_libexecdir}/%{name}/make_catalog_backup
480%{_libexecdir}/%{name}/delete_catalog_backup
481%attr(644, root, root) %{_libexecdir}/%{name}/query.sql
482
483%files fd
484%defattr(644,root,root,755)
485%attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-fd.conf
486%attr(754,root,root) /etc/rc.d/init.d/bacula-fd
487%attr(755,root,root) %{_sbindir}/bacula-fd
488%attr(644, root, root) %{_mandir}/man8/bacula-fd.8*
489
490%files sd
491%defattr(644,root,root,755)
492%dir %{_sysconfdir}
493%attr(600, root, root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bacula-sd.conf
494%attr(754,root,root) /etc/rc.d/init.d/bacula-sd
495%attr(755,root,root) %{_sbindir}/bacula-sd
496%attr(755,root,root) %{_sbindir}/bcopy
497%attr(755,root,root) %{_sbindir}/bextract
498%attr(755,root,root) %{_sbindir}/bls
499%attr(755,root,root) %{_sbindir}/bscan
500%attr(755,root,root) %{_sbindir}/btape
501%{_libexecdir}/%{name}/mtx-changer
502%defattr(644, root,root, 755)
503%{_mandir}/man8/bacula-sd.8*
504%{_mandir}/man1/bcopy.1*
505%{_mandir}/man1/bextract.1*
506%{_mandir}/man1/bls.1*
507%{_mandir}/man1/bscan.1*
508%{_mandir}/man1/btape.1*
509
510%files console
511%defattr(644,root,root,755)
512%attr(600,root,root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bconsole.conf
513%attr(755,root,root) %{_sbindir}/bconsole
514%config(noreplace) /etc/security/console.apps/bconsole
515%config(noreplace) /etc/pam.d/bconsole
516%verify(link) %{_bindir}/bconsole
517%{_mandir}/man1/bconsole.1*
518
519%files console-wx
520%defattr(644,root,root,755)
521%{_pixmapsdir}/%{name}.png
522%attr(600,root,root) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/wx-console.conf
523%attr(755,root,root) %{_sbindir}/wx-console
524%config(noreplace) /etc/security/console.apps/wx-console
525%config(noreplace) %verify(not md5 size mtime) /etc/pam.d/wx-console
526%verify(link) %{_bindir}/wx-console
527%{_mandir}/man1/wx-console.1*
528
529%files rescue
530%defattr(644,root,root,755)
531%{_sysconfdir}/rescue
532
533%files updatedb
534%defattr(644,root,root,755)
535%{_sysconfdir}/updatedb
This page took 0.055377 seconds and 4 git commands to generate.