# libs3 %global commit 66885387c9f761253988321de9c4bbfc1660717d %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global uid 133 %global username bacula Name: bacula Version: 15.0.3 Release: 101 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: https://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 # [PATCH] OpenSSL 4.0 compatibility - based on Debian / Ubuntu patches from: # https://gitlab.bacula.org/bacula-community-edition/bacula-community/-/issues/2771 Patch11: %{name}-openssl4.patch # Python 3.15 compatibility Patch12: %{name}-python3.15.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: firewalld-filesystem BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: git 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 BuildRequires: python3-cython BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-pyinstaller BuildRequires: python3-setuptools BuildRequires: python-unversioned-command BuildRequires: qt5-qtbase-devel 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 %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. %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. %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 <