2 # - update desktop files, think about su-wrappers for console
4 # - fix log file permissions
5 #warning: Installed (but unpackaged) file(s) found:
6 # /usr/lib64/bacula/bacula-ctl-dir
7 # /usr/lib64/bacula/bacula-ctl-fd
8 # /usr/lib64/bacula/bacula-ctl-sd
9 # /usr/lib64/bacula/bacula_config
10 # /usr/lib64/bacula/update_sqlite_tables_10_to_11.in
11 # /usr/lib64/bacula/update_sqlite_tables_4_to_5
12 # /usr/lib64/bacula/update_sqlite_tables_5_to_6
13 # /usr/lib64/bacula/update_sqlite_tables_6_to_7
14 # /usr/lib64/bacula/update_sqlite_tables_7_to_8
15 # /usr/lib64/bacula/update_sqlite_tables_8_to_9
16 # /usr/lib64/bacula/update_sqlite_tables_9_to_10.in
17 # /usr/lib64/bpipe-fd.so
18 # /usr/lib64/libbac.la
19 # /usr/lib64/libbac.so
20 # /usr/lib64/libbaccfg.la
21 # /usr/lib64/libbaccfg.so
22 # /usr/lib64/libbacfind.la
23 # /usr/lib64/libbacfind.so
24 # /usr/lib64/libbacpy.la
25 # /usr/lib64/libbacpy.so
26 # /usr/lib64/libbacsql.la
27 # /usr/lib64/libbacsql.so
29 # /usr/share/doc/bacula/html/clients.html
30 # /usr/share/doc/bacula/html/console.html
31 # /usr/share/doc/bacula/html/filesets.html
32 # /usr/share/doc/bacula/html/index.html
33 # /usr/share/doc/bacula/html/joblist.html
34 # /usr/share/doc/bacula/html/jobplot.html
35 # /usr/share/doc/bacula/html/jobs.html
36 # /usr/share/doc/bacula/html/mail-message-new.png
37 # /usr/share/doc/bacula/html/media.html
38 # /usr/share/doc/bacula/html/restore.html
39 # /usr/share/doc/bacula/html/status.png
40 # /usr/share/doc/bacula/html/storage.html
44 %bcond_without console_wx # wx-console program
45 %bcond_without bat # bat Qt4 GUI
46 %bcond_without dbi # use Database Independent Abstraction Layer (libdbi)
47 %bcond_with mysql # use MySQL
48 %bcond_with pgsql # use PostgreSQL
51 %bcond_with sqlite3 # use SQLite3 instead of SQLite 2
52 %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
58 %undefine with_sqlite3
61 %define database sqlite3
67 %define database postgresql
70 %undefine with_sqlite3
73 %define database mysql
76 %undefine with_sqlite3
78 %if %{without sqlite3}
79 %undefine with_sqlite3_sync_off
82 Summary: Bacula - The Network Backup Solution
83 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
88 License: extended GPL v2
89 Group: Networking/Utilities
90 Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
91 # Source0-md5: beb9f8da196b3c9ffb0356f087dbdb99
92 Source1: http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
93 # Source1-md5: ce2ef0dca50ab916fd6701b53b7bb4df
94 Source2: http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
95 # Source2-md5: 349623581cfe0bcd798dd137abac959a
96 Source10: %{name}-dir.init
97 Source11: %{name}-fd.init
98 Source12: %{name}-sd.init
99 Source13: %{name}.logrotate
100 Source14: %{name}-dir.sysconfig
101 Source15: %{name}-fd.sysconfig
102 Source16: %{name}-sd.sysconfig
103 Patch0: %{name}-mtx-changer.patch
104 Patch1: %{name}-link.patch
105 Patch2: %{name}-tinfo-readline.patch
106 Patch3: %{name}-branding.patch
107 Patch4: %{name}-conf.patch
108 Patch5: %{name}-desktop.patch
109 Patch6: %{name}-64bitbuild_fix.patch
110 Patch7: %{name}-dbi_fixes.patch
111 URL: http://www.bacula.org/
112 BuildRequires: acl-devel
113 BuildRequires: autoconf
114 BuildRequires: automake
115 BuildRequires: gettext-devel
116 BuildRequires: libcap-devel
117 %{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4}
118 BuildRequires: libtool
120 BuildRequires: fakeroot
122 BuildRequires: libwrap-devel
124 BuildRequires: ncurses-devel
125 BuildRequires: openssl-devel
126 BuildRequires: pkgconfig
128 BuildRequires: python-static
131 BuildRequires: QtCore-devel
132 BuildRequires: QtGui-devel
133 BuildRequires: qt4-build >= 4.3.3-3
134 BuildRequires: qt4-qmake >= 4.3.3-3
135 BuildRequires: qwt-devel >= 5.0.2-2
137 %{?with_mysql:BuildRequires: mysql-devel}
138 %{?with_pgsql:BuildRequires: postgresql-devel}
139 BuildRequires: readline-devel
140 BuildRequires: rpmbuild(macros) >= 1.268
141 BuildRequires: sed >= 4.0
142 %{?with_sqlite3:BuildRequires: sqlite3-devel}
143 %if %{with console_wx}
144 BuildRequires: wxGTK2-unicode-devel >= 2.4.0
146 BuildRequires: zlib-devel
147 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
149 %define _sysconfdir /etc/%{name}
150 %define _localstatedir /var/lib/%{name}
152 # dependency section is broken. ccache usage is instead to makefiles
153 %undefine with_ccache
156 Bacula - It comes by night and sucks the vital essence from your
159 Bacula is a set of computer programs that permit you (or the system
160 administrator) to manage backup, recovery, and verification of
161 computer data across a network of computers of different kinds. In
162 technical terms, it is a network client/server based backup program.
163 Bacula is relatively easy to use and efficient, while offering many
164 advanced storage management features that make it easy to find and
165 recover lost or damaged files.
167 %description -l pl.UTF-8
168 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
170 Bacula to zbiór programów umożliwiających administratorowi na
171 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
172 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
173 program do kopii zapasowych pracujący w architekturze klient-serwer.
174 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
175 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
176 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
180 Summary: Common files for bacula package
181 Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
182 Group: Networking/Utilities
183 Requires(post): openssl-tools
184 Requires(post): sed >= 4.0
185 Requires(post,preun): /sbin/chkconfig
186 Requires(postun): /usr/sbin/groupdel
187 Requires(postun): /usr/sbin/userdel
188 Requires(pre): /usr/sbin/groupadd
189 Requires(pre): /usr/sbin/useradd
190 Conflicts: bacula-console < 0:1.34.6
191 Conflicts: bacula-dir < 0:1.34.6
192 Conflicts: bacula-fd < 0:1.34.6
193 Conflicts: bacula-sd < 0:1.34.6
196 Bacula - It comes by night and sucks the vital essence from your
199 Bacula is a set of computer programs that permit you (or the system
200 administrator) to manage backup, recovery, and verification of
201 computer data across a network of computers of different kinds. In
202 technical terms, it is a network client/server based backup program.
203 Bacula is relatively easy to use and efficient, while offering many
204 advanced storage management features that make it easy to find and
205 recover lost or damaged files.
207 %description common -l pl.UTF-8
208 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
210 Bacula to zbiór programów umożliwiających administratorowi na
211 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
212 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
213 program do kopii zapasowych pracujący w architekturze klient-serwer.
214 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
215 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
216 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
220 Summary: Bacula Director and Catalog services
221 Summary(pl.UTF-8): Usługi Bacula Director i Catalog
222 Group: Networking/Utilities
223 Requires(post): sed >= 4.0
224 Requires: %{name}-common = %{epoch}:%{version}-%{release}
225 Obsoletes: bacula-updatedb
228 Bacula - It comes by night and sucks the vital essence from your
231 Bacula Director is the program that supervises all the backup,
232 restore, verify and archive operations. The system administrator uses
233 the Bacula Director to schedule backups and to recover files. Catalog
234 services are comprised of the software programs responsible for
235 maintaining the file indexes and volume databases for all files backed
236 up. The Catalog services permit the System Administrator or user to
237 quickly locate and restore any desired file, since it maintains a
238 record of all Volumes used, all Jobs run, and all Files saved.
240 %description dir -l pl.UTF-8
241 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
243 Bacula Director to program nadzorujący wszystkie operacje wykonywania
244 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
245 Administrator używa Bacula Directora do szeregowania kopii zapasowych
246 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
247 używane przez programy odpowiedzialne za zarządzanie indeksami plików
248 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
249 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
250 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
251 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
255 Summary: Bacula Console
256 Summary(pl.UTF-8): Konsola Baculi
257 Group: Networking/Utilities
258 Requires(post): sed >= 4.0
259 Requires: %{name}-common = %{epoch}:%{version}-%{release}
262 Bacula - It comes by night and sucks the vital essence from your
265 Bacula Console is the program that allows the administrator or user to
266 communicate with the Bacula Director. This is the text only console
269 %description console -l pl.UTF-8
270 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
272 Bacula Console to program umożliwiający administratorowi lub
273 użytkownikowi komunikowanie się z programem Bacula Director. To jest
274 interfejs czysto tekstowy.
277 Summary: Bacula wxWidgets Console
278 Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
279 Group: Networking/Utilities
280 Requires(post): sed >= 4.0
281 Requires: %{name}-common = %{epoch}:%{version}-%{release}
283 %description console-wx
284 Bacula - It comes by night and sucks the vital essence from your
287 Bacula Console is the program that allows the administrator or user to
288 communicate with the Bacula Director. This is the wxWidgets GUI
291 %description console-wx -l pl.UTF-8
292 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
294 Bacula Console to program umożliwiający administratorowi lub
295 użytkownikowi komunikowanie się z programem Bacula Director. To jest
296 interfejs graficzny oparty na wxWidgets.
299 Summary: Bacula Qt4 Console
300 Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
301 Group: Networking/Utilities
302 Requires(post): sed >= 4.0
303 Requires: %{name}-common = %{epoch}:%{version}-%{release}
305 %description console-qt4
306 Bacula - It comes by night and sucks the vital essence from your
309 Bacula Console is the program that allows the administrator or user to
310 communicate with the Bacula Director. This is the Qt4 GUI interface.
312 %description console-qt4 -l pl.UTF-8
313 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
315 Bacula Console to program umożliwiający administratorowi lub
316 użytkownikowi komunikowanie się z programem Bacula Director. To jest
317 interfejs graficzny oparty na Qt4.
319 %package tray-monitor
320 Summary: Bacula Tray Monitor
321 Group: Networking/Utilities
322 Requires(post): sed >= 4.0
323 Requires: %{name}-common = %{epoch}:%{version}-%{release}
325 %description tray-monitor
326 Bacula - It comes by night and sucks the vital essence from your
329 The Monitor program is typically an icon in the system tray. However,
330 once the icon is expanded into a full window, the administrator or
331 user can obtain status information about the Director or the backup
332 status on the local workstation or any other Bacula daemon that is
336 Summary: Bacula File services (Client)
337 Summary(pl.UTF-8): Usługi Bacula File (klient)
338 Group: Networking/Utilities
339 Requires(post): sed >= 4.0
340 Requires: %{name}-common = %{epoch}:%{version}-%{release}
343 Bacula - It comes by night and sucks the vital essence from your
346 Bacula File services (or Client program) is the software program that
347 is installed on the machine to be backed up. It is specific to the
348 operating system on which it runs and is responsible for providing the
349 file attributes and data when requested by the Director. The File
350 services are also responsible for the file system dependent part of
351 restoring the file attributes and data during a recovery operation.
352 This program runs as a daemon on the machine to be backed up, and in
353 some of the documentation, the File daemon is referred to as the
354 Client (for example in Bacula configuration file).
356 %description fd -l pl.UTF-8
357 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
359 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
360 instaluje się na maszynach, z których mają być wykonywane kopie
361 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
362 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
363 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
364 zależną od systemu plików część odzyskiwania atrybutów i danych plików
365 podczas operacji odzyskiwania danych. Program działa jako demon na
366 maszynie, która ma być backupowana i w części dokumentacji demon ten
367 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
371 Summary: Bacula Storage services
372 Summary(pl.UTF-8): Usługi Bacula Storage
373 Group: Networking/Utilities
374 Requires(post): sed >= 4.0
375 Requires: %{name}-common = %{epoch}:%{version}-%{release}
376 Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
379 Bacula - It comes by night and sucks the vital essence from your
382 Bacula Storage services consist of the software programs that perform
383 the storage and recovery of the file attributes and data to the
384 physical backup media or volumes. In other words, the Storage daemon
385 is responsible for reading and writing your tapes (or other storage
386 media, e.g. files). The Storage services runs as a daemon on the
387 machine that has the backup device (usually a tape drive).
389 %description sd -l pl.UTF-8
390 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
392 Usługi Bacula Storage składają się z programów obsługujących
393 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
394 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
395 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
396 przechowywania danych, np. plików). Usługi Storage działają jako demon
397 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
401 Summary: Bacula - The Network Backup Solution
402 Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
403 Group: Networking/Utilities
404 Requires: %{name}-fd = %{epoch}:%{version}-%{release}
409 Bacula - It comes by night and sucks the vital essence from your
412 Bacula is a set of computer programs that permit you (or the system
413 administrator) to manage backup, recovery, and verification of
414 computer data across a network of computers of different kinds. In
415 technical terms, it is a network client/server based backup program.
416 Bacula is relatively easy to use and efficient, while offering many
417 advanced storage management features that make it easy to find and
418 recover lost or damaged files.
420 This package installs scripts for disaster recovery and builds rescue
421 floppy disk for bare metal recovery.
423 To make the bacula rescue disk run "./make_rescue_disk
425 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
426 recreate the rescue information for this system run ./getdiskinfo
429 %description rescue -l pl.UTF-8
430 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
432 Bacula to zbiór programów umożliwiających administratorowi na
433 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
434 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
435 program do kopii zapasowych pracujący w architekturze klient-serwer.
436 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
437 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
438 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
441 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
442 ratunkowe do odtwarzania systemu od zera.
444 Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić "./make_rescue_disk
445 --copy-static-bacula - --copy-etc-files" z katalogu
446 %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe dla
447 danego systemu, należy ponownie uruchomić ./getdiskinfo .
458 %{?with_dbi:%patch7 -p1}
460 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
462 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
463 src/cats/create_* src/cats/delete_* src/cats/drop_* \
464 src/cats/grant_* src/cats/make_* src/cats/update_*
465 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
468 for dbtype in bdb mysql postgresql sqlite3; do
469 sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
475 %{__aclocal} -I bacula-macros -I gettext-macros
476 # $BUILD_DIR not seen by libtoolize, export it
477 BUILD_DIR=.. %{__libtoolize}
479 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
481 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
482 WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
484 --with-scriptdir=%{_libexecdir}/%{name} \
485 %{?with_bat:--enable-bat} \
487 --enable-smartalloc \
488 %{?with_console_wx:--enable-bwx-console} \
489 --enable-tray-monitor \
490 %{?with_python:--with-python} \
492 --with-tcp-wrappers \
493 --with-working-dir=%{_var}/lib/%{name} \
494 --with-dump-email="root@localhost" \
495 --with-job-email="root@localhost" \
496 --with-smtp-host=localhost \
497 --with-pid-dir=/var/run \
498 --with-subsys-dir=/var/lock/subsys \
499 --enable-batch-insert \
501 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
502 --with-dir-password="#FAKE-dir-password#" \
503 --with-fd-password="#FAKE-fd-password#" \
504 --with-sd-password="#FAKE-sd-password#" \
505 --with-mon-dir-password="#FAKE-mon-dir-password#" \
506 --with-mon-fd-password="#FAKE-mon-fd-password#" \
507 --with-mon-sd-password="#FAKE-mon-sd-password#" \
527 rm -rf $RPM_BUILD_ROOT
529 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
530 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
531 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
534 DESTDIR=$RPM_BUILD_ROOT
536 install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
537 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
538 install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
539 install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
540 install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
541 install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
542 install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
544 %if %{with console_wx}
545 # tray-monitor is for regular users
546 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
548 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
549 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
550 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
551 scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
552 #sed -e 's#%{_sbindir}#%{_bindir}#' \
553 # scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
557 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir}
558 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
562 # install the rescue stuff, these are the rescue scripts
563 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
564 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
565 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
566 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
569 touch $RPM_BUILD_ROOT/var/log/bacula/log
571 # install the updatedb scripts
572 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
574 # place for site passwords
575 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
576 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
578 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
581 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
582 %if %{without console_wx}
583 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
585 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
587 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
588 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
589 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
590 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
591 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
592 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
593 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
596 rm -rf $RPM_BUILD_ROOT
599 %groupadd -P %{name}-common -g 136 -r -f bacula
600 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
604 echo "Updating bacula passwords and names..."
606 for f in *-password ; do
607 if [ ! -s $f ] ; then
608 openssl rand -base64 33 > $f
611 for cf in *.conf *.conf.rpmnew ; do
612 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
615 for cf in *.conf *.conf.rpmnew ; do
616 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
621 if [ "$1" = "0" ]; then
629 # XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
630 # about currently used version so we can't easily support these :(
633 [ -s %{_localstatedir}/bacula.db ] && \
634 DB_VER=`echo "select * from Version;" | \
635 %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
637 if [ -z "$DB_VER" ]; then
638 # grant privileges and create tables
639 %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
640 %{_libexecdir}/%{name}/create_bacula_database > dev/null
641 %{_libexecdir}/%{name}/make_bacula_tables > dev/null
643 echo "Backing up bacula tables"
644 echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
646 db_type="%{database}"
648 next_ver=$(($DB_VER + 1))
649 # support up to version 30; increase this if needed
650 for ver in $(seq $next_ver 30); do
651 prev_ver=$(($ver - 1))
653 if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
654 echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
655 %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
659 %{_libexecdir}/%{name}/update_bacula_tables
660 echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
662 chown -R bacula:bacula %{_localstatedir}
663 chmod -R u+rX,go-rwx %{_localstatedir}/*
666 echo "Updating Bacula passwords and names..."
668 for f in *-password; do
670 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
672 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
674 /sbin/chkconfig --add bacula-dir
675 %service bacula-dir restart "Bacula Director daemon"
678 if [ "$1" = "0" ]; then
679 %service bacula-dir stop
680 /sbin/chkconfig --del bacula-dir
684 echo "Updating Bacula passwords and names..."
686 for f in *-password; do
688 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
690 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
692 /sbin/chkconfig --add bacula-fd
693 %service bacula-fd restart "Bacula File daemon"
696 if [ "$1" = "0" ]; then
697 %service bacula-fd stop
698 /sbin/chkconfig --del bacula-fd
702 echo "Updating Bacula passwords and names..."
704 for f in *-password; do
706 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
708 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
710 /sbin/chkconfig --add bacula-sd
711 %service bacula-sd restart "Bacula Storage daemon"
714 if [ "$1" = "0" ]; then
715 %service bacula-sd stop
716 /sbin/chkconfig --del bacula-sd
720 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
721 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
725 echo "Updating Bacula passwords and names..."
727 for f in *-password; do
729 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
731 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
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 || :
743 echo "Updating Bacula passwords and names..."
745 for f in *-password; do
747 sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
749 sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
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 || :
761 # link our current installed conf file to the rescue directory
762 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
765 echo "Creating rescue files for this system..."
766 cd %{_sysconfdir}/rescue
770 # remove the files created after the initial rpm installation
771 if [ "$1" = "0" ]; then
772 rm -f %{_sysconfdir}/rescue/bacula-fd.conf
773 rm -f %{_sysconfdir}/rescue/partition.*
774 rm -f %{_sysconfdir}/rescue/format.*
775 rm -f %{_sysconfdir}/rescue/mount_drives
776 rm -f %{_sysconfdir}/rescue/start_network
777 rm -f %{_sysconfdir}/rescue/sfdisk
778 rm -rf %{_sysconfdir}/rescue/diskinfo/*
782 %defattr(644,root,root,755)
785 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
786 #%attr(755,root,root) %{_sbindir}/bsmtp
787 %attr(755,root,root) %{_sbindir}/btraceback
788 %attr(755,root,root) /%{_libdir}/libbac-%{version}.so
789 %attr(755,root,root) /%{_libdir}/libbaccfg-%{version}.so
790 %attr(755,root,root) /%{_libdir}/libbacfind-%{version}.so
791 %attr(755,root,root) /%{_libdir}/libbacpy-%{version}.so
792 %attr(755,root,root) /%{_libdir}/libbacsql-%{version}.so
793 %{_mandir}/man8/bacula.8*
794 %{_mandir}/man1/bsmtp.1*
795 %{_mandir}/man8/btraceback.8*
796 %dir %{_libexecdir}/%{name}
797 %{_libexecdir}/%{name}/btraceback.dbx
798 %{_libexecdir}/%{name}/btraceback.gdb
799 %attr(770,root,bacula) %dir %{_localstatedir}
800 %attr(750,bacula,logs) %dir /var/log/bacula
801 %attr(640,bacula,logs) %ghost /var/log/bacula/log
804 %defattr(644,root,root,755)
805 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
806 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
807 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
808 %ghost %{_sysconfdir}/.pw.sed
809 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
810 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
811 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
812 %attr(755,root,root) %{_sbindir}/bacula-dir
813 #%attr(755,root,root) %{_sbindir}/bregex
814 #%attr(755,root,root) %{_sbindir}/bwild
815 #%attr(755,root,root) %{_sbindir}/dbcheck
816 %{_mandir}/man8/bacula-dir.8*
817 %{_mandir}/man8/dbcheck.8*
818 %{_libexecdir}/%{name}/query.sql
819 %if %{with bdb} || %{with dbi}
820 %attr(755,root,root) %{_libexecdir}/%{name}/create_bdb_database
821 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_database
822 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_tables
823 %attr(755,root,root) %{_libexecdir}/%{name}/grant_bdb_privileges
824 %attr(755,root,root) %{_libexecdir}/%{name}/make_bdb_tables
825 %attr(755,root,root) %{_libexecdir}/%{name}/update_bdb_*
827 %if %{with sqlite3} || %{with dbi}
828 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
829 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
830 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
831 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
832 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
833 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
835 %if %{with mysql} || %{with dbi}
836 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
837 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
838 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
839 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
840 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
841 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
843 %if %{with pgsql} || %{with dbi}
844 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
845 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
846 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
847 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
848 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
849 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
852 %attr(755,root,root) %{_libexecdir}/%{name}/create_bacula_database
853 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_database
854 %attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_tables
855 %attr(755,root,root) %{_libexecdir}/%{name}/grant_bacula_privileges
856 %attr(755,root,root) %{_libexecdir}/%{name}/make_bacula_tables
857 %attr(755,root,root) %{_libexecdir}/%{name}/update_bacula_tables
859 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
860 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
863 %defattr(644,root,root,755)
865 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
866 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
867 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
868 %attr(755,root,root) %{_sbindir}/bacula-fd
869 %{_mandir}/man8/bacula-fd.8*
872 %defattr(644,root,root,755)
874 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
875 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
876 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
877 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
878 %attr(755,root,root) %{_sbindir}/bacula-sd
879 %attr(755,root,root) %{_sbindir}/bcopy
880 %attr(755,root,root) %{_sbindir}/bextract
881 %attr(755,root,root) %{_sbindir}/bls
882 %attr(755,root,root) %{_sbindir}/bscan
883 %attr(755,root,root) %{_sbindir}/btape
884 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
885 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
886 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
887 %{_mandir}/man8/bacula-sd.8*
888 %{_mandir}/man8/bcopy.8*
889 %{_mandir}/man8/bextract.8*
890 %{_mandir}/man8/bls.8*
891 %{_mandir}/man8/bscan.8*
892 %{_mandir}/man8/btape.8*
895 %defattr(644,root,root,755)
897 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
898 %attr(755,root,root) %{_sbindir}/bconsole
899 %{_mandir}/man8/bconsole.8*
901 %if %{with console_wx}
903 %defattr(644,root,root,755)
905 %{_pixmapsdir}/%{name}.png
906 %{_desktopdir}/bacula-wx.desktop
907 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
908 %attr(755,root,root) %{_sbindir}/bwx-console
909 %{_mandir}/man1/bacula-bwxconsole.1*
914 %defattr(644,root,root,755)
916 %{_pixmapsdir}/%{name}.png
917 %{_desktopdir}/bat.desktop
918 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
919 %attr(755,root,root) %{_sbindir}/bat
920 %{_mandir}/man1/bat.1*
923 %if %{with console_wx}
925 %defattr(644,root,root,755)
927 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
928 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
929 #%{_desktopdir}/%{name}-tray-monitor.desktop
930 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
931 %{_mandir}/man1/bacula-tray-monitor.1*
936 %defattr(644,root,root,755)
938 %dir %{_sysconfdir}/rescue
939 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
940 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
941 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
942 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
943 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
944 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
945 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
946 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
947 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
948 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2