2 # - update desktop files, think about su-wrappers for console
4 # - fix log file permissions
7 %bcond_without console_wx # wx-console program
8 %bcond_without gnome # gnome-console program
9 %bcond_without bat # bat Qt4 GUI
10 %bcond_without dbi # use Database Independent Abstraction Layer (libdbi)
11 %bcond_with mysql # use MySQL
12 %bcond_with pgsql # use PostgreSQL
15 %bcond_with sqlite # use SQLite
16 %bcond_with sqlite3 # use SQLite3 instead of SQLite 2
17 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
23 %undefine with_sqlite3
26 %define database sqlite
30 %undefine with_sqlite3
33 %define database sqlite3
40 %define database postgresql
44 %undefine with_sqlite3
47 %define database mysql
51 %undefine with_sqlite3
54 %undefine with_sqlite3_sync_off
57 Summary: Bacula - The Network Backup Solution
58 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
63 License: extended GPL v2
64 Group: Networking/Utilities
65 Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
66 # Source0-md5: 5ea5294c4f66f0d8ba1414f1ca9dc79b
67 Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
68 # Source1-md5: 2c3a1c6ba46b1371240a9b8d053fdf61
69 Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-%{version}.tar.gz
70 # Source2-md5: b31af264219f6e6a0985288d810d7bb6
71 Source10: %{name}-dir.init
72 Source11: %{name}-fd.init
73 Source12: %{name}-sd.init
74 Source13: %{name}.logrotate
75 Source14: %{name}-dir.sysconfig
76 Source15: %{name}-fd.sysconfig
77 Source16: %{name}-sd.sysconfig
78 Patch0: %{name}-mtx-changer.patch
79 Patch1: %{name}-link.patch
80 Patch2: %{name}-tinfo-readline.patch
81 Patch3: %{name}-branding.patch
82 Patch4: %{name}-conf.patch
83 Patch5: %{name}-desktop.patch
84 Patch6: %{name}-64bitbuild_fix.patch
85 Patch7: %{name}-dbi_fixes.patch
86 URL: http://www.bacula.org/
87 BuildRequires: acl-static
88 BuildRequires: automake
89 %{?with_dbi:BuildRequires: libdbi-devel}
91 BuildRequires: fakeroot
93 BuildRequires: glibc-static
95 BuildRequires: libgnome-devel >= 2.0
96 BuildRequires: libgnomeui-devel >= 2.0
98 BuildRequires: libstdc++-static
99 BuildRequires: libwrap-static
101 BuildRequires: ncurses-devel
102 BuildRequires: openssl-devel
103 BuildRequires: openssl-static
104 BuildRequires: pkgconfig
106 BuildRequires: python-static
109 BuildRequires: QtCore-devel
110 BuildRequires: QtGui-devel
111 BuildRequires: qt4-build >= 4.3.3-3
112 BuildRequires: qt4-qmake >= 4.3.3-3
113 BuildRequires: qwt-devel >= 5.0.2-2
115 %{?with_mysql:BuildRequires: mysql-devel}
116 %{?with_pgsql:BuildRequires: postgresql-devel}
117 BuildRequires: readline-devel
118 BuildRequires: rpmbuild(macros) >= 1.268
119 BuildRequires: sed >= 4.0
120 %{?with_sqlite:BuildRequires: sqlite-devel}
121 %{?with_sqlite3:BuildRequires: sqlite3-devel}
122 %if %{with console_wx}
123 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
125 BuildRequires: zlib-devel
126 BuildRequires: zlib-static
127 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
129 %define _sysconfdir /etc/%{name}
130 %define _localstatedir /var/lib/%{name}
132 # dependency section is broken. ccache usage is instead to makefiles
133 %undefine with_ccache
136 Bacula - It comes by night and sucks the vital essence from your
139 Bacula is a set of computer programs that permit you (or the system
140 administrator) to manage backup, recovery, and verification of
141 computer data across a network of computers of different kinds. In
142 technical terms, it is a network client/server based backup program.
143 Bacula is relatively easy to use and efficient, while offering many
144 advanced storage management features that make it easy to find and
145 recover lost or damaged files.
147 %description -l pl.UTF-8
148 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
150 Bacula to zbiór programów umożliwiających administratorowi na
151 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
152 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
153 program do kopii zapasowych pracujący w architekturze klient-serwer.
154 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
155 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
156 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
160 Summary: Common files for bacula package
161 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
162 Group: Networking/Utilities
163 Requires(post): openssl-tools
164 Requires(post): sed >= 4.0
165 Requires(post,preun): /sbin/chkconfig
166 Requires(postun): /usr/sbin/groupdel
167 Requires(postun): /usr/sbin/userdel
168 Requires(pre): /usr/sbin/groupadd
169 Requires(pre): /usr/sbin/useradd
170 Conflicts: bacula-console < 0:1.34.6
171 Conflicts: bacula-dir < 0:1.34.6
172 Conflicts: bacula-fd < 0:1.34.6
173 Conflicts: bacula-sd < 0:1.34.6
176 Bacula - It comes by night and sucks the vital essence from your
179 Bacula is a set of computer programs that permit you (or the system
180 administrator) to manage backup, recovery, and verification of
181 computer data across a network of computers of different kinds. In
182 technical terms, it is a network client/server based backup program.
183 Bacula is relatively easy to use and efficient, while offering many
184 advanced storage management features that make it easy to find and
185 recover lost or damaged files.
187 %description common -l pl.UTF-8
188 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
190 Bacula to zbiór programów umożliwiających administratorowi na
191 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
192 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
193 program do kopii zapasowych pracujący w architekturze klient-serwer.
194 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
195 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
196 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
200 Summary: Bacula Director and Catalog services
201 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
202 Group: Networking/Utilities
203 Requires(post): sed >= 4.0
204 Requires: %{name}-common = %{epoch}:%{version}-%{release}
205 Obsoletes: bacula-updatedb
208 Bacula - It comes by night and sucks the vital essence from your
211 Bacula Director is the program that supervises all the backup,
212 restore, verify and archive operations. The system administrator uses
213 the Bacula Director to schedule backups and to recover files. Catalog
214 services are comprised of the software programs responsible for
215 maintaining the file indexes and volume databases for all files backed
216 up. The Catalog services permit the System Administrator or user to
217 quickly locate and restore any desired file, since it maintains a
218 record of all Volumes used, all Jobs run, and all Files saved.
220 %description dir -l pl.UTF-8
221 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
223 Bacula Director to program nadzorujący wszystkie operacje wykonywania
224 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
225 Administrator używa Bacula Directora do szeregowania kopii zapasowych
226 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
227 używane przez programy odpowiedzialne za zarządzanie indeksami plików
228 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
229 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
230 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
231 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
235 Summary: Bacula Console
236 Summary(pl.UTF-8): Konsola Baculi
237 Group: Networking/Utilities
238 Requires(post): sed >= 4.0
239 Requires: %{name}-common = %{epoch}:%{version}-%{release}
242 Bacula - It comes by night and sucks the vital essence from your
245 Bacula Console is the program that allows the administrator or user to
246 communicate with the Bacula Director. This is the text only console
249 %description console -l pl.UTF-8
250 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
252 Bacula Console to program umożliwiający administratorowi lub
253 użytkownikowi komunikowanie się z programem Bacula Director. To jest
254 interfejs czysto tekstowy.
257 Summary: Bacula wxWidgets Console
258 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
259 Group: Networking/Utilities
260 Requires(post): sed >= 4.0
261 Requires: %{name}-common = %{epoch}:%{version}-%{release}
263 %description console-wx
264 Bacula - It comes by night and sucks the vital essence from your
267 Bacula Console is the program that allows the administrator or user to
268 communicate with the Bacula Director. This is the wxWidgets GUI
271 %description console-wx -l pl.UTF-8
272 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
274 Bacula Console to program umożliwiający administratorowi lub
275 użytkownikowi komunikowanie się z programem Bacula Director. To jest
276 interfejs graficzny oparty na wxWidgets.
278 %package console-gnome
279 Summary: Bacula GNOME Console
280 Summary(pl.UTF-8): Konsola Baculi oparta dla GNOME
281 Group: Networking/Utilities
282 Requires(post): sed >= 4.0
283 Requires: %{name}-common = %{epoch}:%{version}-%{release}
285 %description console-gnome
286 Bacula - It comes by night and sucks the vital essence from your
289 Bacula Console is the program that allows the administrator or user to
290 communicate with the Bacula Director. This is the GNOME GUI interface.
292 %description console-gnome -l pl.UTF-8
293 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
295 Bacula Console to program umożliwiający administratorowi lub
296 użytkownikowi komunikowanie się z programem Bacula Director. To jest
297 interfejs graficzny oparty na GNOME.
300 Summary: Bacula Qt4 Console
301 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
302 Group: Networking/Utilities
303 Requires(post): sed >= 4.0
304 Requires: %{name}-common = %{epoch}:%{version}-%{release}
306 %description console-qt4
307 Bacula - It comes by night and sucks the vital essence from your
310 Bacula Console is the program that allows the administrator or user to
311 communicate with the Bacula Director. This is the Qt4 GUI interface.
313 %description console-qt4 -l pl.UTF-8
314 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
316 Bacula Console to program umożliwiający administratorowi lub
317 użytkownikowi komunikowanie się z programem Bacula Director. To jest
318 interfejs graficzny oparty na Qt4.
320 %package tray-monitor
321 Summary: Bacula Tray Monitor
322 Group: Networking/Utilities
323 Requires(post): sed >= 4.0
324 Requires: %{name}-common = %{epoch}:%{version}-%{release}
326 %description tray-monitor
327 Bacula - It comes by night and sucks the vital essence from your
330 The Monitor program is typically an icon in the system tray. However,
331 once the icon is expanded into a full window, the administrator or
332 user can obtain status information about the Director or the backup
333 status on the local workstation or any other Bacula daemon that is
337 Summary: Bacula File services (Client)
338 Summary(pl.UTF-8): Usługi Bacula File (klient)
339 Group: Networking/Utilities
340 Requires(post): sed >= 4.0
341 Requires: %{name}-common = %{epoch}:%{version}-%{release}
344 Bacula - It comes by night and sucks the vital essence from your
347 Bacula File services (or Client program) is the software program that
348 is installed on the machine to be backed up. It is specific to the
349 operating system on which it runs and is responsible for providing the
350 file attributes and data when requested by the Director. The File
351 services are also responsible for the file system dependent part of
352 restoring the file attributes and data during a recovery operation.
353 This program runs as a daemon on the machine to be backed up, and in
354 some of the documentation, the File daemon is referred to as the
355 Client (for example in Bacula configuration file).
357 %description fd -l pl.UTF-8
358 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
360 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
361 instaluje się na maszynach, z których mają być wykonywane kopie
362 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
363 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
364 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
365 zależną od systemu plików część odzyskiwania atrybutów i danych plików
366 podczas operacji odzyskiwania danych. Program działa jako demon na
367 maszynie, która ma być backupowana i w części dokumentacji demon ten
368 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
372 Summary: Bacula Storage services
373 Summary(pl.UTF-8): Usługi Bacula Storage
374 Group: Networking/Utilities
375 Requires(post): sed >= 4.0
376 Requires: %{name}-common = %{epoch}:%{version}-%{release}
377 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
380 Bacula - It comes by night and sucks the vital essence from your
383 Bacula Storage services consist of the software programs that perform
384 the storage and recovery of the file attributes and data to the
385 physical backup media or volumes. In other words, the Storage daemon
386 is responsible for reading and writing your tapes (or other storage
387 media, e.g. files). The Storage services runs as a daemon on the
388 machine that has the backup device (usually a tape drive).
390 %description sd -l pl.UTF-8
391 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
393 Usługi Bacula Storage składają się z programów obsługujących
394 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
395 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
396 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
397 przechowywania danych, np. plików). Usługi Storage działają jako demon
398 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
402 Summary: Bacula - The Network Backup Solution
403 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
404 Group: Networking/Utilities
405 Requires: %{name}-fd = %{epoch}:%{version}-%{release}
410 Bacula - It comes by night and sucks the vital essence from your
413 Bacula is a set of computer programs that permit you (or the system
414 administrator) to manage backup, recovery, and verification of
415 computer data across a network of computers of different kinds. In
416 technical terms, it is a network client/server based backup program.
417 Bacula is relatively easy to use and efficient, while offering many
418 advanced storage management features that make it easy to find and
419 recover lost or damaged files.
421 This package installs scripts for disaster recovery and builds rescue
422 floppy disk for bare metal recovery.
424 To make the bacula rescue disk run "./make_rescue_disk
426 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
427 recreate the rescue information for this system run ./getdiskinfo
430 %description rescue -l pl.UTF-8
431 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
433 Bacula to zbiór programów umożliwiających administratorowi na
434 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
435 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
436 program do kopii zapasowych pracujący w architekturze klient-serwer.
437 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
438 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
439 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
442 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
443 ratunkowe do odtwarzania systemu od zera.
445 Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić "./make_rescue_disk
446 --copy-static-bacula - --copy-etc-files" z katalogu
447 %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe dla
448 danego systemu, należy ponownie uruchomić ./getdiskinfo .
459 %{?with_dbi:%patch7 -p1}
461 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
463 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
464 src/cats/create_* src/cats/delete_* src/cats/drop_* \
465 src/cats/grant_* src/cats/make_* src/cats/update_*
466 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
468 for dbtype in bdb mysql postgresql sqlite3 sqlite; do
469 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
473 cp -f %{_datadir}/automake/config.sub autoconf
474 cd autoconf && %{__aclocal} -I bacula-macros -I gettext-macros && cd ..
475 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
477 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
478 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
480 --with-scriptdir=%{_libexecdir}/%{name} \
481 --%{!?with_gnome:dis}%{?with_gnome:en}able-gnome \
482 %{?with_bat:--enable-bat} \
484 --enable-smartalloc \
485 %{?with_console_wx:--enable-bwx-console} \
486 --enable-tray-monitor \
487 %{?with_python:--with-python} \
489 --with-tcp-wrappers \
490 --with-working-dir=%{_var}/lib/%{name} \
491 --with-dump-email="root@localhost" \
492 --with-job-email="root@localhost" \
493 --with-smtp-host=localhost \
494 --with-pid-dir=/var/run \
495 --with-subsys-dir=/var/lock/subsys \
496 --enable-batch-insert \
498 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
499 --with-dir-password="#FAKE-dir-password#" \
500 --with-fd-password="#FAKE-fd-password#" \
501 --with-sd-password="#FAKE-sd-password#" \
502 --with-mon-dir-password="#FAKE-mon-dir-password#" \
503 --with-mon-fd-password="#FAKE-mon-fd-password#" \
504 --with-mon-sd-password="#FAKE-mon-sd-password#" \
524 rm -rf $RPM_BUILD_ROOT
526 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
527 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
528 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
531 DESTDIR=$RPM_BUILD_ROOT
534 #strip -R.comment -R.note src/filed/static-bacula-fd
535 #install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
537 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
538 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
539 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
540 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
541 install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
542 install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
543 install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
545 %if %{with console_wx}
546 # tray-monitor is for regular users
547 mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
549 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
550 install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
551 install scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT%{_desktopdir}/bacula.desktop
552 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
553 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
554 sed -e 's#%{_sbindir}#%{_bindir}#' \
555 scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
559 install src/qt-console/bat $RPM_BUILD_ROOT%{_sbindir}
560 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
564 # install the rescue stuff, these are the rescue scripts
565 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
566 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
567 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
568 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
571 touch $RPM_BUILD_ROOT/var/log/bacula/log
573 # install the updatedb scripts
574 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
576 # place for site passwords
577 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
578 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
580 install scripts/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/
583 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
584 rm -f $RPM_BUILD_ROOT%{_sbindir}/static-bacula-fd
585 %if !%{with console_wx}
586 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
588 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
591 rm -rf $RPM_BUILD_ROOT
594 %groupadd -P %{name}-common -g 136 -r -f bacula
595 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
599 echo "Updating bacula passwords and names..."
601 for f in *-password ; do
602 if [ ! -s $f ] ; then
603 openssl rand -base64 33 > $f
606 for cf in *.conf *.conf.rpmnew ; do
607 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
610 for cf in *.conf *.conf.rpmnew ; do
611 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
616 if [ "$1" = "0" ]; then
624 # XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
625 # about currently used version so we can't easily support these :(
627 %if %{with sqlite} || %{with sqlite3}
628 [ -s %{_localstatedir}/bacula.db ] && \
629 DB_VER=`echo "select * from Version;" | \
630 %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
632 if [ -z "$DB_VER" ]; then
633 # grant privileges and create tables
634 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
635 %{_libexecdir}/%{name}/create_bacula_database > dev/null
636 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
638 echo "Backing up bacula tables"
639 echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
641 db_type="%{database}"
643 next_ver=$(($DB_VER + 1))
644 # support up to version 30; increase this if needed
645 for ver in $(seq $next_ver 30); do
646 prev_ver=$(($ver - 1))
648 if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
649 echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
650 %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
654 %{_libexecdir}/%{name}/update_bacula_tables
655 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
657 chown -R bacula:bacula %{_localstatedir}
658 chmod -R u+rX,go-rwx %{_localstatedir}/*
661 echo "Updating Bacula passwords and names..."
663 for f in *-password; do
665 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
667 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
669 /sbin/chkconfig --add bacula-dir
670 %service bacula-dir restart "Bacula Director daemon"
673 if [ "$1" = "0" ]; then
674 %service bacula-dir stop
675 /sbin/chkconfig --del bacula-dir
679 echo "Updating Bacula passwords and names..."
681 for f in *-password; do
683 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
685 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
687 /sbin/chkconfig --add bacula-fd
688 %service bacula-fd restart "Bacula File daemon"
691 if [ "$1" = "0" ]; then
692 %service bacula-fd stop
693 /sbin/chkconfig --del bacula-fd
697 echo "Updating Bacula passwords and names..."
699 for f in *-password; do
701 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
703 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
705 /sbin/chkconfig --add bacula-sd
706 %service bacula-sd restart "Bacula Storage daemon"
709 if [ "$1" = "0" ]; then
710 %service bacula-sd stop
711 /sbin/chkconfig --del bacula-sd
715 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
716 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
720 echo "Updating Bacula passwords and names..."
722 for f in *-password; do
724 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
726 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
729 echo "Updating Bacula passwords and names..."
731 for f in *-password; do
733 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
735 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
738 echo "Updating Bacula passwords and names..."
740 for f in *-password; do
742 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
744 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
747 echo "Updating Bacula passwords and names..."
749 for f in *-password; do
751 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
753 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
756 echo "Updating Bacula passwords and names..."
758 for f in *-password; do
760 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
762 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
765 # link our current installed conf file to the rescue directory
766 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
769 echo "Creating rescue files for this system..."
770 cd %{_sysconfdir}/rescue
774 # remove the files created after the initial rpm installation
775 if [ "$1" = "0" ]; then
776 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
777 rm -f %{_sysconfdir}/rescue/partition.*
778 rm -f %{_sysconfdir}/rescue/format.*
779 rm -f %{_sysconfdir}/rescue/mount_drives
780 rm -f %{_sysconfdir}/rescue/start_network
781 rm -f %{_sysconfdir}/rescue/sfdisk
782 rm -rf %{_sysconfdir}/rescue/diskinfo/*
786 %defattr(644,root,root,755)
789 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
790 %attr(755,root,root) %{_sbindir}/bsmtp
791 %attr(755,root,root) %{_sbindir}/btraceback
792 %attr(755,root,root) /%{_libdir}/libbac.so.1.*.*
793 %attr(755,root,root) %ghost /%{_libdir}/libbac.so.1
794 %attr(755,root,root) /%{_libdir}/libbaccfg.so.1.*.*
795 %attr(755,root,root) %ghost /%{_libdir}/libbaccfg.so.1
796 %attr(755,root,root) /%{_libdir}/libbacfind.so.1.*.*
797 %attr(755,root,root) %ghost /%{_libdir}/libbacfind.so.1
798 %attr(755,root,root) /%{_libdir}/libbacpy.so.1.*.*
799 %attr(755,root,root) %ghost /%{_libdir}/libbacpy.so.1
800 %attr(755,root,root) /%{_libdir}/libbacsql.so.1.*.*
801 %attr(755,root,root) %ghost /%{_libdir}/libbacsql.so.1
802 %{_mandir}/man8/bacula.8*
803 %{_mandir}/man1/bsmtp.1*
804 %{_mandir}/man8/btraceback.8*
805 %dir %{_libexecdir}/%{name}
806 %{_libexecdir}/%{name}/btraceback.dbx
807 %{_libexecdir}/%{name}/btraceback.gdb
808 %attr(770,root,bacula) %dir %{_localstatedir}
809 %attr(750,bacula,logs) %dir /var/log/bacula
810 %attr(640,bacula,logs) %ghost /var/log/bacula/log
813 %defattr(644,root,root,755)
814 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
815 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
816 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
817 %ghost %{_sysconfdir}/.pw.sed
818 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
819 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
820 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
821 %attr(755,root,root) %{_sbindir}/bacula-dir
822 %attr(755,root,root) %{_sbindir}/bregex
823 %attr(755,root,root) %{_sbindir}/bwild
824 %attr(755,root,root) %{_sbindir}/dbcheck
825 %{_mandir}/man8/bacula-dir.8*
826 %{_mandir}/man8/dbcheck.8*
827 %{_libexecdir}/%{name}/query.sql
828 %if %{with bdb} || %{with dbi}
829 %attr(755,root,root) %{_libexecdir}/%{name}/create_bdb_database
830 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_database
831 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_tables
832 %attr(755,root,root) %{_libexecdir}/%{name}/grant_bdb_privileges
833 %attr(755,root,root) %{_libexecdir}/%{name}/make_bdb_tables
834 %attr(755,root,root) %{_libexecdir}/%{name}/update_bdb_*
836 %if %{with sqlite3} || %{with dbi}
837 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
838 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
839 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
840 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
841 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
842 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
844 %if %{with sqlite} || %{with dbi}
845 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite_database
846 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_database
847 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_tables
848 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite_privileges
849 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite_tables
850 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
852 %if %{with mysql} || %{with dbi}
853 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
854 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
855 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
856 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
857 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
858 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
860 %if %{with pgsql} || %{with dbi}
861 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
862 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
863 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
864 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
865 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
866 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
867 %attr(755,root,root) %{_libexecdir}/%{name}/fix_postgresql_*
870 %attr(755,root,root) %{_libexecdir}/%{name}/create_bacula_database
871 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_database
872 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_tables
873 %attr(755,root,root) %{_libexecdir}/%{name}/grant_bacula_privileges
874 %attr(755,root,root) %{_libexecdir}/%{name}/make_bacula_tables
875 %attr(755,root,root) %{_libexecdir}/%{name}/update_bacula_tables
877 %attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
878 %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
881 %defattr(644,root,root,755)
883 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
884 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
885 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
886 %attr(755,root,root) %{_sbindir}/bacula-fd
887 %{_mandir}/man8/bacula-fd.8*
890 %defattr(644,root,root,755)
892 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
893 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
894 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
895 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
896 %attr(755,root,root) %{_sbindir}/bacula-sd
897 %attr(755,root,root) %{_sbindir}/bcopy
898 %attr(755,root,root) %{_sbindir}/bextract
899 %attr(755,root,root) %{_sbindir}/bls
900 %attr(755,root,root) %{_sbindir}/bscan
901 %attr(755,root,root) %{_sbindir}/btape
902 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
903 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
904 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
905 %{_mandir}/man8/bacula-sd.8*
906 %{_mandir}/man8/bcopy.8*
907 %{_mandir}/man8/bextract.8*
908 %{_mandir}/man8/bls.8*
909 %{_mandir}/man8/bscan.8*
910 %{_mandir}/man8/btape.8*
913 %defattr(644,root,root,755)
915 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
916 %attr(755,root,root) %{_sbindir}/bconsole
917 %{_mandir}/man8/bconsole.8*
919 %if %{with console_wx}
921 %defattr(644,root,root,755)
923 %{_pixmapsdir}/%{name}.png
924 %{_desktopdir}/bacula-wx.desktop
925 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
926 %attr(755,root,root) %{_sbindir}/bwx-console
927 %{_mandir}/man1/bacula-bwxconsole.1*
932 %defattr(644,root,root,755)
934 %{_pixmapsdir}/%{name}.png
935 %{_desktopdir}/bacula.desktop
936 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bgnome-console.conf
937 %attr(755,root,root) %{_sbindir}/bgnome-console
938 %{_mandir}/man1/bacula-bgnome-console.1*
943 %defattr(644,root,root,755)
945 %{_pixmapsdir}/%{name}.png
946 %{_desktopdir}/bat.desktop
947 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
948 %attr(755,root,root) %{_sbindir}/bat
949 %{_mandir}/man1/bat.1*
952 %if %{with console_wx}
954 %defattr(644,root,root,755)
956 %{_pixmapsdir}/%{name}-tray-monitor.xpm
957 %{_desktopdir}/%{name}-tray-monitor.desktop
958 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
959 %attr(755,root,root) %{_bindir}/bacula-tray-monitor
960 %{_mandir}/man1/bacula-tray-monitor.1*
965 %defattr(644,root,root,755)
967 %dir %{_sysconfdir}/rescue
968 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
969 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
970 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
971 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
972 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
973 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
974 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
975 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
976 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
977 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2