-# TODO:
-# - update desktop files, think about su-wrappers for console
-# - package web admin
+## TODO:
+# - fix libtoolize
+# - update desktop files, think about su-wrappers for console (with .desktop files)
# - fix log file permissions
#
# Conditional build:
-%bcond_without console_wx # wx-console program
-%bcond_without gnome # gnome-console program
-%bcond_with sqlite # use SQLite
-%bcond_without bat # bat Qt4 GUI
+%if "%{pld_release}" == "ac"
+%bcond_with qt # BAT / qt-console Qt4 GUI
+%else
+%bcond_without qt # BAT / qt-console Qt4 GUI
+%endif
%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_without pgsql # use PostgreSQL
+%bcond_without sqlite3 # use SQLite3
+%bcond_without nagios # build nagios plugin
%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
+
+%if %{without sqlite3}
%undefine with_sqlite3_sync_off
%endif
-#
+
+%define qtver 4.8.4
Summary: Bacula - The Network Backup Solution
Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
Name: bacula
-Version: 3.0.0
-Release: 0.1
-Epoch: 0
-License: extended GPL v2
+Version: 9.2.1
+Release: 1
+License: AGPL v3
Group: Networking/Utilities
-Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
-# Source0-md5: 5ea5294c4f66f0d8ba1414f1ca9dc79b
-Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
-# Source1-md5: 2c3a1c6ba46b1371240a9b8d053fdf61
-Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-%{version}.tar.gz
-# Source2-md5: b31af264219f6e6a0985288d810d7bb6
+Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
+# Source0-md5: a0f825a3f083f8f586278f36d12eb5c0
Source10: %{name}-dir.init
Source11: %{name}-fd.init
Source12: %{name}-sd.init
Source14: %{name}-dir.sysconfig
Source15: %{name}-fd.sysconfig
Source16: %{name}-sd.sysconfig
-Patch0: %{name}-dvd-handler_path.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
+Source17: %{name}-dir.service
+Source18: %{name}-fd.service
+Source19: %{name}-sd.service
+Patch0: %{name}-mtx-changer.patch
+Patch1: %{name}-branding.patch
+Patch2: %{name}-desktop.patch
+Patch3: make_catalog_backup-setup-home.patch
+Patch4: %{name}-no_lockmgr.patch
+Patch5: x32.patch
URL: http://www.bacula.org/
-BuildRequires: acl-static
+BuildRequires: acl-devel
+BuildRequires: autoconf >= 2.61
BuildRequires: automake
-%if %{with rescue}
-BuildRequires: fakeroot
-%endif
-BuildRequires: glibc-static
-%if %{with gnome}
-BuildRequires: libgnome-devel >= 2.0
-BuildRequires: libgnomeui-devel >= 2.0
-%endif
-BuildRequires: libstdc++-static
-BuildRequires: libwrap-static
-BuildRequires: mtx
+BuildRequires: gettext-tools
+BuildRequires: libcap-devel
+BuildRequires: libtool >= 2:2.2
+BuildRequires: libwrap-devel
BuildRequires: ncurses-devel
BuildRequires: openssl-devel
-BuildRequires: openssl-static
BuildRequires: pkgconfig
-%if %{with python}
-BuildRequires: python-static
-%endif
-%if %{with bat}
+BuildRequires: python
+BuildRequires: python-modules
+%if %{with qt}
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
+BuildRequires: qt4-build >= %{qtver}
+BuildRequires: qt4-qmake >= %{qtver}
%endif
%{?with_mysql:BuildRequires: mysql-devel}
%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: readline-devel
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: sed >= 4.0
-%{?with_sqlite:BuildRequires: sqlite-devel}
%{?with_sqlite3:BuildRequires: sqlite3-devel}
-%if %{with console_wx}
-BuildRequires: wxGTK2-unicode-devel >= 2.4.0
-%endif
+BuildRequires: which
BuildRequires: zlib-devel
-BuildRequires: zlib-static
+Requires: systemd-units >= 38
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _sysconfdir /etc/%{name}
+%define _sysconfdir /etc/%{name}
%define _localstatedir /var/lib/%{name}
+%define nagiosplugindir %{_libdir}/nagios/plugins
+
+# db packages contain duplicates
+%define _duplicate_files_terminate_build 0
+
+# from 'the worst' to 'the best'
+%define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
# dependency section is broken. ccache usage is instead to makefiles
%undefine with_ccache
Conflicts: bacula-dir < 0:1.34.6
Conflicts: bacula-fd < 0:1.34.6
Conflicts: bacula-sd < 0:1.34.6
+Conflicts: logrotate < 3.8.0
%description common
Bacula - It comes by night and sucks the vital essence from your
Summary(pl.UTF-8): Usługi Bacula Director i Catalog
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: bacula(db) = %{version}-%{release}
+Requires: systemd-units >= 38
Obsoletes: bacula-updatedb
%description dir
maintaining the file indexes and volume databases for all files backed
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 %{database} to be installed separately as the catalog
-database.
+record of all Volumes used, all Jobs run, and all Files saved.
%description dir -l pl.UTF-8
Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
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.
+plikami.
%package console
Summary: Bacula Console
Summary(pl.UTF-8): Konsola Baculi
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
%description console
Bacula - It comes by night and sucks the vital essence from your
użytkownikowi komunikowanie się z programem Bacula Director. To jest
interfejs czysto tekstowy.
-%package console-wx
-Summary: Bacula wxWidgets Console
-Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets
-Group: Networking/Utilities
-Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
-
-%description console-wx
-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 wxWidgets GUI
-interface.
-
-%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
-interfejs graficzny oparty na wxWidgets.
-
-%package console-gnome
-Summary: Bacula GNOME Console
-Summary(pl.UTF-8): Konsola Baculi oparta dla GNOME
-Group: Networking/Utilities
-Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
-
-%description console-gnome
-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 GNOME GUI interface.
-
-%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
-interfejs graficzny oparty na GNOME.
-
-%package console-qt4
-Summary: Bacula Qt4 Console
-Summary(pl.UTF-8): Konsola Baculi oparta na Qt4
+%package console-qt
+Summary: bat – The Bacula Administration Tool
+Summary(pl.UTF-8): bat – narzędzie administratora Baculi
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: QtCore >= %{qtver}
+Obsoletes: bacula-console-qt4 < 5.2.13-1
-%description console-qt4
+%description console-qt
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.
+bat is short for Bacula Administration Tool. It is a GUI form of
+bconsole, but with many additional features.
-%description console-qt4 -l pl.UTF-8
+%description console-qt -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.
+bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
+bconsole, z wieloma dodatkowymi funkcjami.
%package tray-monitor
Summary: Bacula Tray Monitor
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
%description tray-monitor
Bacula - It comes by night and sucks the vital essence from your
Summary(pl.UTF-8): Usługi Bacula File (klient)
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: systemd-units >= 38
%description fd
Bacula - It comes by night and sucks the vital essence from your
Summary(pl.UTF-8): Usługi Bacula Storage
Group: Networking/Utilities
Requires(post): sed >= 4.0
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: systemd-units >= 38
+Suggests: mtx
Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
%description sd
na maszynie, która zawiera urządzenie backupowe (zwykle napęd
taśmowy).
-%package rescue
-Summary: Bacula - The Network Backup Solution
-Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
+%package db-postgresql
+Summary: PostgreSQL database driver for Bacula
+Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
Group: Networking/Utilities
-Requires: %{name}-fd = %{epoch}:%{version}-%{release}
-Requires: coreutils
-Requires: util-linux
+Requires(post): /sbin/ldconfig
+Requires: %{name}-common = %{version}-%{release}
+Provides: bacula(db) = %{version}-%{release}
+Obsoletes: bacula(db)
-%description rescue
-Bacula - It comes by night and sucks the vital essence from your
-computers.
+%description db-postgresql
+PostgreSQL database driver for Bacula.
-Bacula is a set of computer programs that permit you (or the system
-administrator) to manage backup, recovery, and verification of
-computer data across a network of computers of different kinds. In
-technical terms, it is a network client/server based backup program.
-Bacula is relatively easy to use and efficient, while offering many
-advanced storage management features that make it easy to find and
-recover lost or damaged files.
+%description db-postgresql -l pl.UTF-8
+Sterownik bazy PostgreSQL dla Baculi.
-This package installs scripts for disaster recovery and builds rescue
-floppy disk for bare metal recovery.
+%package db-mysql
+Summary: MySQL database driver for Bacula
+Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
+Group: Networking/Utilities
+Requires(post): /sbin/ldconfig
+Requires: %{name}-common = %{version}-%{release}
+Provides: bacula(db) = %{version}-%{release}
+Obsoletes: bacula(db)
-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 db-mysql
+MySQL database driver for Bacula.
-%description rescue -l pl.UTF-8
-Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
+%description db-mysql -l pl.UTF-8
+Sterownik bazy MySQL dla Baculi.
-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 db-sqlite3
+Summary: SQLite database driver for Bacula
+Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
+Group: Networking/Utilities
+Requires(post): /sbin/ldconfig
+Requires: %{name}-common = %{version}-%{release}
+Provides: bacula(db) = %{version}-%{release}
+Obsoletes: bacula(db)
-Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
-ratunkowe do odtwarzania systemu od zera.
+%description db-sqlite3
+SQLite database driver for Bacula.
-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 .
+%description db-sqlite3 -l pl.UTF-8
+Sterownik bazy SQLite dla Baculi.
-%prep
-%setup -q -a 1
+%package -n nagios-plugin-check_bacula
+Summary: Nagios plugin to check bacula
+Group: Networking
+Requires: nagios-common
-#%patch0 -p1
+%description -n nagios-plugin-check_bacula
+Nagios plugin to check bacula.
+
+%define _noautoreq libbaccats-%{version}.so
+# provided by various db libraries as a symlink
+
+%prep
+%setup -q
+%patch0 -p1
%patch1 -p1
-#%patch2 -p1
+%patch2 -p1
%patch3 -p1
%patch4 -p1
+%ifarch x32
%patch5 -p1
-#%patch6 -p1
-
-tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
+%endif
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_*
sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
+sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
%build
-cp -f %{_datadir}/automake/config.sub autoconf
-cd autoconf && %{__aclocal} -I bacula-macros -I gettext-macros && cd ..
+cd autoconf
+%{__aclocal} -I bacula-macros -I gettext-macros -I libtool
+## $BUILD_DIR not seen by libtoolize, export it
+#BUILD_DIR=.. %%{__libtoolize}
+cd ..
%{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
-WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
+
+QMAKE=%{_bindir}/qmake-qt4 \
%configure \
+ DISTNAME=pld-linux \
--with-scriptdir=%{_libexecdir}/%{name} \
- --%{!?with_gnome:dis}%{?with_gnome:en}able-gnome \
- %{?with_bat:--enable-bat} \
+ %{?with_qt:--enable-bat} \
--disable-conio \
--enable-smartalloc \
- %{?with_console_wx:--enable-bwx-console} \
- --enable-tray-monitor \
- %{?with_python:--with-python} \
--with-readline \
--with-tcp-wrappers \
--with-working-dir=%{_var}/lib/%{name} \
--with-smtp-host=localhost \
--with-pid-dir=/var/run \
--with-subsys-dir=/var/lock/subsys \
+ --with-systemd=%{systemdunitdir} \
--enable-batch-insert \
- --with-%{database} \
+ %{?with_pgsql:--with-postgresql} \
+ %{?with_mysql:--with-mysql} \
+ %{?with_sqlite3:--with-sqlite3} \
%{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
--with-dir-password="#FAKE-dir-password#" \
--with-fd-password="#FAKE-fd-password#" \
--with-mon-sd-password="#FAKE-mon-sd-password#" \
--with-openssl
-%if %{with bat}
+%if %{with qt}
cd src/qt-console
qmake-qt4 bat.pro
cd ../..
%endif
-%{__make}
+%{__make} 2>&1 | tee log
+# check for build errors
+grep "Error in" log && exit 1
-%if %{with rescue}
-cd rescue
-%configure \
- --with-bacula=../
-cd linux/cdrom
-fakeroot %{__make}
+%if %{with nagios}
+# nagios plugin
+%{__make} -C examples/nagios/check_bacula
%endif
%install
rm -rf $RPM_BUILD_ROOT
-
-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},/var/log/bacula}
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
+ $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
+ $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \
+ $RPM_BUILD_ROOT%{systemdunitdir}
%{__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
-
-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 %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
-install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
-install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
-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
-sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
- 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/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
-install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
+# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
+for database in %{databases}; do
+ sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
+ $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup \
+ > $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup
+ chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup
+done
+:> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup
+
+# we use db dependant (at compile time) shell script only
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
+
+## replace with empty file, replaced by ldconfig from each db-* package on intsall
+rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+
+install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
+install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
+cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
+cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
+cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
+cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
+cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
+cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
+cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service
+
+%if %{with qt}
+# qmake somewhy does not always create install_bins target. install our own the bin
+rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
+libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
+cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
+cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
%endif
touch $RPM_BUILD_ROOT/var/log/bacula/log
-# install the updatedb scripts
-install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+# install the updatedb scripts for older versions that last full release
+# 2.0 -> 3.0 : 10_to_11
+# 5.0 -> 5.2 : 12_to_14
+install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
# 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}
+mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
+
# 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
-%if !%{with console_wx}
-rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
+
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
+rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
+
+# startup scripts, those in /etc/rc.d/init.d are better
+rm $RPM_BUILD_ROOT%{_sbindir}/bacula
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
+
+# unsupported
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
+
+# rename to avoid possible conflicts
+mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
+mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
+
+# no -devel files packaged, so this is also useless
+rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats}.{so,la}
+#rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la}
+%{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}}
+%{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}}
+%{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}}
+
+%if %{with nagios}
+install -d $RPM_BUILD_ROOT%{nagiosplugindir}
+%{__make} -C examples/nagios/check_bacula install \
+ sbindir=%{nagiosplugindir} \
+ DESTDIR=$RPM_BUILD_ROOT
%endif
-touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
%clean
rm -rf $RPM_BUILD_ROOT
%groupadd -P %{name}-common -g 136 -r -f bacula
%useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
-%post common
-echo "Updating bacula passwords and names..."
-cd /etc/bacula
-for f in *-password ; do
- if [ ! -s $f ] ; then
- openssl rand -base64 33 > $f
- fi
- p=`cat $f`
- for cf in *.conf *.conf.rpmnew ; do
- [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || :
- done
-done
-for cf in *.conf *.conf.rpmnew ; do
- [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || :
+%define update_configs \
+echo "Updating bacula passwords and names..." | %banner -a %{name} \
+cd %{_sysconfdir} \
+for f in *-password; do \
+ if [ ! -s $f ]; then \
+ openssl rand -base64 33 > $f \
+ fi \
+ p=$(cat $f) \
+ for cf in *.conf *.conf.rpmnew; do \
+ [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
+ done \
+done \
+for cf in *.conf *.conf.rpmnew; do \
+ [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
done
+%post common
+/sbin/ldconfig
+%update_configs
+
%postun common
+/sbin/ldconfig
if [ "$1" = "0" ]; then
%userremove bacula
%groupremove bacula
fi
-%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%{?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
-else
- echo "Backing up bacula tables"
- 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
- 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
+%triggerpostun dir -- %{name}-dir < %{version}-0
+%banner bacula-dir -t3 <<EOF
+You have upgraded from an older version of Bacula director.
-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 || :
+You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
+script to upgrade the database.
+
+Ensure you database partition has enough free space before you run the upgrade,
+i.e check that there is enough room to rebuild 'File' table (it is the largest
+in bacula db).
+
+EOF
+%post dir
+%update_configs
/sbin/chkconfig --add bacula-dir
%service bacula-dir restart "Bacula Director daemon"
+%systemd_post bacula-dir.service
%preun dir
if [ "$1" = "0" ]; then
%service bacula-dir stop
/sbin/chkconfig --del bacula-dir
fi
+%systemd_preun bacula-dir.service
-%post fd
-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 || :
+%postun dir
+%systemd_reload
+%post fd
+%update_configs
/sbin/chkconfig --add bacula-fd
%service bacula-fd restart "Bacula File daemon"
+%systemd_post bacula-fd.service
%preun fd
if [ "$1" = "0" ]; then
%service bacula-fd stop
/sbin/chkconfig --del bacula-fd
fi
+%systemd_preun bacula-fd.service
-%post sd
-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 || :
+%postun fd
+%systemd_reload
+%post sd
+%update_configs
/sbin/chkconfig --add bacula-sd
%service bacula-sd restart "Bacula Storage daemon"
+%systemd_post bacula-sd.service
%preun sd
if [ "$1" = "0" ]; then
%service bacula-sd stop
/sbin/chkconfig --del bacula-sd
fi
+%systemd_preun bacula-sd.service
+
+%postun sd
+%systemd_reload
%pre console
if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
fi
%post console
-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 console-wx
-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 console-gnome
-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 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 || :
+%update_configs
+
+%triggerpostun common -- %{name}-common < 5.0.1-2
+find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
+
+%post console-qt
+%update_configs
%post tray-monitor
-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 || :
+%update_configs
+
+%define db_post() \
+/sbin/ldconfig \
+for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
+ prefix="${name%% *}" \
+ suffix="${name#* }" \
+ ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
+done \
+ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
+ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
+%service bacula-dir restart "Bacula Director daemon"
-%post rescue
-# link our current installed conf file to the rescue directory
-ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
+%post db-postgresql
+%db_post postgresql
-# run getdiskinfo
-echo "Creating rescue files for this system..."
-cd %{_sysconfdir}/rescue
-./getdiskinfo
+%postun db-postgresql -p /sbin/ldconfig
-%preun rescue
-# remove the files created after the initial rpm installation
-if [ "$1" = "0" ]; then
- rm -f %{_sysconfdir}/rescue/bacula-fd.conf
- rm -f %{_sysconfdir}/rescue/partition.*
- rm -f %{_sysconfdir}/rescue/format.*
- rm -f %{_sysconfdir}/rescue/mount_drives
- rm -f %{_sysconfdir}/rescue/start_network
- rm -f %{_sysconfdir}/rescue/sfdisk
- rm -rf %{_sysconfdir}/rescue/diskinfo/*
-fi
+%post db-mysql
+%db_post mysql
+
+%postun db-mysql -p /sbin/ldconfig
+
+%post db-sqlite3
+%db_post sqlite3
+
+%postun db-sqlite3 -p /sbin/ldconfig
%files common
%defattr(644,root,root,755)
%doc LICENSE
%dir %{_sysconfdir}
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
+# do not remove bsmtp from files. Fix build if it is not installed.
%attr(755,root,root) %{_sbindir}/bsmtp
%attr(755,root,root) %{_sbindir}/btraceback
-%attr(755,root,root) /%{_libdir}/libbac.so.1.*.*
-%attr(755,root,root) %ghost /%{_libdir}/libbac.so.1
-%attr(755,root,root) /%{_libdir}/libbaccfg.so.1.*.*
-%attr(755,root,root) %ghost /%{_libdir}/libbaccfg.so.1
-%attr(755,root,root) /%{_libdir}/libbacfind.so.1.*.*
-%attr(755,root,root) %ghost /%{_libdir}/libbacfind.so.1
-%attr(755,root,root) /%{_libdir}/libbacpy.so.1.*.*
-%attr(755,root,root) %ghost /%{_libdir}/libbacpy.so.1
-%attr(755,root,root) /%{_libdir}/libbacsql.so.1.*.*
-%attr(755,root,root) %ghost /%{_libdir}/libbacsql.so.1
+%attr(755,root,root) %{_libdir}/libbac-9*.so
+%attr(755,root,root) %{_libdir}/libbacsd-9*.so
+%attr(755,root,root) %{_libdir}/libbaccfg-9*.so
+%attr(755,root,root) %{_libdir}/libbacfind-9*.so
+%attr(755,root,root) %{_libdir}/libbacsql-9*.so
%{_mandir}/man8/bacula.8*
%{_mandir}/man1/bsmtp.1*
%{_mandir}/man8/btraceback.8*
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/btraceback.dbx
%{_libexecdir}/%{name}/btraceback.gdb
+%{_libexecdir}/%{name}/bacula_config
%attr(770,root,bacula) %dir %{_localstatedir}
%attr(750,bacula,logs) %dir /var/log/bacula
%attr(640,bacula,logs) %ghost /var/log/bacula/log
+%attr(750,bacula,logs) %dir /var/log/archive/bacula
%files dir
%defattr(644,root,root,755)
-%doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
+%doc ChangeLog ReleaseNotes LICENSE
#%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
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
+%{systemdunitdir}/bacula-dir.service
%attr(755,root,root) %{_sbindir}/bacula-dir
+%attr(755,root,root) %{_sbindir}/bdirjson
%attr(755,root,root) %{_sbindir}/bregex
%attr(755,root,root) %{_sbindir}/bwild
-%attr(755,root,root) %{_sbindir}/dbcheck
+%attr(755,root,root) %{_sbindir}/bacula-dbcheck
%{_mandir}/man8/bacula-dir.8*
-%{_mandir}/man8/dbcheck.8*
+%{_mandir}/man8/bacula-dbcheck.8*
+%{_mandir}/man8/bregex.8*
+%{_mandir}/man8/bwild.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}/delete_catalog_backup
+
+%if %{with pgsql}
+%files db-postgresql
+%defattr(644,root,root,755)
+%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_*
+%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-postgresql-9*.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
+%ghost %{_libexecdir}/%{name}/create_bacula_database
+%ghost %{_libexecdir}/%{name}/drop_bacula_tables
+%ghost %{_libexecdir}/%{name}/drop_bacula_database
+%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
+%ghost %{_libexecdir}/%{name}/make_bacula_tables
+%ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
%endif
+
%if %{with mysql}
+%files db-mysql
+%defattr(644,root,root,755)
%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_*
+%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-mysql-9*.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
+%ghost %{_libexecdir}/%{name}/create_bacula_database
+%ghost %{_libexecdir}/%{name}/drop_bacula_tables
+%ghost %{_libexecdir}/%{name}/drop_bacula_database
+%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
+%ghost %{_libexecdir}/%{name}/make_bacula_tables
+%ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
%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_*
+
+%if %{with sqlite3}
+%files db-sqlite3
+%defattr(644,root,root,755)
+%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_*
+%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
+%attr(755,root,root) %{_libdir}/libbaccats-sqlite3-9*.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
+%ghost %{_libexecdir}/%{name}/create_bacula_database
+%ghost %{_libexecdir}/%{name}/drop_bacula_tables
+%ghost %{_libexecdir}/%{name}/drop_bacula_database
+%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
+%ghost %{_libexecdir}/%{name}/make_bacula_tables
+%ghost %{_libexecdir}/%{name}/update_bacula_tables
+%ghost %{_libexecdir}/%{name}/make_catalog_backup
%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
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_bacula_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
-%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
%files fd
%defattr(644,root,root,755)
%doc LICENSE
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
%attr(754,root,root) /etc/rc.d/init.d/bacula-fd
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
+%{systemdunitdir}/bacula-fd.service
%attr(755,root,root) %{_sbindir}/bacula-fd
+%attr(755,root,root) %{_sbindir}/bfdjson
+%attr(755,root,root) %{_libdir}/bpipe-fd.so
%{_mandir}/man8/bacula-fd.8*
%files sd
%defattr(644,root,root,755)
%doc LICENSE
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
%attr(754,root,root) /etc/rc.d/init.d/bacula-sd
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
+%{systemdunitdir}/bacula-sd.service
%attr(755,root,root) %{_sbindir}/bacula-sd
%attr(755,root,root) %{_sbindir}/bcopy
%attr(755,root,root) %{_sbindir}/bextract
%attr(755,root,root) %{_sbindir}/bls
%attr(755,root,root) %{_sbindir}/bscan
+%attr(755,root,root) %{_sbindir}/bsdjson
%attr(755,root,root) %{_sbindir}/btape
%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
%attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
-%attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
+%attr(755,root,root) %{_libexecdir}/%{name}/tapealert
%{_mandir}/man8/bacula-sd.8*
%{_mandir}/man8/bcopy.8*
%{_mandir}/man8/bextract.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(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
%attr(755,root,root) %{_sbindir}/bconsole
+%attr(755,root,root) %{_sbindir}/bbconsjson
%{_mandir}/man8/bconsole.8*
-%if %{with console_wx}
-%files console-wx
-%defattr(644,root,root,755)
-%doc LICENSE
-%{_pixmapsdir}/%{name}.png
-%{_desktopdir}/bacula-wx.desktop
-%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}
-%files console-gnome
-%defattr(644,root,root,755)
-%doc LICENSE
-%{_pixmapsdir}/%{name}.png
-%{_desktopdir}/bacula.desktop
-%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
+%if %{with qt}
+%files console-qt
%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
+# Do not make this file world-readable or any user will get full access to the
+# backup system
+%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
+%attr(755,root,root) %{_bindir}/bat
%{_mandir}/man1/bat.1*
+%{_docdir}/%{name}
%endif
-%if %{with console_wx}
-%files tray-monitor
+%if %{with nagios}
+%files -n nagios-plugin-check_bacula
%defattr(644,root,root,755)
-%doc LICENSE
-%{_pixmapsdir}/%{name}-tray-monitor.xpm
-%{_desktopdir}/%{name}-tray-monitor.desktop
-%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*
-%endif
-
-%if %{with rescue}
-%files rescue
-%defattr(644,root,root,755)
-%doc LICENSE
-%dir %{_sysconfdir}/rescue
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
-%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
+%attr(755,root,root) %{nagiosplugindir}/check_bacula
%endif