2 # - update desktop files, think about su-wrappers for console (with .desktop files)
4 # - fix log file permissions
6 #make[1]: *** No rule to make target `../lib/libbac.la', needed by `bacula-dir'. Stop.
7 #make[1]: *** Waiting for unfinished jobs....
8 #make[1]: Leaving directory `/home/users/glen/rpm/BUILD.x86_64-linux/bacula-5.0.2/src/dird'
11 %bcond_without console_wx # wx-console program
12 %bcond_without bat # bat Qt4 GUI
13 %bcond_without dbi # use Database Independent Abstraction Layer (libdbi)
14 %bcond_without mysql # use MySQL
15 %bcond_without pgsql # use PostgreSQL
16 %bcond_without sqlite3 # use SQLite3
18 %bcond_with nagios # build nagios plugin
20 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
22 %if %{without sqlite3}
23 %undefine with_sqlite3_sync_off
26 Summary: Bacula - The Network Backup Solution
27 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
31 License: extended GPL v2
32 Group: Networking/Utilities
33 Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
34 # Source0-md5: e9204d2e772f12662de28da3327853de
35 Source1: http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
36 # Source1-md5: 7a6afbf592dde4fae0240d82ed3cb10d
37 Source2: http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
38 # Source2-md5: 349623581cfe0bcd798dd137abac959a
39 Source10: %{name}-dir.init
40 Source11: %{name}-fd.init
41 Source12: %{name}-sd.init
42 Source13: %{name}.logrotate
43 Source14: %{name}-dir.sysconfig
44 Source15: %{name}-fd.sysconfig
45 Source16: %{name}-sd.sysconfig
46 Patch0: %{name}-mtx-changer.patch
47 Patch1: %{name}-link.patch
48 Patch2: %{name}-tinfo-readline.patch
49 Patch3: %{name}-branding.patch
50 Patch4: %{name}-conf.patch
51 Patch5: %{name}-desktop.patch
52 Patch6: %{name}-64bitbuild_fix.patch
53 Patch7: %{name}-dbi_fixes.patch
54 Patch8: %{name}-dbi_dbcheck.patch
55 URL: http://www.bacula.org/
56 BuildRequires: acl-devel
57 BuildRequires: autoconf
58 BuildRequires: automake
59 BuildRequires: gettext-devel
60 BuildRequires: libcap-devel
61 %{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4}
62 BuildRequires: libtool
64 BuildRequires: fakeroot
66 BuildRequires: libwrap-devel
68 BuildRequires: ncurses-devel
69 BuildRequires: openssl-devel
70 BuildRequires: pkgconfig
72 BuildRequires: python-devel
75 BuildRequires: QtCore-devel
76 BuildRequires: QtGui-devel
77 BuildRequires: qt4-build >= 4.3.3-3
78 BuildRequires: qt4-qmake >= 4.3.3-3
79 BuildRequires: qwt-devel >= 5.0.2-2
81 %{?with_mysql:BuildRequires: mysql-devel}
82 %{?with_pgsql:BuildRequires: postgresql-devel}
83 BuildRequires: readline-devel
84 BuildRequires: rpmbuild(macros) >= 1.268
85 BuildRequires: sed >= 4.0
86 %{?with_sqlite3:BuildRequires: sqlite3-devel}
87 %if %{with console_wx}
88 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
90 BuildRequires: zlib-devel
91 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
93 %define _sysconfdir /etc/%{name}
94 %define _localstatedir /var/lib/%{name}
95 %define nagiosplugindir %{_prefix}/lib/nagios/plugins
97 # from 'the worst' to 'the best'
98 %define databases %{?with_dbi:dbi} %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
100 # dependency section is broken. ccache usage is instead to makefiles
101 %undefine with_ccache
104 Bacula - It comes by night and sucks the vital essence from your
107 Bacula is a set of computer programs that permit you (or the system
108 administrator) to manage backup, recovery, and verification of
109 computer data across a network of computers of different kinds. In
110 technical terms, it is a network client/server based backup program.
111 Bacula is relatively easy to use and efficient, while offering many
112 advanced storage management features that make it easy to find and
113 recover lost or damaged files.
115 %description -l pl.UTF-8
116 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
118 Bacula to zbiór programów umożliwiających administratorowi na
119 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
120 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
121 program do kopii zapasowych pracujący w architekturze klient-serwer.
122 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
123 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
124 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
128 Summary: Common files for bacula package
129 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
130 Group: Networking/Utilities
131 Requires(post): openssl-tools
132 Requires(post): sed >= 4.0
133 Requires(post,preun): /sbin/chkconfig
134 Requires(postun): /usr/sbin/groupdel
135 Requires(postun): /usr/sbin/userdel
136 Requires(pre): /usr/sbin/groupadd
137 Requires(pre): /usr/sbin/useradd
138 Conflicts: bacula-console < 0:1.34.6
139 Conflicts: bacula-dir < 0:1.34.6
140 Conflicts: bacula-fd < 0:1.34.6
141 Conflicts: bacula-sd < 0:1.34.6
144 Bacula - It comes by night and sucks the vital essence from your
147 Bacula is a set of computer programs that permit you (or the system
148 administrator) to manage backup, recovery, and verification of
149 computer data across a network of computers of different kinds. In
150 technical terms, it is a network client/server based backup program.
151 Bacula is relatively easy to use and efficient, while offering many
152 advanced storage management features that make it easy to find and
153 recover lost or damaged files.
155 %description common -l pl.UTF-8
156 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
158 Bacula to zbiór programów umożliwiających administratorowi na
159 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
160 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
161 program do kopii zapasowych pracujący w architekturze klient-serwer.
162 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
163 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
164 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
168 Summary: Bacula Director and Catalog services
169 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
170 Group: Networking/Utilities
171 Requires(post): sed >= 4.0
172 Requires: %{name}-common = %{version}-%{release}
173 Requires: bacula(db) = %{version}-%{release}
174 Obsoletes: bacula-updatedb
177 Bacula - It comes by night and sucks the vital essence from your
180 Bacula Director is the program that supervises all the backup,
181 restore, verify and archive operations. The system administrator uses
182 the Bacula Director to schedule backups and to recover files. Catalog
183 services are comprised of the software programs responsible for
184 maintaining the file indexes and volume databases for all files backed
185 up. The Catalog services permit the System Administrator or user to
186 quickly locate and restore any desired file, since it maintains a
187 record of all Volumes used, all Jobs run, and all Files saved.
189 %description dir -l pl.UTF-8
190 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
192 Bacula Director to program nadzorujący wszystkie operacje wykonywania
193 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
194 Administrator używa Bacula Directora do szeregowania kopii zapasowych
195 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
196 używane przez programy odpowiedzialne za zarządzanie indeksami plików
197 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
198 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
199 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
200 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
204 Summary: Bacula Console
205 Summary(pl.UTF-8): Konsola Baculi
206 Group: Networking/Utilities
207 Requires(post): sed >= 4.0
208 Requires: %{name}-common = %{version}-%{release}
211 Bacula - It comes by night and sucks the vital essence from your
214 Bacula Console is the program that allows the administrator or user to
215 communicate with the Bacula Director. This is the text only console
218 %description console -l pl.UTF-8
219 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
221 Bacula Console to program umożliwiający administratorowi lub
222 użytkownikowi komunikowanie się z programem Bacula Director. To jest
223 interfejs czysto tekstowy.
226 Summary: Bacula wxWidgets Console
227 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
228 Group: Networking/Utilities
229 Requires(post): sed >= 4.0
230 Requires: %{name}-common = %{version}-%{release}
232 %description console-wx
233 Bacula - It comes by night and sucks the vital essence from your
236 Bacula Console is the program that allows the administrator or user to
237 communicate with the Bacula Director. This is the wxWidgets GUI
240 %description console-wx -l pl.UTF-8
241 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
243 Bacula Console to program umożliwiający administratorowi lub
244 użytkownikowi komunikowanie się z programem Bacula Director. To jest
245 interfejs graficzny oparty na wxWidgets.
248 Summary: Bacula Qt4 Console
249 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
250 Group: Networking/Utilities
251 Requires(post): sed >= 4.0
252 Requires: %{name}-common = %{version}-%{release}
254 %description console-qt4
255 Bacula - It comes by night and sucks the vital essence from your
258 Bacula Console is the program that allows the administrator or user to
259 communicate with the Bacula Director. This is the Qt4 GUI interface.
261 %description console-qt4 -l pl.UTF-8
262 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
264 Bacula Console to program umożliwiający administratorowi lub
265 użytkownikowi komunikowanie się z programem Bacula Director. To jest
266 interfejs graficzny oparty na Qt4.
268 %package tray-monitor
269 Summary: Bacula Tray Monitor
270 Group: Networking/Utilities
271 Requires(post): sed >= 4.0
272 Requires: %{name}-common = %{version}-%{release}
274 %description tray-monitor
275 Bacula - It comes by night and sucks the vital essence from your
278 The Monitor program is typically an icon in the system tray. However,
279 once the icon is expanded into a full window, the administrator or
280 user can obtain status information about the Director or the backup
281 status on the local workstation or any other Bacula daemon that is
285 Summary: Bacula File services (Client)
286 Summary(pl.UTF-8): Usługi Bacula File (klient)
287 Group: Networking/Utilities
288 Requires(post): sed >= 4.0
289 Requires: %{name}-common = %{version}-%{release}
292 Bacula - It comes by night and sucks the vital essence from your
295 Bacula File services (or Client program) is the software program that
296 is installed on the machine to be backed up. It is specific to the
297 operating system on which it runs and is responsible for providing the
298 file attributes and data when requested by the Director. The File
299 services are also responsible for the file system dependent part of
300 restoring the file attributes and data during a recovery operation.
301 This program runs as a daemon on the machine to be backed up, and in
302 some of the documentation, the File daemon is referred to as the
303 Client (for example in Bacula configuration file).
305 %description fd -l pl.UTF-8
306 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
308 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
309 instaluje się na maszynach, z których mają być wykonywane kopie
310 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
311 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
312 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
313 zależną od systemu plików część odzyskiwania atrybutów i danych plików
314 podczas operacji odzyskiwania danych. Program działa jako demon na
315 maszynie, która ma być backupowana i w części dokumentacji demon ten
316 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
320 Summary: Bacula Storage services
321 Summary(pl.UTF-8): Usługi Bacula Storage
322 Group: Networking/Utilities
323 Requires(post): sed >= 4.0
324 Requires: %{name}-common = %{version}-%{release}
325 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
328 Bacula - It comes by night and sucks the vital essence from your
331 Bacula Storage services consist of the software programs that perform
332 the storage and recovery of the file attributes and data to the
333 physical backup media or volumes. In other words, the Storage daemon
334 is responsible for reading and writing your tapes (or other storage
335 media, e.g. files). The Storage services runs as a daemon on the
336 machine that has the backup device (usually a tape drive).
338 %description sd -l pl.UTF-8
339 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
341 Usługi Bacula Storage składają się z programów obsługujących
342 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
343 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
344 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
345 przechowywania danych, np. plików). Usługi Storage działają jako demon
346 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
349 %package db-postgresql
350 Summary: PostgreSQL database driver for Bacula
351 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
352 Group: Networking/Utilities
353 Requires(post): /sbin/ldconfig
354 Requires: %{name}-common = %{version}-%{release}
355 Provides: bacula(db) = %{version}-%{release}
356 Obsoletes: bacula(db)
358 %description db-postgresql
359 PostgreSQL database driver for Bacula.
361 %description db-postgresql -l pl.UTF-8
362 Sterownik bazy PostgreSQL dla Baculi.
365 Summary: MySQL database driver for Bacula
366 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
367 Group: Networking/Utilities
368 Requires(post): /sbin/ldconfig
369 Requires: %{name}-common = %{version}-%{release}
370 Provides: bacula(db) = %{version}-%{release}
371 Obsoletes: bacula(db)
373 %description db-mysql
374 MySQL database driver for Bacula.
376 %description db-mysql -l pl.UTF-8
377 Sterownik bazy MySQL dla Baculi.
380 Summary: SQLite database driver for Bacula
381 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
382 Group: Networking/Utilities
383 Requires(post): /sbin/ldconfig
384 Requires: %{name}-common = %{version}-%{release}
385 Provides: bacula(db) = %{version}-%{release}
386 Obsoletes: bacula(db)
388 %description db-sqlite3
389 SQLite database driver for Bacula.
391 %description db-sqlite3 -l pl.UTF-8
392 Sterownik bazy SQLite dla Baculi.
395 Summary: libdbi database driver for Bacula
396 Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi
397 Group: Networking/Utilities
398 Requires(post): /sbin/ldconfig
399 Requires: %{name}-common = %{version}-%{release}
400 Provides: bacula(db) = %{version}-%{release}
401 Obsoletes: bacula(db)
404 libdbi database driver for Bacula.
406 %description db-dbi -l pl.UTF-8
407 Sterownik baz libdbi dla Baculi.
410 Summary: Bacula - The Network Backup Solution
411 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
412 Group: Networking/Utilities
413 Requires: %{name}-fd = %{version}-%{release}
418 Bacula - It comes by night and sucks the vital essence from your
421 Bacula is a set of computer programs that permit you (or the system
422 administrator) to manage backup, recovery, and verification of
423 computer data across a network of computers of different kinds. In
424 technical terms, it is a network client/server based backup program.
425 Bacula is relatively easy to use and efficient, while offering many
426 advanced storage management features that make it easy to find and
427 recover lost or damaged files.
429 This package installs scripts for disaster recovery and builds rescue
430 floppy disk for bare metal recovery.
432 %description rescue -l pl.UTF-8
433 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
435 Bacula to zbiór programów umożliwiających administratorowi na
436 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
437 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
438 program do kopii zapasowych pracujący w architekturze klient-serwer.
439 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
440 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
441 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
444 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
445 ratunkowe do odtwarzania systemu od zera.
447 %package -n nagios-plugin-check_bacula
448 Summary: Nagios plugin to check bacula
450 Requires: nagios-common
452 %description -n nagios-plugin-check_bacula
453 Nagios plugin to check bacula.
467 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
469 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
470 src/cats/create_* src/cats/delete_* src/cats/drop_* \
471 src/cats/grant_* src/cats/make_* src/cats/update_*
472 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
475 for dbtype in mysql postgresql sqlite3; do
476 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
482 %{__aclocal} -I bacula-macros -I gettext-macros
483 # $BUILD_DIR not seen by libtoolize, export it
484 BUILD_DIR=.. %{__libtoolize}
486 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
488 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
490 # we wan't the 'base' build built with the last database in the list,
491 # to make sure it is full-featured
492 for database in %{databases}; do
493 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
495 --with-scriptdir=%{_libexecdir}/%{name} \
496 %{?with_bat:--enable-bat} \
498 --enable-smartalloc \
499 %{?with_console_wx:--enable-bwx-console} \
500 --enable-tray-monitor \
501 %{?with_python:--with-python} \
503 --with-tcp-wrappers \
504 --with-working-dir=%{_var}/lib/%{name} \
505 --with-dump-email="root@localhost" \
506 --with-job-email="root@localhost" \
507 --with-smtp-host=localhost \
508 --with-pid-dir=/var/run \
509 --with-subsys-dir=/var/lock/subsys \
510 --enable-batch-insert \
512 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
513 --with-dir-password="#FAKE-dir-password#" \
514 --with-fd-password="#FAKE-fd-password#" \
515 --with-sd-password="#FAKE-sd-password#" \
516 --with-mon-dir-password="#FAKE-mon-dir-password#" \
517 --with-mon-fd-password="#FAKE-mon-fd-password#" \
518 --with-mon-sd-password="#FAKE-mon-sd-password#" \
521 # build the database library
522 %{__make} -C src/cats clean
523 %{__make} -C src/cats
525 # install the database library in a temporary location
526 install -d libbacsql/$database%{_libdir}
527 %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
540 %{__make} -C examples/nagios/check_bacula
552 rm -rf $RPM_BUILD_ROOT
554 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
555 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
556 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
559 DESTDIR=$RPM_BUILD_ROOT
561 # install libraries for all the database backends
562 # ldconfig will add the soname symlinks when one of the packages is installed
563 for database in %{databases}; do
564 for libfile in libbacsql/$database%{_libdir}/lib*-*.so; do
565 orig_name=${libfile##*/}
566 file_prefix=${orig_name%%-*.so}
567 file_suffix=${orig_name#*-}
568 file_name=$file_prefix-$database-$file_suffix
569 install -p $libfile $RPM_BUILD_ROOT/%{_libdir}/$file_name
570 touch $RPM_BUILD_ROOT/%{_libdir}/$orig_name
574 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
575 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
576 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
577 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
578 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
579 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
580 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
582 %if %{with console_wx}
583 # tray-monitor is for regular users
584 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
586 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
587 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
588 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
589 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
590 #sed -e 's#%{_sbindir}#%{_bindir}#' \
591 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
595 # TODO: libtool install
596 #libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
597 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_bindir}
598 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
602 # install the rescue stuff, these are the rescue scripts
603 cp -a rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
604 cp -a rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
605 install -p rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
606 install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
609 touch $RPM_BUILD_ROOT/var/log/bacula/log
611 # install the updatedb scripts
612 install -p updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
614 # place for site passwords
615 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
616 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
618 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
621 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
622 %if %{without console_wx}
623 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
625 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
627 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
628 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
629 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
630 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
631 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
632 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
633 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
635 # startup scripts, those in /etc/rc.d/init.d are better
636 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
637 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
640 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
642 # rename to avoid possible conflicts
643 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
644 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
646 # no -devel files packaged, so this is also useless
647 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
649 # placeholders for the symlinks set in %%post db-*
650 for f in create_bacula_database drop_bacula_database drop_bacula_tables \
651 grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
653 ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
657 %{__make} -C examples/nagios/check_bacula install \
658 sbindir=%{nagiosplugindir} \
659 DESTDIR=$RPM_BUILD_ROOT
663 rm -rf $RPM_BUILD_ROOT
666 %groupadd -P %{name}-common -g 136 -r -f bacula
667 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
670 %define update_configs \
671 echo "Updating bacula passwords and names..." | %banner \
673 for f in *-password ; do \
674 if [ ! -s $f ] ; then \
675 openssl rand -base64 33 > $f \
678 for cf in *.conf *.conf.rpmnew ; do \
679 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
682 for cf in *.conf *.conf.rpmnew ; do \
683 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
692 if [ "$1" = "0" ]; then
697 %triggerpostun dir -- %{name}-dir < 5.0
698 %banner bacula-dir -t3 <<EOF
699 You have upgraded from an older version of Bacula director.
701 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
702 script to upgrade the database.
707 /sbin/chkconfig --add bacula-dir
708 %service bacula-dir restart "Bacula Director daemon"
711 if [ "$1" = "0" ]; then
712 %service bacula-dir stop
713 /sbin/chkconfig --del bacula-dir
718 /sbin/chkconfig --add bacula-fd
719 %service bacula-fd restart "Bacula File daemon"
722 if [ "$1" = "0" ]; then
723 %service bacula-fd stop
724 /sbin/chkconfig --del bacula-fd
729 /sbin/chkconfig --add bacula-sd
730 %service bacula-sd restart "Bacula Storage daemon"
733 if [ "$1" = "0" ]; then
734 %service bacula-sd stop
735 /sbin/chkconfig --del bacula-sd
739 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
740 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
749 %triggerpostun common -- %{name}-common < 5.0.1-2
750 find /etc/bacula/bat.conf* -perm /007 -print0 | xargs -0 -r chmod 600 || :
759 # link our current installed conf file to the rescue directory
760 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
763 echo "Creating rescue files for this system..."
764 cd %{_sysconfdir}/rescue
768 # remove the files created after the initial rpm installation
769 if [ "$1" = "0" ]; then
770 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
771 rm -f %{_sysconfdir}/rescue/partition.*
772 rm -f %{_sysconfdir}/rescue/format.*
773 rm -f %{_sysconfdir}/rescue/mount_drives
774 rm -f %{_sysconfdir}/rescue/start_network
775 rm -f %{_sysconfdir}/rescue/sfdisk
776 rm -rf %{_sysconfdir}/rescue/diskinfo/*
781 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
782 prefix="${name%% *}" \
783 suffix="${name#* }" \
784 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
786 %service bacula-dir restart "Bacula Director daemon"
788 %define db_postun() \
790 if [ "$1" = "0" ]; then \
791 for f in %{_libexecdir}/%{name}/*_bacula_*; do \
792 if [ -L "$f" -a ! -e "$f" ]; then \
801 %postun db-postgresql
802 %db_postun postgresql
816 # dbi backend is different, as it is not bound with a specific db engine
819 %service bacula-dir restart "Bacula Director daemon"
821 %postun db-dbi -p /sbin/ldconfig
824 %defattr(644,root,root,755)
827 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
828 # do not remove bsmtp from files. Fix build if it is not installed.
829 %attr(755,root,root) %{_sbindir}/bsmtp
830 %attr(755,root,root) %{_sbindir}/btraceback
831 %attr(755,root,root) %{_libdir}/libbac-%{version}.so
832 %attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
833 %attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
834 %attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
835 %{_mandir}/man8/bacula.8*
836 %{_mandir}/man1/bsmtp.1*
837 %{_mandir}/man8/btraceback.8*
838 %dir %{_libexecdir}/%{name}
839 %{_libexecdir}/%{name}/btraceback.dbx
840 %{_libexecdir}/%{name}/btraceback.gdb
841 %{_libexecdir}/%{name}/bacula_config
842 %attr(770,root,bacula) %dir %{_localstatedir}
843 %attr(750,bacula,logs) %dir /var/log/bacula
844 %attr(640,bacula,logs) %ghost /var/log/bacula/log
847 %defattr(644,root,root,755)
848 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
849 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
850 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
851 %ghost %{_sysconfdir}/.pw.sed
852 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
853 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
854 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
855 %attr(755,root,root) %{_sbindir}/bacula-dir
856 %attr(755,root,root) %{_sbindir}/bregex
857 %attr(755,root,root) %{_sbindir}/bwild
858 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
859 %{_mandir}/man8/bacula-dir.8*
860 %{_mandir}/man8/bacula-dbcheck.8*
861 %{_libexecdir}/%{name}/query.sql
862 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
863 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
866 %defattr(644,root,root,755)
867 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
868 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
869 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
870 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
871 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
872 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
873 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
875 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
876 %ghost %{_libexecdir}/%{name}/create_bacula_database
877 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
878 %ghost %{_libexecdir}/%{name}/drop_bacula_database
879 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
880 %ghost %{_libexecdir}/%{name}/make_bacula_tables
881 %ghost %{_libexecdir}/%{name}/update_bacula_tables
884 %defattr(644,root,root,755)
885 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
886 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
887 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
888 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
889 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
890 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
891 %attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
893 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
894 %ghost %{_libexecdir}/%{name}/create_bacula_database
895 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
896 %ghost %{_libexecdir}/%{name}/drop_bacula_database
897 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
898 %ghost %{_libexecdir}/%{name}/make_bacula_tables
899 %ghost %{_libexecdir}/%{name}/update_bacula_tables
902 %defattr(644,root,root,755)
903 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
904 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
905 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
906 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
907 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
908 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
909 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
910 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
912 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
913 %ghost %{_libexecdir}/%{name}/create_bacula_database
914 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
915 %ghost %{_libexecdir}/%{name}/drop_bacula_database
916 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
917 %ghost %{_libexecdir}/%{name}/make_bacula_tables
918 %ghost %{_libexecdir}/%{name}/update_bacula_tables
921 %defattr(644,root,root,755)
922 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
923 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
924 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
925 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
926 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
927 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
928 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
929 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
930 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
931 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
932 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
933 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
934 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
935 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
936 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
937 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
938 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
939 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
940 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
941 %attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
943 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
946 %defattr(644,root,root,755)
948 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
949 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
950 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
951 %attr(755,root,root) %{_sbindir}/bacula-fd
952 %attr(755,root,root) %{_libdir}/bpipe-fd.so
953 %{_mandir}/man8/bacula-fd.8*
956 %defattr(644,root,root,755)
958 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
959 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
960 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
961 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
962 %attr(755,root,root) %{_sbindir}/bacula-sd
963 %attr(755,root,root) %{_sbindir}/bcopy
964 %attr(755,root,root) %{_sbindir}/bextract
965 %attr(755,root,root) %{_sbindir}/bls
966 %attr(755,root,root) %{_sbindir}/bscan
967 %attr(755,root,root) %{_sbindir}/btape
968 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
969 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
970 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
971 %{_mandir}/man8/bacula-sd.8*
972 %{_mandir}/man8/bcopy.8*
973 %{_mandir}/man8/bextract.8*
974 %{_mandir}/man8/bls.8*
975 %{_mandir}/man8/bscan.8*
976 %{_mandir}/man8/btape.8*
979 %defattr(644,root,root,755)
981 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
982 %attr(755,root,root) %{_sbindir}/bconsole
983 %{_mandir}/man8/bconsole.8*
985 %if %{with console_wx}
987 %defattr(644,root,root,755)
989 %{_pixmapsdir}/%{name}.png
990 %{_desktopdir}/bacula-wx.desktop
991 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
992 %attr(755,root,root) %{_sbindir}/bwx-console
993 %{_mandir}/man1/bacula-bwxconsole.1*
998 %defattr(644,root,root,755)
1000 %{_pixmapsdir}/%{name}.png
1001 %{_desktopdir}/bat.desktop
1002 # Do not make this file world-readable or any user will get full access to the
1004 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
1005 %attr(755,root,root) %{_bindir}/bat
1006 %{_mandir}/man1/bat.1*
1010 %if %{with console_wx}
1012 %defattr(644,root,root,755)
1014 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
1015 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
1016 #%{_desktopdir}/%{name}-tray-monitor.desktop
1017 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
1018 %{_mandir}/man1/bacula-tray-monitor.1*
1023 %defattr(644,root,root,755)
1025 %dir %{_sysconfdir}/rescue
1026 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1027 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1028 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1029 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1030 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1031 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1032 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1033 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1034 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1035 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
1039 %files -n nagios-plugin-check_bacula
1040 %defattr(644,root,root,755)
1041 %attr(755,root,root) %{nagiosplugindir}/check_bacula