On Mon, 2 Jul 2007, Jordi Espasa Clofent wrote:
> Hi all,
>
> I'm planning to use Bacula in production environment. I've seen the
> Bacula packages are not provided neither by any official repo nor
> any third popular repo (as rpmforge).
>
> ?Anyone use bacula in CentOS 5?
Yeah, I back up a handful of CentOS 5 (x86_64) boxes with Bacula
2.0.3. For my purposes, I rely on a home-brewed client-only rpm that
installs a minimal set of binaries. The .spec isn't well tested, but
I've included it below just in case it helps.
--
Paul Heinlein <> heinlein at madboa.com <> http://www.madboa.com/
#
# rpm spec for bacula-fd
#
# =====================================================================
Summary: Bacula - The Network Backup Solution
Name: bacula-client
Version: 2.0.3
Release: 1%{?_distver:.%{_distver}}
Group: System Environment/Daemons
License: GPL v2
Packager: Paul Heinlein <heinlein at madboa.com>
URL: http://www.bacula.org/
Source: http://prdownloads.sourceforge.net/bacula/bacula-2.0.3.tar.gz
BuildRequires: findutils, openssl-devel, sed
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
Bacula - It comes by night and sucks the vital essence from your
computers.
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.
This build includes just the Bacula client, bacula-fd, which will
only function when paired with a remote director and storage daemon.
%prep
%setup -q -n bacula-%{version}
%build
CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
CPPFLAGS="-I/usr/kerberos/include" \
./configure \
--prefix=%{_prefix} \
--mandir=%{_mandir} \
--sysconfdir=%{_sysconfdir}/bacula \
--with-working-dir=%{_localstatedir}/bacula \
--with-scriptdir=%{_sysconfdir}/bacula \
--enable-client-only \
--with-openssl \
--with-fd-group=bacula \
--with-tcp-wrappers
make %{_smp_mflags}
%install
/bin/rm -rf "$RPM_BUILD_ROOT"
make DESTDIR=$RPM_BUILD_ROOT install
# get rid of some files not needed for client-only installations
for f in \
bacula-ctl-dir bacula-ctl-sd \
disk-changer dvd-handler \
gconsole \
mtx-changer \
startmysql stopmysql
do
/bin/rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/bacula/${f}
done
# ...and some man pages, too
for f in \
bacula-console-gnome bacula-tray-monitor bacula-wxconsole bsmtp \
bacula-dir bacula-sd bcopy bextract bls bscan btape dbcheck
do
/bin/rm -f ${RPM_BUILD_ROOT}%{_mandir}/*/${f}.?.gz
done
# the stock fd start script will work just fine as an init script
# as long as we add a chkconfig header (right before the conveniently
# placed description: comment :-)
install -d $RPM_BUILD_ROOT%{_initrddir}
sed -e \
's/^\(#[[:space:]]*description:.*\)$/# chkconfig: 2345 98 20\n\1/' \
${RPM_BUILD_ROOT}%{_sysconfdir}/bacula/bacula-ctl-fd \
> ${RPM_BUILD_ROOT}%{_initrddir}/bacula-fd
# make everything in the examples directory non-executable to
# avoid unresolved dependencies
/usr/bin/find examples -type f | /usr/bin/xargs chmod a-x
%clean
/bin/rm -rf $RPM_BUILD_ROOT
%pre
# check for and copy /etc/bacula/console.conf to bconsole.conf
if [ -s %{_sysconfdir}/bacula/console.conf ]; then
cp -p %{_sysconfdir}/bacula/console.conf %{_sysconfdir}/bacula/bconsole.conf
fi
%post
/sbin/chkconfig --add bacula-fd
/usr/sbin/groupadd -r bacula 2>/dev/null || :
%preun
if [ $1 = 0 ]; then
/sbin/service bacula-fd stop > /dev/null 2>&1
/sbin/chkconfig --del bacula-fd
fi
%files
%defattr(-,root,root)
%doc ChangeLog LICENSE README ReleaseNotes examples kernstodo projects
%attr(0755,root,root) %{_initrddir}/bacula-fd
%{_sbindir}/*
%dir %{_sysconfdir}/bacula
%{_sysconfdir}/bacula/bacula
%{_sysconfdir}/bacula/bacula-ctl-fd
%config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf
%{_sysconfdir}/bacula/bconsole
%config(noreplace) %{_sysconfdir}/bacula/bconsole.conf
%{_sysconfdir}/bacula/btraceback.*
%doc %{_mandir}/*/*
%dir %attr(0700,root,root) %{_localstatedir}/bacula
###
### eof
###