%bcond_without ceph %bcond_without droplet %bcond_without glusterfs %bcond_without mysql %bcond_without postgresql %bcond_without python %bcond_without sqlite3 %bcond_without systemd %{!?_rundir:%global _rundir %{_localstatedir}/run} # Default directories %define archivedir %{_sharedstatedir}/%{name}/storage %define backenddir %{libdir}/backends %define bootstrapdir %{_sharedstatedir}/%{name}/bootstrap %define confdir %{_sysconfdir}/%{name} %define libdir %{_libdir}/%{name} %define logdir %{_var}/log/%{name} %define piddir %{_rundir}/%{name} %define plugindir %{libdir}/plugins %define scriptdir %{_datarootdir}/%{name}/scripts %define subsysdir %{_rundir}/lock/subsys %define workingdir %{_sharedstatedir}/%{name} # Default users and groups %define daemon_user bareos %define daemon_group bareos %define director_daemon_user %{daemon_user} %define file_daemon_user root %define storage_daemon_user %{daemon_user} %define storage_daemon_group %{daemon_group} Name: bareos Version: 18.2.6 Release: 3%{?dist} Summary: Backup Archiving REcovery Open Sourced - metapackage License: AGPL-3.0 URL: http://www.bareos.org/ Source0: https://github.com/%{name}/%{name}/archive/Release/%{version}.tar.gz#/%{name}-Release-%{version}.tar.gz Source1: bareos-tmpfiles.d.conf Patch0: bareos-fix-my_bool.patch BuildRequires: chrpath BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc BuildRequires: glibc-devel BuildRequires: make BuildRequires: pkgconfig BuildRequires: perl BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: libstdc++-devel BuildRequires: zlib-devel BuildRequires: openssl-devel BuildRequires: libacl-devel BuildRequires: lzo-devel BuildRequires: libfastlz-devel BuildRequires: pam-devel %if 0%{?rhel} || 0%{?fedora} # EL and Fedora packages BuildRequires: jansson-devel BuildRequires: libtermcap-devel BuildRequires: redhat-lsb-core %else # openSUSE packages BuildRequires: libjansson-devel BuildRequires: termcap BuildRequires: lsb-release BuildRequires: distribution-release %endif # EL6+: Use compiler from Developer Toolset as the default is too old. %if 0%{?rhel} >= 6 && 0%{?rhel} < 8 BuildRequires: cmake3 BuildRequires: scl-utils BuildRequires: devtoolset-8-gcc BuildRequires: devtoolset-8-gcc-c++ BuildRequires: devtoolset-8-make %global __cmake3 scl enable devtoolset-8 -- %__cmake3 %global make_build scl enable devtoolset-8 -- %make_build %global make_install scl enable devtoolset-8 -- %make_install %else BuildRequires: cmake >= 3 %global cmake3 %cmake %endif # Fedora 28+ and EL8+: RPC was removed in libc %if 0%{?fedora} >= 28 || 0%{?rhel} > 7 || 0%{?suse_version} >= 1500 BuildRequires: rpcgen BuildRequires: libtirpc-devel %endif %if %{with python} BuildRequires: python-devel >= 2.6 %endif %if %{with systemd} # openSUSE 12.1+: Require additional RPM macros. %if 0%{?suse_version} >= 1500 BuildRequires: systemd-rpm-macros %endif BuildRequires: systemd %{?systemd_requires} %else Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts %endif Requires: %{name}-client = %{version} Requires: %{name}-director = %{version} Requires: %{name}-storage = %{version} %description Backup Archiving Recovery Open Sourced. Bareos 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. Bareos 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. Bareos source code has been released under the AGPL version 3 license. %package bconsole Summary: Bareos administration console (CLI) Requires: %{name}-common = %{version} %description bconsole The CLI interface program. %package client Summary: Bareos client Meta-All-In-One package Requires: %{name}-bconsole = %{version} Requires: %{name}-filedaemon = %{version} %description client Meta package requiring the packages containing the file daemon and the console. This is for client only installations. %package director Summary: Bareos Director daemon Requires: %{name}-common = %{version} Requires: %{name}-database-common = %{version} Requires: %{name}-database-tools Requires(pre): shadow-utils Provides: %{name}-dir = %{version} %description director This package contains the Director Service (Bareos main service daemon) %package storage Summary: Bareos Storage daemon Requires: %{name}-common = %{version} Requires(pre): shadow-utils Requires: bareos-tools Provides: %{name}-sd = %{version} %description storage This package contains the Storage Daemon (Bareos service to read and write data from/to media). %if %{with droplet} %package storage-droplet Summary: Object Storage support (through libdroplet) for the Bareos Storage daemon BuildRequires: libdroplet-devel Requires: %{name}-common = %{version} Requires: %{name}-storage = %{version} %description storage-droplet This package contains the Storage backend for Object Storage (through libdroplet). %endif %if %{with glusterfs} %package storage-glusterfs Summary: GlusterFS support for the Bareos Storage daemon BuildRequires: glusterfs-devel %{!?suse_version:BuildRequires: glusterfs-api-devel} Requires: %{name}-common = %{version} Requires: %{name}-storage = %{version} Requires: glusterfs %description storage-glusterfs This package contains the Storage backend for GlusterFS. %endif %if %{with ceph} %package storage-ceph Summary: CEPH support for the Bareos Storage daemon BuildRequires: libcephfs-devel BuildRequires: librados2-devel BuildRequires: libradosstriper-devel Requires: %{name}-common = %{version} Requires: %{name}-storage = %{version} %description storage-ceph This package contains the Storage backend for CEPH. %endif %package storage-tape Summary: Tape support for the Bareos Storage daemon Requires: %{name}-common = %{version} Requires: %{name}-storage = %{version} Requires: mtx %if !0%{?suse_version} Requires: mt-st %endif %description storage-tape This package contains the Storage Daemon tape support (Bareos service to read and write data from/to tape media). %package storage-fifo Summary: FIFO support for the Bareos Storage backend Requires: %{name}-common = %{version} Requires: %{name}-storage = %{version} %description storage-fifo This package contains the Storage backend for FIFO files. This package is only required, when a resource "Archive Device = fifo" should be used by the Bareos Storage Daemon. %package filedaemon Summary: Bareos File daemon (backup and restore client) Requires: %{name}-common = %{version} Requires(pre): shadow-utils Provides: %{name}-fd = %{version} %description filedaemon This package contains the File Daemon (Bareos client daemon to read/write data from the backed up computer). %package common Summary: Common files, required by multiple Bareos packages Requires: openssl Requires(pre): shadow-utils Provides: %{name}-libs = %{version} %description common This package contains the shared libraries that are used by multiple daemons and tools. %package database-common Summary: Generic abstraction libs and files to connect to a database Requires: %{name}-common = %{version} Requires: %{name}-database-backend = %{version} Provides: %{name}-sql = %{version} %description database-common This package contains the shared libraries that abstract the catalog interface. %if %{with postgresql} %package database-postgresql Summary: Libraries and tools for PostgreSQL catalog BuildRequires: postgresql-devel Requires: %{name}-database-common = %{version} Provides: %{name}-catalog-postgresql = %{version} Provides: %{name}-database-backend = %{version} %description database-postgresql This package contains the shared library to access PostgreSQL as catalog DB. %endif %if %{with mysql} %package database-mysql Summary: Libs & tools for mysql catalog BuildRequires: mysql-devel Requires: %{name}-database-common = %{version} Provides: %{name}-catalog-mysql = %{version} Provides: %{name}-database-backend = %{version} %description database-mysql This package contains the shared library to use MySQL as catalog DB. %endif %if %{with sqlite3} %package database-sqlite3 Summary: Libs & tools for sqlite3 catalog %if 0%{?suse_version} BuildRequires: sqlite3-devel Requires: sqlite3 %else BuildRequires: sqlite-devel Requires: sqlite %endif Requires: %{name}-database-common = %{version} Provides: %{name}-catalog-sqlite3 = %{version} Provides: %{name}-database-backend = %{version} %description database-sqlite3 This package contains the shared library to use SQLite as catalog DB. %endif %package database-tools Summary: Bareos CLI tools with database dependencies (bareos-dbcheck, bscan) Requires: %{name}-common = %{version} Requires: %{name}-database-common = %{version} Provides: %{name}-dbtools = %{version} %description database-tools This package contains Bareos database tools. %package tools Summary: Bareos CLI tools (bcopy, bextract, bls, bregex, bwild) Requires: %{name}-common = %{version} %description tools This package contains Bareos tools. %package webui Summary: Bareos Web User Interface BuildArch: noarch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: php-cli # Don't install php-fpm or mod_php, let the sysadmin decide. Requires: php-bz2 Requires: php-ctype Requires: php-curl Requires: php-date Requires: php-dom Requires: php-fileinfo Requires: php-filter Requires: php-gettext Requires: php-gd Requires: php-hash Requires: php-iconv Requires: php-intl Requires: php-json Requires: php-libxml Requires: php-mbstring Requires: php-openssl Requires: php-pcre Requires: php-reflection Requires: php-session Requires: php-simplexml Requires: php-spl Requires: php-xml Requires: php-xmlreader Requires: php-xmlwriter Requires: php-zip %description webui This package contains the webui (Bareos Web User Interface). %package devel Summary: Devel headers Requires: %{name}-common = %{version} Requires: zlib-devel Requires: libacl-devel Requires: libcap-devel Requires: openssl-devel Requires: tcp_wrappers-devel %description devel This package contains Bareos development files. %package regress-config Summary: Required files for bareos-regress Requires: %{name}-common = %{version} %description regress-config This package contains required files for Bareos regression testing. %if %{with python} %package director-python-plugin Summary: Python plugin for Bareos Director daemon Requires: bareos-director = %{version} %description director-python-plugin This package contains the python plugin for the director daemon. %package filedaemon-python-plugin Summary: Python plugin for Bareos File daemon Requires: bareos-filedaemon = %{version} %description filedaemon-python-plugin This package contains the python plugin for the file daemon. %package filedaemon-ldap-python-plugin Summary: LDAP Python plugin for Bareos File daemon Requires: bareos-filedaemon = %{version} Requires: bareos-filedaemon-python-plugin = %{version} Requires: python-ldap %description filedaemon-ldap-python-plugin This package contains the LDAP python plugin for the file daemon. %package storage-python-plugin Summary: Python plugin for Bareos Storage daemon Requires: bareos-storage = %{version} %description storage-python-plugin This package contains the python plugin for the storage daemon. %endif %if %{with glusterfs} %package filedaemon-glusterfs-plugin Summary: GlusterFS plugin for Bareos File daemon BuildRequires: glusterfs-devel %{!?suse_version:BuildRequires: glusterfs-api-devel} Requires: bareos-filedaemon = %{version} Requires: glusterfs %description filedaemon-glusterfs-plugin This package contains the GlusterFS plugin for the file daemon. %endif %if %{with ceph} %package filedaemon-ceph-plugin Summary: CEPH plugin for Bareos File daemon Requires: bareos-filedaemon = %{version} %description filedaemon-ceph-plugin This package contains the CEPH plugins for the file daemon. %endif %prep %setup -q -n %{name}-Release-%{version} %patch0 -p1 %build pushd core %cmake3 \ -Dprefix=%{_prefix} \ -Dlibdir=%{libdir} \ -Dbindir=%{_bindir} \ -Dsbindir=%{_sbindir} \ -Dsbin-perm=0755 \ -Dsysconfdir=%{_sysconfdir} \ -Dconfdir=%{confdir} \ -Dmandir=%{_mandir} \ -Ddocdir=%{_docdir}/%{name} \ -Dhtmldir=%{_docdir}/%{name}/html \ -Darchivedir=%{archivedir} \ -Dbackenddir=%{backenddir} \ -Dscriptdir=%{scriptdir} \ -Dworkingdir=%{workingdir} \ -Dplugindir=%{plugindir} \ -Dpiddir=%{piddir} \ -Dbsrdir=%{bootstrapdir} \ -Dlogdir=%{logdir} \ -Dsubsysdir=%{subsysdir} \ %{?with_python:-Dpython=yes} \ -Dsmartalloc=yes \ -Ddisable-conio=yes \ -Dreadline=yes \ -Dbatch-insert=yes \ -Ddynamic-cats-backends=yes \ -Ddynamic-storage-backends=yes \ -Dscsi-crypto=yes \ -Dlmdb=yes \ -Dndmp=yes \ -Dipv6=yes \ -Dacl=yes \ -Dxattr=yes \ %{?with_postgresql:-Dpostgresql=yes} \ %{?with_mysql:-Dmysql=yes} \ %{?with_sqlite3:-Dsqlite3=yes} \ -Ddir-user=%{director_daemon_user} \ -Ddir-group=%{daemon_group} \ -Dsd-user=%{storage_daemon_user} \ -Dsd-group=%{storage_daemon_group} \ -Dfd-user=%{file_daemon_user} \ -Dfd-group=%{daemon_group} \ -Ddir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \ -Dfd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \ -Dsd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \ -Dmon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \ -Dmon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \ -Dmon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \ -Dopenssl=yes \ -Dbasename="XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX" \ -Dhostname="XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX" \ %{?with_systemd:-Dsystemd=yes} \ -Dincludes=yes \ %if 0%{?suse_version} -DCMAKE_SHARED_LINKER_FLAGS= \ %endif -DVERSION_STRING=%{version} popd pushd webui %cmake3 \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ -DLIB_INSTALL_DIR:PATH=/usr/lib \ -DSYSCONF_INSTALL_DIR:PATH=/etc \ -DSHARE_INSTALL_PREFIX:PATH=/usr/share \ -DBUILD_SHARED_LIBS:BOOL=ON \ -Dsysconfdir=%{_sysconfdir} \ -Dconfdir=%{_sysconfdir}/%{name} \ -Dwebuiconfdir=%{_sysconfdir}/%{name}-webui \ -DVERSION_STRING=%{version} popd %make_build -C core/%{?__builddir} %make_build -C webui/%{?__builddir} %check %make_build -C core/%{?__builddir} check %install %make_install -C core/%{?__builddir} %make_install -C webui/%{?__builddir} # Remove cruft. rm -fv %{buildroot}%{scriptdir}/bareos_config rm -fv %{buildroot}%{scriptdir}/btraceback.dbx rm -fv %{buildroot}%{scriptdir}/btraceback.mdb rm -fv %{buildroot}%{_docdir}/%{name}/INSTALL rm -fv %{buildroot}%{_sbindir}/%{name} rm -fv %{buildroot}%{_mandir}/man1/bareos-tray-monitor.1.gz %if 0%{?suse_version} rm -fv %{buildroot}%{_initddir}/%{name}-dir rm -fv %{buildroot}%{_initddir}/%{name}-fd rm -fv %{buildroot}%{_initddir}/%{name}-sd rm -fv %{buildroot}%{_sbindir}/rc%{name}-dir rm -fv %{buildroot}%{_sbindir}/rc%{name}-fd rm -fv %{buildroot}%{_sbindir}/rc%{name}-sd rm -fv %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/bareos-dir rm -fv %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/bareos-fd rm -fv %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/bareos-sd %endif %if %{with systemd} mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf %else mkdir -p %{buildroot}%{piddir} %endif # Remove links to libraries find %{buildroot}/%{libdir} -type l -name "libbareos*.so" -maxdepth 1 -delete %if %{without python} # Bareos still installs these files, even if Python support is explicitly # disabled. rm -fv %{buildroot}%{confdir}/bareos-dir.d/fileset/plugin-ldap.conf.example rm -fv %{buildroot}%{confdir}/bareos-dir.d/job/backup-ldap.conf.example rm -fv %{buildroot}%{confdir}/bareos-dir.d/job/restore-ldap.conf.example rm -fv %{buildroot}%{plugindir}/python-*.so rm -fv %{buildroot}%{plugindir}/*.py* rm -fv %{buildroot}%{confdir}/bareos-dir.d/plugin-python-ldap.conf %endif %if %{without glusterfs} # Bareos still installs this file, even if Gluster support is explicitly # disabled. rm -fv %{buildroot}/%{scriptdir}/bareos-glusterfind-wrapper %endif # Tidy up example configuration files. install -d -m 755 %{buildroot}%{_docdir}/%{name}-webui/httpd install -d -m 755 %{buildroot}%{_docdir}/%{name}-webui/bareos-dir.d/console install -d -m 755 %{buildroot}%{_docdir}/%{name}-webui/bareos-dir.d/profile mv -v %{buildroot}%{_sysconfdir}/httpd/conf.d/bareos-webui.conf %{buildroot}%{_docdir}/%{name}-webui/httpd mv -v %{buildroot}%{confdir}/bareos-dir.d/console/admin.conf.example %{buildroot}%{_docdir}/%{name}-webui/bareos-dir.d/console mv -v %{buildroot}%{confdir}/bareos-dir.d/profile/webui-admin.conf %{buildroot}%{_docdir}/%{name}-webui/bareos-dir.d/profile install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/catalog install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/client install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/console install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/director install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/fileset install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/job install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/jobdefs install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/messages install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/pool install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/profile install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/schedule install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-dir.d/storage mv -v %{buildroot}%{confdir}/bareos-dir.d/catalog/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/catalog mv -v %{buildroot}%{confdir}/bareos-dir.d/client/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/client mv -v %{buildroot}%{confdir}/bareos-dir.d/console/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/console mv -v %{buildroot}%{confdir}/bareos-dir.d/director/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/director mv -v %{buildroot}%{confdir}/bareos-dir.d/fileset/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/fileset mv -v %{buildroot}%{confdir}/bareos-dir.d/job/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/job mv -v %{buildroot}%{confdir}/bareos-dir.d/jobdefs/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/jobdefs mv -v %{buildroot}%{confdir}/bareos-dir.d/messages/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/messages mv -v %{buildroot}%{confdir}/bareos-dir.d/pool/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/pool mv -v %{buildroot}%{confdir}/bareos-dir.d/profile/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/profile mv -v %{buildroot}%{confdir}/bareos-dir.d/schedule/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/schedule mv -v %{buildroot}%{confdir}/bareos-dir.d/storage/* %{buildroot}%{_docdir}/%{name}/bareos-dir.d/storage install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-sd.d/autochanger install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-sd.d/device install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-sd.d/director install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-sd.d/messages install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-sd.d/storage mv -v %{buildroot}%{confdir}/bareos-sd.d/autochanger/* %{buildroot}%{_docdir}/%{name}/bareos-sd.d/autochanger mv -v %{buildroot}%{confdir}/bareos-sd.d/device/* %{buildroot}%{_docdir}/%{name}/bareos-sd.d/device mv -v %{buildroot}%{confdir}/bareos-sd.d/director/* %{buildroot}%{_docdir}/%{name}/bareos-sd.d/director mv -v %{buildroot}%{confdir}/bareos-sd.d/messages/* %{buildroot}%{_docdir}/%{name}/bareos-sd.d/messages mv -v %{buildroot}%{confdir}/bareos-sd.d/storage/* %{buildroot}%{_docdir}/%{name}/bareos-sd.d/storage install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-fd.d/client install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-fd.d/director install -d -m 755 %{buildroot}%{_docdir}/%{name}/bareos-fd.d/messages mv -v %{buildroot}%{confdir}/bareos-fd.d/client/* %{buildroot}%{_docdir}/%{name}/bareos-fd.d/client mv -v %{buildroot}%{confdir}/bareos-fd.d/director/* %{buildroot}%{_docdir}/%{name}/bareos-fd.d/director mv -v %{buildroot}%{confdir}/bareos-fd.d/messages/* %{buildroot}%{_docdir}/%{name}/bareos-fd.d/messages # Remove rpaths. for FILE in \ %{buildroot}%{_bindir}/* \ %{buildroot}%{backenddir}/*.so \ %{buildroot}%{libdir}/*.so \ %{buildroot}%{plugindir}/*.so \ %{buildroot}%{_sbindir}/bareos-dbcheck \ %{buildroot}%{_sbindir}/bareos-dir \ %{buildroot}%{_sbindir}/bareos-fd \ %{buildroot}%{_sbindir}/bareos-sd \ %{buildroot}%{_sbindir}/bconsole \ %{buildroot}%{_sbindir}/bcopy \ %{buildroot}%{_sbindir}/bextract \ %{buildroot}%{_sbindir}/bls \ %{buildroot}%{_sbindir}/bpluginfo \ %{buildroot}%{_sbindir}/bregex \ %{buildroot}%{_sbindir}/bscan \ %{buildroot}%{_sbindir}/bscrypto \ %{buildroot}%{_sbindir}/bsmtp \ %{buildroot}%{_sbindir}/btape \ %{buildroot}%{_sbindir}/btestls \ %{buildroot}%{_sbindir}/bwild \ %{buildroot}%{_sbindir}/timelimit do chrpath --delete ${FILE} done # Add ld path. install -d -m 755 %{buildroot}%{_sysconfdir}/ld.so.conf.d /bin/echo "%{libdir}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}.conf # Add systemd services. %if %{with systemd} rm -rfv %{buildroot}%{_sysconfdir}/rc.d install -d -m 755 %{buildroot}%{_unitdir} install -m 644 core/platforms/systemd/bareos-dir.service %{buildroot}%{_unitdir} install -m 644 core/platforms/systemd/bareos-fd.service %{buildroot}%{_unitdir} install -m 644 core/platforms/systemd/bareos-sd.service %{buildroot}%{_unitdir} %endif # Create the Readme files for the meta packages. [ -d %{buildroot}%{_docdir}/%{name}/ ] || install -d -m 755 %{buildroot}%{_docdir}/%{name} echo "This meta package emulates the former bareos-client package" > %{buildroot}%{_docdir}/%{name}/README.bareos-client echo "This is a meta package to install a full bareos system" > %{buildroot}%{_docdir}/%{name}/README.bareos # Fix hardlinks. for FILE in bconsole bsmtp bregex bwild timelimit; do rm -fv %{buildroot}%{_bindir}/${FILE} ln %{buildroot}%{_sbindir}/${FILE} %{buildroot}%{_bindir}/${FILE} done %pre common getent group %{daemon_group} >/dev/null || groupadd -f -r %{daemon_group} getent passwd %{daemon_user} >/dev/null || useradd -r -g %{daemon_group} -d %{workingdir} -s /bin/false %{daemon_user} %pre director getent group %{daemon_group} >/dev/null || groupadd -f -r %{daemon_group} getent passwd %{director_daemon_user} >/dev/null || useradd -r -g %{daemon_group} -d %{workingdir} -s /bin/false %{director_daemon_user} %pre filedaemon getent group %{daemon_group} >/dev/null || groupadd -f -r %{daemon_group} getent passwd %{file_daemon_user} >/dev/null || useradd -r -g %{daemon_group} -d %{workingdir} -s /bin/false %{file_daemon_user} %pre storage getent group %{daemon_group} >/dev/null || groupadd -f -r %{daemon_group} getent passwd %{storage_daemon_user} >/dev/null || useradd -r -g %{daemon_group} -d %{workingdir} -s /bin/false %{storage_daemon_user} %post director %{scriptdir}/bareos-config initialize_local_hostname %{scriptdir}/bareos-config initialize_passwords %{scriptdir}/bareos-config initialize_database_driver %if %{with systemd} %systemd_post bareos-dir.service %else /sbin/chkconfig --add bareos-dir %endif %preun director %if %{with systemd} %systemd_preun bareos-dir.service %else if [ $1 -eq 0 ] ; then /sbin/service bareos-dir stop >/dev/null 2>&1 /sbin/chkconfig --del bareos-dir fi %endif %postun director %if %{with systemd} %systemd_postun_with_restart bareos-dir.service %else if [ "$1" -ge "1" ] ; then /sbin/service bareos-dir condrestart >/dev/null 2>&1 || : fi %endif %post storage %{scriptdir}/bareos-config setup_sd_user %{scriptdir}/bareos-config initialize_local_hostname %{scriptdir}/bareos-config initialize_passwords %if %{with systemd} %systemd_post bareos-sd.service %else /sbin/chkconfig --add bareos-sd %endif %preun storage %if %{with systemd} %systemd_preun bareos-sd.service %else if [ $1 -eq 0 ] ; then /sbin/service bareos-sd stop >/dev/null 2>&1 /sbin/chkconfig --del bareos-sd fi %endif %postun storage %if %{with systemd} %systemd_postun_with_restart bareos-sd.service %else if [ "$1" -ge "1" ] ; then /sbin/service bareos-sd condrestart >/dev/null 2>&1 || : fi %endif %post filedaemon %{scriptdir}/bareos-config initialize_local_hostname %{scriptdir}/bareos-config initialize_passwords %if %{with systemd} %systemd_post bareos-fd.service %endif %preun filedaemon %if %{with systemd} %systemd_preun bareos-fd.service %else if [ $1 -eq 0 ] ; then /sbin/service bareos-fd stop >/dev/null 2>&1 /sbin/chkconfig --del bareos-fd fi %endif %postun filedaemon %if %{with systemd} %systemd_postun_with_restart bareos-fd.service %else if [ "$1" -ge "1" ] ; then /sbin/service bareos-fd condrestart >/dev/null 2>&1 || : fi %endif %post bconsole %{scriptdir}/bareos-config initialize_local_hostname %{scriptdir}/bareos-config initialize_passwords %post common /sbin/ldconfig %tmpfiles_create %{_tmpfilesdir}/%{name}.conf %postun common /sbin/ldconfig %post database-common /sbin/ldconfig %postun database-common /sbin/ldconfig %if %{with postgresql} %post database-postgresql /sbin/ldconfig %postun database-postgresql /sbin/ldconfig %endif %if %{with mysql} %post database-mysql /sbin/ldconfig %postun database-mysql /sbin/ldconfig %endif %if %{with sqlite3} %post database-sqlite3 /sbin/ldconfig %postun database-sqlite3 /sbin/ldconfig %endif %files %defattr(-, root, root, -) %{_docdir}/%{name}/README.bareos %{_mandir}/man1/bareos-tray-monitor.1.gz %files client %defattr(-, root, root, -) %{_docdir}/%{name}/README.bareos-client %files bconsole %defattr(-, root, root, -) %attr(0640,root,%{daemon_group}) %config(noreplace) %{_sysconfdir}/bareos/bconsole.conf %{_bindir}/bconsole %{_sbindir}/bconsole %{_mandir}/man1/bconsole.1.gz %files director %defattr(-,root,root,-) %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/catalog/MyCatalog.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/client/bareos-fd.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/console/bareos-mon.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/director/bareos-dir.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/fileset/Catalog.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/fileset/LinuxAll.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/fileset/SelfTest.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) "%{_docdir}/%{name}/bareos-dir.d/fileset/Windows All Drives.conf" %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/job/backup-bareos-fd.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/job/BackupCatalog.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/jobdefs/DefaultJob.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/job/RestoreFiles.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/messages/Daemon.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/messages/Standard.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/pool/Differential.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/pool/Full.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/pool/Incremental.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/pool/Scratch.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/profile/operator.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/schedule/WeeklyCycle.conf %attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/storage/File.conf %attr(0750, %{director_daemon_user}, %{daemon_group}) %{confdir}/bareos-dir-export/ %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-dir %config(noreplace) %{scriptdir}/query.sql %{scriptdir}/delete_catalog_backup %{scriptdir}/make_catalog_backup %{scriptdir}/make_catalog_backup.pl %{_sbindir}/bareos-dir %dir %{_docdir}/%{name} %{_mandir}/man8/bareos-dir.8.gz %{_mandir}/man8/bareos.8.gz %if %{with systemd} %{_unitdir}/bareos-dir.service %else %{_sysconfdir}/rc.d/init.d/bareos-dir %endif %files storage %defattr(-, root, root, -) %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/autochanger %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/device %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/director %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/ndmp %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/messages %attr(0750, %{storage_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-sd.d/storage %attr(0640, %{storage_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-sd.d/device/FileStorage.conf %attr(0640, %{storage_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-sd.d/director/bareos-dir.conf %attr(0640, %{storage_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-sd.d/director/bareos-mon.conf %attr(0640, %{storage_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-sd.d/messages/Standard.conf %attr(0640, %{storage_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-sd.d/storage/bareos-sd.conf %{_sbindir}/bareos-sd %{scriptdir}/disk-changer %{plugindir}/autoxflate-sd.so %{_mandir}/man8/bareos-sd.8.gz %attr(0775, %{storage_daemon_user}, %{daemon_group}) %dir %{workingdir}/storage %if %{with systemd} %{_unitdir}/bareos-sd.service %else %{_sysconfdir}/rc.d/init.d/bareos-sd %endif %files storage-tape %defattr(-, root, root, -) %{backenddir}/libbareossd-gentape.so %{backenddir}/libbareossd-tape.so %{scriptdir}/mtx-changer %config(noreplace) %{confdir}/mtx-changer.conf %{_mandir}/man8/bscrypto.8.gz %{_mandir}/man8/btape.8.gz %{_sbindir}/bscrypto %{_sbindir}/btape %{_docdir}/%{name}/bareos-dir.d/storage/Tape.conf.example %{_docdir}/%{name}/bareos-sd.d/autochanger/autochanger-0.conf.example %{_docdir}/%{name}/bareos-sd.d/device/tapedrive-0.conf.example %{plugindir}/scsicrypto-sd.so %{plugindir}/scsitapealert-sd.so %files storage-fifo %defattr(-, root, root, -) %{backenddir}/libbareossd-fifo.so %{_docdir}/%{name}/bareos-dir.d/storage/NULL.conf.example %{_docdir}/%{name}/bareos-sd.d/device/NULL.conf.example %if %{with droplet} %files storage-droplet %defattr(-, root, root, -) %{backenddir}/libbareossd-chunked.so %{backenddir}/libbareossd-droplet.so %{_docdir}/%{name}/bareos-dir.d/storage/S3_Object.conf.example %{_docdir}/%{name}/bareos-sd.d/device/S3_ObjectStorage.conf.example %{_docdir}/%{name}/bareos-sd.d/device/droplet/aws_eu-central-1.profile.example %{_docdir}/%{name}/bareos-sd.d/device/droplet/ceph-rados-gateway.profile.example %endif %if %{with glusterfs} %files storage-glusterfs %defattr(-, root, root, -) %{backenddir}/libbareossd-gfapi.so %{_docdir}/%{name}/bareos-dir.d/storage/Gluster.conf.example %{_docdir}/%{name}/bareos-sd.d/device/GlusterStorage.conf.example %endif %if %{with ceph} %files storage-ceph %defattr(-, root, root, -) %{backenddir}/libbareossd-rados.so %{backenddir}/libbareossd-cephfs.so %{_docdir}/%{name}/bareos-dir.d/storage/Rados.conf.example %{_docdir}/%{name}/bareos-sd.d/device/RadosStorage.conf.example %endif %files filedaemon %defattr(-, root, root, -) %attr(0750, %{file_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-fd.d/ %attr(0750, %{file_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-fd.d/client %attr(0750, %{file_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-fd.d/director %attr(0750, %{file_daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-fd.d/messages %attr(0640, %{file_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-fd.d/client/myself.conf %attr(0640, %{file_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-fd.d/director/bareos-dir.conf %attr(0640, %{file_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-fd.d/director/bareos-mon.conf %attr(0640, %{file_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-fd.d/messages/Standard.conf %{_sbindir}/bareos-fd %{plugindir}/bpipe-fd.so %{_mandir}/man8/bareos-fd.8.gz %if %{with systemd} %{_unitdir}/bareos-fd.service %else %{_sysconfdir}/rc.d/init.d/bareos-fd %endif %files common %defattr(-, root, root, -) %attr(0755, root, %{daemon_group}) %dir %{confdir} %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/catalog %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/client %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/console %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/counter %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/director %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/fileset %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/job %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/jobdefs %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/messages %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/pool %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/profile %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/schedule %attr(0750, %{daemon_user}, %{daemon_group}) %dir %{confdir}/bareos-dir.d/storage %dir %{backenddir} %dir %{libdir} %dir %{scriptdir} %dir %{plugindir} %{libdir}/libbareos.so* %{libdir}/libbareosfind.so* %{libdir}/libbareoslmdb.so* %{libdir}/libbareosndmp.so* %{libdir}/libbareossd.so* %{scriptdir}/bareos-config %{scriptdir}/bareos-config-lib.sh %{scriptdir}/bareos-explorer %{scriptdir}/btraceback.gdb %{_bindir}/bsmtp %{_sbindir}/bsmtp %{_sbindir}/btraceback %{_mandir}/man1/bsmtp.1.gz %{_mandir}/man8/btraceback.8.gz %attr(0770, %{daemon_user}, %{daemon_group}) %dir %{workingdir} %attr(0775, %{daemon_user}, %{daemon_group}) %dir %{logdir} %doc AUTHORS %doc core/AGPL-3.0.txt %doc core/LICENSE %doc core/README.* %{_sysconfdir}/ld.so.conf.d/%{name}.conf %if %{with systemd} %{_tmpfilesdir}/%{name}.conf %else %attr(0700, %{daemon_user}, %{daemon_group}) %dir %{piddir} %endif %files database-common %defattr(-, root, root, -) %{libdir}/libbareossql*.so.* %{libdir}/libbareoscats*.so.* %dir %{scriptdir}/ddl %dir %{scriptdir}/ddl/creates %dir %{scriptdir}/ddl/drops %dir %{scriptdir}/ddl/grants %dir %{scriptdir}/ddl/updates %{scriptdir}/create_bareos_database %{scriptdir}/drop_bareos_database %{scriptdir}/drop_bareos_tables %{scriptdir}/grant_bareos_privileges %{scriptdir}/make_bareos_tables %{scriptdir}/update_bareos_tables %{scriptdir}/ddl/versions.map %if %{with postgresql} %files database-postgresql %defattr(-, root, root, -) %{scriptdir}/ddl/*/postgresql*.sql %{backenddir}/libbareoscats-postgresql.so* %endif %if %{with mysql} %files database-mysql %defattr(-, root, root, -) %{scriptdir}/ddl/*/mysql*.sql %{backenddir}/libbareoscats-mysql.so* %endif %if %{with sqlite3} %files database-sqlite3 %defattr(-, root, root, -) %{scriptdir}/ddl/*/sqlite3*.sql %{backenddir}/libbareoscats-sqlite3.so* %endif %files database-tools %defattr(-, root, root, -) %{_sbindir}/bareos-dbcheck %{_sbindir}/bscan %{_mandir}/man8/bareos-dbcheck.8.gz %{_mandir}/man8/bscan.8.gz %files tools %defattr(-, root, root, -) %{_bindir}/bregex %{_bindir}/bwild %{_sbindir}/bregex %{_sbindir}/bwild %{_sbindir}/bcopy %{_sbindir}/bextract %{_sbindir}/bls %{_sbindir}/bpluginfo %{_mandir}/man1/bwild.1.gz %{_mandir}/man1/bregex.1.gz %{_mandir}/man8/bcopy.8.gz %{_mandir}/man8/bextract.8.gz %{_mandir}/man8/bls.8.gz %{_mandir}/man8/bpluginfo.8.gz %files webui %defattr(-,root,root,-) %doc webui/README.md %doc webui/LICENSE %doc webui/doc/README-TRANSLATION.md %doc webui/tests/selenium %{_datadir}/%{name}-webui %dir %{_sysconfdir}/%{name}-webui %config(noreplace) %{_sysconfdir}/%{name}-webui/directors.ini %config(noreplace) %{_sysconfdir}/%{name}-webui/configuration.ini %{_docdir}/%{name}-webui/bareos-dir.d/console/admin.conf.example %{_docdir}/%{name}-webui/bareos-dir.d/profile/webui-admin.conf %{_docdir}/%{name}-webui/httpd/bareos-webui.conf %files devel %defattr(-, root, root, -) %{_includedir}/bareos %if %{with python} %files filedaemon-python-plugin %defattr(-, root, root, -) %{plugindir}/python-fd.so %{plugindir}/bareos-fd.py* %{plugindir}/bareos-fd-local-fileset.py* %{plugindir}/bareos-fd-mock-test.py* %{plugindir}/BareosFdPluginBaseclass.py* %{plugindir}/BareosFdPluginLocalFileset.py* %{plugindir}/BareosFdWrapper.py* %{plugindir}/bareos_fd_consts.py* %files filedaemon-ldap-python-plugin %defattr(-, root, root, -) %{plugindir}/bareos-fd-ldap.py* %{plugindir}/BareosFdPluginLDAP.py* %{_docdir}/%{name}/bareos-dir.d/fileset/plugin-ldap.conf.example %{_docdir}/%{name}/bareos-dir.d/job/backup-ldap.conf.example %{_docdir}/%{name}/bareos-dir.d/job/restore-ldap.conf.example %files director-python-plugin %defattr(-, root, root, -) %{plugindir}/python-dir.so %{plugindir}/bareos-dir.py* %{plugindir}/bareos_dir_consts.py* %{plugindir}/BareosDirPluginBaseclass.py* %{plugindir}/bareos-dir-class-plugin.py* %{plugindir}/BareosDirWrapper.py* %files storage-python-plugin %defattr(-, root, root, -) %{plugindir}/python-sd.so %{plugindir}/bareos-sd.py* %{plugindir}/bareos_sd_consts.py* %{plugindir}/BareosSdPluginBaseclass.py* %{plugindir}/BareosSdWrapper.py* %{plugindir}/bareos-sd-class-plugin.py* %endif %if %{with glusterfs} %files filedaemon-glusterfs-plugin %{scriptdir}/bareos-glusterfind-wrapper %{plugindir}/gfapi-fd.so %{_docdir}/%{name}/bareos-dir.d/fileset/plugin-gfapi.conf.example %{_docdir}/%{name}/bareos-dir.d/job/BackupGFAPI.conf.example %{_docdir}/%{name}/bareos-dir.d/job/RestoreGFAPI.conf.example %endif %if %{with ceph} %files filedaemon-ceph-plugin %{plugindir}/cephfs-fd.so %{_docdir}/%{name}/bareos-dir.d/fileset/plugin-cephfs.conf.example %{_docdir}/%{name}/bareos-dir.d/job/BackupCephfs.conf.example %{_docdir}/%{name}/bareos-dir.d/job/RestoreCephfs.conf.example %{plugindir}/rados-fd.so %{_docdir}/%{name}/bareos-dir.d/fileset/plugin-rados.conf.example %{_docdir}/%{name}/bareos-dir.d/job/BackupRados.conf.example %{_docdir}/%{name}/bareos-dir.d/job/RestoreRados.conf.example %endif %files regress-config %defattr(-, root, root, -) %{scriptdir}/bareos %{scriptdir}/bareos-ctl-* %{_bindir}/timelimit %{_sbindir}/timelimit %{_sbindir}/btestls %attr(0644, %{daemon_user}, %{daemon_group}) %config(noreplace) %{confdir}/bareos-regress.conf %changelog * Thu Oct 10 2019 Daniel Uvehag 18.2.6-3 - Change mysql my_bool to bool as it was removed from mysql * Thu Apr 04 2019 Daniel Uvehag 18.2.6-2 - Remove extranous Python files * Thu Apr 04 2019 Daniel Uvehag 18.2.6-1 - Update to 18.2.6 * Mon Apr 01 2019 Daniel Uvehag 18.2.5-1 - Update to 18.2.5 - Add support for openSUSE - Move most configuration files to the docs * Thu Aug 16 2018 Daniel Uvehag 17.2.7-2 - Add support for tmpfiles.d (for proper PID dir handling) * Fri Aug 10 2018 Daniel Uvehag 17.2.7-1 - Update to version 17.2.7 - Fixed user provisioning - Fixed erroneous postun script for filedaemon * Wed Jul 04 2018 Daniel Uvehag 17.2.6-1 - Initial package