File bacula.spec of Package bacula96

%define realname bacula
%define realver  9.6.5
%define srcext   tar.gz

# turn off the generation of debuginfo rpm  (RH9) ??
%global debug_package %{nil}

# Common info
Name:          %{realname}9
Version:       %{realver}
Release:       %{?dist}
License:       AGPL-3.0
Group:         Productivity/Archiving/Backup
URL:           https://www.bacula.org/
Summary:       Open Source Backup, Enterprise ready, Network Backup Tool

# Build-time parameters
BuildRequires: pkgconfig gettext gcc-c++
BuildRequires: readline-devel libacl-devel libattr-devel openssl-devel
BuildRequires: lzo-devel zlib-devel
BuildRequires: postgresql-devel mysql-devel
BuildRequires: libcap-devel insserv-compat
%if 0%{?suse_version} && ! 0%{?sles_version} && ! 0%{?suse_version} > 1500
BuildRequires: pkgconfig(QtGui) >= 4.8.4
%endif
%if 0%{?suse_version}
BuildRequires: sqlite3-devel
BuildRequires: update-desktop-files
%else
BuildRequires: sqlite-devel
%endif
%if 0%{?suse_version} >= 1230
BuildRequires: systemd
%endif
BuildRoot:     %{_tmppath}/%{name}-root
Source:        https://sourceforge.net/projects/%{name}/files/%{name}/%{realver}/%{realname}-%{realver}%{?extraver}.%{srcext}

%description
Bacula is a set of Open Source, 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. 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. In technical terms, it
is an Open Source, network based backup program.

%package common
Group:         Productivity/Archiving/Backup
Summary:       Open Source Backup, Enterprise ready, Network Backup Tool
Requires:      logrotate aaa_base
%if 0%{?suse_version} >= 1230
Requires: systemd
%endif

%description common
Bacula is a set of Open Source, 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. 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. In technical terms, it
is an Open Source, network based backup program.

%package director
Group:         Productivity/Archiving/Backup
Summary:       Bacula director daemon
Requires:      %{name}-db-driver %{name}-common
Requires:      aaa_base 
Provides:      %{name}-dir

%description director
The Bacula Director service is the program that supervises all the backup,
restore, verify and archive operations. The system administrator uses the
Bacula Director to schedule backups and to recover files.

%package storage
Group:         Productivity/Archiving/Backup
Summary:       Bacula storage daemon
Requires:      aaa_base %{name}-common mtx
Provides:      %{name}-sd
%global __requires_exclude ^.*libbaccats\\.so.*$
%global __requires_exclude ^.*libbaccats-%{version}\\.so.*$

%description storage
The Bacula Storage services consist of the software programs that perform
the storage and recovery of the file attributes and data to the physical
backup media or volumes. In other words, the Storage daemon is responsible
for reading and writing your tapes (or other storage media, e.g. files).

%package client
Group:         Productivity/Archiving/Backup
Summary:       Bacula client daemon
Requires:      aaa_base %{name}-common
Provides:      %{name}-fd

%description client
The Bacula File service (also known as the Client program) is the software
program that is installed on the machine to be backed up. It is specific
to the operating system on which it runs and is responsible for providing
the file attributes and data when requested by the Director. The File
services are also responsible for the file system dependent part of restoring
the file attributes and data during a recovery operation.

%package console
Group:         Productivity/Archiving/Backup
Summary:       Bacula console
Requires:      %{name}-common
Provides:      bconsole

%description console
The Bacula Console service is the program that allows the administrator
or user to communicate with the Bacula Director.

%if 0%{?suse_version}
%package console-bat
Group:         Productivity/Archiving/Backup
Summary:       Qt-based Bacula console
Provides:      %{name}-bat

%description console-bat
The Bacula Console service is the program that allows the administrator
or user to communicate with the Bacula Director.

This package contains Qt4-based console.
%endif

%package mysql
Group:         Productivity/Archiving/Backup
Summary:       MySQL support for Bacula director
Provides:      %{name}-db-driver
Requires:      %{name}-dir

%description mysql
MySQL database support for Bacula director.

%package postgresql
Group:         Productivity/Archiving/Backup
Summary:       PostgreSQL support for Bacula director
Provides:      %{name}-db-driver
Requires:      %{name}-dir

