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 URL: http://www.bacula.org/
52 BuildRequires: acl-devel
53 BuildRequires: autoconf
54 BuildRequires: automake
55 BuildRequires: gettext-devel
56 BuildRequires: libcap-devel
57 %{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4}
58 BuildRequires: libtool
60 BuildRequires: fakeroot
62 BuildRequires: libwrap-devel
64 BuildRequires: ncurses-devel
65 BuildRequires: openssl-devel
66 BuildRequires: pkgconfig
68 BuildRequires: python-static
71 BuildRequires: QtCore-devel
72 BuildRequires: QtGui-devel
73 BuildRequires: qt4-build >= 4.3.3-3
74 BuildRequires: qt4-qmake >= 4.3.3-3
75 BuildRequires: qwt-devel >= 5.0.2-2
77 %{?with_mysql:BuildRequires: mysql-devel}
78 %{?with_pgsql:BuildRequires: postgresql-devel}
79 BuildRequires: readline-devel
80 BuildRequires: rpmbuild(macros) >= 1.268
81 BuildRequires: sed >= 4.0
82 %{?with_sqlite3:BuildRequires: sqlite3-devel}
83 %if %{with console_wx}
84 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
86 BuildRequires: zlib-devel
87 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89 %define _sysconfdir /etc/%{name}
90 %define _localstatedir /var/lib/%{name}
92 %define databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi}
94 # dependency section is broken. ccache usage is instead to makefiles
98 Bacula - It comes by night and sucks the vital essence from your
101 Bacula is a set of computer programs that permit you (or the system
102 administrator) to manage backup, recovery, and verification of
103 computer data across a network of computers of different kinds. In
104 technical terms, it is a network client/server based backup program.
105 Bacula is relatively easy to use and efficient, while offering many
106 advanced storage management features that make it easy to find and
107 recover lost or damaged files.
109 %description -l pl.UTF-8
110 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
112 Bacula to zbiór programów umożliwiających administratorowi na
113 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
114 sieci komputerów różnego rodzaju. W terminologii technicznej jest
115 to program do kopii zapasowych pracujący w architekturze
116 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
117 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
118 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
122 Summary: Common files for bacula package
123 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
124 Group: Networking/Utilities
125 Requires(post): openssl-tools
126 Requires(post): sed >= 4.0
127 Requires(post,preun): /sbin/chkconfig
128 Requires(postun): /usr/sbin/groupdel
129 Requires(postun): /usr/sbin/userdel
130 Requires(pre): /usr/sbin/groupadd
131 Requires(pre): /usr/sbin/useradd
132 Conflicts: bacula-console < 0:1.34.6
133 Conflicts: bacula-dir < 0:1.34.6
134 Conflicts: bacula-fd < 0:1.34.6
135 Conflicts: bacula-sd < 0:1.34.6
138 Bacula - It comes by night and sucks the vital essence from your
141 Bacula is a set of computer programs that permit you (or the system
142 administrator) to manage backup, recovery, and verification of
143 computer data across a network of computers of different kinds. In
144 technical terms, it is a network client/server based backup program.
145 Bacula is relatively easy to use and efficient, while offering many
146 advanced storage management features that make it easy to find and
147 recover lost or damaged files.
149 %description common -l pl.UTF-8
150 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
152 Bacula to zbiór programów umożliwiających administratorowi na
153 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
154 sieci komputerów różnego rodzaju. W terminologii technicznej jest
155 to program do kopii zapasowych pracujący w architekturze
156 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
157 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
158 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
162 Summary: Bacula Director and Catalog services
163 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
164 Group: Networking/Utilities
165 Requires(post): sed >= 4.0
166 Requires: %{name}-common = %{epoch}:%{version}-%{release}
167 Requires: bacula(db) = %{epoch}:%{version}-%{release}
168 Obsoletes: bacula-updatedb
171 Bacula - It comes by night and sucks the vital essence from your
174 Bacula Director is the program that supervises all the backup,
175 restore, verify and archive operations. The system administrator uses
176 the Bacula Director to schedule backups and to recover files. Catalog
177 services are comprised of the software programs responsible for
178 maintaining the file indexes and volume databases for all files backed
179 up. The Catalog services permit the System Administrator or user to
180 quickly locate and restore any desired file, since it maintains a
181 record of all Volumes used, all Jobs run, and all Files saved.
183 %description dir -l pl.UTF-8
184 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
186 Bacula Director to program nadzorujący wszystkie operacje wykonywania
187 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
188 Administrator używa Bacula Directora do szeregowania kopii zapasowych
189 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
190 używane przez programy odpowiedzialne za zarządzanie indeksami
191 plików i bazą danych wolumenów dla wszystkich kopiowanych plików.
192 Usługi katalogowe umożliwiają administratorowi lub użytkownikowi
193 szybko zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują
194 rekord ze wszystkimi używanymi wolumenami, uruchomionymi zadaniami i
198 Summary: Bacula Console
199 Summary(pl.UTF-8): Konsola Baculi
200 Group: Networking/Utilities
201 Requires(post): sed >= 4.0
202 Requires: %{name}-common = %{epoch}:%{version}-%{release}
205 Bacula - It comes by night and sucks the vital essence from your
208 Bacula Console is the program that allows the administrator or user to
209 communicate with the Bacula Director. This is the text only console
212 %description console -l pl.UTF-8
213 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
215 Bacula Console to program umożliwiający administratorowi lub
216 użytkownikowi komunikowanie się z programem Bacula Director. To jest
217 interfejs czysto tekstowy.
220 Summary: Bacula wxWidgets Console
221 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
222 Group: Networking/Utilities
223 Requires(post): sed >= 4.0
224 Requires: %{name}-common = %{epoch}:%{version}-%{release}
226 %description console-wx
227 Bacula - It comes by night and sucks the vital essence from your
230 Bacula Console is the program that allows the administrator or user to
231 communicate with the Bacula Director. This is the wxWidgets GUI
234 %description console-wx -l pl.UTF-8
235 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
237 Bacula Console to program umożliwiający administratorowi lub
238 użytkownikowi komunikowanie się z programem Bacula Director. To jest
239 interfejs graficzny oparty na wxWidgets.
242 Summary: Bacula Qt4 Console
243 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
244 Group: Networking/Utilities
245 Requires(post): sed >= 4.0
246 Requires: %{name}-common = %{epoch}:%{version}-%{release}
248 %description console-qt4
249 Bacula - It comes by night and sucks the vital essence from your
252 Bacula Console is the program that allows the administrator or user to
253 communicate with the Bacula Director. This is the Qt4 GUI interface.
255 %description console-qt4 -l pl.UTF-8
256 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
258 Bacula Console to program umożliwiający administratorowi lub
259 użytkownikowi komunikowanie się z programem Bacula Director. To jest
260 interfejs graficzny oparty na Qt4.
262 %package tray-monitor
263 Summary: Bacula Tray Monitor
264 Group: Networking/Utilities
265 Requires(post): sed >= 4.0
266 Requires: %{name}-common = %{epoch}:%{version}-%{release}
268 %description tray-monitor
269 Bacula - It comes by night and sucks the vital essence from your
272 The Monitor program is typically an icon in the system tray. However,
273 once the icon is expanded into a full window, the administrator or
274 user can obtain status information about the Director or the backup
275 status on the local workstation or any other Bacula daemon that is
279 Summary: Bacula File services (Client)
280 Summary(pl.UTF-8): Usługi Bacula File (klient)
281 Group: Networking/Utilities
282 Requires(post): sed >= 4.0
283 Requires: %{name}-common = %{epoch}:%{version}-%{release}
286 Bacula - It comes by night and sucks the vital essence from your
289 Bacula File services (or Client program) is the software program that
290 is installed on the machine to be backed up. It is specific to the
291 operating system on which it runs and is responsible for providing the
292 file attributes and data when requested by the Director. The File
293 services are also responsible for the file system dependent part of
294 restoring the file attributes and data during a recovery operation.
295 This program runs as a daemon on the machine to be backed up, and in
296 some of the documentation, the File daemon is referred to as the
297 Client (for example in Bacula configuration file).
299 %description fd -l pl.UTF-8
300 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
302 Usługi Bacula File (inaczej program kliencki) to oprogramowanie,
303 które instaluje się na maszynach, z których mają być wykonywane
304 kopie zapasowe. Są one specyficzne dla systemu operacyjnego, pod
305 którym działa dana maszyna i odpowiadają za dostarczanie atrybutów
306 i danych plików na żądanie Directora. Usługi plikowe są także
307 odpowiedzialne za zależną od systemu plików część odzyskiwania
308 atrybutów i danych plików podczas operacji odzyskiwania danych.
309 Program działa jako demon na maszynie, która ma być backupowana i w
310 części dokumentacji demon ten (File) jest nazywany klientem (na
311 przykład w pliku konfiguracyjnym Baculi).
314 Summary: Bacula Storage services
315 Summary(pl.UTF-8): Usługi Bacula Storage
316 Group: Networking/Utilities
317 Requires(post): sed >= 4.0
318 Requires: %{name}-common = %{epoch}:%{version}-%{release}
319 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
322 Bacula - It comes by night and sucks the vital essence from your
325 Bacula Storage services consist of the software programs that perform
326 the storage and recovery of the file attributes and data to the
327 physical backup media or volumes. In other words, the Storage daemon
328 is responsible for reading and writing your tapes (or other storage
329 media, e.g. files). The Storage services runs as a daemon on the
330 machine that has the backup device (usually a tape drive).
332 %description sd -l pl.UTF-8
333 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
335 Usługi Bacula Storage składają się z programów obsługujących
336 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
337 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage
338 jest odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
339 przechowywania danych, np. plików). Usługi Storage działają jako
340 demon na maszynie, która zawiera urządzenie backupowe (zwykle napęd
343 %package db-postgresql
344 Summary: PostgreSQL database driver for Bacula
345 Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
346 Group: Networking/Utilities
347 Requires(post): /sbin/ldconfig
348 Requires: %{name}-common = %{epoch}:%{version}-%{release}
349 Provides: bacula(db) = %{epoch}:%{version}-%{release}
350 Obsoletes: bacula-db-dbi
351 Obsoletes: bacula-db-mysql
352 Obsoletes: bacula-db-sqlite3
354 %description db-postgresql
355 PostgreSQL database driver for Bacula.
357 %description db-postgresql -l pl.UTF-8
358 Sterownik bazy PostgreSQL dla Baculi.
361 Summary: MySQL database driver for Bacula
362 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
363 Group: Networking/Utilities
364 Requires(post): /sbin/ldconfig
365 Requires: %{name}-common = %{epoch}:%{version}-%{release}
366 Provides: bacula(db) = %{epoch}:%{version}-%{release}
367 Obsoletes: bacula-db-dbi
368 Obsoletes: bacula-db-postgresql
369 Obsoletes: bacula-db-sqlite3
371 %description db-mysql
372 MySQL database driver for Bacula.
374 %description db-mysql -l pl.UTF-8
375 Sterownik bazy MySQL dla Baculi.
378 Summary: SQLite database driver for Bacula
379 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
380 Group: Networking/Utilities
381 Requires(post): /sbin/ldconfig
382 Requires: %{name}-common = %{epoch}:%{version}-%{release}
383 Provides: bacula(db) = %{epoch}:%{version}-%{release}
384 Obsoletes: bacula-db-dbi
385 Obsoletes: bacula-db-mysql
386 Obsoletes: bacula-db-postgresql
388 %description db-sqlite3
389 SQLite database driver for Bacula.
391 %description db-sqlite3 -l pl.UTF-8
392 Sterownik bazy SQLite dla Baculi.
395 Summary: libdbi database driver for Bacula
396 Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi
397 Group: Networking/Utilities
398 Requires(post): /sbin/ldconfig
399 Requires: %{name}-common = %{epoch}:%{version}-%{release}
400 Provides: bacula(db) = %{epoch}:%{version}-%{release}
401 Obsoletes: bacula-db-mysql
402 Obsoletes: bacula-db-postgresql
403 Obsoletes: bacula-db-sqlite3
406 libdbi database driver for Bacula.
408 %description db-dbi -l pl.UTF-8
409 Sterownik baz libdbi dla Baculi.
412 Summary: Bacula - The Network Backup Solution
413 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
414 Group: Networking/Utilities
415 Requires: %{name}-fd = %{epoch}:%{version}-%{release}
420 Bacula - It comes by night and sucks the vital essence from your
423 Bacula is a set of computer programs that permit you (or the system
424 administrator) to manage backup, recovery, and verification of
425 computer data across a network of computers of different kinds. In
426 technical terms, it is a network client/server based backup program.
427 Bacula is relatively easy to use and efficient, while offering many
428 advanced storage management features that make it easy to find and
429 recover lost or damaged files.
431 This package installs scripts for disaster recovery and builds rescue
432 floppy disk for bare metal recovery.
434 To make the bacula rescue disk run "./make_rescue_disk
435 - --copy-static-bacula
436 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
437 recreate the rescue information for this system run ./getdiskinfo
440 %description rescue -l pl.UTF-8
441 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
443 Bacula to zbiór programów umożliwiających administratorowi na
444 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
445 sieci komputerów różnego rodzaju. W terminologii technicznej jest
446 to program do kopii zapasowych pracujący w architekturze
447 klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna,
448 oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu
449 nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub
452 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy
453 dyskietkę ratunkowe do odtwarzania systemu od zera.
455 Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić
457 - --copy-static-bacula - --copy-etc-files" z katalogu
458 %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe
459 dla danego systemu, należy ponownie uruchomić ./getdiskinfo .
470 %{?with_dbi:%patch7 -p1}
473 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
475 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
476 src/cats/create_* src/cats/delete_* src/cats/drop_* \
477 src/cats/grant_* src/cats/make_* src/cats/update_*
478 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
481 for dbtype in mysql postgresql sqlite3; do
482 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
488 %{__aclocal} -I bacula-macros -I gettext-macros
489 # $BUILD_DIR not seen by libtoolize, export it
490 BUILD_DIR=.. %{__libtoolize}
492 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
496 for database in %{databases} ; do
497 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
498 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
500 --with-scriptdir=%{_libexecdir}/%{name} \
501 %{?with_bat:--enable-bat} \
503 --enable-smartalloc \
504 %{?with_console_wx:--enable-bwx-console} \
505 --enable-tray-monitor \
506 %{?with_python:--with-python} \
508 --with-tcp-wrappers \
509 --with-working-dir=%{_var}/lib/%{name} \
510 --with-dump-email="root@localhost" \
511 --with-job-email="root@localhost" \
512 --with-smtp-host=localhost \
513 --with-pid-dir=/var/run \
514 --with-subsys-dir=/var/lock/subsys \
515 --enable-batch-insert \
517 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
518 --with-dir-password="#FAKE-dir-password#" \
519 --with-fd-password="#FAKE-fd-password#" \
520 --with-sd-password="#FAKE-sd-password#" \
521 --with-mon-dir-password="#FAKE-mon-dir-password#" \
522 --with-mon-fd-password="#FAKE-mon-fd-password#" \
523 --with-mon-sd-password="#FAKE-mon-sd-password#" \
526 if [ "$base_built" = "no" ] ; then
537 %{__make} -C src/cats clean
538 %{__make} -C src/cats
541 # install the database library in a temporary location
542 install -d libbacsql/$database%{_libdir}
543 %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
555 rm -rf $RPM_BUILD_ROOT
557 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
558 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
559 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
562 DESTDIR=$RPM_BUILD_ROOT
564 # install libraries for all the database backends
565 # ldconfig will add the soname symlinks when one of the packages is installed
566 for database in %{databases} ; do
567 for libfile in libbacsql/$database%{_libdir}/lib*-*.so ; do
568 orig_name=`basename $libfile`
569 file_prefix="${orig_name%%-*.so}"
570 file_suffix="${orig_name#*-}"
571 file_name="$file_prefix-$database-$file_suffix"
572 install "$libfile" "$RPM_BUILD_ROOT/%{_libdir}/$file_name"
573 ln -sf "$file_name" "$RPM_BUILD_ROOT/%{_libdir}/$orig_name"
577 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
578 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
579 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
580 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
581 install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
582 install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
583 install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
585 %if %{with console_wx}
586 # tray-monitor is for regular users
587 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
589 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
590 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
591 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
592 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
593 #sed -e 's#%{_sbindir}#%{_bindir}#' \
594 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
598 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
599 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
603 # install the rescue stuff, these are the rescue scripts
604 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
605 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
606 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
607 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
610 touch $RPM_BUILD_ROOT/var/log/bacula/log
612 # install the updatedb scripts
613 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
615 # place for site passwords
616 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
617 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
619 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
622 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
623 %if %{without console_wx}
624 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
626 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
628 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
629 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
630 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
631 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
632 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
633 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
634 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
636 # startup scripts, those in /etc/rc.d/init.d are better
637 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
638 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
641 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
643 # rename to avoid possible conflicts
644 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
645 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
647 # no -devel files packaged, so this is also useless
648 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
650 # placeholders for the symlinks set in %%post db-*
651 for f in create_bacula_database drop_bacula_database drop_bacula_tables \
652 grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
654 ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
659 rm -rf $RPM_BUILD_ROOT
662 %groupadd -P %{name}-common -g 136 -r -f bacula
663 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
667 echo "Updating bacula passwords and names..."
669 for f in *-password ; do
670 if [ ! -s $f ] ; then
671 openssl rand -base64 33 > $f
674 for cf in *.conf *.conf.rpmnew ; do
675 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
678 for cf in *.conf *.conf.rpmnew ; do
679 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
684 if [ "$1" = "0" ]; then
692 # XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
693 # about currently used version so we can't easily support these :(
696 [ -s %{_localstatedir}/bacula.db ] && \
697 DB_VER=`echo "select * from Version;" | \
698 %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
700 if [ -z "$DB_VER" ]; then
701 # grant privileges and create tables
702 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
703 %{_libexecdir}/%{name}/create_bacula_database > dev/null
704 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
706 echo "Backing up bacula tables"
707 echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
709 db_type="%{database}"
711 next_ver=$(($DB_VER + 1))
712 # support up to version 30; increase this if needed
713 for ver in $(seq $next_ver 30); do
714 prev_ver=$(($ver - 1))
716 if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
717 echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
718 %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
722 %{_libexecdir}/%{name}/update_bacula_tables
723 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
725 chown -R bacula:bacula %{_localstatedir}
726 chmod -R u+rX,go-rwx %{_localstatedir}/*
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 || :
737 /sbin/chkconfig --add bacula-dir
738 %service bacula-dir restart "Bacula Director daemon"
741 if [ "$1" = "0" ]; then
742 %service bacula-dir stop
743 /sbin/chkconfig --del bacula-dir
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 || :
755 /sbin/chkconfig --add bacula-fd
756 %service bacula-fd restart "Bacula File daemon"
759 if [ "$1" = "0" ]; then
760 %service bacula-fd stop
761 /sbin/chkconfig --del bacula-fd
765 echo "Updating Bacula passwords and names..."
767 for f in *-password; do
769 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
771 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
773 /sbin/chkconfig --add bacula-sd
774 %service bacula-sd restart "Bacula Storage daemon"
777 if [ "$1" = "0" ]; then
778 %service bacula-sd stop
779 /sbin/chkconfig --del bacula-sd
783 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
784 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
788 echo "Updating Bacula passwords and names..."
790 for f in *-password; do
792 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
794 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
797 echo "Updating Bacula passwords and names..."
799 for f in *-password; do
801 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
803 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
806 echo "Updating Bacula passwords and names..."
808 for f in *-password; do
810 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
812 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
815 echo "Updating Bacula passwords and names..."
817 for f in *-password; do
819 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
821 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
824 # link our current installed conf file to the rescue directory
825 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
828 echo "Creating rescue files for this system..."
829 cd %{_sysconfdir}/rescue
833 # remove the files created after the initial rpm installation
834 if [ "$1" = "0" ]; then
835 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
836 rm -f %{_sysconfdir}/rescue/partition.*
837 rm -f %{_sysconfdir}/rescue/format.*
838 rm -f %{_sysconfdir}/rescue/mount_drives
839 rm -f %{_sysconfdir}/rescue/start_network
840 rm -f %{_sysconfdir}/rescue/sfdisk
841 rm -rf %{_sysconfdir}/rescue/diskinfo/*
846 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \
847 prefix="${name%% *}" \
848 suffix="${name#* }" \
849 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
865 %defattr(644,root,root,755)
868 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
869 # do not remove bsmtp from files. Fix build if it is not installed.
870 %attr(755,root,root) %{_sbindir}/bsmtp
871 %attr(755,root,root) %{_sbindir}/btraceback
872 %attr(755,root,root) %{_libdir}/libbac-%{version}.so
873 %attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
874 %attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
875 %attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
876 %{_mandir}/man8/bacula.8*
877 %{_mandir}/man1/bsmtp.1*
878 %{_mandir}/man8/btraceback.8*
879 %dir %{_libexecdir}/%{name}
880 %{_libexecdir}/%{name}/btraceback.dbx
881 %{_libexecdir}/%{name}/btraceback.gdb
882 %{_libexecdir}/%{name}/bacula_config
883 %attr(770,root,bacula) %dir %{_localstatedir}
884 %attr(750,bacula,logs) %dir /var/log/bacula
885 %attr(640,bacula,logs) %ghost /var/log/bacula/log
888 %defattr(644,root,root,755)
889 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
890 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
891 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
892 %ghost %{_sysconfdir}/.pw.sed
893 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
894 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
895 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
896 %attr(755,root,root) %{_sbindir}/bacula-dir
897 %attr(755,root,root) %{_sbindir}/bregex
898 %attr(755,root,root) %{_sbindir}/bwild
899 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
900 %{_mandir}/man8/bacula-dir.8*
901 %{_mandir}/man8/bacula-dbcheck.8*
902 %{_libexecdir}/%{name}/query.sql
903 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
904 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
907 %defattr(644,root,root,755)
908 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
909 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
910 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
911 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
912 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
913 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
914 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
916 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
917 %ghost %{_libexecdir}/%{name}/create_bacula_database
918 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
919 %ghost %{_libexecdir}/%{name}/drop_bacula_database
920 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
921 %ghost %{_libexecdir}/%{name}/make_bacula_tables
922 %ghost %{_libexecdir}/%{name}/update_bacula_tables
925 %defattr(644,root,root,755)
926 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
927 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
928 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
929 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
930 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
931 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
932 %attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
934 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
935 %ghost %{_libexecdir}/%{name}/create_bacula_database
936 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
937 %ghost %{_libexecdir}/%{name}/drop_bacula_database
938 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
939 %ghost %{_libexecdir}/%{name}/make_bacula_tables
940 %ghost %{_libexecdir}/%{name}/update_bacula_tables
943 %defattr(644,root,root,755)
944 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
945 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
946 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
947 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
948 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
949 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
950 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
951 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
953 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
954 %ghost %{_libexecdir}/%{name}/create_bacula_database
955 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
956 %ghost %{_libexecdir}/%{name}/drop_bacula_database
957 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
958 %ghost %{_libexecdir}/%{name}/make_bacula_tables
959 %ghost %{_libexecdir}/%{name}/update_bacula_tables
962 %defattr(644,root,root,755)
963 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
964 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
965 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
966 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
967 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
968 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
969 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
970 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
971 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
972 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
973 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
974 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
975 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
976 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
977 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
978 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
979 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
980 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
981 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
982 %attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
984 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
988 %defattr(644,root,root,755)
990 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
991 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
992 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
993 %attr(755,root,root) %{_sbindir}/bacula-fd
994 %attr(755,root,root) %{_libdir}/bpipe-fd.so
995 %{_mandir}/man8/bacula-fd.8*
998 %defattr(644,root,root,755)
1000 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
1001 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
1002 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
1003 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
1004 %attr(755,root,root) %{_sbindir}/bacula-sd
1005 %attr(755,root,root) %{_sbindir}/bcopy
1006 %attr(755,root,root) %{_sbindir}/bextract
1007 %attr(755,root,root) %{_sbindir}/bls
1008 %attr(755,root,root) %{_sbindir}/bscan
1009 %attr(755,root,root) %{_sbindir}/btape
1010 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
1011 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
1012 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
1013 %{_mandir}/man8/bacula-sd.8*
1014 %{_mandir}/man8/bcopy.8*
1015 %{_mandir}/man8/bextract.8*
1016 %{_mandir}/man8/bls.8*
1017 %{_mandir}/man8/bscan.8*
1018 %{_mandir}/man8/btape.8*
1021 %defattr(644,root,root,755)
1023 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
1024 %attr(755,root,root) %{_sbindir}/bconsole
1025 %{_mandir}/man8/bconsole.8*
1027 %if %{with console_wx}
1029 %defattr(644,root,root,755)
1031 %{_pixmapsdir}/%{name}.png
1032 %{_desktopdir}/bacula-wx.desktop
1033 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
1034 %attr(755,root,root) %{_sbindir}/bwx-console
1035 %{_mandir}/man1/bacula-bwxconsole.1*
1040 %defattr(644,root,root,755)
1042 %{_pixmapsdir}/%{name}.png
1043 %{_desktopdir}/bat.desktop
1044 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
1045 %attr(755,root,root) %{_sbindir}/bat
1046 %{_mandir}/man1/bat.1*
1050 %if %{with console_wx}
1052 %defattr(644,root,root,755)
1054 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
1055 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
1056 #%{_desktopdir}/%{name}-tray-monitor.desktop
1057 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
1058 %{_mandir}/man1/bacula-tray-monitor.1*
1063 %defattr(644,root,root,755)
1065 %dir %{_sysconfdir}/rescue
1066 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1067 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1068 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1069 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1070 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1071 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1072 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1073 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1074 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1075 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2