# libs3 %global commit 66885387c9f761253988321de9c4bbfc1660717d %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global uid 133 %global username bacula # RHEL 10 has only Qt 6. EPEL 10 will have Qt 5 to start, but not # necessarily for its entire lifetime. %if !(0%{?rhel} >= 10 || 0%{?epel} >= 11) %bcond_without qt %endif Name: bacula Version: 15.0.2 Release: 5%{?dist} Summary: Cross platform network backup for Linux, Unix, Mac and Windows # See LICENSE for details # See https://gitlab.com/fedora/legal/fedora-license-data/-/issues/277 License: LicenseRef-Bacula URL: http://www.bacula.org # AGPL-3.0-only with exceptions Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz Source2: quickstart_postgresql.txt Source3: quickstart_mysql.txt Source4: quickstart_sqlite3.txt Source5: README.md Source6: %{name}.logrotate # Firewalld cumulative (bacula.xml) and fd (bacula-client.xml) services are in firewalld: Source7: %{name}-storage.xml Source8: %{name}-director.xml Source10: %{name}-fd.service Source11: %{name}-dir.service Source12: %{name}-sd.service Source15: %{name}-fd.sysconfig Source16: %{name}-dir.sysconfig Source17: %{name}-sd.sysconfig Source19: https://salsa.debian.org/bacula-team/bacula/-/raw/master/debian/additions/bacula-tray-monitor.png#/bacula-tray-monitor.png # LGPL-3.0-only - S3 libs with AWS glacier support # https://gitlab.bacula.org/bacula-community-edition/libs3/-/commits/master?ref_type=heads Source20: https://gitlab.bacula.org/bacula-community-edition/libs3/-/archive/%{commit}/libs3-%{shortcommit}.tar.bz2 Source21: libs3-openssl.patch Patch1: %{name}-openssl.patch Patch2: %{name}-seg-fault.patch Patch3: %{name}-non-free-code.patch Patch4: %{name}-traceback-man.patch Patch5: %{name}-compile-options.patch Patch6: %{name}-install.patch Patch7: %{name}-desktop.patch Patch8: %{name}-docker-plugin.patch # Original patch removed by mistake, upstream is not willing to add it again: # http://www.bacula.org/git/cgit.cgi/bacula/commit/?h=Branch-7.0&id=51b3b98fb77ab3c0decee455cc6c4d2eb3c5303a # Without this, there is no library providing the correct shared object name # required by the daemons. # http://bugs.bacula.org/view.php?id=2084 Patch9: %{name}-autoconf.patch Patch10: %{name}-scripts.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: firewalld-filesystem BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glibc-devel BuildRequires: libacl-devel BuildRequires: libcurl-devel BuildRequires: libstdc++-devel BuildRequires: libxml2-devel BuildRequires: libcap-devel BuildRequires: libpq-devel BuildRequires: libxcrypt-devel BuildRequires: libzstd-devel BuildRequires: lzo-devel BuildRequires: make BuildRequires: mariadb-connector-c-devel BuildRequires: ncurses-devel BuildRequires: openldap-devel BuildRequires: openssl-devel BuildRequires: perl-generators BuildRequires: perl-interpreter %if %{with qt} BuildRequires: qt5-qtbase-devel %endif BuildRequires: readline-devel BuildRequires: sed BuildRequires: sqlite-devel BuildRequires: systemd BuildRequires: zlib-devel Requires(post): firewalld-filesystem %description Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture and is efficient and relatively easy to use, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. %package libs Summary: Bacula libraries %description libs Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains basic Bacula libraries, which are used by all Bacula programs. %package libs-sql Summary: Bacula SQL libraries Obsoletes: bacula-libs-mysql <= 5.0.3 Obsoletes: bacula-libs-sqlite <= 5.0.3 Obsoletes: bacula-libs-postgresql <= 5.0.3 Provides: bacula-libs-mysql = %{version}-%{release} Provides: bacula-libs-sqlite = %{version}-%{release} Provides: bacula-libs-postgresql = %{version}-%{release} %description libs-sql Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the SQL Bacula libraries, which are used by Director and Storage daemons. You have to select your preferred catalog library through the alternatives system. %package common Summary: Common Bacula files Provides: group(%username) = %uid Provides: user(%username) = %uid Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires(postun): shadow-utils %description common Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains files common to all Bacula daemons. %package director Summary: Bacula Director files Requires: bacula-common%{?_isa} = %{version}-%{release} Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: bacula-libs-sql%{?_isa} = %{version}-%{release} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd # For generating the QR code for TOTP authentication on console and director: Recommends: qrencode %description director Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the director files. %package logwatch Summary: Bacula Director logwatch scripts BuildArch: noarch Requires: bacula-director = %{version}-%{release} Requires: logwatch %description logwatch Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains logwatch scripts for Bacula Director. %package storage Summary: Bacula storage daemon files Requires: bacula-common%{?_isa} = %{version}-%{release} Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: bacula-libs-sql%{?_isa} = %{version}-%{release} Requires: mt-st Requires: mtx Requires: sdparm Provides: bundled(libs3) = 4.1.bac Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description storage Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the storage daemon, the daemon responsible for writing the data received from the clients onto tape drives or other mass storage devices. %package client Summary: Bacula backup client Requires: bacula-common%{?_isa} = %{version}-%{release} Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description client Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the bacula client, the daemon running on the system to be backed up. %package console Summary: Bacula management console Obsoletes: bacula-console-wxwidgets <= 5.0.3 Requires: bacula-libs%{?_isa} = %{version}-%{release} %description console Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the command-line management console for the bacula backup system. %if %{with qt} %package console-bat Summary: Bacula bat console Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: dejavu-lgc-sans-fonts %description console-bat Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the bat version of the bacula management console. %package traymonitor Summary: Bacula system tray monitor Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: dejavu-lgc-sans-fonts %description traymonitor Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This package contains the Gnome and KDE compatible tray monitor to monitor your bacula server. %endif %package devel Summary: Bacula development files Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: bacula-libs-sql%{?_isa} = %{version}-%{release} %description devel Bacula is a set of programs that allow you to manage the backup, recovery, and verification of computer data across a network of different computers. It is based on a client/server architecture. This development package contains static libraries and header files. %package -n nagios-plugins-bacula Summary: Nagios Plugin - check_bacula Requires: bacula-libs%{?_isa} = %{version}-%{release} Requires: nagios-common%{?_isa} %description -n nagios-plugins-bacula Provides check_bacula support for Nagios. %prep %autosetup -a20 -p1 cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} . # Regenerate configure pushd autoconf aclocal -I bacula-macros/ -I gettext-macros/ -I libtool/ popd autoconf -I autoconf/ -o configure autoconf/configure.in # Remove execution permissions from files we're packaging as docs later on find updatedb -type f | xargs chmod -x # Create a sysusers.d config file cat >bacula.sysusers.conf < - 15.0.2-5 - Add sysusers.d config file to allow rpm to create users/groups automatically * Sat Feb 01 2025 Björn Esser - 15.0.2-4 - Add explicit BR: libxcrypt-devel * Thu Jan 16 2025 Fedora Release Engineering - 15.0.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Wed Jul 17 2024 Fedora Release Engineering - 15.0.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Sun Jun 02 2024 Simone Caronni - 15.0.2-1 - Update to 15.0.2. - Drop EL7 support. - Enable antivirus plugin for File Daemon. - Enable AWS and aligned driver for Storage Daemon - Enable TOTP support for Director. - Add ZSTD support. * Thu Feb 15 2024 Simone Caronni - 13.0.4-4 - Adjust QT conditional. * Wed Feb 14 2024 Simone Caronni - 13.0.4-3 - Adjust build requirements and conditions to build on all supported EL/Fedora releases. * Wed Feb 14 2024 Simone Caronni - 13.0.4-2 - Enable S3 support. * Wed Feb 14 2024 Simone Caronni - 13.0.4-1 - Update to 13.0.4. * Tue Jan 23 2024 Fedora Release Engineering - 13.0.3-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Fri Jan 19 2024 Fedora Release Engineering - 13.0.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Wed Aug 16 2023 Yaakov Selkowitz - 13.0.3-3 - Disable Qt components in RHEL builds * Wed Jul 19 2023 Fedora Release Engineering - 13.0.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Thu May 04 2023 Simone Caronni - 13.0.3-1 - Update to 13.0.3. - Trim changelog. * Wed Mar 29 2023 Simone Caronni - 13.0.2-1 - Update to 13.0.2. * Wed Jan 18 2023 Fedora Release Engineering - 13.0.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Mon Dec 19 2022 Florian Weimer - 13.0.1-5 - Port configure script to C99 * Tue Nov 29 2022 Simone Caronni - 13.0.1-4 - Fix isworm script. * Tue Nov 29 2022 Simone Caronni - 13.0.1-3 - Require sdparm in storage subpackage. It's required for WORM tapes. * Mon Nov 21 2022 Simone Caronni - 13.0.1-2 - Add separate firewall rules for storage/director only. * Fri Aug 19 2022 Simone Caronni - 13.0.1-1 - Update to 13.0.1. * Wed Jul 20 2022 Fedora Release Engineering - 13.0.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Fri Jul 08 2022 Simone Caronni - 13.0.0-1 - Update to version 13.0.0. - Enable LDAP integration. * Sat Mar 26 2022 Simone Caronni - 11.0.6-2 - Update/reorganize patches. * Fri Mar 25 2022 Simone Caronni - 11.0.6-1 - Update to 11.0.6. * Wed Jan 19 2022 Fedora Release Engineering - 11.0.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Tue Sep 14 2021 Sahana Prasad - 11.0.5-3 - Rebuilt with OpenSSL 3.0.0 * Wed Jul 21 2021 Fedora Release Engineering - 11.0.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Thu Jun 03 2021 Simone Caronni - 11.0.5-1 - Update to 11.0.5. * Mon May 31 2021 Simone Caronni - 11.0.3-1 - Update to 11.0.3. * Fri Apr 16 2021 Simone Caronni - 11.0.2-3 - All scripts require sh, so use that also for the backup report. * Fri Apr 16 2021 Simone Caronni - 11.0.2-2 - Remove dash build requirement. * Fri Apr 16 2021 Simone Caronni - 11.0.2-1 - Update to 11.0.2. * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 11.0.1-2 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. * Thu Feb 11 2021 Simone Caronni - 11.0.1-1 - Update to 11.0.1. * Mon Feb 08 2021 Pavel Raiskup - 11.0.0-5 - rebuild for libpq ABI fix rhbz#1908268 * Thu Jan 28 2021 Simone Caronni - 11.0.0-4 - Remove leftover ImageMagick build requirement. * Tue Jan 26 2021 Fedora Release Engineering - 11.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Jan 15 2021 Simone Caronni - 11.0.0-2 - Build CDP plugin components. * Tue Jan 12 2021 Simone Caronni - 11.0.0-1 - Update to 11.0.0. - Enable Docker plugin. * Tue Jan 12 2021 Simone Caronni - 9.6.7-1 - Update to 9.6.7. - Drop support for building on CentOS/RHEL 6 and upgrades from version 2.4. - Trim changelog.