2 # - update desktop files, think about su-wrappers for console (with .desktop files)
4 # - fix log file permissions
5 # - check on upgrade (5.0 and 5.2 databases are NOT compatible)
8 %bcond_without console_wx # wx-console program
9 %if "%{pld_release}" == "ac"
10 %bcond_with bat # bat Qt4 GUI
12 %bcond_without bat # bat Qt4 GUI
14 %bcond_without mysql # use MySQL
15 %bcond_without pgsql # use PostgreSQL
16 %bcond_without sqlite3 # use SQLite3
17 %bcond_without python # Python Scripting support, http://www.bacula.org/3.0.x-manuals/en/concepts/concepts/Python_Scripting.html
18 %bcond_without 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
27 Summary: Bacula - The Network Backup Solution
28 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
33 Group: Networking/Utilities
34 Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
35 # Source0-md5: 227b88f56ae085da8f48823b220d4c87
36 Source1: http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
37 # Source1-md5: 478273c0229f24d6690fdbedbeb50fa4
38 Source2: http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.1.tar.gz
39 # Source2-md5: bb194aed8e204f54bf2f61d7e721f257
40 Source10: %{name}-dir.init
41 Source11: %{name}-fd.init
42 Source12: %{name}-sd.init
43 Source13: %{name}.logrotate
44 Source14: %{name}-dir.sysconfig
45 Source15: %{name}-fd.sysconfig
46 Source16: %{name}-sd.sysconfig
47 Patch0: %{name}-mtx-changer.patch
48 Patch1: %{name}-branding.patch
49 Patch2: %{name}-conf.patch
50 Patch3: %{name}-desktop.patch
51 Patch4: make_catalog_backup-setup-home.patch
52 Patch5: %{name}-mysql_thread.patch
53 URL: http://www.bacula.org/
54 BuildRequires: acl-devel
55 BuildRequires: autoconf
56 BuildRequires: automake
57 BuildRequires: gettext-devel
58 %{?with_console_wx:BuildRequires: gtk+2-devel}
59 BuildRequires: libcap-devel
60 BuildRequires: libtool >= 2:2.2
62 BuildRequires: fakeroot
64 BuildRequires: libwrap-devel
65 BuildRequires: ncurses-devel
66 BuildRequires: openssl-devel
67 BuildRequires: pkgconfig
69 BuildRequires: python-devel
70 BuildRequires: python-modules
73 BuildRequires: QtCore-devel
74 BuildRequires: QtGui-devel
75 BuildRequires: qt4-build >= %{qtver}
76 BuildRequires: qt4-qmake >= %{qtver}
78 %{?with_mysql:BuildRequires: mysql-devel}
79 %{?with_pgsql:BuildRequires: postgresql-devel}
80 BuildRequires: readline-devel
81 BuildRequires: rpm >= 4.4.9-56
82 BuildRequires: rpm-pythonprov
83 BuildRequires: rpmbuild(macros) >= 1.268
84 BuildRequires: sed >= 4.0
85 %{?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 %{_libdir}/nagios/plugins
97 # from 'the worst' to 'the best'
98 %define databases %{?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}
253 Requires: QtCore >= %{qtver}
255 %description console-qt4
256 Bacula - It comes by night and sucks the vital essence from your
259 Bacula Console is the program that allows the administrator or user to
260 communicate with the Bacula Director. This is the Qt4 GUI interface.
262 %description console-qt4 -l pl.UTF-8
263 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
265 Bacula Console to program umożliwiający administratorowi lub
266 użytkownikowi komunikowanie się z programem Bacula Director. To jest
267 interfejs graficzny oparty na Qt4.
269 %package tray-monitor
270 Summary: Bacula Tray Monitor
271 Group: Networking/Utilities
272 Requires(post): sed >= 4.0
273 Requires: %{name}-common = %{version}-%{release}
275 %description tray-monitor
276 Bacula - It comes by night and sucks the vital essence from your
279 The Monitor program is typically an icon in the system tray. However,
280 once the icon is expanded into a full window, the administrator or
281 user can obtain status information about the Director or the backup
282 status on the local workstation or any other Bacula daemon that is
286 Summary: Bacula File services (Client)
287 Summary(pl.UTF-8): Usługi Bacula File (klient)
288 Group: Networking/Utilities
289 Requires(post): sed >= 4.0
290 Requires: %{name}-common = %{version}-%{release}
293 Bacula - It comes by night and sucks the vital essence from your
296 Bacula File services (or Client program) is the software program that
297 is installed on the machine to be backed up. It is specific to the
298 operating system on which it runs and is responsible for providing the
299 file attributes and data when requested by the Director. The File
300 services are also responsible for the file system dependent part of
301 restoring the file attributes and data during a recovery operation.
302 This program runs as a daemon on the machine to be backed up, and in
303 some of the documentation, the File daemon is referred to as the
304 Client (for example in Bacula configuration file).
306 %description fd -l pl.UTF-8
307 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
309 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
310 instaluje się na maszynach, z których mają być wykonywane kopie
311 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
312 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
313 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
314 zależną od systemu plików część odzyskiwania atrybutów i danych plików
315 podczas operacji odzyskiwania danych. Program działa jako demon na
316 maszynie, która ma być backupowana i w części dokumentacji demon ten
317 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
321 Summary: Bacula Storage services
322 Summary(pl.UTF-8): Usługi Bacula Storage
323 Group: Networking/Utilities
324 Requires(post): sed >= 4.0
325 Requires: %{name}-common = %{version}-%{release}
326 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
329 Bacula - It comes by night and sucks the vital essence from your
332 Bacula Storage services consist of the software programs that perform
333 the storage and recovery of the file attributes and data to the
334 physical backup media or volumes. In other words, the Storage daemon
335 is responsible for reading and writing your tapes (or other storage
336 media, e.g. files). The Storage services runs as a daemon on the
337 machine that has the backup device (usually a tape drive).
339 %description sd -l pl.UTF-8
340 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
342 Usługi Bacula Storage składają się z programów obsługujących
343 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
344 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
345 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
346 przechowywania danych, np. plików). Usługi Storage działają jako demon
347 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
350 %package db-postgresql
351 Summary: PostgreSQL database driver for Bacula
352 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
353 Group: Networking/Utilities
354 Requires(post): /sbin/ldconfig
355 Requires: %{name}-common = %{version}-%{release}
356 Provides: bacula(db) = %{version}-%{release}
357 Obsoletes: bacula(db)
359 %description db-postgresql
360 PostgreSQL database driver for Bacula.
362 %description db-postgresql -l pl.UTF-8
363 Sterownik bazy PostgreSQL dla Baculi.
366 Summary: MySQL database driver for Bacula
367 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
368 Group: Networking/Utilities
369 Requires(post): /sbin/ldconfig
370 Requires: %{name}-common = %{version}-%{release}
371 Provides: bacula(db) = %{version}-%{release}
372 Obsoletes: bacula(db)
374 %description db-mysql
375 MySQL database driver for Bacula.
377 %description db-mysql -l pl.UTF-8
378 Sterownik bazy MySQL dla Baculi.
381 Summary: SQLite database driver for Bacula
382 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
383 Group: Networking/Utilities
384 Requires(post): /sbin/ldconfig
385 Requires: %{name}-common = %{version}-%{release}
386 Provides: bacula(db) = %{version}-%{release}
387 Obsoletes: bacula(db)
389 %description db-sqlite3
390 SQLite database driver for Bacula.
392 %description db-sqlite3 -l pl.UTF-8
393 Sterownik bazy SQLite dla Baculi.
396 Summary: Bacula - The Network Backup Solution
397 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
398 Group: Networking/Utilities
399 Requires: %{name}-fd = %{version}-%{release}
404 Bacula - It comes by night and sucks the vital essence from your
407 Bacula is a set of computer programs that permit you (or the system
408 administrator) to manage backup, recovery, and verification of
409 computer data across a network of computers of different kinds. In
410 technical terms, it is a network client/server based backup program.
411 Bacula is relatively easy to use and efficient, while offering many
412 advanced storage management features that make it easy to find and
413 recover lost or damaged files.
415 This package installs scripts for disaster recovery and builds rescue
416 floppy disk for bare metal recovery.
418 %description rescue -l pl.UTF-8
419 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
421 Bacula to zbiór programów umożliwiających administratorowi na
422 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
423 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
424 program do kopii zapasowych pracujący w architekturze klient-serwer.
425 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
426 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
427 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
430 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
431 ratunkowe do odtwarzania systemu od zera.
433 %package -n nagios-plugin-check_bacula
434 Summary: Nagios plugin to check bacula
436 Requires: nagios-common
438 %description -n nagios-plugin-check_bacula
439 Nagios plugin to check bacula.
441 # provided by various db libraries as a symlink
442 %define _noautoreq libbaccats-%{version}.so
453 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
455 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
456 src/cats/create_* src/cats/delete_* src/cats/drop_* \
457 src/cats/grant_* src/cats/make_* src/cats/update_*
458 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
459 sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
463 %{__aclocal} -I bacula-macros -I gettext-macros
464 # $BUILD_DIR not seen by libtoolize, export it
465 BUILD_DIR=.. %{__libtoolize}
467 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
469 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
471 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
472 QMAKE=%{_bindir}/qt4-qmake \
474 --with-scriptdir=%{_libexecdir}/%{name} \
475 %{?with_bat:--enable-bat} \
477 --enable-smartalloc \
478 %{?with_console_wx:--enable-bwx-console} \
479 --enable-tray-monitor \
480 %{?with_python:--with-python} \
482 --with-tcp-wrappers \
483 --with-working-dir=%{_var}/lib/%{name} \
484 --with-dump-email="root@localhost" \
485 --with-job-email="root@localhost" \
486 --with-smtp-host=localhost \
487 --with-pid-dir=/var/run \
488 --with-subsys-dir=/var/lock/subsys \
489 --with-systemd=/lib/systemd/system \
490 --enable-batch-insert \
491 %{?with_pgsql:--with-postgresql} \
492 %{?with_mysql:--with-mysql} \
493 %{?with_sqlite3:--with-sqlite3} \
494 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
495 --with-dir-password="#FAKE-dir-password#" \
496 --with-fd-password="#FAKE-fd-password#" \
497 --with-sd-password="#FAKE-sd-password#" \
498 --with-mon-dir-password="#FAKE-mon-dir-password#" \
499 --with-mon-fd-password="#FAKE-mon-fd-password#" \
500 --with-mon-sd-password="#FAKE-mon-sd-password#" \
509 %{__make} 2>&1 | tee log
510 # check for build errors
511 grep "Error in" log && exit 1
515 %{__make} -C examples/nagios/check_bacula
527 rm -rf $RPM_BUILD_ROOT
528 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
529 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
530 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
533 DESTDIR=$RPM_BUILD_ROOT
535 # create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
536 for database in %{databases}; do
537 sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
538 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup \
539 > $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
540 chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/make_${database}_catalog_backup
542 :> $RPM_BUILD_ROOT%{_libdir}/%{name}/make_catalog_backup
544 # we use db dependant (at compile time) shell script only
545 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
547 ## replace with empty file, replaced by ldconfig from each db-* package on intsall
548 rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
549 touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
551 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
552 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
553 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
554 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
555 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
556 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
557 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
559 %if %{with console_wx}
560 # tray-monitor is for regular users
561 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
563 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
564 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
565 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
566 scripts/wxconsole.desktop.consolehelper > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
567 #sed -e 's#%{_sbindir}#%{_bindir}#' \
568 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
572 # qmake somewhy does not always create install_bins target. install our own the bin
573 rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
574 libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
575 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
579 # install the rescue stuff, these are the rescue scripts
580 cp -a rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
581 cp -a rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
582 install -p rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
583 install -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
586 touch $RPM_BUILD_ROOT/var/log/bacula/log
588 # install the updatedb scripts for older versions that last full release
589 # 2.0 -> 3.0 : 10_to_11
590 # 5.0 -> 5.2 : 12_to_14
591 install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
592 install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
593 install -p updatedb/update_*_tables_12_to_14 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
595 # place for site passwords
596 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
597 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
599 mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
602 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
603 %if %{without console_wx}
604 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
606 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
608 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
609 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
610 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
611 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
612 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
613 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
614 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
616 # startup scripts, those in /etc/rc.d/init.d are better
617 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
618 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
621 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
623 # rename to avoid possible conflicts
624 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
625 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
627 # no -devel files packaged, so this is also useless
628 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
631 install -d $RPM_BUILD_ROOT%{nagiosplugindir}
632 %{__make} -C examples/nagios/check_bacula install \
633 sbindir=%{nagiosplugindir} \
634 INSTALL_PROGRAM="libtool --mode=install install -p" \
635 DESTDIR=$RPM_BUILD_ROOT
639 rm -rf $RPM_BUILD_ROOT
642 %groupadd -P %{name}-common -g 136 -r -f bacula
643 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
645 %define update_configs \
646 echo "Updating bacula passwords and names..." | %banner -a %{name} \
648 for f in *-password; do \
649 if [ ! -s $f ]; then \
650 openssl rand -base64 33 > $f \
653 for cf in *.conf *.conf.rpmnew; do \
654 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
657 for cf in *.conf *.conf.rpmnew; do \
658 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
667 if [ "$1" = "0" ]; then
672 %triggerpostun dir -- %{name}-dir < %{version}-0
673 %banner bacula-dir -t3 <<EOF
674 You have upgraded from an older version of Bacula director.
676 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
677 script to upgrade the database.
679 Ensure you database partition has enough free space before you run the upgrade,
680 i.e check that there is enough room to rebuild 'File' table (it is the largest
687 /sbin/chkconfig --add bacula-dir
688 %service bacula-dir restart "Bacula Director daemon"
691 if [ "$1" = "0" ]; then
692 %service bacula-dir stop
693 /sbin/chkconfig --del bacula-dir
698 /sbin/chkconfig --add bacula-fd
699 %service bacula-fd restart "Bacula File daemon"
702 if [ "$1" = "0" ]; then
703 %service bacula-fd stop
704 /sbin/chkconfig --del bacula-fd
709 /sbin/chkconfig --add bacula-sd
710 %service bacula-sd restart "Bacula Storage daemon"
713 if [ "$1" = "0" ]; then
714 %service bacula-sd stop
715 /sbin/chkconfig --del bacula-sd
719 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
720 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
729 %triggerpostun common -- %{name}-common < 5.0.1-2
730 find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
739 # link our current installed conf file to the rescue directory
740 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
743 echo "Creating rescue files for this system..."
744 cd %{_sysconfdir}/rescue
748 # remove the files created after the initial rpm installation
749 if [ "$1" = "0" ]; then
750 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
751 rm -f %{_sysconfdir}/rescue/partition.*
752 rm -f %{_sysconfdir}/rescue/format.*
753 rm -f %{_sysconfdir}/rescue/mount_drives
754 rm -f %{_sysconfdir}/rescue/start_network
755 rm -f %{_sysconfdir}/rescue/sfdisk
756 rm -rf %{_sysconfdir}/rescue/diskinfo/*
761 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
762 prefix="${name%% *}" \
763 suffix="${name#* }" \
764 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
766 ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
767 ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
768 %service bacula-dir restart "Bacula Director daemon"
773 %postun db-postgresql -p /sbin/ldconfig
778 %postun db-mysql -p /sbin/ldconfig
783 %postun db-sqlite3 -p /sbin/ldconfig
786 %defattr(644,root,root,755)
788 %{?with_python:%doc examples/python}
790 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
791 # do not remove bsmtp from files. Fix build if it is not installed.
792 %attr(755,root,root) %{_sbindir}/bsmtp
793 %attr(755,root,root) %{_sbindir}/btraceback
794 %attr(755,root,root) %{_libdir}/libbac-5*.so
795 %attr(755,root,root) %{_libdir}/libbaccfg-5*.so
796 %attr(755,root,root) %{_libdir}/libbacfind-5*.so
797 %attr(755,root,root) %{_libdir}/libbacpy-5*.so
798 %attr(755,root,root) %{_libdir}/libbacsql-5*.so
799 %{_mandir}/man8/bacula.8*
800 %{_mandir}/man1/bsmtp.1*
801 %{_mandir}/man8/btraceback.8*
802 %dir %{_libexecdir}/%{name}
803 %{_libexecdir}/%{name}/btraceback.dbx
804 %{_libexecdir}/%{name}/btraceback.gdb
805 %{_libexecdir}/%{name}/bacula_config
806 %attr(770,root,bacula) %dir %{_localstatedir}
807 %attr(750,bacula,logs) %dir /var/log/bacula
808 %attr(640,bacula,logs) %ghost /var/log/bacula/log
811 %defattr(644,root,root,755)
812 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
813 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
814 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
815 %ghost %{_sysconfdir}/.pw.sed
816 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
817 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
818 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
819 %attr(755,root,root) %{_sbindir}/bacula-dir
820 %attr(755,root,root) %{_sbindir}/bregex
821 %attr(755,root,root) %{_sbindir}/bwild
822 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
823 %{_mandir}/man8/bacula-dir.8*
824 %{_mandir}/man8/bacula-dbcheck.8*
825 %{_mandir}/man8/bregex.8*
826 %{_mandir}/man8/bwild.8*
827 %{_libexecdir}/%{name}/query.sql
828 %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
831 %defattr(644,root,root,755)
832 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
833 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
834 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
835 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
836 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
837 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
838 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
839 %attr(755,root,root) %{_libdir}/libbaccats-postgresql-5*.so
841 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
842 %ghost %{_libexecdir}/%{name}/create_bacula_database
843 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
844 %ghost %{_libexecdir}/%{name}/drop_bacula_database
845 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
846 %ghost %{_libexecdir}/%{name}/make_bacula_tables
847 %ghost %{_libexecdir}/%{name}/update_bacula_tables
848 %ghost %{_libexecdir}/%{name}/make_catalog_backup
851 %defattr(644,root,root,755)
852 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
853 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
854 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
855 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
856 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
857 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
858 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
859 %attr(755,root,root) %{_libdir}/libbaccats-mysql-5*.so
861 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
862 %ghost %{_libexecdir}/%{name}/create_bacula_database
863 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
864 %ghost %{_libexecdir}/%{name}/drop_bacula_database
865 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
866 %ghost %{_libexecdir}/%{name}/make_bacula_tables
867 %ghost %{_libexecdir}/%{name}/update_bacula_tables
868 %ghost %{_libexecdir}/%{name}/make_catalog_backup
871 %defattr(644,root,root,755)
872 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
873 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
874 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
875 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
876 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
877 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
878 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
879 %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-5*.so
881 %ghost %attr(755,root,root) %{_libdir}/libbaccats-5*.so
882 %ghost %{_libexecdir}/%{name}/create_bacula_database
883 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
884 %ghost %{_libexecdir}/%{name}/drop_bacula_database
885 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
886 %ghost %{_libexecdir}/%{name}/make_bacula_tables
887 %ghost %{_libexecdir}/%{name}/update_bacula_tables
888 %ghost %{_libexecdir}/%{name}/make_catalog_backup
891 %defattr(644,root,root,755)
893 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
894 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
895 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
896 %attr(755,root,root) %{_sbindir}/bacula-fd
897 %attr(755,root,root) %{_libdir}/bpipe-fd.so
898 %{_mandir}/man8/bacula-fd.8*
901 %defattr(644,root,root,755)
903 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
904 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
905 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
906 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
907 %attr(755,root,root) %{_sbindir}/bacula-sd
908 %attr(755,root,root) %{_sbindir}/bcopy
909 %attr(755,root,root) %{_sbindir}/bextract
910 %attr(755,root,root) %{_sbindir}/bls
911 %attr(755,root,root) %{_sbindir}/bscan
912 %attr(755,root,root) %{_sbindir}/btape
913 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
914 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
915 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
916 %{_mandir}/man8/bacula-sd.8*
917 %{_mandir}/man8/bcopy.8*
918 %{_mandir}/man8/bextract.8*
919 %{_mandir}/man8/bls.8*
920 %{_mandir}/man8/bscan.8*
921 %{_mandir}/man8/btape.8*
924 %defattr(644,root,root,755)
926 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
927 %attr(755,root,root) %{_sbindir}/bconsole
928 %{_mandir}/man8/bconsole.8*
930 %if %{with console_wx}
932 %defattr(644,root,root,755)
934 %{_pixmapsdir}/%{name}.png
935 %{_desktopdir}/bacula-wx.desktop
936 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
937 %attr(755,root,root) %{_sbindir}/bwx-console
938 %{_mandir}/man1/bacula-bwxconsole.1*
943 %defattr(644,root,root,755)
945 %{_pixmapsdir}/%{name}.png
946 %{_desktopdir}/bat.desktop
947 # Do not make this file world-readable or any user will get full access to the
949 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
950 %attr(755,root,root) %{_bindir}/bat
951 %{_mandir}/man1/bat.1*
955 %if %{with console_wx}
957 %defattr(644,root,root,755)
959 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
960 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
961 #%{_desktopdir}/%{name}-tray-monitor.desktop
962 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
963 %{_mandir}/man1/bacula-tray-monitor.1*
968 %defattr(644,root,root,755)
970 %dir %{_sysconfdir}/rescue
971 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
972 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
973 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
974 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
975 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
976 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
977 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
978 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
979 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
980 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
984 %files -n nagios-plugin-check_bacula
985 %defattr(644,root,root,755)
986 %attr(755,root,root) %{nagiosplugindir}/check_bacula