Blob Blame History Raw
%global uid 133
%global username bacula

Name:			bacula
Version:		5.2.4
Release:		1%{?dist}
Summary:		Cross platform network backup for Linux, Unix, Mac and Windows
# See LICENSE for details
License:		GPLv2 with exceptions
Group:			System Environment/Daemons
URL:			http://www.bacula.org
BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

Source0:		http://www.bacula.org/downloads/Bacula-%{version}/%{name}-%{version}.tar.gz
Source5:		README.Fedora
Source6:		bacula.logrotate
Source7:		bacula-fd.init
Source8:		bacula-dir.init
Source9:		bacula-sd.init
Source10:		bacula-fd.service
Source11:		bacula-dir.service
Source12:		bacula-sd.service
Source13:		bacula-bat.desktop
Source14:		bacula-traymonitor.desktop
Source15:		bacula-fd.sysconfig
Source16:		bacula-dir.sysconfig
Source17:		bacula-sd.sysconfig
Source18:		bacula-checkconf

# bugs.bacula.org #1805: hostname is ignored during configure, always picks "uname -n"
Patch1:			bacula-5.2.2-hostname.patch
Patch2:			bacula-5.0.2-openssl.patch
Patch3:			bacula-5.2.2-queryfile.patch
Patch5:			bacula-5.2.2-log-path.patch
Patch6:			bacula-5.0.3-sqlite-priv.patch
Patch8:			bacula-5.2.2-qt-console-optflags.patch

BuildRequires:		openssl-devel, ncurses-devel, perl, glibc-devel
BuildRequires:		libstdc++-devel, libxml2-devel, zlib-devel
BuildRequires:		mysql-devel, postgresql-devel, sqlite-devel
BuildRequires:		desktop-file-utils, python-devel, sed
BuildRequires:		libacl-devel, tetex-latex, tetex, ghostscript
BuildRequires:		readline-devel, libcap-devel

%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
BuildRequires:		qt4-devel >= 4.6.2
%endif

%if 0%{?fedora} >= 7 || 0%{?rhel} >= 6
BuildRequires:		tcp_wrappers-devel
%else
BuildRequires:		tcp_wrappers
%endif

%if 0%{?fedora} >= 9 || 0%{?rhel} >= 6
BuildRequires:		dvipdfm
%endif

%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
BuildRequires:		systemd-units
%endif

%if 0%{?fedora} >= 9 || 0%{?rhel} >= 5
BuildRequires:		latex2html
%endif

%if 0%{?fedora} >= 6 || 0%{?rhel} >= 5
BuildRequires:		lzo-devel >= 2.02
%endif

%description
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture and is
efficient and relatively easy to use, while offering many advanced
storage management features that make it easy to find and recover lost
or damaged files.


%package libs
Summary:		Bacula libraries
Group:			System Environment/Daemons
Obsoletes:		bacula-console-gnome <= 2.4
Obsoletes:		bacula-sysconfdir <= 2.4, bacula-console-wxwidgets <= 5.0.3

%description libs
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains basic Bacula libraries, which are used by all
Bacula programs. You have to select your preferred catalog library
through the alternatives system.


%package common
Summary:		Common Bacula files
Group:			System Environment/Daemons
Obsoletes:		bacula-sysconfdir <= 2.4
Provides:		group(%username) = %uid
Provides:		user(%username) = %uid
Requires(pre):		shadow-utils
Requires(postun):	shadow-utils

%description common
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains files common to all Bacula daemons.


%package director
Summary:		Bacula Director files
Group:			System Environment/Daemons
Requires:		bacula-common%{?_isa} = %{version}-%{release}
Requires:		logwatch
# Director backends merged into core.
Provides:		bacula-director-common = %{version}-%{release}
Obsoletes:		bacula-director-common < 5.2.3-5
Provides:		bacula-director-mysql = %{version}-%{release}
Obsoletes:		bacula-director-mysql < 5.2.3-5
Provides:		bacula-director-sqlite = %{version}-%{release}
Obsoletes:		bacula-director-sqlite < 5.2.3-5
Provides:		bacula-director-postgresql = %{version}-%{release}
Obsoletes:		bacula-director-postgresql < 5.2.3-5
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
Requires(post):		systemd-sysv
Requires(post):		systemd-units
Requires(preun):	systemd-units
Requires(postun):	systemd-units
%else
Requires(post):		/sbin/chkconfig
Requires(preun):	/sbin/chkconfig
Requires(preun):	/sbin/service
Requires(postun):	/sbin/service
%endif

