# Use main python interpretter version %if 0%{?fedora} || 0%{?rhel} > 7 %define __python /usr/bin/python3 %else %define __python /usr/bin/python2 %endif %global scl rh-mariadb105 %{?scl:%scl_package galera} %{!?scl:%global pkg_name %{name}} %if 0%{?scl:1} %global scl_upper %{lua:print(string.upper(string.gsub(rpm.expand("%{scl}"), "-", "_")))} %endif %global daemon_name %{?scl_prefix}garbd Name: %{?scl_prefix}galera Version: 26.4.9 Release: 3%{?dist} Summary: Synchronous multi-master wsrep provider (replication engine) License: GPLv2 URL: http://galeracluster.com/ Source0: http://releases.galeracluster.com/source/%{pkg_name}-%{version}.tar.gz # Actually, the truth is, we do use patched galera source tarball provided by MariaDB on # following URL (without macros): # https://mirror.vpsfree.cz/mariadb/mariadb-10.4.11/galera-26.4.3/src/galera-26.4.3.tar.gz Patch1: galera-paths.patch Patch2: galera-init-start.patch Patch3: cmake_paths.patch BuildRequires: boost-devel BuildRequires: check-devel openssl-devel cmake systemd Requires: nmap-ncat Requires: procps-ng %{?systemd_requires} %description Galera is a fast synchronous multi-master wsrep provider (replication engine) for transactional databases and similar applications. For more information about wsrep API see http://launchpad.net/wsrep. For a description of Galera replication engine see http://www.codership.com. %prep %setup -q -n %{pkg_name}-%{version} %patch1 -p1 -b .p2 %patch2 -p1 %patch3 -p1 %build for f in garb/files/garb.sh garb/files/garb.service garb/files/garb-systemd ; do sed -i -e "s|@bindir@|%{_bindir}|g" \ -e "s|@sbindir@|%{_sbindir}|g" \ -e "s|@sysconfdir@|%{_sysconfdir}|g" \ $f %if 0%{?scl:1} sed -i -e "s|@scl@|%{scl}|g" \ -e "s|@scl_prefix@|%{scl_prefix}|g" \ -e "s|@scl_scripts@|%{?_scl_scripts}|g" \ -e "s|@scl_upper@|%{scl_upper}|g" \ $f %endif done %{?scl:scl enable %{scl} - << "EOF"} set -xe export CPPFLAGS="%{optflags}" %cmake . \ -DCMAKE_BUILD_TYPE="%{?with_debug:Debug}%{!?with_debug:RelWithDebInfo}" \ -DINSTALL_LAYOUT=RPM \ -DCMAKE_RULE_MESSAGES:BOOL=OFF \ \ -DBUILD_SHARED_LIBS:BOOL=OFF \ \ -DINSTALL_DOCDIR="%{_docdir}/galera/" \ -DINSTALL_GARBD="%{_bindir}" \ -DINSTALL_GARBD-SYSTEMD="%{_bindir}" \ -DINSTALL_CONFIGURATION="%{_sysconfdir}/sysconfig/" \ -DINSTALL_SYSTEMD_SERVICE="lib/systemd/system" \ -DINSTALL_LIBDIR="%{_lib}/galera" \ -DINSTALL_MANPAGE="share/man/man8" cmake . -LAH make VERBOSE=1 %{?_smp_mflags} %if 0%{?rhel} < 7 bpostatic=%{_libdir}/libboost_program_options.so %endif %{?scl:EOF} %install %{?scl:scl enable %{scl} - << "EOF"} set -xe make install DESTDIR=%{buildroot} %{?scl:EOF} mkdir -p %{buildroot}/usr/lib/systemd/system/ # Rename the systemd unit file %{?scl:mv %{buildroot}%{_prefix}/lib/systemd/system/garb.service %{buildroot}/usr/lib/systemd/system/%{?scl_prefix}garbd.service} %if 0%{?scl:1} # generate a configuration file for daemon cat << EOF | tee -a %{buildroot}%{?_scl_scripts}/garbd-service-environment # Services are started in a fresh environment without any influence of user's # environment (like environment variable values). As a consequence, # information of all enabled collections will be lost during service start up. # If user needs to run a service under any software collection enabled, this # collection has to be written into %{scl_upper}_SCLS_ENABLED variable # in %{?_scl_scripts}/garbd-service-environment. %{scl_upper}_SCLS_ENABLED="%{scl}" EOF %endif #scl %pre /usr/sbin/useradd -M -r -d /dev/null -s /sbin/nologin -c "Galera Arbitrator Daemon" garb >/dev/null 2>&1 || : %post /sbin/ldconfig %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %systemd_post %{daemon_name}.service %else /sbin/chkconfig --add %{daemon_name} %endif %preun %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %systemd_preun %{daemon_name}.service %else if [ "$1" -eq 0 ]; then /sbin/service %{daemon_name} stop >/dev/null 2>&1 /sbin/chkconfig --del %{daemon_name} fi %endif %postun /sbin/ldconfig %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %systemd_postun_with_restart %{daemon_name}.service %else if [ "$1" -ge 1 ]; then /sbin/service %{daemon_name} condrestart >/dev/null 2>&1 || : fi %endif %files %config(noreplace,missingok) %{_sysconfdir}/sysconfig/garb %dir %{_docdir}/galera %dir %{_libdir}/galera %{_bindir}/garbd %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 # PATCH 3: # Make sure the wrapper script is executable %attr(755, -, -) %{_bindir}/garb-systemd %{_mandir}/man8/garbd.8* %{_unitdir}/%{daemon_name}.service %else %{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rc.d/init.d/%{daemon_name} %endif %if 0%{?scl:1} %{?_scl_scripts}/garbd-service-environment %endif %{_libdir}/galera/libgalera_smm.so %doc %{_docdir}/galera/AUTHORS %doc %{_docdir}/galera/COPYING %doc %{_docdir}/galera/LICENSE.asio %doc %{_docdir}/galera/README #%doc %{_docdir}/galera/README-MySQL %changelog * Wed Jan 19 2022 Lukas Javorsky - 26.4.9-3 - Explicitly require the 'procps-ng' package - Otherwise it will not require it in the lightweight systems (e.g. containers) - and Galera won't work properly * Wed Jan 19 2022 Michal Schorm - 26.4.9-2 - Switch from SCONS build tooling to CMAKE build tooling * Wed Jan 19 2022 Lukas Javorsky - 26.4.9-1 - Rebase to 26.4.9 * Fri Mar 26 2021 Michal Schorm - 26.4.7-1 - Rebase to 26.4.7 * Mon Jan 04 2021 Honza Horak - 26.4.6-1 - Update to 26.4.6 Related: #1903659 * Wed Nov 04 2020 Michal Schorm - 25.3.31-1 - Rebase to 25.3.31 * Tue Nov 03 2020 Michal Schorm - 25.3.30-1 - Rebase to 25.3.30 * Fri May 15 2020 Michal Schorm - 25.3.29-1 - Rebase to 25.3.29 * Thu Apr 25 2019 Michal Schorm - 25.3.25-1 - Rebase to 25.3.25 * Tue Jan 08 2019 Honza Horak - 25.3.23-2 - Rebuild for buildroot change * Mon Dec 17 2018 Honza Horak - 25.3.23-1 - Update to 25.3.23 * Wed Aug 09 2017 Honza Horak - 25.3.20-3 - Fix wrong failure reporting during init script start Related: #1415720 * Mon Jun 26 2017 Honza Horak - 25.3.20-2 - Fix paths in garpd init script and turn on SCL there Related: #1415720 - Include garbd-service-environment because the one from mariadb-server does not need to be installed * Mon Jun 19 2017 Honza Horak - 25.3.20-1 - Rebase to 25.3.20 * Thu Apr 21 2016 Honza Horak - Build with system boost in RHEL-7 Resolves: #1329175 * Thu Feb 11 2016 Honza Horak - 25.3.12-8 - Rebuild with newer scl-utils * Tue Feb 09 2016 Honza Horak - 25.3.12-7 - Change sysconfdir for scls * Tue Feb 09 2016 Honza Horak - 25.3.12-6 - Fix typo in _syconfig macro * Tue Feb 09 2016 Honza Horak - 25.3.12-5 - Prefix service name with SCL * Wed Feb 03 2016 Fedora Release Engineering - 25.3.12-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Fri Jan 15 2016 Jonathan Wakely - 25.3.12-3 - Rebuilt for Boost 1.60 * Wed Sep 30 2015 Marcin Juszkiewicz - 25.3.12-2 - Remove use of -mtune=native which breaks build on secondary architectures * Fri Sep 25 2015 Richard W.M. Jones - 25.3.12-1 - Update to 25.3.12. - Should fix the build on 32 bit ARM (RHBZ#1241164). - Remove ExcludeArch (should have read the BZ more closely). * Thu Aug 27 2015 Jonathan Wakely - 25.3.10-5 - Rebuilt for Boost 1.59 * Wed Jul 29 2015 Fedora Release Engineering - 25.3.10-4 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 * Wed Jul 22 2015 David Tardon - 25.3.10-3 - rebuild for Boost 1.58 * Wed Jul 08 2015 Ryan O'Hara - 25.3.10-2 - Disable ARM builds (#1241164, #1239516) * Mon Jul 06 2015 Ryan O'Hara - 25.3.10-1 - Update to version 25.3.10 * Wed Jun 17 2015 Fedora Release Engineering - 25.3.5-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Mon Jan 26 2015 Petr Machata - 25.3.5-10 - Rebuild for boost 1.57.0 * Thu Nov 27 2014 Richard W.M. Jones - 25.3.5-9 - Add aarch64 support. * Sat Aug 16 2014 Fedora Release Engineering - 25.3.5-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 25.3.5-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Fri May 23 2014 Petr Machata - 25.3.5-6 - Rebuild for boost 1.55.0 * Wed Apr 30 2014 Dan HorĂ¡k - 25.3.5-5 - set ExclusiveArch * Thu Apr 24 2014 Ryan O'Hara - 25.3.5-4 - Use strict_build_flags=0 to avoid -Werror - Remove unnecessary clean section * Thu Apr 24 2014 Ryan O'Hara - 25.3.5-3 - Include galera directories in file list - Set CPPFLAGS to optflags * Wed Apr 23 2014 Ryan O'Hara - 25.3.5-2 - Fix client certificate verification (#1090604) * Thu Mar 27 2014 Ryan O'Hara - 25.3.5-1 - Update to version 25.3.5 * Mon Mar 24 2014 Ryan O'Hara - 25.3.3-2 - Add systemd service * Sun Mar 09 2014 Ryan O'Hara - 25.3.3-1 - Initial build