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 bat # bat Qt4 GUI
9 %bcond_without dbi # use Database Independent Abstraction Layer (libdbi)
10 %bcond_without mysql # use MySQL
11 %bcond_without pgsql # use PostgreSQL
14 %bcond_without sqlite3 # use SQLite3
15 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
17 %if %{without sqlite3}
18 %undefine with_sqlite3_sync_off
21 Summary: Bacula - The Network Backup Solution
22 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
27 License: extended GPL v2
28 Group: Networking/Utilities
29 Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
30 # Source0-md5: beb9f8da196b3c9ffb0356f087dbdb99
31 Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
32 # Source1-md5: ce2ef0dca50ab916fd6701b53b7bb4df
33 Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
34 # Source2-md5: 349623581cfe0bcd798dd137abac959a
35 Source10: %{name}-dir.init
36 Source11: %{name}-fd.init
37 Source12: %{name}-sd.init
38 Source13: %{name}.logrotate
39 Source14: %{name}-dir.sysconfig
40 Source15: %{name}-fd.sysconfig
41 Source16: %{name}-sd.sysconfig
42 Patch0: %{name}-mtx-changer.patch
43 Patch1: %{name}-link.patch
44 Patch2: %{name}-tinfo-readline.patch
45 Patch3: %{name}-branding.patch
46 Patch4: %{name}-conf.patch
47 Patch5: %{name}-desktop.patch
48 Patch6: %{name}-64bitbuild_fix.patch
49 Patch7: %{name}-dbi_fixes.patch
50 Patch8: %{name}-dbi_dbcheck.patch
51 Patch9: %{name}-config_no_clean.patch
52 URL: http://www.bacula.org/
53 BuildRequires: acl-devel
54 BuildRequires: autoconf
55 BuildRequires: automake
56 BuildRequires: gettext-devel
57 BuildRequires: libcap-devel
58 %{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4}
59 BuildRequires: libtool
61 BuildRequires: fakeroot
63 BuildRequires: libwrap-devel
65 BuildRequires: ncurses-devel
66 BuildRequires: openssl-devel
67 BuildRequires: pkgconfig
69 BuildRequires: python-static
72 BuildRequires: QtCore-devel
73 BuildRequires: QtGui-devel
74 BuildRequires: qt4-build >= 4.3.3-3
75 BuildRequires: qt4-qmake >= 4.3.3-3
76 BuildRequires: qwt-devel >= 5.0.2-2
78 %{?with_mysql:BuildRequires: mysql-devel}
79 %{?with_pgsql:BuildRequires: postgresql-devel}
80 BuildRequires: readline-devel
81 BuildRequires: rpmbuild(macros) >= 1.268
82 BuildRequires: sed >= 4.0
83 %{?with_sqlite3:BuildRequires: sqlite3-devel}
84 %if %{with console_wx}
85 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
87 BuildRequires: zlib-devel
88 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
90 %define _sysconfdir /etc/%{name}
91 %define _localstatedir /var/lib/%{name}
93 %define databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi}
95 # dependency section is broken. ccache usage is instead to makefiles
99 Bacula - It comes by night and sucks the vital essence from your
102 Bacula is a set of computer programs that permit you (or the system
103 administrator) to manage backup, recovery, and verification of
104 computer data across a network of computers of different kinds. In
105 technical terms, it is a network client/server based backup program.
106 Bacula is relatively easy to use and efficient, while offering many
107 advanced storage management features that make it easy to find and
108 recover lost or damaged files.
110 %description -l pl.UTF-8
111 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
113 Bacula to zbiór programów umożliwiających administratorowi na
114 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
115 sieci komputerów różnego rodzaju. W terminologii technicznej jest
116 to program do kopii zapasowych pracujący w architekturze
117 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
118 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
119 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
123 Summary: Common files for bacula package
124 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
125 Group: Networking/Utilities
126 Requires(post): openssl-tools
127 Requires(post): sed >= 4.0
128 Requires(post,preun): /sbin/chkconfig
129 Requires(postun): /usr/sbin/groupdel
130 Requires(postun): /usr/sbin/userdel
131 Requires(pre): /usr/sbin/groupadd
132 Requires(pre): /usr/sbin/useradd
133 Conflicts: bacula-console < 0:1.34.6
134 Conflicts: bacula-dir < 0:1.34.6
135 Conflicts: bacula-fd < 0:1.34.6
136 Conflicts: bacula-sd < 0:1.34.6
139 Bacula - It comes by night and sucks the vital essence from your
142 Bacula is a set of computer programs that permit you (or the system
143 administrator) to manage backup, recovery, and verification of
144 computer data across a network of computers of different kinds. In
145 technical terms, it is a network client/server based backup program.
146 Bacula is relatively easy to use and efficient, while offering many
147 advanced storage management features that make it easy to find and
148 recover lost or damaged files.
150 %description common -l pl.UTF-8
151 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
153 Bacula to zbiór programów umożliwiających administratorowi na
154 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
155 sieci komputerów różnego rodzaju. W terminologii technicznej jest
156 to program do kopii zapasowych pracujący w architekturze
157 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
158 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
159 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
163 Summary: Bacula Director and Catalog services
164 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
165 Group: Networking/Utilities
166 Requires(post): sed >= 4.0
167 Requires: %{name}-common = %{epoch}:%{version}-%{release}
168 Requires: bacula(db) = %{epoch}:%{version}-%{release}
169 Obsoletes: bacula-updatedb
172 Bacula - It comes by night and sucks the vital essence from your
175 Bacula Director is the program that supervises all the backup,
176 restore, verify and archive operations. The system administrator uses
177 the Bacula Director to schedule backups and to recover files. Catalog
178 services are comprised of the software programs responsible for
179 maintaining the file indexes and volume databases for all files backed
180 up. The Catalog services permit the System Administrator or user to
181 quickly locate and restore any desired file, since it maintains a
182 record of all Volumes used, all Jobs run, and all Files saved.
184 %description dir -l pl.UTF-8
185 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
187 Bacula Director to program nadzorujący wszystkie operacje wykonywania
188 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
189 Administrator używa Bacula Directora do szeregowania kopii zapasowych
190 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
191 używane przez programy odpowiedzialne za zarządzanie indeksami
192 plików i bazą danych wolumenów dla wszystkich kopiowanych plików.
193 Usługi katalogowe umożliwiają administratorowi lub użytkownikowi
194 szybko zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują
195 rekord ze wszystkimi używanymi wolumenami, uruchomionymi zadaniami i
199 Summary: Bacula Console
200 Summary(pl.UTF-8): Konsola Baculi
201 Group: Networking/Utilities
202 Requires(post): sed >= 4.0
203 Requires: %{name}-common = %{epoch}:%{version}-%{release}
206 Bacula - It comes by night and sucks the vital essence from your
209 Bacula Console is the program that allows the administrator or user to
210 communicate with the Bacula Director. This is the text only console
213 %description console -l pl.UTF-8
214 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
216 Bacula Console to program umożliwiający administratorowi lub
217 użytkownikowi komunikowanie się z programem Bacula Director. To jest
218 interfejs czysto tekstowy.
221 Summary: Bacula wxWidgets Console
222 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
223 Group: Networking/Utilities
224 Requires(post): sed >= 4.0
225 Requires: %{name}-common = %{epoch}:%{version}-%{release}
227 %description console-wx
228 Bacula - It comes by night and sucks the vital essence from your
231 Bacula Console is the program that allows the administrator or user to
232 communicate with the Bacula Director. This is the wxWidgets GUI
235 %description console-wx -l pl.UTF-8
236 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
238 Bacula Console to program umożliwiający administratorowi lub
239 użytkownikowi komunikowanie się z programem Bacula Director. To jest
240 interfejs graficzny oparty na wxWidgets.
243 Summary: Bacula Qt4 Console
244 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
245 Group: Networking/Utilities
246 Requires(post): sed >= 4.0
247 Requires: %{name}-common = %{epoch}:%{version}-%{release}
249 %description console-qt4
250 Bacula - It comes by night and sucks the vital essence from your
253 Bacula Console is the program that allows the administrator or user to
254 communicate with the Bacula Director. This is the Qt4 GUI interface.
256 %description console-qt4 -l pl.UTF-8
257 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
259 Bacula Console to program umożliwiający administratorowi lub
260 użytkownikowi komunikowanie się z programem Bacula Director. To jest
261 interfejs graficzny oparty na Qt4.
263 %package tray-monitor
264 Summary: Bacula Tray Monitor
265 Group: Networking/Utilities
266 Requires(post): sed >= 4.0
267 Requires: %{name}-common = %{epoch}:%{version}-%{release}
269 %description tray-monitor
270 Bacula - It comes by night and sucks the vital essence from your
273 The Monitor program is typically an icon in the system tray. However,
274 once the icon is expanded into a full window, the administrator or
275 user can obtain status information about the Director or the backup
276 status on the local workstation or any other Bacula daemon that is
280 Summary: Bacula File services (Client)
281 Summary(pl.UTF-8): Usługi Bacula File (klient)
282 Group: Networking/Utilities
283 Requires(post): sed >= 4.0
284 Requires: %{name}-common = %{epoch}:%{version}-%{release}
287 Bacula - It comes by night and sucks the vital essence from your
290 Bacula File services (or Client program) is the software program that
291 is installed on the machine to be backed up. It is specific to the
292 operating system on which it runs and is responsible for providing the
293 file attributes and data when requested by the Director. The File
294 services are also responsible for the file system dependent part of
295 restoring the file attributes and data during a recovery operation.
296 This program runs as a daemon on the machine to be backed up, and in
297 some of the documentation, the File daemon is referred to as the
298 Client (for example in Bacula configuration file).
300 %description fd -l pl.UTF-8
301 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
303 Usługi Bacula File (inaczej program kliencki) to oprogramowanie,
304 które instaluje się na maszynach, z których mają być wykonywane
305 kopie zapasowe. Są one specyficzne dla systemu operacyjnego, pod
306 którym działa dana maszyna i odpowiadają za dostarczanie atrybutów
307 i danych plików na żądanie Directora. Usługi plikowe są także
308 odpowiedzialne za zależną od systemu plików część odzyskiwania
309 atrybutów i danych plików podczas operacji odzyskiwania danych.
310 Program działa jako demon na maszynie, która ma być backupowana i w
311 części dokumentacji demon ten (File) jest nazywany klientem (na
312 przykład w pliku konfiguracyjnym Baculi).
315 Summary: Bacula Storage services
316 Summary(pl.UTF-8): Usługi Bacula Storage
317 Group: Networking/Utilities
318 Requires(post): sed >= 4.0
319 Requires: %{name}-common = %{epoch}:%{version}-%{release}
320 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
323 Bacula - It comes by night and sucks the vital essence from your
326 Bacula Storage services consist of the software programs that perform
327 the storage and recovery of the file attributes and data to the
328 physical backup media or volumes. In other words, the Storage daemon
329 is responsible for reading and writing your tapes (or other storage
330 media, e.g. files). The Storage services runs as a daemon on the
331 machine that has the backup device (usually a tape drive).
333 %description sd -l pl.UTF-8
334 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
336 Usługi Bacula Storage składają się z programów obsługujących
337 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
338 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage
339 jest odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
340 przechowywania danych, np. plików). Usługi Storage działają jako
341 demon na maszynie, która zawiera urządzenie backupowe (zwykle napęd
344 %package db-postgresql
345 Summary: PostgreSQL database driver for Bacula
346 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
347 Group: Networking/Utilities
348 Requires(post): /sbin/ldconfig
349 Requires: %{name}-common = %{epoch}:%{version}-%{release}
350 Provides: bacula(db) = %{epoch}:%{version}-%{release}
351 Obsoletes: bacula-db-dbi
352 Obsoletes: bacula-db-mysql
353 Obsoletes: bacula-db-sqlite3
355 %description db-postgresql
356 PostgreSQL database driver for Bacula.
358 %description db-postgresql -l pl.UTF-8
359 Sterownik bazy PostgreSQL dla Baculi.
362 Summary: MySQL database driver for Bacula
363 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
364 Group: Networking/Utilities
365 Requires(post): /sbin/ldconfig
366 Requires: %{name}-common = %{epoch}:%{version}-%{release}
367 Provides: bacula(db) = %{epoch}:%{version}-%{release}
368 Obsoletes: bacula-db-dbi
369 Obsoletes: bacula-db-postgresql
370 Obsoletes: bacula-db-sqlite3
372 %description db-mysql
373 MySQL database driver for Bacula.
375 %description db-mysql -l pl.UTF-8
376 Sterownik bazy MySQL dla Baculi.
379 Summary: SQLite database driver for Bacula
380 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
381 Group: Networking/Utilities
382 Requires(post): /sbin/ldconfig
383 Requires: %{name}-common = %{epoch}:%{version}-%{release}
384 Provides: bacula(db) = %{epoch}:%{version}-%{release}
385 Obsoletes: bacula-db-dbi
386 Obsoletes: bacula-db-mysql
387 Obsoletes: bacula-db-postgresql
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: libdbi database driver for Bacula
397 Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi
398 Group: Networking/Utilities
399 Requires(post): /sbin/ldconfig
400 Requires: %{name}-common = %{epoch}:%{version}-%{release}
401 Provides: bacula(db) = %{epoch}:%{version}-%{release}
402 Obsoletes: bacula-db-mysql
403 Obsoletes: bacula-db-postgresql
404 Obsoletes: bacula-db-sqlite3
407 libdbi database driver for Bacula.
409 %description db-dbi -l pl.UTF-8
410 Sterownik baz libdbi dla Baculi.
413 Summary: Bacula - The Network Backup Solution
414 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
415 Group: Networking/Utilities
416 Requires: %{name}-fd = %{epoch}:%{version}-%{release}
421 Bacula - It comes by night and sucks the vital essence from your
424 Bacula is a set of computer programs that permit you (or the system
425 administrator) to manage backup, recovery, and verification of
426 computer data across a network of computers of different kinds. In
427 technical terms, it is a network client/server based backup program.
428 Bacula is relatively easy to use and efficient, while offering many
429 advanced storage management features that make it easy to find and
430 recover lost or damaged files.
432 This package installs scripts for disaster recovery and builds rescue
433 floppy disk for bare metal recovery.
435 To make the bacula rescue disk run "./make_rescue_disk
436 - --copy-static-bacula
437 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
438 recreate the rescue information for this system run ./getdiskinfo
441 %description rescue -l pl.UTF-8
442 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
444 Bacula to zbiór programów umożliwiających administratorowi na
445 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
446 sieci komputerów różnego rodzaju. W terminologii technicznej jest
447 to program do kopii zapasowych pracujący w architekturze
448 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
449 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
450 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
453 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy
454 dyskietkę ratunkowe do odtwarzania systemu od zera.
456 Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić
458 - --copy-static-bacula - --copy-etc-files" z katalogu
459 %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe
460 dla danego systemu, należy ponownie uruchomić ./getdiskinfo .
475 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
477 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
478 src/cats/create_* src/cats/delete_* src/cats/drop_* \
479 src/cats/grant_* src/cats/make_* src/cats/update_*
480 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
483 for dbtype in mysql postgresql sqlite3; do
484 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
490 %{__aclocal} -I bacula-macros -I gettext-macros
491 # $BUILD_DIR not seen by libtoolize, export it
492 BUILD_DIR=.. %{__libtoolize}
494 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
496 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
498 # we wan't the 'base' build built with the first database in the list,
499 # to make sure it is full-featured
502 for database in %{databases} ; do
503 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
505 --with-scriptdir=%{_libexecdir}/%{name} \
506 %{?with_bat:--enable-bat} \
508 --enable-smartalloc \
509 %{?with_console_wx:--enable-bwx-console} \
510 --enable-tray-monitor \
511 %{?with_python:--with-python} \
513 --with-tcp-wrappers \
514 --with-working-dir=%{_var}/lib/%{name} \
515 --with-dump-email="root@localhost" \
516 --with-job-email="root@localhost" \
517 --with-smtp-host=localhost \
518 --with-pid-dir=/var/run \
519 --with-subsys-dir=/var/lock/subsys \
520 --enable-batch-insert \
522 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
523 --with-dir-password="#FAKE-dir-password#" \
524 --with-fd-password="#FAKE-fd-password#" \
525 --with-sd-password="#FAKE-sd-password#" \
526 --with-mon-dir-password="#FAKE-mon-dir-password#" \
527 --with-mon-fd-password="#FAKE-mon-fd-password#" \
528 --with-mon-sd-password="#FAKE-mon-sd-password#" \
531 if [ "$base_built" = "no" ] ; then
542 %{__make} -C src/cats clean
543 %{__make} -C src/cats
546 # install the database library in a temporary location
547 install -d libbacsql/$database%{_libdir}
548 %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
560 rm -rf $RPM_BUILD_ROOT
562 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
563 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
564 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
567 DESTDIR=$RPM_BUILD_ROOT
569 # install libraries for all the database backends
570 # ldconfig will add the soname symlinks when one of the packages is installed
571 for database in %{databases} ; do
572 for libfile in libbacsql/$database%{_libdir}/lib*-*.so ; do
573 orig_name=`basename $libfile`
574 file_prefix="${orig_name%%-*.so}"
575 file_suffix="${orig_name#*-}"
576 file_name="$file_prefix-$database-$file_suffix"
577 install "$libfile" "$RPM_BUILD_ROOT/%{_libdir}/$file_name"
578 ln -sf "$file_name" "$RPM_BUILD_ROOT/%{_libdir}/$orig_name"
582 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
583 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
584 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
585 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
586 install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
587 install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
588 install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
590 %if %{with console_wx}
591 # tray-monitor is for regular users
592 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
594 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
595 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
596 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
597 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
598 #sed -e 's#%{_sbindir}#%{_bindir}#' \
599 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
603 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
604 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
608 # install the rescue stuff, these are the rescue scripts
609 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
610 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
611 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
612 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
615 touch $RPM_BUILD_ROOT/var/log/bacula/log
617 # install the updatedb scripts
618 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
620 # place for site passwords
621 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
622 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
624 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
627 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
628 %if %{without console_wx}
629 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
631 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
633 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
634 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
635 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
636 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
637 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
638 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
639 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
641 # startup scripts, those in /etc/rc.d/init.d are better
642 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
643 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
646 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
648 # rename to avoid possible conflicts
649 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
650 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
652 # no -devel files packaged, so this is also useless
653 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
655 # placeholders for the symlinks set in %%post db-*
656 for f in create_bacula_database drop_bacula_database drop_bacula_tables \
657 grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
659 ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
664 rm -rf $RPM_BUILD_ROOT
667 %groupadd -P %{name}-common -g 136 -r -f bacula
668 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
672 echo "Updating bacula passwords and names..."
674 for f in *-password ; do
675 if [ ! -s $f ] ; then
676 openssl rand -base64 33 > $f
679 for cf in *.conf *.conf.rpmnew ; do
680 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
683 for cf in *.conf *.conf.rpmnew ; do
684 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
689 if [ "$1" = "0" ]; then
697 # XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
698 # about currently used version so we can't easily support these :(
701 [ -s %{_localstatedir}/bacula.db ] && \
702 DB_VER=`echo "select * from Version;" | \
703 %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
705 if [ -z "$DB_VER" ]; then
706 # grant privileges and create tables
707 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
708 %{_libexecdir}/%{name}/create_bacula_database > dev/null
709 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
711 echo "Backing up bacula tables"
712 echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
714 db_type="%{database}"
716 next_ver=$(($DB_VER + 1))
717 # support up to version 30; increase this if needed
718 for ver in $(seq $next_ver 30); do
719 prev_ver=$(($ver - 1))
721 if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
722 echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
723 %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
727 %{_libexecdir}/%{name}/update_bacula_tables
728 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
730 chown -R bacula:bacula %{_localstatedir}
731 chmod -R u+rX,go-rwx %{_localstatedir}/*
734 echo "Updating Bacula passwords and names..."
736 for f in *-password; do
738 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
740 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
742 /sbin/chkconfig --add bacula-dir
743 %service bacula-dir restart "Bacula Director daemon"
746 if [ "$1" = "0" ]; then
747 %service bacula-dir stop
748 /sbin/chkconfig --del bacula-dir
752 echo "Updating Bacula passwords and names..."
754 for f in *-password; do
756 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
758 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
760 /sbin/chkconfig --add bacula-fd
761 %service bacula-fd restart "Bacula File daemon"
764 if [ "$1" = "0" ]; then
765 %service bacula-fd stop
766 /sbin/chkconfig --del bacula-fd
770 echo "Updating Bacula passwords and names..."
772 for f in *-password; do
774 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
776 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
778 /sbin/chkconfig --add bacula-sd
779 %service bacula-sd restart "Bacula Storage daemon"
782 if [ "$1" = "0" ]; then
783 %service bacula-sd stop
784 /sbin/chkconfig --del bacula-sd
788 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
789 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
793 echo "Updating Bacula passwords and names..."
795 for f in *-password; do
797 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
799 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
802 echo "Updating Bacula passwords and names..."
804 for f in *-password; do
806 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
808 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
811 echo "Updating Bacula passwords and names..."
813 for f in *-password; do
815 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
817 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
820 echo "Updating Bacula passwords and names..."
822 for f in *-password; do
824 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
826 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
829 # link our current installed conf file to the rescue directory
830 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
833 echo "Creating rescue files for this system..."
834 cd %{_sysconfdir}/rescue
838 # remove the files created after the initial rpm installation
839 if [ "$1" = "0" ]; then
840 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
841 rm -f %{_sysconfdir}/rescue/partition.*
842 rm -f %{_sysconfdir}/rescue/format.*
843 rm -f %{_sysconfdir}/rescue/mount_drives
844 rm -f %{_sysconfdir}/rescue/start_network
845 rm -f %{_sysconfdir}/rescue/sfdisk
846 rm -rf %{_sysconfdir}/rescue/diskinfo/*
851 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \
852 prefix="${name%% *}" \
853 suffix="${name#* }" \
854 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
856 %service bacula-dir restart "Bacula Director daemon"
858 %define db_postun() \
860 if [ "$1" = "0" ]; then \
861 for f in %{_libexecdir}/%{name}/*_bacula_* ; do \
862 if [ ! -e "$f" ] ; then \
871 %postun db-postgresql
872 %db_postun postgresql
886 # dbi backend is different, as it is not bound with a specific db engine
890 %postun db-dbi -p /sbin/ldconfig
893 %defattr(644,root,root,755)
896 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
897 # do not remove bsmtp from files. Fix build if it is not installed.
898 %attr(755,root,root) %{_sbindir}/bsmtp
899 %attr(755,root,root) %{_sbindir}/btraceback
900 %attr(755,root,root) %{_libdir}/libbac-%{version}.so
901 %attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
902 %attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
903 %attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
904 %{_mandir}/man8/bacula.8*
905 %{_mandir}/man1/bsmtp.1*
906 %{_mandir}/man8/btraceback.8*
907 %dir %{_libexecdir}/%{name}
908 %{_libexecdir}/%{name}/btraceback.dbx
909 %{_libexecdir}/%{name}/btraceback.gdb
910 %{_libexecdir}/%{name}/bacula_config
911 %attr(770,root,bacula) %dir %{_localstatedir}
912 %attr(750,bacula,logs) %dir /var/log/bacula
913 %attr(640,bacula,logs) %ghost /var/log/bacula/log
916 %defattr(644,root,root,755)
917 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
918 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
919 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
920 %ghost %{_sysconfdir}/.pw.sed
921 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
922 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
923 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
924 %attr(755,root,root) %{_sbindir}/bacula-dir
925 %attr(755,root,root) %{_sbindir}/bregex
926 %attr(755,root,root) %{_sbindir}/bwild
927 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
928 %{_mandir}/man8/bacula-dir.8*
929 %{_mandir}/man8/bacula-dbcheck.8*
930 %{_libexecdir}/%{name}/query.sql
931 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
932 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
935 %defattr(644,root,root,755)
936 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
937 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
938 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
939 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
940 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
941 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
942 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
944 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
945 %ghost %{_libexecdir}/%{name}/create_bacula_database
946 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
947 %ghost %{_libexecdir}/%{name}/drop_bacula_database
948 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
949 %ghost %{_libexecdir}/%{name}/make_bacula_tables
950 %ghost %{_libexecdir}/%{name}/update_bacula_tables
953 %defattr(644,root,root,755)
954 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
955 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
956 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
957 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
958 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
959 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
960 %attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
962 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
963 %ghost %{_libexecdir}/%{name}/create_bacula_database
964 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
965 %ghost %{_libexecdir}/%{name}/drop_bacula_database
966 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
967 %ghost %{_libexecdir}/%{name}/make_bacula_tables
968 %ghost %{_libexecdir}/%{name}/update_bacula_tables
971 %defattr(644,root,root,755)
972 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
973 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
974 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
975 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
976 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
977 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
978 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
979 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
981 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
982 %ghost %{_libexecdir}/%{name}/create_bacula_database
983 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
984 %ghost %{_libexecdir}/%{name}/drop_bacula_database
985 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
986 %ghost %{_libexecdir}/%{name}/make_bacula_tables
987 %ghost %{_libexecdir}/%{name}/update_bacula_tables
990 %defattr(644,root,root,755)
991 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
992 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
993 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
994 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
995 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
996 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
997 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
998 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
999 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
1000 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
1001 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
1002 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
1003 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
1004 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
1005 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
1006 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
1007 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
1008 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
1009 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
1010 %attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
1012 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
1016 %defattr(644,root,root,755)
1018 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
1019 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
1020 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
1021 %attr(755,root,root) %{_sbindir}/bacula-fd
1022 %attr(755,root,root) %{_libdir}/bpipe-fd.so
1023 %{_mandir}/man8/bacula-fd.8*
1026 %defattr(644,root,root,755)
1028 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
1029 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
1030 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
1031 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
1032 %attr(755,root,root) %{_sbindir}/bacula-sd
1033 %attr(755,root,root) %{_sbindir}/bcopy
1034 %attr(755,root,root) %{_sbindir}/bextract
1035 %attr(755,root,root) %{_sbindir}/bls
1036 %attr(755,root,root) %{_sbindir}/bscan
1037 %attr(755,root,root) %{_sbindir}/btape
1038 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
1039 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
1040 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
1041 %{_mandir}/man8/bacula-sd.8*
1042 %{_mandir}/man8/bcopy.8*
1043 %{_mandir}/man8/bextract.8*
1044 %{_mandir}/man8/bls.8*
1045 %{_mandir}/man8/bscan.8*
1046 %{_mandir}/man8/btape.8*
1049 %defattr(644,root,root,755)
1051 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
1052 %attr(755,root,root) %{_sbindir}/bconsole
1053 %{_mandir}/man8/bconsole.8*
1055 %if %{with console_wx}
1057 %defattr(644,root,root,755)
1059 %{_pixmapsdir}/%{name}.png
1060 %{_desktopdir}/bacula-wx.desktop
1061 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
1062 %attr(755,root,root) %{_sbindir}/bwx-console
1063 %{_mandir}/man1/bacula-bwxconsole.1*
1068 %defattr(644,root,root,755)
1070 %{_pixmapsdir}/%{name}.png
1071 %{_desktopdir}/bat.desktop
1072 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
1073 %attr(755,root,root) %{_sbindir}/bat
1074 %{_mandir}/man1/bat.1*
1078 %if %{with console_wx}
1080 %defattr(644,root,root,755)
1082 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
1083 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
1084 #%{_desktopdir}/%{name}-tray-monitor.desktop
1085 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
1086 %{_mandir}/man1/bacula-tray-monitor.1*
1091 %defattr(644,root,root,755)
1093 %dir %{_sysconfdir}/rescue
1094 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1095 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1096 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1097 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1098 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1099 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1100 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1101 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1102 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1103 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2