%description director
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the director files.


%package storage
Summary:		Bacula storage daemon files
Group:			System Environment/Daemons
Requires:		bacula-common%{?_isa} = %{version}-%{release}
# Storage backends merged into core.
Provides:		bacula-storage-common = %{version}-%{release}
Obsoletes:		bacula-storage-common < 5.2.2-2
Provides:		bacula-storage-mysql = %{version}-%{release}
Obsoletes:		bacula-storage-mysql < 5.2.0
Provides:		bacula-storage-sqlite = %{version}-%{release}
Obsoletes:		bacula-storage-sqlite < 5.2.0
Provides:		bacula-storage-postgresql = %{version}-%{release}
Obsoletes:		bacula-storage-postgresql < 5.2.0
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
Requires(post):		systemd-sysv
Requires(post):		systemd-units
Requires(preun):	systemd-units
Requires(postun):	systemd-units
%else
Requires(post):		/sbin/chkconfig
Requires(preun):	/sbin/chkconfig
Requires(preun):	/sbin/service
Requires(postun):	/sbin/service
%endif

%description storage
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the storage daemon, the daemon responsible for 
writing the data received from the clients onto tape drives or other 
mass storage devices.


%package client
Summary:		Bacula backup client
Group:			System Environment/Daemons
Requires:		bacula-common%{?_isa} = %{version}-%{release}
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
Requires(post):		systemd-sysv
Requires(post):		systemd-units
Requires(preun):	systemd-units
Requires(postun):	systemd-units
%else
Requires(post):		/sbin/chkconfig
Requires(preun):	/sbin/chkconfig
Requires(preun):	/sbin/service
Requires(postun):	/sbin/service
%endif

%description client
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the bacula client, the daemon running on the 
system to be backed up.


%package console
Summary:		Bacula management console
Group:			System Environment/Daemons

%description console
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the command-line management console for the bacula 
backup system.


%if 0%{?fedora} >= 11 || 0%{?rhel} >= 6
%package console-bat
Summary:		Bacula bat console
Group:			System Environment/Daemons

%description console-bat
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the bat version of the bacula management console.


%package traymonitor
Summary:		Bacula system tray monitor
Group:			System Environment/Daemons

%description traymonitor
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This package contains the Gnome and KDE compatible tray monitor to 
monitor your bacula server.
%endif


%package devel
Summary:		Bacula development files
Group:			Development/Libraries

%description devel
Bacula is a set of programs that allow you to manage the backup,
recovery, and verification of computer data across a network of
different computers. It is based on a client/server architecture.

This development package contains static libraries and header files.


%package -n nagios-plugins-bacula
Summary:		Nagios Plugin - check_bacula
Group:			Applications/System

%description -n nagios-plugins-bacula
Provides check_bacula support for Nagios.


%prep
%setup -q
%patch1 -p1 -b .hostname
%patch2 -p2 -b .openssl
%patch3 -p1 -b .queryfile
%patch5 -p1 -b .log-path
%patch6 -p0 -b .priv
%patch8 -p1 -b .optflags

# Remove execution permissions from files we're packaging as docs later on
find updatedb -type f | xargs chmod -x


%build
build() {
export CFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/ncurses"
export CPPFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/ncurses"
%configure \
	--sysconfdir=%{_sysconfdir}/bacula \
	--with-dir-user=bacula \
	--with-dir-group=bacula \
	--with-sd-user=bacula \
	--with-sd-group=disk \
	--with-fd-user=root \
	--with-fd-group=root \
	--with-hostname=localhost \
	--with-basename=bacula \
	--with-dir-password=@@DIR_PASSWORD@@ \
	--with-fd-password=@@FD_PASSWORD@@ \
	--with-sd-password=@@SD_PASSWORD@@ \
	--with-mon-dir-password=@@MON_DIR_PASSWORD@@ \
	--with-mon-fd-password=@@MON_FD_PASSWORD@@ \
	--with-mon-sd-password=@@MON_SD_PASSWORD@@ \
	--with-working-dir=%{_localstatedir}/spool/bacula \
	--with-bsrdir=%{_localstatedir}/spool/bacula \
	--with-logdir=%{_localstatedir}/log/bacula \
	--with-scriptdir=%{_libexecdir}/bacula \
	--with-plugindir=%{_libdir}/bacula \
	--with-smtp-host=localhost \
	--with-subsys-dir=%{_localstatedir}/lock/subsys \
	--with-pid-dir=%{_localstatedir}/run \
	--disable-conio \
	--enable-batch-insert \
	--enable-readline \
	--enable-largefile \
	--enable-build-dird \
	--enable-build-stored \
	--with-openssl \
	--with-tcp-wrappers \
	--with-python \
	--enable-smartalloc \
	--with-x \
	--disable-rpath \
	--with-sqlite3 \
	--with-mysql \
	--with-postgresql \
	$*
}