%description postgresql
PostgreSQL database support for Bacula director.

%package sqlite3
Group:         Productivity/Archiving/Backup
Summary:       SQLite support for Bacula director
Requires:      sqlite%{?suse_version:3}
Provides:      %{name}-db-driver
Requires:      %{name}-dir

%description sqlite3
SQLite database support for Bacula director.

%package lang
Group:         Productivity/Archiving/Backup
Summary:       Localization for bacula

%description lang
Localization files for bacula.

# Preparation step (unpacking and patching if necessary)
%prep
%setup -q -n %{realname}-%{realver}
echo "/bin/true" > src/cats/install-default-backend.in
sed -ri '/^\s{8}/ s/^\s{8}/\t/' platforms/systemd/Makefile.in

%build
export PATH=${PATH}:%{_libdir}/qt4/bin
%configure \
 --sysconfdir=%{_sysconfdir}/bacula \
 --disable-static \
 --enable-bat \
 --enable-readline \
 --disable-conio \
 --with-working-dir=%{_localstatedir}/spool/bacula \
 --with-archivedir=%{_localstatedir}/spool/bacula \
 --with-scriptdir=%{_libexecdir}/bacula \
 --with-bsrdir=%{_sysconfdir}/bacula/bsr \
 --with-logdir=%{_localstatedir}/log/bacula \
 --with-plugindir=%{_libdir}/bacula \
 --with-postgresql \
 --with-mysql \
 --with-sqlite3 \
 --with-dir-user=bacula \
 --with-dir-group=bacula \
 --with-sd-user=bacula \
 --with-sd-group=bacula \
%if 0%{?_unitdir:1}
 --with-systemd=%{_unitdir} \
%endif
%if 0%{?suse_version} && ! 0%{?sles_version} && ! 0%{?suse_version} > 1500
 --enable-bat \
%else
 --disable-bat \
%endif
 CFLAGS="%{optflags}" \
 CXXFLAGS="%{optflags}" \
 LDFLAGS="-Wl,--as-needed -Wl,--strip-all"
%{__make} %{?_smp_mflags}
cd po
%{__make} %{?_smp_mflags}
cd -

