+#
# Bacula RPM spec file
#
%{?single_dir_install:%define single_dir 1}
# Installation Directory locations
-%if %{single_dir}
%define _prefix /opt/bacula
%define _sbindir /opt/bacula/bin
%define _bindir /opt/bacula/bin
%define plugin_dir /opt/bacula/plugins
%define lib_dir /opt/bacula/lib
%define log_dir /opt/bacula/log
-%else
-%define _prefix /usr
-%define _sbindir %_prefix/sbin
-%define _bindir %_prefix/bin
-%define _subsysdir /var/lock/subsys
-%define sqlite_bindir %_libdir/bacula/sqlite
-%define _mandir %_prefix/share/man
-%define sysconf_dir /etc/bacula
-%define script_dir %_libdir/bacula
-%define working_dir /var/lib/bacula
-%define pid_dir /var/run
-%define plugin_dir %_libdir/bacula/plugins
-%define lib_dir %_libdir/bacula/lib
-%define log_dir %_libdir/bacula/log
-%endif
-
%define systemd_dir /lib/systemd/system
# Daemon user:group Don't change them unless you know what you are doing
# what happens if the release is not 1? DSB
Source0: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
Source1: http://www.prdownloads.sourceforge.net/bacula/%{product}-%{version}.tar.gz
-%if 0%{?opensuse_bs}
-Source2: Release_Notes-%{version}-1.tar.gz
-%else
Source2: Release_Notes-%{version}-%{release}.tar.gz
-%endif
# define the basic package description
%define blurb Bacula - The Leading Open Source Backup Solution.
%{?build_fc18:%define fc18 1}
%define fc22 0
%{?build_fc22:%define fc22 1}
-# Whitebox Enterprise build
-%define wb3 0
-%{?build_wb3:%define wb3 1}
# RedHat Enterprise builds
%define rhel3 0
%{?build_rhel3:%define rhel3 1}
-%{?build_rhel3:%define wb3 1}
%define rhel4 0
%{?build_rhel4:%define rhel4 1}
%{?build_rhel4:%define fc3 1}
# CentOS build
%define centos3 0
%{?build_centos3:%define centos3 1}
-%{?build_centos3:%define wb3 1}
%define centos4 0
%{?build_centos4:%define centos4 1}
%{?build_centos4:%define fc3 1}
%{?build_centos5:%define fc6 1}
%define centos6 0
%{?build_centos6:%define centos6 1}
-#define centos7 0
+%define centos7 0
%{?build_centos7:%define centos7 1}
# SL build
%define sl3 0
%{?build_sl3:%define sl3 1}
-%{?build_sl3:%define wb3 1}
%define sl4 0
%{?build_sl4:%define sl4 1}
%{?build_sl4:%define fc3 1}
# if the platform is using systemd
%define usesystemd 0
-%if %{rhel7} || %{fc22}
+%if %{rhel7} || %{fc22} || %{centos7}
%define usesystemd 1
%endif
# test for a platform definition
-%if !%{rhat} && !%{rhel} && !%{fed} && !%{wb3} && !%{suse} && !%{mdk} && !%{scil}
+%if !%{rhat} && !%{rhel} && !%{fed} && !%{suse} && !%{mdk} && !%{scil}
%{error: You must specify a platform. Please examine the spec file.}
exit 1
%endif
# distribution-specific directory for logwatch
-%if %{wb3} || %{rh7} || %{rh8} || %{rh9}
+%if %{rh7} || %{rh8} || %{rh9}
%define logwatch_dir /etc/log.d
%else
%define logwatch_dir /etc/logwatch
%if %{fc16} || %{fc17} || %{fc18} || %{fc22}
%define _dist %(grep Fedora /etc/redhat-release)
%endif
-%if %{centos7} || %{centos6} || %{centos5} || %{centos4} || %{centos3}
+%if %{centos7} || %{centos6}
+%define _dist %(grep CentOS /etc/redhat-release)
+%endif
+%if %{centos5} || %{centos4} || %{centos3}
%define _dist %(grep CentOS /etc/redhat-release)
%endif
%if %{sl5} ||%{sl4} || %{sl3}
%define _dist %(grep 'Scientific Linux' /etc/redhat-release)
%endif
-%if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3}
-%define _dist %(grep White /etc/whitebox-release)
-%endif
%if %{suse}
%define _dist %(grep -i SuSE /etc/SuSE-release)
%endif
-%if %{mdk}
-%define _dist %(grep Mand /etc/mandrake-release)
-%endif
-%if %{rhat} || %{rhel}
-%define _dist %(grep Red /etc/redhat-release)
-%endif
-%{?DISTNAME:%define _dist %{DISTNAME}}
-
-# only set Disribution if not in opensuse build service, as it sets it itself
-%if ! 0%{?opensuse_bs}
-Distribution: %{_dist}
-%endif
-
-%if 0%{?opensuse_bs} && %{mysql} && %{suse}
-# needed in opensuse_bs, as rpm is installed during build process
-BuildRequires: libmysqlclient-devel
-BuildRequires: mysql-client
-BuildRequires: mysql
-%endif
-%if 0%{?opensuse_bs} && %{suse} && %{postgresql}
-BuildRequires: %{postgres_package}
-BuildRequires: %{postgres_server_package}
-%endif
-BuildRequires: openssl
-
-%if 0%{?opensuse_bs} && %{suse}
-BuildRequires: pwdutils
-BuildRequires: sysconfig
-%endif
-# should we turn on python support
-%define python 0
-%{?build_python:%define python 0}
+Distribution: %_dist
# should we enable tcp wrappers support
%define tcpwrappers 1
%if ! %{rh7}
BuildRequires: libxml2-devel
%endif
-%if %{python}
-BuildRequires: python, python-devel
-%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
-%endif
%if %{rh7}
BuildRequires: libxml-devel
BuildRequires: mysql-devel
%endif
-%if %{postgresql} && %{wb3}
-BuildRequires: rh-postgresql-devel >= %{postgres_version}
-%endif
-
-%if %{postgresql} && ! %{wb3}
+%if %{postgresql}
BuildRequires: %{postgres_devel_package} >= %{postgres_version}
%endif
%{blurb7}
%{blurb8}
+#
+# ===========================================================
+# Generate mysql, sqlite, or postgresql rpm
+# ===========================================================
+#
%if %{mysql}
%package mysql
-%endif
-%if %{sqlite}
-%package sqlite
+Provides: libbaccats-%{version}.so()(64bit)
+#
+# The following provides is to work around an
+# auto generated requires from src/scripts/logwatch/applybaculadate
+# this is a gross kludge to keep it from being a requirement
+#
+Provides: perl(Logwatch)
%endif
%if %{postgresql}
%package postgresql
Requires: mysql
%endif
-%if %{postgresql} && %{wb3}
-Requires: rh-postgresql >= 7
-%endif
-%if %{postgresql} && ! %{wb3}
+%if %{postgresql}
Requires: postgresql >= 7
%endif
%description postgresql
%endif
-%if %{python}
-Requires: python >= %{pyver}
-%endif
-
%{blurb}
%{blurb2}
%if %{sqlite}
This build incorporates sqlite3 as the catalog database, statically compiled.
%endif
-%if %{python}
-This build includes python scripting support.
-%endif
%if %{tcpwrappers}
This build includes tcp-wrappers support.
%endif
+
+
+#
+# ===========================================================
+# Client -- bacula-fd rpm
+# ===========================================================
+#
%package client
Summary: Bacula - The Network Backup Solution
Group: System Environment/Daemons
Requires: libstdc++, zlib, openssl, bzip2-libs
Requires: glibc, readline, %{name}-libs
-%if %{python}
-Requires: python >= %{pyver}
-%endif
-
%description client
%{blurb}
This is the File daemon (Client) only package. It includes the command line
console program.
-%if %{python}
-This build includes python scripting support.
-%endif
%if %{tcpwrappers}
This build includes tcp-wrappers support.
%endif
+#
+# ===========================================================
+# Generate updatedb rpm
+# ===========================================================
+#
%if ! %{client_only}
%package updatedb
database.
%endif
+#
+# ===========================================================
+# Generate libs rpm
+# ===========================================================
+#
%package libs
Summary: Bacula - The Network Backup Solution
%if %{mysql} && %{x86_64}
export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
%endif
-%if %{python} && %{x86_64}
-export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}"
-%endif
export BACULA="Bacula"
%if %{mysql}
--with-mysql \
%endif
-%if %{sqlite}
- --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \
-%endif
%if %{postgresql}
--with-postgresql \
%endif
--disable-bat \
-%if %{python}
- --with-python \
-%endif
%if %{client_only}
--enable-client-only \
%endif
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
-# Remove docs for programs only included in bee
+# Remove docs for programs we do not distribute
rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext}
-# Storage-ctl packaged in shstore rpm
+# Remove storage-ctl packaged in shstore rpm
rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
%endif
+# Remove symlinks
+#rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats.so
+#rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
+
# install the init scripts
%if !%{usesystemd}
%if %{suse}
# install specific scripts
-# install special upgrade script, except for sqlite3
-%if ! %{sqlite}
-%endif
-
%if ! %{client_only}
# install the sample-query.sql file
cp -p examples/sample-query.sql $RPM_BUILD_ROOT%{script_dir}/sample-query.sql
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-%if 0%{?opensuse_bs}
-rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-1.txt
-%else
rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
-%endif
%if %{mysql}
%attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
%{_libdir}/libbaccats*
%{_libdir}/libbacsql*
+%{_libdir}/libbacsd*.so
%endif
-%if %{sqlite}
-%files sqlite
-%defattr(-,root,root)
-%attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database
-%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database
-%attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges
-%attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables
-%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables
-%attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables
-%{sqlite_bindir}/libsqlite3.a
-%{sqlite_bindir}/sqlite3.h
-%{sqlite_bindir}/sqlite3
-%{_libdir}/libbaccats*
-%{_libdir}/libbacsql*
-%endif
-
-
%if %{postgresql}
%files postgresql
%attr(755, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
%{_libdir}/libbaccats*
%{_libdir}/libbacsql*
+%{_libdir}/libbacsd*.so
%endif
# The rest is DB backend independent
%if ! %{client_only}
%attr(-, root, %{daemon_group}) %dir %{script_dir}
%attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
-#%attr(-, %{director_daemon_user}, %{daemon_group}) %dir %{log_dir}
%attr(-, root, %{daemon_group}) %{script_dir}/bacula
%attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
%attr(-, root, %{daemon_group}) %{script_dir}/bconsole
%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
+%attr(-, root, %{daemon_group}) %{script_dir}/tapealert
+
%attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
-#%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
-#%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
%attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
-%attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler
-#%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
%attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
%attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf
%attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
%attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
%attr(-, root, %{daemon_group}) %{script_dir}/sample-query.sql
+%attr(-, root, %{daemon_group}) %{script_dir}/query.sql
%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
%attr(-, root, %{daemon_group}) %{_sbindir}/bacula-sd
%attr(-, root, %{daemon_group}) %{_sbindir}/btraceback
%attr(-, root, %{daemon_group}) %{_sbindir}/bconsole
+%attr(-, root, %{daemon_group}) %{_sbindir}/bbconsjson
%attr(-, root, %{daemon_group}) %{_sbindir}/bsmtp
%attr(-, root, %{daemon_group}) %{_sbindir}/bscan
%attr(-, root, %{daemon_group}) %{_sbindir}/btape
+%attr(-, root, %{daemon_group}) %{_sbindir}/bdirjson
+%attr(-, root, %{daemon_group}) %{_sbindir}/bsdjson
%attr(755, root, root) %{_sbindir}/bsnapshot
+%attr(755, root, root) %{_sbindir}/bfdjson
%{_sbindir}/bacula-fd
%{_sbindir}/bacula
%{_mandir}/man8/bwild.8.%{manpage_ext}
%{_mandir}/man1/bsmtp.1.%{manpage_ext}
%{_mandir}/man1/bat.1.%{manpage_ext}
-
%_prefix/share/doc/*
-# opensuse build service changes the release itself
-%if 0%{?opensuse_bs}
-%doc ../Release_Notes-%{version}-1.txt
-%else
%doc ../Release_Notes-%{version}-%{release}.txt
-%endif
+
%endif
%if %{mysql}
%defattr(-,root,root)
%attr(-, root, %{daemon_group}) %dir %{script_dir}
%attr(-, root, %{daemon_group}) %dir %{plugin_dir}
-#%attr(-, root, %{daemon_group}) %dir %{log_dir}
%attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
# SD/DIR might write here
%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir}
-#%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
%if %{usesystemd}
%attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
%files updatedb
%defattr(-,root,%{daemon_group})
%{script_dir}/updatedb/*
-#oensuse_bs: directories not owned by any package
-#%{script_dir}/updatedb
%pre updatedb
# create the daemon group