%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
export QMAKE=/usr/bin/qmake-qt4
build --enable-bat --htmldir=%{_datadir}/doc/bacula-console-bat-%{version}
%else
build --disable-bat
%endif

# Remove RPATH
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

%{__make} %{?_smp_mflags}

pushd examples/nagios/check_bacula
	CFLAGS="%{optflags}" %{__make} LIBS="-lpthread -ldl -lssl -lcrypto -lz"
popd

%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
pushd src/qt-console/tray-monitor
	/usr/bin/qmake-qt4
	%{__make} %{?_smp_mflags}
popd
%endif

cp %{SOURCE5} .

%install
rm -rf %{buildroot}

make install DESTDIR=%{buildroot}

# Nagios plugin
%{__install} -m 755 -D examples/nagios/check_bacula/.libs/check_bacula %{buildroot}%{_libdir}/nagios/plugins/check_bacula

# Remove catalogue backend symlinks
rm -f %{buildroot}%{_libdir}/libbaccats.so
rm -f %{buildroot}%{_libdir}/libbaccats-%{version}.so

# Sample query file
%{__install} -m 640 -D examples/sample-query.sql %{buildroot}%{_sysconfdir}/bacula/query.sql

%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
# Bat
%{__install} -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat.png
desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE13}

# QT Tray monitor
%{__install} -m 755 -D src/qt-console/tray-monitor/.libs/bacula-tray-monitor %{buildroot}%{_sbindir}/bacula-tray-monitor
%{__install} -m 644 -D src/qt-console/tray-monitor/tray-monitor.conf %{buildroot}%{_sysconfdir}/bacula/tray-monitor.conf
%{__install} -m 644 -D src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.png
desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE14}

%else
rm -f %{buildroot}%{_mandir}/man1/bat.1*
%endif

# Logrotate
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/bacula
%{__install} -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/bacula

# Logwatch
%{__install} -m 755 -D scripts/logwatch/bacula %{buildroot}%{_sysconfdir}/logwatch/scripts/services/bacula
%{__install} -m 755 -D scripts/logwatch/applybaculadate %{buildroot}%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
%{__install} -m 644 -D scripts/logwatch/logfile.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
%{__install} -m 644 -D scripts/logwatch/services.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/services/bacula.conf

%{__install} -m 755 -D %{SOURCE18}  %{buildroot}%{_sbindir}/bacula-checkconf
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
# Systemd unit files
%{__mkdir_p} %{buildroot}%{_unitdir}
%{__install} -m 755 -D %{SOURCE10} %{buildroot}%{_unitdir}/bacula-fd.service
%{__install} -m 755 -D %{SOURCE11} %{buildroot}%{_unitdir}/bacula-dir.service
%{__install} -m 755 -D %{SOURCE12} %{buildroot}%{_unitdir}/bacula-sd.service
%else
# Initscripts
%{__install} -m 755 -D %{SOURCE7} %{buildroot}%{_initrddir}/bacula-fd
%{__install} -m 755 -D %{SOURCE8} %{buildroot}%{_initrddir}/bacula-dir
%{__install} -m 755 -D %{SOURCE9} %{buildroot}%{_initrddir}/bacula-sd
%endif

# Sysconfig
%{__install} -m 644 -D %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/bacula-fd
%{__install} -m 644 -D %{SOURCE16} %{buildroot}%{_sysconfdir}/sysconfig/bacula-dir
%{__install} -m 644 -D %{SOURCE17} %{buildroot}%{_sysconfdir}/sysconfig/bacula-sd

# Spool directory
%{__mkdir_p} %{buildroot}%{_localstatedir}/spool/bacula

# Remove stuff we do not need
rm -f %{buildroot}%{_libexecdir}/bacula/{bacula,bacula-ctl-*,startmysql,stopmysql,bconsole} 
rm -f %{buildroot}%{_sbindir}/bacula
rm -f %{buildroot}%{_mandir}/man8/bacula.8.gz
rm -f %{buildroot}%{_mandir}/man1/bacula-bwxconsole.1*
rm -f %{buildroot}%{_mandir}/man1/bacula-tray-monitor.1*
rm -rf %{buildroot}%{_datadir}/doc/bacula/

