# - fix log file permissions
#
# Conditional build:
-%bcond_without console_wx # wx-console program
-%bcond_without gnome # gnome-console program
+%bcond_without console_wx # wx-console program
+%bcond_without gnome # gnome-console program
+%bcond_with sqlite # use SQLite
+%bcond_without bat # bat Qt4 GUI
+%bcond_without mysql # use MySQL
+%bcond_with pgsql # use PostgreSQL
%bcond_with python
%bcond_with rescue
+%bcond_with sqlite3 # use SQLite3 instead of SQLite 2
+%bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
+%if %{with sqlite}
+%define database sqlite
+%undefine with_mysql
+%undefine with_pgsql
+%endif
+%if %{with sqlite3}
+%define database sqlite3
+%undefine with_sqlite
+%undefine with_mysql
+%undefine with_pgsql
+%endif
+%if %{with pgsql}
+%define database postgresql
+%undefine with_sqlite
+%undefine with_sqlite3
+%undefine with_mysql
+%endif
+%if %{with mysql}
+%define database mysql
+%undefine with_sqlite
+%undefine with_sqlite3
+%undefine with_pgsql
+%undefine with_sqlite3_sync_off
+%endif
#
Summary: Bacula - The Network Backup Solution
-Summary(pl): Bacula - rozwi±zanie do wykonywania kopii zapasowych po sieci
+Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
Name: bacula
-Version: 1.38.7
-Release: 0.1
+Version: 2.4.4
+Release: 3
Epoch: 0
License: extended GPL v2
Group: Networking/Utilities
Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: 6273f45bfbcddd66e179bc6cb7e28ad1
-Source1: %{name}-manpages.tar.bz2
-# Source1-md5: e4dae86d6574b360e831efd3913e7f4c
-Source2: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.gz
-# Source2-md5: da29daa9027c402f5d6b55a4c7982fdb
-#Source3: http://dl.sourceforge.net/bacula/%{name}-gui-%{version}.tar.gz
-## Source3-md5: 5fb575ceed9dee0cdf8bc7f81ef60f54
-Source4: http://dl.sourceforge.net/bacula/%{name}-rescue-1.8.3.tar.gz
-# Source4-md5: 61e97e011e8d939bb15e47b6c8f0797d
+# Source0-md5: 4eb6155b45611018af03002d37a2ffde
+Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
+# Source1-md5: d9bb3e8ca8c9a4c741b83569c21a4806
+Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-%{version}.tar.gz
+# Source2-md5: 320f95575591d285c3192e58912322c4
Source10: %{name}-dir.init
Source11: %{name}-fd.init
Source12: %{name}-sd.init
Source15: %{name}-fd.sysconfig
Source16: %{name}-sd.sysconfig
Patch0: %{name}-dvd-handler_path.patch
-Patch1: %{name}-dvd_append.patch
+Patch1: %{name}-link.patch
+Patch2: %{name}-mysql.patch
+Patch3: %{name}-tinfo-readline.patch
+Patch4: %{name}-branding.patch
+Patch5: %{name}-conf.patch
+Patch6: %{name}-nostatic.patch
URL: http://www.bacula.org/
BuildRequires: acl-static
BuildRequires: automake
-%{?with_rescue:BuildRequires: fakeroot}
+%if %{with rescue}
+BuildRequires: fakeroot
+%endif
BuildRequires: glibc-static
%if %{with gnome}
BuildRequires: libgnome-devel >= 2.0
BuildRequires: openssl-devel
BuildRequires: openssl-static
BuildRequires: pkgconfig
-%{?with_python:BuildRequires: python-static}
+%if %{with python}
+BuildRequires: python-static
+%endif
+%if %{with bat}
+BuildRequires: QtCore-devel
+BuildRequires: QtGui-devel
+BuildRequires: qt4-build >= 4.3.3-3
+BuildRequires: qt4-qmake >= 4.3.3-3
+BuildRequires: qwt-devel >= 5.0.2-2
+%endif
+%{?with_mysql:BuildRequires: mysql-devel}
+%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: readline-devel
BuildRequires: rpmbuild(macros) >= 1.268
BuildRequires: sed >= 4.0
-BuildRequires: sqlite-devel
+%{?with_sqlite:BuildRequires: sqlite-devel}
+%{?with_sqlite3:BuildRequires: sqlite3-devel}
%if %{with console_wx}
-BuildRequires: wxGTK2-devel >= 2.4.0
+BuildRequires: wxGTK2-unicode-devel >= 2.4.0
%endif
BuildRequires: zlib-devel
BuildRequires: zlib-static
%define _sysconfdir /etc/%{name}
%define _localstatedir /var/lib/%{name}
+# dependency section is broken. ccache usage is instead to makefiles
+%undefine with_ccache
+
%description
Bacula - It comes by night and sucks the vital essence from your
computers.
advanced storage management features that make it easy to find and
recover lost or damaged files.
-%description -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula to zbiór programów umo¿liwiaj±cych administratorowi na
-zarz±dzanie kopiami zapasowymi, odzyskiwaniem i weryfikacj± danych w
-sieci komputerów ró¿nego rodzaju. W terminologii technicznej jest to
-program do kopii zapasowych pracuj±cy w architekturze klient-serwer.
-Bacula jest stosunkowo ³atwa w u¿yciu i wydajna, oferuj±c przy tym
-wiele zaawansowanych mo¿liwo¶ci przy zarz±dzaniu no¶nikami,
-u³atwiaj±cych znalezienie i odzyskanie utraconych lub uszkodzonych
-plików.
+Bacula to zbiór programów umożliwiających administratorowi na
+zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
%package common
Summary: Common files for bacula package
-Summary(pl): Pliki wspólne dla pakietu bacula
+Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
Group: Networking/Utilities
Requires(post): openssl-tools
Requires(post): sed >= 4.0
Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Conflicts: bacula-console < 0:1.34.6
advanced storage management features that make it easy to find and
recover lost or damaged files.
-%description common -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description common -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula to zbiór programów umo¿liwiaj±cych administratorowi na
-zarz±dzanie kopiami zapasowymi, odzyskiwaniem i weryfikacj± danych w
-sieci komputerów ró¿nego rodzaju. W terminologii technicznej jest to
-program do kopii zapasowych pracuj±cy w architekturze klient-serwer.
-Bacula jest stosunkowo ³atwa w u¿yciu i wydajna, oferuj±c przy tym
-wiele zaawansowanych mo¿liwo¶ci przy zarz±dzaniu no¶nikami,
-u³atwiaj±cych znalezienie i odzyskanie utraconych lub uszkodzonych
-plików.
+Bacula to zbiór programów umożliwiających administratorowi na
+zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
%package dir
Summary: Bacula Director and Catalog services
-Summary(pl): Us³ugi Bacula Director i Catalog
+Summary(pl.UTF-8): Usługi Bacula Director i Catalog
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
up. The Catalog services permit the System Administrator or user to
quickly locate and restore any desired file, since it maintains a
record of all Volumes used, all Jobs run, and all Files saved. This
-build requires sqlite to be installed separately as the catalog
+build requires %{database} to be installed separately as the catalog
database.
-%description dir -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description dir -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula Director to program nadzoruj±cy wszystkie operacje wykonywania
+Bacula Director to program nadzorujący wszystkie operacje wykonywania
kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
-Administrator u¿ywa Bacula Directora do szeregowania kopii zapasowych
-oraz odzyskiwania plików. Us³ugi katalogowe (Catalog services) s±
-u¿ywane przez programy odpowiedzialne za zarz±dzanie indeksami plików
-i baz± danych wolumenów dla wszystkich kopiowanych plików. Us³ugi
-katalogowe umo¿liwiaj± administratorowi lub u¿ytkownikowi szybko
-zlokalizowaæ i odtworzyæ dowolny plik, poniewa¿ utrzymuj± rekord ze
-wszystkimi u¿ywanymi wolumenami, uruchomionymi zadaniami i zapisanymi
-plikami. Pakiet wymaga sqlite zainstalowanego oddzielnie jako bazy
-danych dla katalogu.
+Administrator używa Bacula Directora do szeregowania kopii zapasowych
+oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
+używane przez programy odpowiedzialne za zarządzanie indeksami plików
+i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
+katalogowe umożliwiają administratorowi lub użytkownikowi szybko
+zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
+wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
+plikami. Pakiet wymaga %{database} zainstalowanego oddzielnie jako
+bazy danych dla katalogu.
%package console
Summary: Bacula Console
-Summary(pl): Konsola Baculi
+Summary(pl.UTF-8): Konsola Baculi
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
communicate with the Bacula Director. This is the text only console
interface.
-%description console -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description console -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula Console to program umo¿liwiaj±cy administratorowi lub
-u¿ytkownikowi komunikowanie siê z programem Bacula Director. To jest
+Bacula Console to program umożliwiający administratorowi lub
+użytkownikowi komunikowanie się z programem Bacula Director. To jest
interfejs czysto tekstowy.
%package console-wx
Summary: Bacula wxWidgets Console
-Summary(pl): Konsola Baculi oparta na wxWidgets
+Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
communicate with the Bacula Director. This is the wxWidgets GUI
interface.
-%description console-wx -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description console-wx -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula Console to program umo¿liwiaj±cy administratorowi lub
-u¿ytkownikowi komunikowanie siê z programem Bacula Director. To jest
+Bacula Console to program umożliwiający administratorowi lub
+użytkownikowi komunikowanie się z programem Bacula Director. To jest
interfejs graficzny oparty na wxWidgets.
%package console-gnome
Summary: Bacula GNOME Console
-Summary(pl): Konsola Baculi oparta dla GNOME
+Summary(pl.UTF-8): Konsola Baculi oparta dla GNOME
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Bacula Console is the program that allows the administrator or user to
communicate with the Bacula Director. This is the GNOME GUI interface.
-%description console-gnome -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description console-gnome -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Bacula Console to program umo¿liwiaj±cy administratorowi lub
-u¿ytkownikowi komunikowanie siê z programem Bacula Director. To jest
+Bacula Console to program umożliwiający administratorowi lub
+użytkownikowi komunikowanie się z programem Bacula Director. To jest
interfejs graficzny oparty na GNOME.
+%package console-qt4
+Summary: Bacula Qt4 Console
+Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
+Group: Networking/Utilities
+Requires(post): sed >= 4.0
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+
+%description console-qt4
+Bacula - It comes by night and sucks the vital essence from your
+computers.
+
+Bacula Console is the program that allows the administrator or user to
+communicate with the Bacula Director. This is the Qt4 GUI interface.
+
+%description console-qt4 -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
+
+Bacula Console to program umożliwiający administratorowi lub
+użytkownikowi komunikowanie się z programem Bacula Director. To jest
+interfejs graficzny oparty na Qt4.
+
%package tray-monitor
Summary: Bacula Tray Monitor
Group: Networking/Utilities
%package fd
Summary: Bacula File services (Client)
-Summary(pl): Us³ugi Bacula File (klient)
+Summary(pl.UTF-8): Usługi Bacula File (klient)
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
some of the documentation, the File daemon is referred to as the
Client (for example in Bacula configuration file).
-%description fd -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
-
-Us³ugi Bacula File (inaczej program kliencki) to oprogramowanie, które
-instaluje siê na maszynach, z których maj± byæ wykonywane kopie
-zapasowe. S± one specyficzne dla systemu operacyjnego, pod którym
-dzia³a dana maszyna i odpowiadaj± za dostarczanie atrybutów i danych
-plików na ¿±danie Directora. Us³ugi plikowe s± tak¿e odpowiedzialne za
-zale¿n± od systemu plików czê¶æ odzyskiwania atrybutów i danych plików
-podczas operacji odzyskiwania danych. Program dzia³a jako demon na
-maszynie, która ma byæ backupowana i w czê¶ci dokumentacji demon ten
-(File) jest nazywany klientem (na przyk³ad w pliku konfiguracyjnym
+%description fd -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
+
+Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
+instaluje się na maszynach, z których mają być wykonywane kopie
+zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
+działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
+plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
+zależną od systemu plików część odzyskiwania atrybutów i danych plików
+podczas operacji odzyskiwania danych. Program działa jako demon na
+maszynie, która ma być backupowana i w części dokumentacji demon ten
+(File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
Baculi).
%package sd
Summary: Bacula Storage services
-Summary(pl): Us³ugi Bacula Storage
+Summary(pl.UTF-8): Usługi Bacula Storage
Group: Networking/Utilities
Requires(post): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
media, e.g. files). The Storage services runs as a daemon on the
machine that has the backup device (usually a tape drive).
-%description sd -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
+%description sd -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
-Us³ugi Bacula Storage sk³adaj± siê z programów obs³uguj±cych
-przechowywanie danych oraz odzyskiwanie atrybutów i danych na
-fizycznych no¶nikach lub wolumenach. Innymi s³owy, demon Storage jest
-odpowiedzialny za odczyt i zapis ta¶m (lub innych no¶ników do
-przechowywania danych, np. plików). Us³ugi Storage dzia³aj± jako demon
-na maszynie, która zawiera urz±dzenie backupowe (zwykle napêd
-ta¶mowy).
+Usługi Bacula Storage składają się z programów obsługujących
+przechowywanie danych oraz odzyskiwanie atrybutów i danych na
+fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
+odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
+przechowywania danych, np. plików). Usługi Storage działają jako demon
+na maszynie, która zawiera urządzenie backupowe (zwykle napęd
+taśmowy).
%package rescue
Summary: Bacula - The Network Backup Solution
-Summary(pl): Bacula - rozwi±zanie do wykonywania kopii zapasowych po sieci
+Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
Group: Networking/Utilities
Requires: %{name}-fd = %{epoch}:%{version}-%{release}
Requires: coreutils
This package installs scripts for disaster recovery and builds rescue
floppy disk for bare metal recovery.
-To make the bacula rescue disk run "./make_rescue_disk --copy-static-bacula
-- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To recreate the
-rescue information for this system run ./getdiskinfo again.
-
-%description rescue -l pl
-Bacula - przychodzi noc± i wysysa ¿ywotny ekstrakt z komputerów.
-
-Bacula to zbiór programów umo¿liwiaj±cych administratorowi na
-zarz±dzanie kopiami zapasowymi, odzyskiwaniem i weryfikacj± danych
-w sieci komputerów ró¿nego rodzaju. W terminologii technicznej jest to
-program do kopii zapasowych pracuj±cy w architekturze klient-serwer.
-Bacula jest stosunkowo ³atwa w u¿yciu i wydajna, oferuj±c przy tym
-wiele zaawansowanych mo¿liwo¶ci przy zarz±dzaniu no¶nikami,
-u³atwiaj±cych znalezienie i odzyskanie utraconych lub uszkodzonych
-plików.
-
-Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkê
+To make the bacula rescue disk run "./make_rescue_disk
+--copy-static-bacula
+- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
+ recreate the rescue information for this system run ./getdiskinfo
+ again.
+
+%description rescue -l pl.UTF-8
+Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
+
+Bacula to zbiór programów umożliwiających administratorowi na
+zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
+sieci komputerów różnego rodzaju. W terminologii technicznej jest to
+program do kopii zapasowych pracujący w architekturze klient-serwer.
+Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
+wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
+ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
+plików.
+
+Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
ratunkowe do odtwarzania systemu od zera.
-Aby stworzyæ dyskietkê ratunkow± Baculi, nale¿y uruchomiæ "./make_rescue_disk
+Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić "./make_rescue_disk
--copy-static-bacula - --copy-etc-files" z katalogu
-%{_sysconfdir}/rescue . Aby ponownie utworzyæ informacje ratunkowe dla
-danego systemu, nale¿y ponownie uruchomiæ ./getdiskinfo .
+%{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe dla
+danego systemu, należy ponownie uruchomić ./getdiskinfo .
%prep
-%setup -q -a 1 -a 2
+%setup -q -a 1
+
%patch0 -p1
%patch1 -p1
-#tar -xf %{SOURCE3}
-tar -xf %{SOURCE4} && ln -s bacula-rescue-* rescue
-sed -i -e 's#wx-config#wx-gtk2-ansi-config#g' configure*
-sed -i -e 's#-lreadline -lhistory -ltermcap#-lreadline -lhistory#g' configure*
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
+
sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
src/cats/create_* src/cats/delete_* src/cats/drop_* \
src/cats/grant_* src/cats/make_* src/cats/update_*
%build
cp -f %{_datadir}/automake/config.sub autoconf
+cd autoconf && %{__aclocal} -I bacula-macros -I gettext-macros && cd ..
+%{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
+
CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
+WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
%configure \
--with-scriptdir=%{_libexecdir}/%{name} \
--%{!?with_gnome:dis}%{?with_gnome:en}able-gnome \
+ %{?with_bat:--enable-bat} \
--disable-conio \
--enable-smartalloc \
- %{?with_console_wx:--enable-wx-console} \
+ %{?with_console_wx:--enable-bwx-console} \
--enable-tray-monitor \
%{?with_python:--with-python} \
--with-readline \
--with-smtp-host=localhost \
--with-pid-dir=/var/run \
--with-subsys-dir=/var/lock/subsys \
- --with-sqlite \
+ --enable-batch-insert \
+ --with-%{database} \
+ %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
--with-dir-password="#FAKE-dir-password#" \
--with-fd-password="#FAKE-fd-password#" \
--with-sd-password="#FAKE-sd-password#" \
--with-mon-dir-password="#FAKE-mon-dir-password#" \
--with-mon-fd-password="#FAKE-mon-fd-password#" \
--with-mon-sd-password="#FAKE-mon-sd-password#" \
- --enable-static-fd \
--with-openssl
+%if %{with bat}
+cd src/qt-console
+qmake-qt4 bat.pro
+cd ../..
+%endif
+
%{__make}
%if %{with rescue}
install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir}}
+install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
# static daemon
-strip -R.comment -R.note src/filed/static-bacula-fd
-install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
-
-# tray-monitor is for regular users
-mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
+#strip -R.comment -R.note src/filed/static-bacula-fd
+#install src/filed/static-bacula-fd $RPM_BUILD_ROOT%{_sysconfdir}/rescue/bacula-fd
install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
+%if %{with console_wx}
+# tray-monitor is for regular users
+mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
+
install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
install scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT%{_desktopdir}/bacula.desktop
scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
sed -e 's#%{_sbindir}#%{_bindir}#' \
scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
+%endif
+
+%if %{with bat}
+install src/qt-console/bat $RPM_BUILD_ROOT%{_sbindir}
+install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
+%endif
%if %{with rescue}
# install the rescue stuff, these are the rescue scripts
install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
%endif
+touch $RPM_BUILD_ROOT/var/log/bacula/log
+
# install the updatedb scripts
install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
-# manual
-cp -a man1 man8 $RPM_BUILD_ROOT%{_mandir}
-
# place for site passwords
touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
# some file changes
rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
rm -f $RPM_BUILD_ROOT%{_sbindir}/static-bacula-fd
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/gnome*
-%if %{without console_wx}
+%if !%{with console_wx}
rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/wx-console*
%endif
touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
%post dir
umask 077
+
+# XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
+# about currently used version so we can't easily support these :(
+
+%if %{with sqlite} || %{with sqlite3}
[ -s %{_localstatedir}/bacula.db ] && \
DB_VER=`echo "select * from Version;" | \
- %{_bindir}/sqlite %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
+ %{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/dev/null`
+
if [ -z "$DB_VER" ]; then
# grant privileges and create tables
%{_libexecdir}/%{name}/grant_bacula_privileges > dev/null
%{_libexecdir}/%{name}/create_bacula_database > dev/null
%{_libexecdir}/%{name}/make_bacula_tables > dev/null
-elif [ "$DB_VER" -lt "9" ]; then
+else
echo "Backing up bacula tables"
- echo ".dump" | sqlite %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
- type=sqlite
- echo "Upgrading bacula tables"
- if [ "$DB_VER" -lt "9" ]; then
- if [ "$DB_VER" -lt "8" ]; then
- if [ "$DB_VER" -lt "7" ]; then
- if [ "$DB_VER" -lt "6" ]; then
- if [ "$DB_VER" -lt "5" ]; then
- %{_libexecdir}/%{name}/update_${type}_tables_4_to_5
- fi
- %{_libexecdir}/%{name}/update_${type}_tables_5_to_6
- fi
- %{_libexecdir}/%{name}/update_${type}_tables_6_to_7
- fi
- %{_libexecdir}/%{name}/update_${type}_tables_7_to_8
+ echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2
+
+ db_type="%{database}"
+
+ next_ver=$(($DB_VER + 1))
+ # support up to version 30; increase this if needed
+ for ver in $(seq $next_ver 30); do
+ prev_ver=$(($ver - 1))
+
+ if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then
+ echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..."
+ %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver}
fi
- %{_libexecdir}/%{name}/update_${type}_tables_8_to_9
- fi
+ done
+
%{_libexecdir}/%{name}/update_bacula_tables
echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2"
fi
chown -R bacula:bacula %{_localstatedir}
chmod -R u+rX,go-rwx %{_localstatedir}/*
+%endif
echo "Updating Bacula passwords and names..."
cd /etc/bacula
done
sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+%post console-qt4
+echo "Updating Bacula passwords and names..."
+cd /etc/bacula
+for f in *-password ; do
+ p=`cat $f`
+ sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || :
+done
+sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || :
+
%post tray-monitor
echo "Updating Bacula passwords and names..."
cd /etc/bacula
%doc LICENSE
%dir %{_sysconfdir}
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
-%attr(755,root,root) %{_sbindir}/btraceback
%attr(755,root,root) %{_sbindir}/bsmtp
+%attr(755,root,root) %{_sbindir}/btraceback
%{_mandir}/man8/bacula.8*
+%{_mandir}/man1/bsmtp.1*
+%{_mandir}/man8/btraceback.8*
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/btraceback.dbx
%{_libexecdir}/%{name}/btraceback.gdb
%attr(770,root,bacula) %dir %{_localstatedir}
+%attr(750,bacula,logs) %dir /var/log/bacula
+%attr(640,bacula,logs) %ghost /var/log/bacula/log
%files dir
%defattr(644,root,root,755)
%doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
-%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
+#%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
%ghost %{_sysconfdir}/.pw.sed
%attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
%attr(754,root,root) /etc/rc.d/init.d/bacula-dir
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
%attr(755,root,root) %{_sbindir}/bacula-dir
+%attr(755,root,root) %{_sbindir}/bregex
+%attr(755,root,root) %{_sbindir}/bwild
%attr(755,root,root) %{_sbindir}/dbcheck
%{_mandir}/man8/bacula-dir.8*
-%{_mandir}/man1/dbcheck.1*
+%{_mandir}/man8/dbcheck.8*
%{_libexecdir}/%{name}/query.sql
+%if %{with sqlite3}
+%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
+%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
+%endif
+%if %{with sqlite}
%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite_database
%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_database
%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite_tables
%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite_privileges
%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite*
+%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
+%endif
+%if %{with mysql}
+%attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
+%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
+%endif
+%if %{with pgsql}
+%attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
+%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
+%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
+%attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
+%endif
%attr(755,root,root) %{_libexecdir}/%{name}/create_bacula_database
%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_database
%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_tables
%doc LICENSE
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
%attr(754,root,root) /etc/rc.d/init.d/bacula-fd
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
%attr(755,root,root) %{_sbindir}/bacula-fd
%{_mandir}/man8/bacula-fd.8*
%files sd
%defattr(644,root,root,755)
%doc LICENSE
-%dir %{_sysconfdir}
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
%attr(754,root,root) /etc/rc.d/init.d/bacula-sd
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
%attr(755,root,root) %{_sbindir}/bacula-sd
%attr(755,root,root) %{_sbindir}/bcopy
%attr(755,root,root) %{_sbindir}/bextract
%attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
%attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
%{_mandir}/man8/bacula-sd.8*
-%{_mandir}/man1/bcopy.1*
-%{_mandir}/man1/bextract.1*
-%{_mandir}/man1/bls.1*
-%{_mandir}/man1/bscan.1*
-%{_mandir}/man1/btape.1*
+%{_mandir}/man8/bcopy.8*
+%{_mandir}/man8/bextract.8*
+%{_mandir}/man8/bls.8*
+%{_mandir}/man8/bscan.8*
+%{_mandir}/man8/btape.8*
%files console
%defattr(644,root,root,755)
%doc LICENSE
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
%attr(755,root,root) %{_sbindir}/bconsole
-%{_mandir}/man1/bconsole.1*
+%{_mandir}/man8/bconsole.8*
%if %{with console_wx}
%files console-wx
%doc LICENSE
%{_pixmapsdir}/%{name}.png
%{_desktopdir}/bacula-wx.desktop
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/wx-console.conf
-%attr(755,root,root) %{_sbindir}/wx-console
-%{_mandir}/man1/wx-console.1*
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
+%attr(755,root,root) %{_sbindir}/bwx-console
+%{_mandir}/man1/bacula-bwxconsole.1*
%endif
%if %{with gnome}
%doc LICENSE
%{_pixmapsdir}/%{name}.png
%{_desktopdir}/bacula.desktop
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gnome-console.conf
-%attr(755,root,root) %{_sbindir}/gnome-console
-#%{_mandir}/man1/gnome-console.1*
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bgnome-console.conf
+%attr(755,root,root) %{_sbindir}/bgnome-console
+%{_mandir}/man1/bacula-bgnome-console.1*
%endif
+%if %{with bat}
+%files console-qt4
+%defattr(644,root,root,755)
+%doc LICENSE
+%{_pixmapsdir}/%{name}.png
+%{_desktopdir}/bat.desktop
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
+%attr(755,root,root) %{_sbindir}/bat
+%{_mandir}/man1/bat.1*
+%endif
+
+%if %{with console_wx}
%files tray-monitor
%defattr(644,root,root,755)
%doc LICENSE
%{_pixmapsdir}/%{name}-tray-monitor.xpm
%{_desktopdir}/%{name}-tray-monitor.desktop
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
%attr(755,root,root) %{_bindir}/bacula-tray-monitor
-#%{_mandir}/man1/bacula-tray-monitor.1*
+%{_mandir}/man1/bacula-tray-monitor.1*
+%endif
%if %{with rescue}
%files rescue