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 to
116 program do kopii zapasowych pracujący w architekturze klient-serwer.
117 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
118 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
119 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
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 to
156 program do kopii zapasowych pracujący w architekturze klient-serwer.
157 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
158 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
159 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
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 plików
192 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
193 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
194 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
195 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
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, które
304 instaluje się na maszynach, z których mają być wykonywane kopie
305 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
306 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
307 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
308 zależną od systemu plików część odzyskiwania atrybutów i danych plików
309 podczas operacji odzyskiwania danych. Program działa jako demon na
310 maszynie, która ma być backupowana i w części dokumentacji demon ten
311 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
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 jest
339 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 demon
341 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)
353 %description db-postgresql
354 PostgreSQL database driver for Bacula.
356 %description db-postgresql -l pl.UTF-8
357 Sterownik bazy PostgreSQL dla Baculi.
360 Summary: MySQL database driver for Bacula
361 Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
362 Group: Networking/Utilities
363 Requires(post): /sbin/ldconfig
364 Requires: %{name}-common = %{epoch}:%{version}-%{release}
365 Provides: bacula(db) = %{epoch}:%{version}-%{release}
366 Obsoletes: bacula(db)
368 %description db-mysql
369 MySQL database driver for Bacula.
371 %description db-mysql -l pl.UTF-8
372 Sterownik bazy MySQL dla Baculi.
375 Summary: SQLite database driver for Bacula
376 Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
377 Group: Networking/Utilities
378 Requires(post): /sbin/ldconfig
379 Requires: %{name}-common = %{epoch}:%{version}-%{release}
380 Provides: bacula(db) = %{epoch}:%{version}-%{release}
381 Obsoletes: bacula(db)
383 %description db-sqlite3
384 SQLite database driver for Bacula.
386 %description db-sqlite3 -l pl.UTF-8
387 Sterownik bazy SQLite dla Baculi.
390 Summary: libdbi database driver for Bacula
391 Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi
392 Group: Networking/Utilities
393 Requires(post): /sbin/ldconfig
394 Requires: %{name}-common = %{epoch}:%{version}-%{release}
395 Provides: bacula(db) = %{epoch}:%{version}-%{release}
396 Obsoletes: bacula(db)
399 libdbi database driver for Bacula.
401 %description db-dbi -l pl.UTF-8
402 Sterownik baz libdbi dla Baculi.
405 Summary: Bacula - The Network Backup Solution
406 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
407 Group: Networking/Utilities
408 Requires: %{name}-fd = %{epoch}:%{version}-%{release}
413 Bacula - It comes by night and sucks the vital essence from your
416 Bacula is a set of computer programs that permit you (or the system
417 administrator) to manage backup, recovery, and verification of
418 computer data across a network of computers of different kinds. In
419 technical terms, it is a network client/server based backup program.
420 Bacula is relatively easy to use and efficient, while offering many
421 advanced storage management features that make it easy to find and
422 recover lost or damaged files.
424 This package installs scripts for disaster recovery and builds rescue
425 floppy disk for bare metal recovery.
427 %description rescue -l pl.UTF-8
428 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
430 Bacula to zbiór programów umożliwiających administratorowi na
431 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
432 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
433 program do kopii zapasowych pracujący w architekturze klient-serwer.
434 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
435 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
436 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
439 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
440 ratunkowe do odtwarzania systemu od zera.
455 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
457 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
458 src/cats/create_* src/cats/delete_* src/cats/drop_* \
459 src/cats/grant_* src/cats/make_* src/cats/update_*
460 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
463 for dbtype in mysql postgresql sqlite3; do
464 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
470 %{__aclocal} -I bacula-macros -I gettext-macros
471 # $BUILD_DIR not seen by libtoolize, export it
472 BUILD_DIR=.. %{__libtoolize}
474 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
476 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
478 # we wan't the 'base' build built with the first database in the list,
479 # to make sure it is full-featured
482 for database in %{databases} ; do
483 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
485 --with-scriptdir=%{_libexecdir}/%{name} \
486 %{?with_bat:--enable-bat} \
488 --enable-smartalloc \
489 %{?with_console_wx:--enable-bwx-console} \
490 --enable-tray-monitor \
491 %{?with_python:--with-python} \
493 --with-tcp-wrappers \
494 --with-working-dir=%{_var}/lib/%{name} \
495 --with-dump-email="root@localhost" \
496 --with-job-email="root@localhost" \
497 --with-smtp-host=localhost \
498 --with-pid-dir=/var/run \
499 --with-subsys-dir=/var/lock/subsys \
500 --enable-batch-insert \
502 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
503 --with-dir-password="#FAKE-dir-password#" \
504 --with-fd-password="#FAKE-fd-password#" \
505 --with-sd-password="#FAKE-sd-password#" \
506 --with-mon-dir-password="#FAKE-mon-dir-password#" \
507 --with-mon-fd-password="#FAKE-mon-fd-password#" \
508 --with-mon-sd-password="#FAKE-mon-sd-password#" \
511 if [ "$base_built" = "no" ] ; then
522 %{__make} -C src/cats clean
523 %{__make} -C src/cats
526 # install the database library in a temporary location
527 install -d libbacsql/$database%{_libdir}
528 %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
540 rm -rf $RPM_BUILD_ROOT
542 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
543 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
544 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
547 DESTDIR=$RPM_BUILD_ROOT
549 # install libraries for all the database backends
550 # ldconfig will add the soname symlinks when one of the packages is installed
551 for database in %{databases} ; do
552 for libfile in libbacsql/$database%{_libdir}/lib*-*.so ; do
553 orig_name=`basename $libfile`
554 file_prefix="${orig_name%%-*.so}"
555 file_suffix="${orig_name#*-}"
556 file_name="$file_prefix-$database-$file_suffix"
557 install "$libfile" "$RPM_BUILD_ROOT/%{_libdir}/$file_name"
558 ln -sf "$file_name" "$RPM_BUILD_ROOT/%{_libdir}/$orig_name"
562 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
563 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
564 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
565 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
566 install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
567 install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
568 install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
570 %if %{with console_wx}
571 # tray-monitor is for regular users
572 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
574 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
575 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
576 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
577 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
578 #sed -e 's#%{_sbindir}#%{_bindir}#' \
579 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
583 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
584 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
588 # install the rescue stuff, these are the rescue scripts
589 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
590 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
591 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
592 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
595 touch $RPM_BUILD_ROOT/var/log/bacula/log
597 # install the updatedb scripts
598 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
600 # place for site passwords
601 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
602 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
604 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
607 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
608 %if %{without console_wx}
609 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
611 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
613 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
614 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
615 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
616 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
617 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
618 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
619 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
621 # startup scripts, those in /etc/rc.d/init.d are better
622 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
623 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
626 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
628 # rename to avoid possible conflicts
629 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
630 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
632 # no -devel files packaged, so this is also useless
633 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
635 # placeholders for the symlinks set in %%post db-*
636 for f in create_bacula_database drop_bacula_database drop_bacula_tables \
637 grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
639 ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
644 rm -rf $RPM_BUILD_ROOT
647 %groupadd -P %{name}-common -g 136 -r -f bacula
648 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
652 echo "Updating bacula passwords and names..."
654 for f in *-password ; do
655 if [ ! -s $f ] ; then
656 openssl rand -base64 33 > $f
659 for cf in *.conf *.conf.rpmnew ; do
660 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
663 for cf in *.conf *.conf.rpmnew ; do
664 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
669 if [ "$1" = "0" ]; then
677 # XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
678 # about currently used version so we can't easily support these :(
681 [ -s %{_localstatedir}/bacula.db ] && \
682 DB_VER=`echo "select * from Version;" | \
683 %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
685 if [ -z "$DB_VER" ]; then
686 # grant privileges and create tables
687 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
688 %{_libexecdir}/%{name}/create_bacula_database > dev/null
689 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
691 echo "Backing up bacula tables"
692 echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
694 db_type="%{database}"
696 next_ver=$(($DB_VER + 1))
697 # support up to version 30; increase this if needed
698 for ver in $(seq $next_ver 30); do
699 prev_ver=$(($ver - 1))
701 if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
702 echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
703 %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
707 %{_libexecdir}/%{name}/update_bacula_tables
708 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
710 chown -R bacula:bacula %{_localstatedir}
711 chmod -R u+rX,go-rwx %{_localstatedir}/*
714 echo "Updating Bacula passwords and names..."
716 for f in *-password; do
718 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
720 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
722 /sbin/chkconfig --add bacula-dir
723 %service bacula-dir restart "Bacula Director daemon"
726 if [ "$1" = "0" ]; then
727 %service bacula-dir stop
728 /sbin/chkconfig --del bacula-dir
732 echo "Updating Bacula passwords and names..."
734 for f in *-password; do
736 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
738 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
740 /sbin/chkconfig --add bacula-fd
741 %service bacula-fd restart "Bacula File daemon"
744 if [ "$1" = "0" ]; then
745 %service bacula-fd stop
746 /sbin/chkconfig --del bacula-fd
750 echo "Updating Bacula passwords and names..."
752 for f in *-password; do
754 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
756 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
758 /sbin/chkconfig --add bacula-sd
759 %service bacula-sd restart "Bacula Storage daemon"
762 if [ "$1" = "0" ]; then
763 %service bacula-sd stop
764 /sbin/chkconfig --del bacula-sd
768 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
769 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
773 echo "Updating Bacula passwords and names..."
775 for f in *-password; do
777 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
779 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
782 echo "Updating Bacula passwords and names..."
784 for f in *-password; do
786 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
788 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
791 echo "Updating Bacula passwords and names..."
793 for f in *-password; do
795 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
797 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
800 echo "Updating Bacula passwords and names..."
802 for f in *-password; do
804 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
806 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
809 # link our current installed conf file to the rescue directory
810 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
813 echo "Creating rescue files for this system..."
814 cd %{_sysconfdir}/rescue
818 # remove the files created after the initial rpm installation
819 if [ "$1" = "0" ]; then
820 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
821 rm -f %{_sysconfdir}/rescue/partition.*
822 rm -f %{_sysconfdir}/rescue/format.*
823 rm -f %{_sysconfdir}/rescue/mount_drives
824 rm -f %{_sysconfdir}/rescue/start_network
825 rm -f %{_sysconfdir}/rescue/sfdisk
826 rm -rf %{_sysconfdir}/rescue/diskinfo/*
831 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \
832 prefix="${name%% *}" \
833 suffix="${name#* }" \
834 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
836 %service bacula-dir restart "Bacula Director daemon"
838 %define db_postun() \
840 if [ "$1" = "0" ]; then \
841 for f in %{_libexecdir}/%{name}/*_bacula_* ; do \
842 if [ ! -e "$f" ] ; then \
851 %postun db-postgresql
852 %db_postun postgresql
866 # dbi backend is different, as it is not bound with a specific db engine
870 %postun db-dbi -p /sbin/ldconfig
873 %defattr(644,root,root,755)
876 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
877 # do not remove bsmtp from files. Fix build if it is not installed.
878 %attr(755,root,root) %{_sbindir}/bsmtp
879 %attr(755,root,root) %{_sbindir}/btraceback
880 %attr(755,root,root) %{_libdir}/libbac-%{version}.so
881 %attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
882 %attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
883 %attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
884 %{_mandir}/man8/bacula.8*
885 %{_mandir}/man1/bsmtp.1*
886 %{_mandir}/man8/btraceback.8*
887 %dir %{_libexecdir}/%{name}
888 %{_libexecdir}/%{name}/btraceback.dbx
889 %{_libexecdir}/%{name}/btraceback.gdb
890 %{_libexecdir}/%{name}/bacula_config
891 %attr(770,root,bacula) %dir %{_localstatedir}
892 %attr(750,bacula,logs) %dir /var/log/bacula
893 %attr(640,bacula,logs) %ghost /var/log/bacula/log
896 %defattr(644,root,root,755)
897 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
898 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
899 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
900 %ghost %{_sysconfdir}/.pw.sed
901 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
902 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
903 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
904 %attr(755,root,root) %{_sbindir}/bacula-dir
905 %attr(755,root,root) %{_sbindir}/bregex
906 %attr(755,root,root) %{_sbindir}/bwild
907 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
908 %{_mandir}/man8/bacula-dir.8*
909 %{_mandir}/man8/bacula-dbcheck.8*
910 %{_libexecdir}/%{name}/query.sql
911 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
912 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
915 %defattr(644,root,root,755)
916 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
917 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
918 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
919 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
920 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
921 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
922 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
924 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
925 %ghost %{_libexecdir}/%{name}/create_bacula_database
926 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
927 %ghost %{_libexecdir}/%{name}/drop_bacula_database
928 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
929 %ghost %{_libexecdir}/%{name}/make_bacula_tables
930 %ghost %{_libexecdir}/%{name}/update_bacula_tables
933 %defattr(644,root,root,755)
934 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
935 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
936 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
937 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
938 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
939 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
940 %attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
942 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
943 %ghost %{_libexecdir}/%{name}/create_bacula_database
944 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
945 %ghost %{_libexecdir}/%{name}/drop_bacula_database
946 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
947 %ghost %{_libexecdir}/%{name}/make_bacula_tables
948 %ghost %{_libexecdir}/%{name}/update_bacula_tables
951 %defattr(644,root,root,755)
952 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
953 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
954 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
955 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
956 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
957 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
958 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
959 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
961 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
962 %ghost %{_libexecdir}/%{name}/create_bacula_database
963 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
964 %ghost %{_libexecdir}/%{name}/drop_bacula_database
965 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
966 %ghost %{_libexecdir}/%{name}/make_bacula_tables
967 %ghost %{_libexecdir}/%{name}/update_bacula_tables
970 %defattr(644,root,root,755)
971 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
972 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
973 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
974 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
975 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
976 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
977 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
978 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
979 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
980 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
981 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
982 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
983 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
984 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
985 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
986 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
987 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
988 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
989 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
990 %attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
992 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
996 %defattr(644,root,root,755)
998 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
999 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
1000 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
1001 %attr(755,root,root) %{_sbindir}/bacula-fd
1002 %attr(755,root,root) %{_libdir}/bpipe-fd.so
1003 %{_mandir}/man8/bacula-fd.8*
1006 %defattr(644,root,root,755)
1008 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
1009 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
1010 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
1011 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
1012 %attr(755,root,root) %{_sbindir}/bacula-sd
1013 %attr(755,root,root) %{_sbindir}/bcopy
1014 %attr(755,root,root) %{_sbindir}/bextract
1015 %attr(755,root,root) %{_sbindir}/bls
1016 %attr(755,root,root) %{_sbindir}/bscan
1017 %attr(755,root,root) %{_sbindir}/btape
1018 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
1019 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
1020 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
1021 %{_mandir}/man8/bacula-sd.8*
1022 %{_mandir}/man8/bcopy.8*
1023 %{_mandir}/man8/bextract.8*
1024 %{_mandir}/man8/bls.8*
1025 %{_mandir}/man8/bscan.8*
1026 %{_mandir}/man8/btape.8*
1029 %defattr(644,root,root,755)
1031 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
1032 %attr(755,root,root) %{_sbindir}/bconsole
1033 %{_mandir}/man8/bconsole.8*
1035 %if %{with console_wx}
1037 %defattr(644,root,root,755)
1039 %{_pixmapsdir}/%{name}.png
1040 %{_desktopdir}/bacula-wx.desktop
1041 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
1042 %attr(755,root,root) %{_sbindir}/bwx-console
1043 %{_mandir}/man1/bacula-bwxconsole.1*
1048 %defattr(644,root,root,755)
1050 %{_pixmapsdir}/%{name}.png
1051 %{_desktopdir}/bat.desktop
1052 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
1053 %attr(755,root,root) %{_sbindir}/bat
1054 %{_mandir}/man1/bat.1*
1058 %if %{with console_wx}
1060 %defattr(644,root,root,755)
1062 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
1063 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
1064 #%{_desktopdir}/%{name}-tray-monitor.desktop
1065 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
1066 %{_mandir}/man1/bacula-tray-monitor.1*
1071 %defattr(644,root,root,755)
1073 %dir %{_sysconfdir}/rescue
1074 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1075 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1076 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1077 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1078 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1079 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1080 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1081 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1082 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1083 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2