# Fix up some perms so rpmlint does not complain too much
chmod 755 %{buildroot}%{_sbindir}/*
chmod 755 %{buildroot}%{_libdir}/bacula/*
chmod 755 %{buildroot}%{_libexecdir}/bacula/*
chmod 644 %{buildroot}%{_libexecdir}/bacula/btraceback.*

# Install headers
%{__mkdir_p} %{buildroot}%{_includedir}/bacula
for dir in src src/cats src/console src/dird src/filed src/findlib src/lib src/plugins/sd src/plugins/fd src/stored; do
	%{__mkdir_p} %{buildroot}%{_includedir}/bacula/$dir
	%{__install} -m 644 $dir/*.h %{buildroot}%{_includedir}/bacula/$dir
done


%clean
rm -rf %{buildroot}


%post libs
/usr/sbin/alternatives --install %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-mysql-%{version}.so 50 \
	--slave %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-%{version}.so
/usr/sbin/alternatives --install %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-sqlite3-%{version}.so 40 \
	--slave %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-%{version}.so
/usr/sbin/alternatives --install %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-postgresql-%{version}.so 60 \
	--slave %{_libdir}/libbaccats.so libbaccats.so %{_libdir}/libbaccats-%{version}.so
/sbin/ldconfig


%preun libs
if [ "$1" = 0 ]; then
	/usr/sbin/alternatives --remove libbaccats-%{version}.so %{_libdir}/libbaccats-mysql-%{version}.so
	/usr/sbin/alternatives --remove libbaccats-%{version}.so %{_libdir}/libbaccats-sqlite3-%{version}.so
	/usr/sbin/alternatives --remove libbaccats-%{version}.so %{_libdir}/libbaccats-postgresql-%{version}.so
fi
/sbin/ldconfig
exit 0


%pre common
getent group %username >/dev/null || groupadd -g %uid -r %username &>/dev/null || :
getent passwd %username >/dev/null || useradd -u %uid -r -s /sbin/nologin \
    -d /var/spool/bacula -M -c 'Bacula Backup System' -g %username %username &>/dev/null || :
exit 0


%postun common
test "$1" != 0 || userdel %username &>/dev/null || :
test "$1" != 0 || groupdel %username &>/dev/null || :
exit 0

%if 0%{?fedora} >= 15 || 0%{?rhel} > 6

%post client
if [ $1 -eq 1 ] ; then
    # Initial installation
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi


%preun client
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
    /bin/systemctl --no-reload disable bacula-fd.service > /dev/null 2>&1 || :
    /bin/systemctl stop bacula-fd.service > /dev/null 2>&1 || :
fi


%postun client
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
    # Package upgrade, not uninstall
    /bin/systemctl try-restart bacula-fd.service >/dev/null 2>&1 || :
fi


%triggerun client -- bacula-client < 5.0.3-10
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply bacula-fd
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save bacula-fd >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del bacula-fd >/dev/null 2>&1 || :
/bin/systemctl try-restart bacula-fd.service >/dev/null 2>&1 || :


%post director
if [ $1 -eq 1 ] ; then
    # Initial installation
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi


%preun director
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
    /bin/systemctl --no-reload disable bacula-dir.service > /dev/null 2>&1 || :
    /bin/systemctl stop bacula-dir.service > /dev/null 2>&1 || :
fi


%postun director
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
    # Package upgrade, not uninstall
    /bin/systemctl try-restart bacula-dir.service >/dev/null 2>&1 || :
fi


%triggerun director -- bacula-director-common < 5.0.3-10
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply bacula-dir
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save bacula-dir >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del bacula-dir >/dev/null 2>&1 || :
/bin/systemctl try-restart bacula-dir.service >/dev/null 2>&1 || :


%post storage
if [ $1 -eq 1 ] ; then
    # Initial installation
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi


%preun storage
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
    /bin/systemctl --no-reload disable bacula-sd.service > /dev/null 2>&1 || :
    /bin/systemctl stop bacula-sd.service > /dev/null 2>&1 || :
fi


%postun storage
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
    # Package upgrade, not uninstall
    /bin/systemctl try-restart bacula-sd.service >/dev/null 2>&1 || :
fi


%triggerun storage -- bacula-storage-common < 5.0.3-10
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply bacula-sd
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save bacula-sd >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del bacula-sd >/dev/null 2>&1 || :
/bin/systemctl try-restart bacula-sd.service >/dev/null 2>&1 || :

%else

%post client
/sbin/chkconfig --add bacula-fd


%preun client
if [ "$1" = 0 ]; then
	/sbin/service bacula-fd stop >/dev/null 2>&1 || :
	/sbin/chkconfig --del bacula-fd
fi


%postun client
if [ "$1" -ge "1" ]; then
	/sbin/service bacula-fd condrestart >/dev/null 2>&1 || :
fi


%post director
/sbin/chkconfig --add bacula-dir


%preun director
if [ "$1" = 0 ]; then
	/sbin/service bacula-dir stop >/dev/null 2>&1 || :
	/sbin/chkconfig --del bacula-dir
fi


%postun director
if [ "$1" -ge "1" ]; then
	/sbin/service bacula-dir condrestart >/dev/null 2>&1 || :
fi


%post storage
/sbin/chkconfig --add bacula-sd


%preun storage
if [ "$1" = 0 ]; then
	/sbin/service bacula-sd stop >/dev/null 2>&1 || :
	/sbin/chkconfig --del bacula-sd
fi


%postun storage
if [ "$1" -ge "1" ]; then
	/sbin/service bacula-sd condrestart >/dev/null 2>&1 || :
fi

%endif

%files libs
%defattr(-,root,root,-)
%{_libdir}/libbac-%{version}.so
%{_libdir}/libbac.so
%{_libdir}/libbaccats-mysql-%{version}.so
%{_libdir}/libbaccats-mysql.so
%{_libdir}/libbaccats-postgresql-%{version}.so
%{_libdir}/libbaccats-postgresql.so
%{_libdir}/libbaccats-sqlite3-%{version}.so
%{_libdir}/libbaccats-sqlite3.so
%{_libdir}/libbacsql.so
%{_libdir}/libbacsql-%{version}.so
%{_libdir}/libbaccfg-%{version}.so
%{_libdir}/libbaccfg.so
%{_libdir}/libbacfind-%{version}.so
%{_libdir}/libbacfind.so
%{_libdir}/libbacpy-%{version}.so
%{_libdir}/libbacpy.so

%files common
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING LICENSE README SUPPORT VERIFYING ReleaseNotes
%doc README.Fedora
%config(noreplace) %{_sysconfdir}/logrotate.d/bacula
%dir %{_sysconfdir}/%{name}
%dir %{_libexecdir}/%{name}
%{_sbindir}/btraceback
%{_libexecdir}/%{name}/btraceback.dbx
%{_libexecdir}/%{name}/btraceback.gdb
%{_libexecdir}/%{name}/bacula_config
%{_libexecdir}/%{name}/btraceback.mdb
%{_mandir}/man8/btraceback.8.gz
%dir %attr(750, bacula, bacula) %{_localstatedir}/log/bacula
%dir %attr(750, bacula, bacula) %{_localstatedir}/spool/bacula
%{_sbindir}/bacula-checkconf

%files director
%defattr(-,root,root,-)
%doc updatedb
%attr(640,root,bacula) %config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf
%attr(640,root,bacula) %config(noreplace) %{_sysconfdir}/bacula/query.sql
%config(noreplace) %{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
%config(noreplace) %{_sysconfdir}/logwatch/conf/services/bacula.conf
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-dir
%{_sysconfdir}/logwatch/scripts/services/bacula
%{_sysconfdir}/logwatch/scripts/shared/applybaculadate
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
%{_unitdir}/bacula-dir.service
%else
%{_initrddir}/bacula-dir
%endif
%{_sbindir}/bacula-dir
%{_sbindir}/bregex
%{_sbindir}/bsmtp
%{_sbindir}/bwild
%{_sbindir}/dbcheck
%{_mandir}/man1/bsmtp.1.gz
%{_mandir}/man8/bacula-dir.8.gz
%{_mandir}/man8/bregex.8.gz
%{_mandir}/man8/bwild.8.gz
%{_mandir}/man8/dbcheck.8.gz
%{_libexecdir}/%{name}/create_bacula_database
%{_libexecdir}/%{name}/delete_catalog_backup
%{_libexecdir}/%{name}/drop_bacula_database
%{_libexecdir}/%{name}/drop_bacula_tables
%{_libexecdir}/%{name}/grant_bacula_privileges
%{_libexecdir}/%{name}/make_bacula_tables
%{_libexecdir}/%{name}/make_catalog_backup
%{_libexecdir}/%{name}/make_catalog_backup.pl
%{_libexecdir}/%{name}/update_bacula_tables
%{_libexecdir}/%{name}/create_mysql_database
%{_libexecdir}/%{name}/drop_mysql_database
%{_libexecdir}/%{name}/drop_mysql_tables
%{_libexecdir}/%{name}/grant_mysql_privileges
%{_libexecdir}/%{name}/make_mysql_tables
%{_libexecdir}/%{name}/update_mysql_tables
%{_libexecdir}/%{name}/create_sqlite3_database
%{_libexecdir}/%{name}/drop_sqlite3_database
%{_libexecdir}/%{name}/drop_sqlite3_tables
%{_libexecdir}/%{name}/grant_sqlite3_privileges
%{_libexecdir}/%{name}/make_sqlite3_tables
%{_libexecdir}/%{name}/update_sqlite3_tables
%{_libexecdir}/%{name}/create_postgresql_database
%{_libexecdir}/%{name}/drop_postgresql_database
%{_libexecdir}/%{name}/drop_postgresql_tables
%{_libexecdir}/%{name}/grant_postgresql_privileges
%{_libexecdir}/%{name}/make_postgresql_tables
%{_libexecdir}/%{name}/update_postgresql_tables

%files storage
%defattr(-,root,root,-)
%{_sbindir}/bacula-sd
%{_sbindir}/bcopy
%{_sbindir}/bextract
%{_sbindir}/bls
%{_sbindir}/bscan
%{_sbindir}/btape
%config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-sd
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
%{_unitdir}/bacula-sd.service
%else
%{_initrddir}/bacula-sd
%endif
%{_libexecdir}/%{name}/disk-changer
%{_libexecdir}/%{name}/dvd-handler
%{_libexecdir}/%{name}/mtx-changer
%{_libexecdir}/%{name}/mtx-changer.conf
%{_mandir}/man8/bacula-sd.8.gz
%{_mandir}/man8/bcopy.8.gz
%{_mandir}/man8/bextract.8.gz
%{_mandir}/man8/bls.8.gz
%{_mandir}/man8/bscan.8.gz
%{_mandir}/man8/btape.8.gz

%files client
%defattr(-,root,root,-)
%{_sbindir}/bacula-fd
%if 0%{?fedora} >= 15 || 0%{?rhel} > 6
%{_unitdir}/bacula-fd.service
%else
%{_initrddir}/bacula-fd
%endif
%config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf
%config(noreplace) %{_sysconfdir}/sysconfig/bacula-fd
%{_mandir}/man8/bacula-fd.8.gz
%{_libdir}/bacula/bpipe-fd.so

%files console
%defattr(-,root,root,-)
%{_sbindir}/bconsole
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/bacula/bconsole.conf
%{_mandir}/man8/bconsole.8.gz

%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
%files console-bat
%defattr(-,root,root,-)
%doc %{_datadir}/doc/bacula-console-bat-%{version}/*
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/bacula/bat.conf
%{_sbindir}/bat
%{_mandir}/man1/bat.1.gz
%{_datadir}/applications/fedora-bacula-bat.desktop
%{_datadir}/pixmaps/bat.png

%files traymonitor
%defattr(-,root,root,-)
%{_sbindir}/bacula-tray-monitor
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/bacula/tray-monitor.conf
%{_datadir}/applications/fedora-bacula-traymonitor.desktop
%{_datadir}/pixmaps/bacula-tray-monitor.png
%endif

%files devel
%defattr(-,root,root,-)
%{_includedir}/bacula
%{_libdir}/libbac.la
%{_libdir}/libbaccats.la
%{_libdir}/libbaccats-mysql.la
%{_libdir}/libbaccats-postgresql.la
%{_libdir}/libbaccats-sqlite3.la
%{_libdir}/libbacsql.la
%{_libdir}/libbaccfg.la
%{_libdir}/libbacfind.la
%{_libdir}/libbacpy.la

%files -n nagios-plugins-bacula
%defattr(-,root,root)
%{_libdir}/nagios/plugins/check_bacula


%changelog
* Wed Jan 18 2012 Simone Caronni <negativo17@gmail.com> - 5.2.4-1
- Update to 5.2.4, rework libbaccats installation as they have
  fixed the soname library problem.

* Sun Jan 12 2012 Simone Caronni <negativo17@gmail.com> - 5.2.3-8
- Fix tray monitor desktop file.

* Wed Jan 11 2012 Simone Caronni <negativo17@gmail.com> - 5.2.3-7
- Split off bacula-docs subpackage.

* Thu Jan 05 2012 Simone Caronni <negativo17@gmail.com> - 5.2.3-6
- Make docs conditional at build for testing.
- Add devel subpackage.

* Tue Jan 03 2012 Simone Caronni <negativo17@gmail.com> - 5.2.3-5
- Trim changelog.
- Merge bacula-director backends and move libbacats alternatives
  to bacula-libs.
- Move bscan to bacula-storage now that is dependent only on
  bacula-libs.
- Added README.Fedora.

* Tue Dec 20 2011 Simone Caronni <negativo17@gmail.com> - 5.2.3-4
- Changing uid from 33 per previous discussion, static uid
  already allocated is 133:
  "cat /usr/share/doc/setup-2.8.36/uidgid | grep bacula"

* Mon Dec 19 2011 Simone Caronni <negativo17@gmail.com> - 5.2.3-3
- Remove fedora-usermgmt entirely, see thread at:
  http://lists.fedoraproject.org/pipermail/packaging/2011-December/008034.html

* Mon Dec 19 2011 Simone Caronni <negativo17@gmail.com> - 5.2.3-2
- Remove leftover users when removing bacula-common.
- Allow building "--without fedora" to avoid RHEL dependency on EPEL:
  http://fedoraproject.org/wiki/PackageUserCreation

* Mon Dec 19 2011 Simone Caronni <negativo17@gmail.com> - 5.2.3-1
- Updated to 5.2.3.
- Remove fedora-usermgmt from libs Requires section.

* Sun Dec 11 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-11
- Add bat html docs so the help button works.
- Minor packaging changes.
- Default permissions on bconsole and bat.
- Use localhost as default on config files instead of patching fake
  example.com hostnames.
- Add QT tray monitor.

* Sat Dec 10 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-10
- Added patch for mysql 5.5.18 from Oliver Falk.

* Wed Dec 07 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-9
- Add sample-query.sql as config file.
- Small log changes.

* Wed Dec 07 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-8
- Fixed building on RHEL/CentOS 4.
- Split out libs package to remove dependency on bacula-common for
  bconsole, bat and check_bacula.
- Fix typo in post scriptlet for director-sqlite.

* Tue Dec 06 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-7
- Added libcap for POSIX.1e capabilities in bacula-fd (5.0.0 feature).
- Allow systemd files to read options set in the sysconfig
  configuration files like SysV scripts to enable capabilities.
- Set capabilities as optional for now.

* Mon Dec 05 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-6
- Removed leftover files and small rpmlint fixes.
- Additional file moves between packages.
- Enabled LZO compression (5.2.1 feature).

* Mon Dec 05 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-5
- Remove redundant user/group in service files.
- Reduce patching for what can be passed through configure.
- Remove dsolink patch, not needed anymore.

* Thu Dec 02 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-4
- Rename storage-common to storage and make it provide storage-common.
- Move bscan to director-common.
- Move storage scripts to storage.
- Add html docs.
- Install dummy catalogue library and mark it as ghost.

* Thu Dec 01 2011 Simone Caronni <negativo17@gmail.com> - 5.2.2-3
- Add missing conditional for bat in the build section.
- Make bat require qt4-devel on build (rhel 5 fix).
- Bumped requirement for qt >= 4.6.2 for 5.2.2.
- Renamed bacula-config.patch to bacula-5.2.2-config.patch as it
  always changes.
- Fix installation of bat and check_bacula binaries. Enabling
  libtool for bpipe-fd.so produces binaries under .libs.
- Removed fedora-usermgmt requirement for director-common.
- Removed examples from docs and make them "noarch".
- Fix bacula-console requirements.
- Fix nagios plugin summary.
- Removed checkconf functions from SysV init files and replace
  the call with the script used in systemd service files. Make
  the script available in all builds.
- Make docs NoArch where supported.

* Thu Dec  1 2011 Tom Callaway <spot@fedoraproject.org> - 5.2.2-2
- resolve broken dependency issues

* Tue Nov 29 2011 Tom Callaway <spot@fedoraproject.org> - 5.2.2-1
- Update to 5.2.2
- minor spec cleanups, conditionalized support for systemd

* Fri Nov 04 2011 Simone Caronni <negativo17@gmail.com> - 5.2.1-1
- Updated to 5.2.1.
- Reworked and removed some patches for 5.2.1 codebase.
- Reworked bat installation.
- Removed sqlite2 support.
- Removed all the fancy database backend rebuilding.
- Disabled libtool for bpipe-fd.so.
- Passed plugins dir as libdir/bacula.
- Added sql libs to alternatives.
- Disabled traymonitor.
- Minor fixes to spec file, rpmlint fixes.
- Nagios patch for Enterprise FDs.
- Removed all gui/web stuff.
- Removed a lot of comments.
- Conditional on Fedora 11 / RHEL 6 for bat build.
- Obsolete bacula-sysconfdir.
- Removed bwxconsole.

* Thu Nov 3 2011 Lukáš Nykrýn <lnykryn@redhat.com> - 5.0.3-13
- fixed creating of bacula MySQL tables and bump

* Fri Oct  9 2011 Lukáš Nykrýn <lnykryn@redhat.com> - 5.0.3-12
- fixed restart option in service files (#745529)
- fixed creating of bacula MySQL tables (#724894)

* Fri Sep  9 2011 Tom Callaway <spot@fedoraproject.org> - 5.0.3-11
- add missing scriptlets

* Thu Sep  8 2011 Tom Callaway <spot@fedoraproject.org> - 5.0.3-10 
- convert to systemd

* Wed Mar 23 2011 Dan Horák <dan@danny.cz> - 5.0.3-9
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)

* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.0.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Jan 03 2011 Jon Ciesla <limb@jcomserv.net> - 5.0.3-7
- Rebuild for MySQL 5.5, with patch.

* Fri Nov 26 2010 Jan Görig <jgorig@redhat.com> - 5.0.3-6
- Fixed previous fix of alternatives
- Changed initscript return value for non-configured service
- Director address is required in tray-monitor config now (#626490)

* Tue Nov 23 2010 Jan Görig <jgorig@redhat.com> - 5.0.3-5
- Fixed alternatives for dbcheck (#650224)
- Moved director log file to /var/log/bacula/
- Changed permission of bacula-dir.conf (RHEL #651786)
- SQLite database is created as bacula user

* Tue Oct 19 2010 Jan Görig <jgorig@redhat.com> - 5.0.3-4
- Fixed initscripts and changed default group of bacula-sd (#629697)
- Better warning for non-configured password (#556669)

* Wed Sep 29 2010 jkeating - 5.0.3-3
- Rebuilt for gcc bug 634757

* Thu Sep 23 2010 Jan Görig <jgorig@redhat.com> - 5.0.3-2
- fixed openssl patch, thanks to Enrico Scholz

* Tue Aug 10 2010 Jon Ciesla <limb@jcomserv.net> - 5.0.3-1
- New upstream.
- DSOlink fix for same.

* Fri Jul 30 2010 Jon Ciesla <limb@jcomserv.net> - 5.0.2-8
- Patched configure scripts for Python 2.7.

* Fri Jul 30 2010 Jon Ciesla <limb@jcomserv.net> - 5.0.2-7
- Rebuild against Python 2.7.

* Wed Jul 14 2010 Dan Horák <dan@danny.cz> - 5.0.2-6
- rebuilt against wxGTK-2.8.11-2

* Thu Jun 3 2010 Jan Görig <jgorig@redhat.com> 5.0.2-5
- removed no longer needed sysconfig subpackage (#593307]
- build with $RPM_OPT_FLAGS, show compiler commands in build log (#575425)
  fixed by Ville Skyttä
- dropped tcp_wrappers build conditional (#537250)
- fixed location of query.xml in config file (#556480)

* Wed Jun 2 2010 Jan Görig <jgorig@redhat.com> 5.0.2-4
- initscripts improvements
- fixed consolehelper settings and menu entries

* Tue Jun 01 2010 Jon Ciesla <limb@jcomserv.net - 5.0.2-3
- Corrected ssl patch, court. jgorig.

* Wed May 19 2010 Jon Ciesla <limb@jcomserv.net - 5.0.2-2
- Corrected bat build, BZ 593149.
- Corrected ssl patch.

* Thu Apr 29 2010 Jon Ciesla <limb@jcomserv.net - 5.0.2-1
- New upstream, 5.0.2.
- Updated openssl patch.

* Thu Feb 25 2010 Jon Ciesla <limb@jcomserv.net - 5.0.1-1
- New upstream, 5.0.1.

* Mon Jan 25 2010 Jon Ciesla <limb@jcomserv.net - 5.0.0-1
- New upstream, 5.0.0.