From ddff76aa1f4f66b547e79748edb03daa6d070fde Mon Sep 17 00:00:00 2001 From: Daniel Uvehag Date: Wed, 9 Mar 2022 13:05:13 +0100 Subject: [PATCH] Initial commit --- .gitignore | 1 + bareos-tmpfiles.d.conf | 1 + bareos.spec | 1261 ++++++++++++++++++++++++++++++++++++ openssl-3.0-warnings.patch | 389 +++++++++++ 4 files changed, 1652 insertions(+) create mode 100644 .gitignore create mode 100644 bareos-tmpfiles.d.conf create mode 100644 bareos.spec create mode 100644 openssl-3.0-warnings.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7133c50 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bareos-Release-*.tar.gz diff --git a/bareos-tmpfiles.d.conf b/bareos-tmpfiles.d.conf new file mode 100644 index 0000000..77402bc --- /dev/null +++ b/bareos-tmpfiles.d.conf @@ -0,0 +1 @@ +d /var/run/bareos 0700 bareos bareos diff --git a/bareos.spec b/bareos.spec new file mode 100644 index 0000000..2e7c6ff --- /dev/null +++ b/bareos.spec @@ -0,0 +1,1261 @@ +%bcond_without ceph +%bcond_without droplet +%bcond_without glusterfs +%bcond_without python +%bcond_without systemd + +# VMware support is incomplete and won't work. +%bcond_with vmware + +%{!?python3_pkgversion: %global python3_pkgversion 3} + +%{!?_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} + +%define CMAKE_BUILDDIR cmake-build + +# 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: 21.0.0 +Release: 1%{?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: openssl-3.0-warnings.patch + +BuildRequires: chrpath +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: glibc +BuildRequires: glibc-devel +BuildRequires: gmock-devel +BuildRequires: gtest-devel +BuildRequires: libcap-devel +BuildRequires: make +BuildRequires: pkgconfig +BuildRequires: perl +BuildRequires: ncurses-devel +BuildRequires: readline-devel +BuildRequires: libstdc++-devel +BuildRequires: zlib-devel +BuildRequires: openssl +BuildRequires: openssl-devel +BuildRequires: libacl-devel +BuildRequires: lzo-devel +BuildRequires: pam-devel + +%if 0%{?rhel} || 0%{?fedora} +# EL and Fedora packages +BuildRequires: jansson-devel +%else +# openSUSE packages +BuildRequires: libjansson-devel +BuildRequires: lsb-release +BuildRequires: distribution-release +%endif + +# EL7: Use compiler from Developer Toolset as the default is too old. +%if 0%{?rhel} == 7 +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.12 + +%global cmake3 %cmake +%endif + +# Fedora 28+ and EL8+: RPC was removed in libc +%if 0%{?fedora} >= 28 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1500 || 0%{?sle_version} >= 150300 +BuildRequires: rpcgen +BuildRequires: libtirpc-devel +%endif + +%if %{with python} +BuildRequires: python%{python3_pkgversion}-devel >= 3.4 +%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 + +Requires: %{name}-common = %{version} +Requires: %{name}-storage = %{version} + +BuildRequires: json-c-devel +BuildRequires: libxml2-devel + +%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. + + +%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. + + +%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 + +%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%{python3_pkgversion}-plugin +Summary: Python plugin for Bareos Director daemon + +Requires: bareos-director = %{version} + +%description director-python%{python3_pkgversion}-plugin +This package contains the python plugin for the director daemon. + + +%package filedaemon-python%{python3_pkgversion}-plugin +Summary: Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} + +%description filedaemon-python%{python3_pkgversion}-plugin +This package contains the python plugin for the file daemon. + + +%package filedaemon-ldap-python%{python3_pkgversion}-plugin +Summary: LDAP Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} +Requires: python-ldap + +%description filedaemon-ldap-python%{python3_pkgversion}-plugin +This package contains the LDAP python plugin for the file daemon. + + +%package filedaemon-ovirt-python%{python3_pkgversion}-plugin +Summary: Ovirt Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} + +%description filedaemon-ovirt-python%{python3_pkgversion}-plugin +This package contains the Ovirt python plugin for the file daemon. + + +%package filedaemon-libcloud-python%{python3_pkgversion}-plugin +Summary: Libcloud Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} + +%description filedaemon-libcloud-python%{python3_pkgversion}-plugin +This package contains the libcloud python plugin for the file daemon. + + +%package filedaemon-postgresql-python%{python3_pkgversion}-plugin +Summary: PostgreSQL Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} + +%description filedaemon-postgresql-python%{python3_pkgversion}-plugin +This package contains the PostgreSQL python plugin for the file daemon. + + +%package filedaemon-percona-xtrabackup-python%{python3_pkgversion}-plugin +Summary: Percona xtrabackup Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} + +%description filedaemon-percona-xtrabackup-python%{python3_pkgversion}-plugin +This package contains the Percona XtraBackup python plugin for the file daemon. + + +%package filedaemon-mariabackup-python%{python3_pkgversion}-plugin +Summary: Mariabackup Python plugin for Bareos File daemon + +Requires: bareos-filedaemon = %{version} +Requires: bareos-filedaemon-python%{python3_pkgversion}-plugin = %{version} + +%description filedaemon-mariabackup-python%{python3_pkgversion}-plugin +This package contains the Mariabackup python plugin for the file daemon. + + +%package storage-python%{python3_pkgversion}-plugin +Summary: Python plugin for Bareos Storage daemon + +Requires: bareos-storage = %{version} + +%description storage-python%{python3_pkgversion}-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 +# EL7: Use the Developer Toolset 8 compiler as the default is too old. +%if 0%{?rhel} == 7 +source /opt/rh/devtoolset-8/enable +%endif + +mkdir %{CMAKE_BUILDDIR}; pushd %{CMAKE_BUILDDIR} +%cmake3 \ + -S .. \ + -B . \ + -Dprefix=%{_prefix} \ + -Dlibdir=%{libdir} \ + -Dbindir=%{_bindir} \ + -Dsbindir=%{_sbindir} \ + -Dsbin-perm=0755 \ + -Dsysconfdir=%{_sysconfdir} \ + -Dconfdir=%{confdir} \ + -Dmandir=%{_mandir} \ + -Ddocdir=%{_docdir}/%{name} \ + -Darchivedir=%{archivedir} \ + -Dbackenddir=%{backenddir} \ + -Dscriptdir=%{scriptdir} \ + -Dworkingdir=%{workingdir} \ + -Dplugindir=%{plugindir} \ + -Dbsrdir=%{bootstrapdir} \ + -Dlogdir=%{logdir} \ + -Dsubsysdir=%{subsysdir} \ + %{?with_python:-Dpython=yes} \ + -Ddisable-conio=yes \ + -Dreadline=yes \ + -Dbatch-insert=yes \ + -Ddynamic-cats-backends=yes \ + -Ddynamic-storage-backends=yes \ + -Dscsi-crypto=yes \ + -Dlmdb=yes \ + -Dndmp=yes \ + -Dacl=yes \ + -Dxattr=yes \ + -Dpostgresql=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 \ + -Ddefault_db_backend="XXX_REPLACE_WITH_DATABASE_DRIVER_XXX" \ + -Dwebuiconfdir=%{_sysconfdir}/bareos-webui \ +%if 0%{?suse_version} + -DCMAKE_SHARED_LINKER_FLAGS= \ +%endif + -DVERSION_STRING=%{version} + +%make_build +popd + +%check +pushd %{CMAKE_BUILDDIR} +# Ignore tests, the necessary infrastructure (e.g. databases) are not available +# at compile time. +#REGRESS_DEBUG=1 ctest -V -S CTestScript.cmake || echo "ctest result:$?" +popd + +%install +pushd %{CMAKE_BUILDDIR} +%make_install +popd + +# Remove cruft. +rm -fv %{buildroot}%{_sbindir}/btestls +rm -fv %{buildroot}%{scriptdir}/bareos +rm -fv %{buildroot}%{scriptdir}/bareos-ctl-dir +rm -fv %{buildroot}%{scriptdir}/bareos-ctl-fd +rm -fv %{buildroot}%{scriptdir}/bareos-ctl-funcs +rm -fv %{buildroot}%{scriptdir}/bareos-ctl-sd + +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 + +# Bareos still installs the VMware plugin, even when explicitly disabled. +%if %{without vmware} +rm -fv %{buildroot}%{plugindir}/BareosFdPluginVMware.py +rm -fv %{buildroot}%{plugindir}/bareos-fd-vmware.py +%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}%{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}/bwild +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; 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 +%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 + + +%post database-postgresql +/sbin/ldconfig + +%postun database-postgresql +/sbin/ldconfig + + +%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/fileset/plugin-ovirt.conf.example +%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/job/RestoreFiles.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/backup-ovirt.conf.example +%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/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/profile/webui-limited.conf.example +%attr(0640, %{director_daemon_user}, %{daemon_group}) %{_docdir}/%{name}/bareos-dir.d/profile/webui-readonly.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, -) +%{libdir}/libbareosdroplet.so.* +%{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}/libbareosfastlz.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 + +%files database-postgresql +%defattr(-, root, root, -) +%{scriptdir}/ddl/*/postgresql*.sql +%{backenddir}/libbareoscats-postgresql.so* + +%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 + +%if %{with python} +%files filedaemon-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginBaseclass.py* +%{plugindir}/BareosFdPluginLocalFilesBaseclass.py* +%{plugindir}/BareosFdPluginLocalFileset.py* +%{plugindir}/BareosFdWrapper.py* +%{plugindir}/bareos-fd-local-fileset.py* +%{plugindir}/python3-fd.so +%{python3_sitelib}/bareosfd%{python3_ext_suffix} + +%files filedaemon-ldap-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginLDAP.py* +%{plugindir}/bareos-fd-ldap.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 filedaemon-ovirt-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginOvirt.py* +%{plugindir}/bareos-fd-ovirt.py* + +%files filedaemon-libcloud-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginLibcloud.py* +%{plugindir}/BareosLibcloudApi.py* +%{plugindir}/bareos-fd-libcloud.py* +%{plugindir}/bareos_libcloud_api/ + +%files filedaemon-postgresql-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginPostgres.py* +%{plugindir}/bareos-fd-postgres.py* + +%files filedaemon-percona-xtrabackup-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginPerconaXtraBackup.py* +%{plugindir}/bareos-fd-percona-xtrabackup.py* + +%files filedaemon-mariabackup-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosFdPluginMariabackup.py* +%{plugindir}/bareos-fd-mariabackup.py* + +%files director-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/BareosDirPluginBaseclass.py* +%{plugindir}/BareosDirWrapper.py* +%{plugindir}/bareos-dir-class-plugin.py* +%{plugindir}/python3-dir.so +%{python3_sitelib}/bareosdir%{python3_ext_suffix} + +%files storage-python%{python3_pkgversion}-plugin +%defattr(-, root, root, -) +%{plugindir}/bareos-sd-class-plugin.py* +%{plugindir}/BareosSdPluginBaseclass.py* +%{plugindir}/BareosSdWrapper.py* +%{plugindir}/python3-sd.so +%{python3_sitelib}/bareossd%{python3_ext_suffix} +%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 + +%changelog +* Mon Feb 28 2022 Daniel Uvehag 21.0.0-1 +- Upgrade to 21.0.0 + +* Wed Oct 20 2021 Daniel Uvehag 20.0.0-1 +- Upgrade to 20.0.0 + +* 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 diff --git a/openssl-3.0-warnings.patch b/openssl-3.0-warnings.patch new file mode 100644 index 0000000..1760c65 --- /dev/null +++ b/openssl-3.0-warnings.patch @@ -0,0 +1,389 @@ +# Fedora 36+ and EL9+ includes OpenSSL 3.0. This introduces a lot of +# deprecation warnings. Locally mute these warning so that they don't cause +# errors. +diff -Naur bareos-Release-21.0.0.orig/core/src/dird/inc_conf.cc bareos-Release-21.0.0/core/src/dird/inc_conf.cc +--- bareos-Release-21.0.0.orig/core/src/dird/inc_conf.cc 2022-03-09 09:03:32.065233907 +0100 ++++ bareos-Release-21.0.0/core/src/dird/inc_conf.cc 2022-03-09 10:03:14.079745445 +0100 +@@ -820,7 +820,10 @@ + case BCT_QUOTED_STRING: { + FilesetResource* res_fs = GetStaticFilesetResource(); + if (res_fs->have_MD5) { ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Update(&res_fs->md5c, (unsigned char*)lc->str, lc->str_len); ++#pragma GCC diagnostic pop + } + + if (res_incexe->name_list.size() == 0) { +@@ -873,7 +876,10 @@ + FilesetResource* res_fs = GetStaticFilesetResource(); + + if (res_fs->have_MD5) { ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Update(&res_fs->md5c, (unsigned char*)lc->str, lc->str_len); ++#pragma GCC diagnostic pop + } + if (res_incexe->plugin_list.size() == 0) { + res_incexe->plugin_list.init(10, true); +@@ -929,7 +935,10 @@ + if (pass == 1) { res_incexe = new IncludeExcludeItem; } + + if (!res_fs->have_MD5) { ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&res_fs->md5c); ++#pragma GCC diagnostic pop + res_fs->have_MD5 = true; + } + res_fs->new_include = true; +diff -Naur bareos-Release-21.0.0.orig/core/src/dird/job.cc bareos-Release-21.0.0/core/src/dird/job.cc +--- bareos-Release-21.0.0.orig/core/src/dird/job.cc 2022-03-09 09:03:32.065233907 +0100 ++++ bareos-Release-21.0.0/core/src/dird/job.cc 2022-03-09 10:09:30.636596791 +0100 +@@ -1351,7 +1351,10 @@ + MD5_CTX md5c; + unsigned char digest[16]; /* MD5 digest length */ + memcpy(&md5c, &jcr->impl->res.fileset->md5c, sizeof(md5c)); ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Final(digest, &md5c); ++#pragma GCC diagnostic pop + /* + * Keep the flag (last arg) set to false otherwise old FileSets will + * get new MD5 sums and the user will get Full backups on everything +diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c +--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c 2022-03-09 09:03:32.069233916 +0100 ++++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c 2022-03-09 09:40:31.490561578 +0100 +@@ -330,9 +330,12 @@ + goto end; + } + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&ctx); + MD5_Update(&ctx, req->data_buf, req->data_len); + MD5_Final(digest, &ctx); ++#pragma GCC diagnostic pop + + b64_digest_len + = dpl_base64_encode(digest, MD5_DIGEST_LENGTH, (u_char*)b64_digest); +diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/uks.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/uks.c +--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/uks.c 2022-03-09 09:03:32.069233916 +0100 ++++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/uks.c 2022-03-09 09:37:41.132118775 +0100 +@@ -295,9 +295,12 @@ + + off += DPL_UKS_OID_NBITS; + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&ctx); + MD5_Update(&ctx, entropy, sizeof(entropy)); + MD5_Final(hash, &ctx); ++#pragma GCC diagnostic pop + + for (i = 0; i < DPL_UKS_HASH_NBITS; i++) { + if (hash[i / 8] & 1 << (i % 8)) +diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/utils.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/utils.c +--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/utils.c 2022-03-09 09:03:32.069233916 +0100 ++++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/utils.c 2022-03-09 09:35:48.302843481 +0100 +@@ -468,7 +468,10 @@ + HMAC_CTX ctx; + #else + HMAC_CTX* ctx; ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + ctx = HMAC_CTX_new(); ++#pragma GCC diagnostic pop + #endif + u_int digest_len; + +@@ -479,9 +482,12 @@ + HMAC_Final(&ctx, (u_char*)digest_buf, &digest_len); + HMAC_CTX_cleanup(&ctx); + #else ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + HMAC_Init_ex(ctx, key_buf, key_len, md, NULL); + HMAC_Update(ctx, (u_char*)data_buf, data_len); + HMAC_Final(ctx, (u_char*)digest_buf, &digest_len); ++#pragma GCC diagnostic pop + #endif + + return digest_len; +@@ -542,9 +548,12 @@ + { + SHA256_CTX ctx; + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + SHA256_Init(&ctx); + SHA256_Update(&ctx, data_buf, data_len); + SHA256_Final(digest_buf, &ctx); ++#pragma GCC diagnostic pop + } + + /**/ +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_none.cc bareos-Release-21.0.0/core/src/lib/crypto_none.cc +--- bareos-Release-21.0.0.orig/core/src/lib/crypto_none.cc 2022-03-09 09:03:32.073233925 +0100 ++++ bareos-Release-21.0.0/core/src/lib/crypto_none.cc 2022-03-09 10:02:42.859673131 +0100 +@@ -57,7 +57,10 @@ + + switch (type) { + case CRYPTO_DIGEST_MD5: ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&digest->md5); ++#pragma GCC diagnostic pop + break; + case CRYPTO_DIGEST_SHA1: + SHA1Init(&digest->sha1); +@@ -76,7 +79,10 @@ + switch (digest->type) { + case CRYPTO_DIGEST_MD5: + /* Doesn't return anything ... */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Update(&digest->md5, (unsigned char*)data, length); ++#pragma GCC diagnostic pop + return true; + case CRYPTO_DIGEST_SHA1: + /* Doesn't return anything ... */ +@@ -96,7 +102,10 @@ + assert(*length >= CRYPTO_DIGEST_MD5_SIZE); + *length = CRYPTO_DIGEST_MD5_SIZE; + /* Doesn't return anything ... */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Final((unsigned char*)dest, &digest->md5); ++#pragma GCC diagnostic pop + return true; + case CRYPTO_DIGEST_SHA1: + /* Guard against programmer error by either the API client or +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_nss.cc bareos-Release-21.0.0/core/src/lib/crypto_nss.cc +--- bareos-Release-21.0.0.orig/core/src/lib/crypto_nss.cc 2022-03-09 09:03:32.073233925 +0100 ++++ bareos-Release-21.0.0/core/src/lib/crypto_nss.cc 2022-03-09 10:02:07.909592178 +0100 +@@ -58,7 +58,10 @@ + + switch (type) { + case CRYPTO_DIGEST_MD5: ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&digest->md5); ++#pragma GCC diagnostic pop + break; + case CRYPTO_DIGEST_SHA1: + SHA1Init(&digest->sha1); +@@ -77,7 +80,10 @@ + switch (digest->type) { + case CRYPTO_DIGEST_MD5: + /* Doesn't return anything ... */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Update(&digest->md5, (unsigned char*)data, length); ++#pragma GCC diagnostic pop + return true; + case CRYPTO_DIGEST_SHA1: + /* Doesn't return anything ... */ +@@ -97,7 +103,10 @@ + assert(*length >= CRYPTO_DIGEST_MD5_SIZE); + *length = CRYPTO_DIGEST_MD5_SIZE; + /* Doesn't return anything ... */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Final((unsigned char*)dest, &digest->md5); ++#pragma GCC diagnostic pop + return true; + case CRYPTO_DIGEST_SHA1: + /* Guard against programmer error by either the API client or +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_openssl.cc bareos-Release-21.0.0/core/src/lib/crypto_openssl.cc +--- bareos-Release-21.0.0.orig/core/src/lib/crypto_openssl.cc 2022-03-09 09:03:32.073233925 +0100 ++++ bareos-Release-21.0.0/core/src/lib/crypto_openssl.cc 2022-03-09 09:45:32.411339279 +0100 +@@ -1188,9 +1188,12 @@ + /* Encrypt the session key */ + ekey = (unsigned char*)malloc(EVP_PKEY_size(keypair->pubkey)); + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + if ((ekey_len = EVP_PKEY_encrypt(ekey, cs->session_key, cs->session_key_len, + keypair->pubkey)) + <= 0) { ++#pragma GCC diagnostic pop + /* OpenSSL failure */ + RecipientInfo_free(ri); + CryptoSessionFree(cs); +@@ -1314,9 +1317,12 @@ + /* Allocate sufficient space for the largest possible decrypted data */ + cs->session_key + = (unsigned char*)malloc(EVP_PKEY_size(keypair->privkey)); ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + cs->session_key_len = EVP_PKEY_decrypt( + cs->session_key, M_ASN1_STRING_data(ri->encryptedKey), + M_ASN1_STRING_length(ri->encryptedKey), keypair->privkey); ++#pragma GCC diagnostic pop + + if (cs->session_key_len <= 0) { + OpensslPostErrors(M_ERROR, _("Failure decrypting the session key")); +@@ -1502,8 +1508,11 @@ + ENGINE_load_pk11(); + # else + // Load all the builtin engines. ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + ENGINE_load_builtin_engines(); + ENGINE_register_all_complete(); ++#pragma GCC diagnostic pop + # endif + + crypto_initialized = true; +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_wrap.cc bareos-Release-21.0.0/core/src/lib/crypto_wrap.cc +--- bareos-Release-21.0.0.orig/core/src/lib/crypto_wrap.cc 2022-03-09 09:03:32.073233925 +0100 ++++ bareos-Release-21.0.0/core/src/lib/crypto_wrap.cc 2022-03-09 09:49:02.654850824 +0100 +@@ -70,7 +70,10 @@ + memcpy(r, plain, 8 * n); + + # ifdef HAVE_OPENSSL ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + AES_set_encrypt_key(kek, 128, &key); ++#pragma GCC diagnostic pop + # endif + + /* +@@ -87,7 +90,10 @@ + memcpy(b, a, 8); + memcpy(b + 8, r, 8); + # ifdef HAVE_OPENSSL ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + AES_encrypt(b, b, &key); ++#pragma GCC diagnostic pop + # endif + memcpy(a, b, 8); + a[7] ^= n * j + i; +@@ -123,7 +129,10 @@ + memcpy(r, cipher + 8, 8 * n); + + # ifdef HAVE_OPENSSL ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + AES_set_decrypt_key(kek, 128, &key); ++#pragma GCC diagnostic pop + # endif + + /* +@@ -142,7 +151,10 @@ + + memcpy(b + 8, r, 8); + # ifdef HAVE_OPENSSL ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + AES_decrypt(b, b, &key); ++#pragma GCC diagnostic pop + # endif + memcpy(a, b, 8); + memcpy(r, b + 8, 8); +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/hmac.cc bareos-Release-21.0.0/core/src/lib/hmac.cc +--- bareos-Release-21.0.0.orig/core/src/lib/hmac.cc 2022-03-09 09:03:32.073233925 +0100 ++++ bareos-Release-21.0.0/core/src/lib/hmac.cc 2022-03-09 09:51:43.912235436 +0100 +@@ -48,9 +48,12 @@ + if (key_len > PAD_LEN) { + MD5_CTX md5key; + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5key); + MD5_Update(&md5key, key, key_len); + MD5_Final(keysig, &md5key); ++#pragma GCC diagnostic pop + + key = keysig; + key_len = SIG_LEN; +@@ -80,16 +83,22 @@ + } + + /* perform inner MD5 */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5c); /* start inner hash */ + MD5_Update(&md5c, k_ipad, PAD_LEN); /* hash inner pad */ + MD5_Update(&md5c, text, text_len); /* hash text */ + MD5_Final(hmac, &md5c); /* store inner hash */ ++#pragma GCC diagnostic pop + + /* perform outer MD5 */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5c); /* start outer hash */ + MD5_Update(&md5c, k_opad, PAD_LEN); /* hash outer pad */ + MD5_Update(&md5c, hmac, SIG_LEN); /* hash inner hash */ + MD5_Final(hmac, &md5c); /* store results */ ++#pragma GCC diagnostic pop + } + /* + Test Vectors (Trailing '\0' of a character string not included in test): +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/res.cc bareos-Release-21.0.0/core/src/lib/res.cc +--- bareos-Release-21.0.0.orig/core/src/lib/res.cc 2022-03-09 09:03:32.079233939 +0100 ++++ bareos-Release-21.0.0/core/src/lib/res.cc 2022-03-09 10:00:42.655395825 +0100 +@@ -551,9 +551,12 @@ + } + } + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5c); + MD5_Update(&md5c, (unsigned char*)(lc->str), lc->str_len); + MD5_Final(digest, &md5c); ++#pragma GCC diagnostic pop + for (i = j = 0; i < sizeof(digest); i++) { + sprintf(&sig[j], "%02x", digest[i]); + j += 2; +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/tls_openssl_private.cc bareos-Release-21.0.0/core/src/lib/tls_openssl_private.cc +--- bareos-Release-21.0.0.orig/core/src/lib/tls_openssl_private.cc 2022-03-09 09:03:32.080233942 +0100 ++++ bareos-Release-21.0.0/core/src/lib/tls_openssl_private.cc 2022-03-09 09:54:18.069592684 +0100 +@@ -217,7 +217,10 @@ + OpensslPostErrors(M_FATAL, _("Unable to open DH parameters file")); + return false; + } ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + DH* dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL); ++#pragma GCC diagnostic pop + BIO_free(bio); + if (!dh) { + OpensslPostErrors(M_FATAL, +@@ -227,7 +230,10 @@ + if (!SSL_CTX_set_tmp_dh(openssl_ctx_, dh)) { + OpensslPostErrors(M_FATAL, + _("Failed to set TLS Diffie-Hellman parameters")); ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + DH_free(dh); ++#pragma GCC diagnostic pop + return false; + } + SSL_CTX_set_options(openssl_ctx_, SSL_OP_SINGLE_DH_USE); +diff -Naur bareos-Release-21.0.0.orig/core/src/lib/util.cc bareos-Release-21.0.0/core/src/lib/util.cc +--- bareos-Release-21.0.0.orig/core/src/lib/util.cc 2022-03-09 09:03:32.080233942 +0100 ++++ bareos-Release-21.0.0/core/src/lib/util.cc 2022-03-09 09:58:06.378097402 +0100 +@@ -819,14 +819,20 @@ + Bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)getuid()); + Bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)getgid()); + #endif ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5c); + MD5_Update(&md5c, (uint8_t*)s, strlen(s)); + MD5_Final(md5key, &md5c); ++#pragma GCC diagnostic pop + Bsnprintf(s + strlen(s), ss, "%lu", + (uint32_t)((time(NULL) + 65121) ^ 0x375F)); ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + MD5_Init(&md5c); + MD5_Update(&md5c, (uint8_t*)s, strlen(s)); + MD5_Final(md5key1, &md5c); ++#pragma GCC diagnostic pop + #define nextrand (md5key[j] ^ md5key1[j]) + if (mode) { + for (j = k = 0; j < 16; j++) {