%install
%{__make} install DESTDIR=%{buildroot} SYSTEMD_TMPFILES="%{_tmpfilesdir}" INSTALL="$(type -p install)"
cd po
%{__make} install DESTDIR=%{buildroot}
cd -
%{__install} -d -m755 %{buildroot}%{_sysconfdir}/bacula/bsr
%{__install} -d -m755 %{buildroot}%{_localstatedir}/log/bacula
# Cris
%{__install} -d -m755 %{buildroot}%{_rundir}/bacula
#
%{__install} -D -m644 scripts/logrotate                  %{buildroot}%{_sysconfdir}/logrotate.d/bacula
%{__install} -D -m644 scripts/filetype.vim               %{buildroot}%{_datadir}/vim/site/ftdetect/filetype.vim
%{__install} -D -m644 scripts/bacula.vim                 %{buildroot}%{_datadir}/vim/site/syntax/bacula.vim
%if 0%{?_unitdir:1}
%{__install} -d -m755 %{buildroot}%{_unitdir}
%{__make} install-autostart DESTDIR=%{buildroot} DISTNAME=systemd
test -d %{buildroot}%{_tmpfilesdir} || %{__install} -d -m 0755 %{buildroot}%{_tmpfilesdir}
cat > %{buildroot}%{_tmpfilesdir}/bacula.conf <<EOF
d /run/bacula 0755 bacula bacula -
EOF
%else
%{__install} -d -m755 %{buildroot}%{_initrddir}
%{__make} install-autostart DESTDIR=%{buildroot} DISTNAME=%{_vendor}
%endif
%{__rm} -rf %{buildroot}%{_datadir}/doc
%find_lang %{realname}
%if %{expand:%_vendor == "suse"} && ! 0%{?sles_version} && ! 0%{?suse_version} > 1500
%{__install} -D -m644 scripts/bat.desktop                %{buildroot}%{_datadir}/applications/bat.desktop
%{__install} -D -m644 src/qt-console/images/bat_icon.png %{buildroot}%{_datadir}/pixmaps/bat_icon.png
%suse_update_desktop_file -r -G "Bacula console" bat System Backup Qt
%else
find %{buildroot}%{_mandir}/man1/ -name "bat.1*" -exec rm -f {} \;
%endif
%if 0%{!?_unitdir:1} && 0%{?suse_version}
%{__ln_s} %{_initrddir}/bacula-dir %{buildroot}%{_sbindir}/rcbacula-dir
%{__ln_s} %{_initrddir}/bacula-fd  %{buildroot}%{_sbindir}/rcbacula-fd
%{__ln_s} %{_initrddir}/bacula-sd  %{buildroot}%{_sbindir}/rcbacula-sd
%endif
# Cris:
%{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rcbacula-dir
%{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rcbacula-fd
%{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rcbacula-sd
#
rm -f %{buildroot}%{_libdir}/libbaccats.so
rm -f %{buildroot}%{_libdir}/libbaccats-%{version}.so
# Change PID directory in *.conf files
%{_bindir}/sed -ri 's|(Pid\s*Directory\s*=\s*).+$|\1"%{!?_unitdir:/var}/run/bacula"|' %{buildroot}%{_sysconfdir}/bacula/*.conf
rm %{buildroot}/usr/lib/bacula/bacula-tray-monitor.desktop

%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files common
%defattr(-,root,root)
%doc AUTHORS LICENSE LICENSE-FAQ LICENSE-FOSS ReleaseNotes SUPPORT
%dir %attr(0755,root,root) %{_sysconfdir}/bacula/bsr/
%dir %attr(0755,root,root) %{_sysconfdir}/bacula/
%dir %attr(0755,root,root) %{_libdir}/bacula/
%dir %attr(0755,root,root) %{_libexecdir}/bacula/
%dir %attr(0755,bacula,bacula) %{_localstatedir}/log/bacula/
# Cris:
%ghost %dir %attr(0755,bacula,bacula) %{_rundir}/bacula/
# -
%config(noreplace) %{_sysconfdir}/logrotate.d/%{realname}
%if 0%{?_unitdir:1}
%{_tmpfilesdir}/bacula.conf
%endif
%{_libdir}/libbac.so
%{_libdir}/libbacsd.so
%{_libdir}/libbacsd-%{version}.so
%{_libdir}/libbac-%{version}.so
%{_libdir}/libbaccfg.so
%{_libdir}/libbaccfg-%{version}.so
%{_libdir}/libbacfind.so
%{_libdir}/libbacfind-%{version}.so
%attr(0644,root,root) %{_libexecdir}/bacula/btraceback.*
%attr(0755,root,root) %{_sbindir}/bacula
%attr(0755,root,root) %{_sbindir}/bregex
%attr(0755,root,root) %{_sbindir}/bsmtp
%attr(0755,root,root) %{_sbindir}/btraceback
%attr(0755,root,root) %{_sbindir}/bwild
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/bacula
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/bacula-ctl-*
%attr(0755,bacula,bacula) %{_libexecdir}/bacula/bacula_config
%dir %{_datadir}/vim/site/ftdetect
%dir %{_datadir}/vim/site/syntax
%dir %{_datadir}/vim/site
%dir %{_datadir}/vim
%{_datadir}/vim/site/syntax/bacula.vim
%{_datadir}/vim/site/ftdetect/filetype.vim
%dir %attr(0750,bacula,bacula) %{_localstatedir}/spool/bacula
%doc %{_mandir}/man1/bsmtp.1*
%doc %{_mandir}/man8/bacula.8*
%doc %{_mandir}/man8/bregex.8*
%doc %{_mandir}/man8/btraceback.8*
%doc %{_mandir}/man8/bwild.8*
%exclude %{_libdir}/*.la

%files director
%defattr(-,root,root)
%attr(0640,bacula,bacula) %config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf
%if 0%{?_unitdir:1}
%{_unitdir}/bacula-dir.service
# Cris:
%if 0%{?suse_version}
%{_sbindir}/rcbacula-dir
%endif
#
%else
%{_initrddir}/bacula-dir
%if 0%{?suse_version}
%{_sbindir}/rcbacula-dir
%endif
%endif
%attr(0755,root,root) %{_sbindir}/bacula-dir
%attr(0755,root,root) %{_sbindir}/bscan
%attr(0755,root,root) %{_sbindir}/dbcheck
%attr(0755,root,root) %{_sbindir}/bdirjson
%{_libdir}/libbacsql.so
%{_libdir}/libbacsql-%{version}.so
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/create_bacula_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/delete_catalog_backup
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_bacula_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_bacula_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/grant_bacula_privileges
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_bacula_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_catalog_backup
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_catalog_backup.pl
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/update_bacula_tables
%attr(0640,bacula,bacula) %{_libexecdir}/bacula/query.sql
%doc %{_mandir}/man8/bacula-dir.8*
%doc %{_mandir}/man8/bscan.8*
%doc %{_mandir}/man8/dbcheck.8*

%files storage
%defattr(-,root,root)
%attr(0640,bacula,bacula) %config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf
%if 0%{?_unitdir:1}
%{_unitdir}/bacula-sd.service
# Cris:
%if 0%{?suse_version}
%{_sbindir}/rcbacula-sd
%endif
#
%else
%{_initrddir}/bacula-sd
%if 0%{?suse_version}
%{_sbindir}/rcbacula-sd
%endif
%endif
%attr(0755,root,root) %{_sbindir}/bacula-sd
%attr(0755,root,root) %{_sbindir}/bcopy
%attr(0755,root,root) %{_sbindir}/bextract
%attr(0755,root,root) %{_sbindir}/bls
%attr(0755,root,root) %{_sbindir}/btape
%attr(0755,root,root) %{_sbindir}/bsdjson
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/disk-changer
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/tapealert
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/mtx-changer
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/isworm
%attr(0640,bacula,bacula) %{_libexecdir}/bacula/mtx-changer.conf
%doc %{_mandir}/man8/bacula-sd.8*
%doc %{_mandir}/man8/bcopy.8*
%doc %{_mandir}/man8/bextract.8*
%doc %{_mandir}/man8/bls.8*
%doc %{_mandir}/man8/btape.8*

%files client
%defattr(-,root,root)
%attr(0640,root,root) %config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf
%if 0%{?_unitdir:1}
%{_unitdir}/bacula-fd.service
#Cris:
%if 0%{?suse_version}
%{_sbindir}/rcbacula-fd
%endif
#
%else
%{_initrddir}/bacula-fd
%if 0%{?suse_version}
%{_sbindir}/rcbacula-fd
%endif
%endif
%attr(0755,root,root) %{_sbindir}/bacula-fd
%attr(0755,root,root) %{_sbindir}/bfdjson
%{_libdir}/bacula/*-fd.so
%doc %{_mandir}/man8/bacula-fd.8*

%files console
%defattr(-,root,root)
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/bacula/bconsole.conf
%{_sbindir}/bconsole
%attr(0755,root,root) %{_sbindir}/bbconsjson
%attr(0755,bacula,bacula) %{_libexecdir}/bacula/bconsole
%attr(0755,bacula,bacula) %{_libexecdir}/bacula/baculabackupreport
%doc %{_mandir}/man8/bconsole.8*

%if 0%{?suse_version} && ! 0%{?sles_version} && ! 0%{?suse_version} > 1500
%files console-bat
%defattr(-,root,root)
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/bacula/bat.conf
%attr(0755,root,root) %{_sbindir}/bat
%{_datadir}/applications/bat.desktop
%{_datadir}/pixmaps/bat_icon.png
%doc %{_mandir}/man1/bat.1*
%endif

%files mysql
%defattr(-,root,root)
%{_libdir}/libbaccats-mysql.so
%{_libdir}/libbaccats-mysql-%{version}.so
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/create_mysql_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_mysql_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_mysql_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/grant_mysql_privileges
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_mysql_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/update_mysql_tables
# Cris:
%ghost %{_sysconfdir}/alternatives/libbaccats.so
%ghost %{_sysconfdir}/alternatives/libbaccats-%{version}.so

%files postgresql
%defattr(-,root,root)
%{_libdir}/libbaccats-postgresql.so
%{_libdir}/libbaccats-postgresql-%{version}.so
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/create_postgresql_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_postgresql_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_postgresql_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/grant_postgresql_privileges
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_postgresql_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/update_postgresql_tables
# Cris:
%ghost %{_sysconfdir}/alternatives/libbaccats.so
%ghost %{_sysconfdir}/alternatives/libbaccats-%{version}.so

%files sqlite3
%defattr(-,root,root)
%{_libdir}/libbaccats-sqlite3.so
%{_libdir}/libbaccats-sqlite3-%{version}.so
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/create_sqlite3_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_sqlite3_database
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/drop_sqlite3_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/grant_sqlite3_privileges
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/make_sqlite3_tables
%attr(0750,bacula,bacula) %{_libexecdir}/bacula/update_sqlite3_tables
# Cris:
%ghost %{_sysconfdir}/alternatives/libbaccats.so
%ghost %{_sysconfdir}/alternatives/libbaccats-%{version}.so

%files lang -f %{realname}.lang
%defattr(-,root,root)

%if 0%{?suse_version}

%pre director
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :
	%if 0%{?_unitdir:1}
		%{service_add_pre bacula-dir.service}
	%endif

%post director
	%if 0%{?_unitdir:1}
		%{fillup_only -n bacula-dir}
		%{service_add_post bacula-dir.service}
	%else
		%{fillup_and_insserv -n bacula-dir}
	%endif
	/sbin/ldconfig
## --Cris: Replace PIDFile location to /run/bacula in bacula-dir.service
	%{_bindir}/sed -ri 's|(PIDFile\s*=\s*).+$|\1%{_rundir}/bacula/bacula-dir.9101.pid|' %{_unitdir}/bacula-dir.service

%preun director
	%if 0%{?_unitdir:1}
		%{service_del_preun bacula-dir.service}
	%else
		%{stop_on_removal bacula-dir}
	%endif

%postun director
	%if 0%{?_unitdir:1}
		%{service_del_postun bacula-dir.service}
	%else
		%{restart_on_update bacula-dir}
	%endif
	%{insserv_cleanup}
	/sbin/ldconfig

%pre storage
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula -G tape bacula 2> /dev/null || :
## --Cris: Add tape group to user bacula for bacula-storage
#%{_sbindir}/usermod bacula -a -G tape ## Does not build in Build Service because tape group does not exists
#
	%if 0%{?_unitdir:1}
		%{service_add_pre bacula-sd.service}
	%endif

%post storage
	%if 0%{?_unitdir:1}
		%{fillup_only -n bacula-sd}
		%{service_add_post bacula-sd.service}
	%else
		%{fillup_and_insserv -n bacula-sd}
	%endif
## --Cris: Replace PIDFile location to /run/bacula in bacula-sd.service
	%{_bindir}/sed -ri 's|(PIDFile\s*=\s*).+$|\1%{_rundir}/bacula/bacula-sd.9103.pid|' %{_unitdir}/bacula-sd.service
## --Cris: Replace expected return status string for mt on mtx-changer utility
	%{_bindir}/sed -i 's|ready="ONLINE"|ready="drive status"|g' %{_libexecdir}/bacula/mtx-changer.conf

%preun storage
	%if 0%{?_unitdir:1}
		%{service_del_preun bacula-sd.service}
	%else
		%{stop_on_removal bacula-sd}
	%endif

%postun storage
	%if 0%{?_unitdir:1}
		%{service_del_postun bacula-sd.service}
	%else
		%{restart_on_update bacula-sd}
	%endif
	%{insserv_cleanup}

%if 0%{?_unitdir:1}

%pre client
	%{service_add_pre bacula-fd.service}
	%endif

%post client
	%if 0%{?_unitdir:1}
		%{fillup_only -n bacula-fd}
		%{service_add_post bacula-fd.service}
	%else
		%{fillup_and_insserv -n bacula-fd}
	%endif
## --Cris: Replace PIDFile location to /run/bacula in bacula-fd.service
	%{_bindir}/sed -ri 's|(PIDFile\s*=\s*).+$|\1%{_rundir}/bacula/bacula-fd.9102.pid|' %{_unitdir}/bacula-fd.service
#

%preun client
	%if 0%{?_unitdir:1}
		%{service_del_preun bacula-fd.service}
	%else
		%{stop_on_removal bacula-fd}
	%endif

%postun client
	%if 0%{?_unitdir:1}
		%{service_del_postun bacula-fd.service}
	%else
		%{restart_on_update bacula-fd}
	%endif
	%{insserv_cleanup}

%else

%pre director
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%post director
	/sbin/ldconfig

%postun director -p /sbin/ldconfig

%pre storage
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%endif

%pre common
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%post common
	/sbin/ldconfig
	%if 0%{?_unitdir:1}
		systemd-tmpfiles --create bacula.conf
	%endif

%postun common -p /sbin/ldconfig

%pre mysql
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%post mysql
	%{_sbindir}/update-alternatives \
	   --install %{_libdir}/libbaccats.so            libbaccats.so            %{_libdir}/libbaccats-mysql.so 10 \
	   --slave %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-mysql-%{version}.so
	/sbin/ldconfig

%postun mysql
	%{_sbindir}/update-alternatives --auto libbaccats.so
	/sbin/ldconfig

%pre postgresql
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%post postgresql
	%{_sbindir}/update-alternatives \
	   --install %{_libdir}/libbaccats.so            libbaccats.so            %{_libdir}/libbaccats-postgresql.so 10 \
	   --slave %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-postgresql-%{version}.so
	/sbin/ldconfig

%postun postgresql
	%{_sbindir}/update-alternatives --auto libbaccats.so
	/sbin/ldconfig

%pre sqlite3
	%{_sbindir}/groupadd -r bacula 2> /dev/null || :
	%{_sbindir}/useradd -r -s /bin/false -c "User for Bacula daemons" -d /var/spool/bacula -g bacula bacula 2> /dev/null || :

%post sqlite3
	%{_sbindir}/update-alternatives \
	   --install %{_libdir}/libbaccats.so            libbaccats.so            %{_libdir}/libbaccats-sqlite3.so 10 \
	   --slave %{_libdir}/libbaccats-%{version}.so libbaccats-%{version}.so %{_libdir}/libbaccats-sqlite3-%{version}.so
	/sbin/ldconfig

%postun sqlite3
	%{_sbindir}/update-alternatives --auto libbaccats.so
	/sbin/ldconfig

%changelog
* Mon Jun 22 2020 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.6.5-1
- Updated from source
* Wed Mar 12 2020 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.6.3-1
- Updated from source
* Wed Feb 26 2020 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.6.2-1
- Updated from source
* Thu May 30 2019 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.4-1
- Updated from source
* Fri May 3 2019 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.3-1
- Updated from source
* Tue Apr 30 2019 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.2-2
-   Change the expected return status string on mtx-changer utility from "ONLINE" to "drive status" to avoid timeouts on loading tapes
* Tue Feb 11 2019 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.2-1
- Updated from source
* Tue Dec 17 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.0-2
- Added file %{_libexecdir}/bacula/isworm
* Tue Dec 17 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.4.0-1
- Updated from source
* Tue Nov 17 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.2.2-1
- Updated from source
* Tue Aug 27 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.2.1-1
- Updated from source
* Tue May 28 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.8-1
- Updated from source
* Tue May 8 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.7-2
- Include innserv-compat as a requirement to fix builds for openSUSE Leap 15.0
* Tue Apr 24 2018 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.7-1
- Updated from source
* Sun Jan  7 2018 Maxime Rijnders <ximi.obs@gmail.com> - 9.0.6-2
- Fix problems as reported by Tilman Schmidt <tilman@imap.cc>
- 	Removed stub library
- 	Fixed dependency
- 	Fixed alternatives for libbaccats.so
* Thu Nov 22 2017 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.6-1
- Updated from source
* Thu Nov 8 2017 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.5-1
- Updated
* Thu Oct 5 2017 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.4-21
- Fixes & checks:
-   Creation and permission of /run/bacula (755 bacula bacula)
-   Creation and permission of /usr/lib/bacula (755 root root)
-   Creation and permission of /var/spool/bacula (750 bacula bacula) (working directory)
-   Symlinks for rcbacula-fd, rcbacula-sd and rcbacula-dir to /usr/sbin/service
-   Correct location of PIDFile=/run/bacula/bacula-[fd|sd|dir].pid in /usr/lib/systemd/system/bacula-[sd|fd|dir].service
-   The correct replacement of libbaccats-stub with the corresponding database.
* Tue Sep 28 2017 Cristobal Sabroe Yde <cris@uti.unrc.edu.ar> - 9.0.4-1
- First bacula package

openSUSE Build Service is sponsored by