# 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.14
Release: 1%{?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 multimaster wsrep provider (replication engine)
for transactional databases and similar applications. For more information
about wsrep API see https://github.com/codership/wsrep-API repository. For a
description of Galera replication engine see https://www.galeracluster.com web.
%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
* Sat Apr 29 2023 Michal Schorm <mschorm@redhat.com> - 26.4.14-1
- Rebase to 26.4.14
* Sun Feb 20 2022 Michal Schorm <mschorm@redhat.com> - 26.4.11-1
- Rebase to 26.4.11
* Wed Jan 19 2022 Lukas Javorsky <ljavorsk@redhat.com> - 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 <mschorm@redhat.com> - 26.4.9-2
- Switch from SCONS build tooling to CMAKE build tooling
* Wed Jan 19 2022 Lukas Javorsky <ljavorsk@redhat.com> - 26.4.9-1
- Rebase to 26.4.9
* Fri Mar 26 2021 Michal Schorm <mschorm@redhat.com> - 26.4.7-1
- Rebase to 26.4.7
* Mon Jan 04 2021 Honza Horak <hhorak@redhat.com> - 26.4.6-1
- Update to 26.4.6
Related: #1903659
* Wed Nov 04 2020 Michal Schorm <mschorm@redhat.com> - 25.3.31-1
- Rebase to 25.3.31
* Tue Nov 03 2020 Michal Schorm <mschorm@redhat.com> - 25.3.30-1
- Rebase to 25.3.30
* Fri May 15 2020 Michal Schorm <mschorm@redhat.com> - 25.3.29-1
- Rebase to 25.3.29
* Thu Apr 25 2019 Michal Schorm <mschorm@redhat.com> - 25.3.25-1
- Rebase to 25.3.25
* Tue Jan 08 2019 Honza Horak <hhorak@redhat.com> - 25.3.23-2
- Rebuild for buildroot change
* Mon Dec 17 2018 Honza Horak <hhorak@redhat.com> - 25.3.23-1
- Update to 25.3.23
* Wed Aug 09 2017 Honza Horak <hhorak@redhat.com> - 25.3.20-3
- Fix wrong failure reporting during init script start
Related: #1415720
* Mon Jun 26 2017 Honza Horak <hhorak@redhat.com> - 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 <hhorak@redhat.com> - 25.3.20-1
- Rebase to 25.3.20
* Thu Apr 21 2016 Honza Horak <hhorak@redhat.com>
- Build with system boost in RHEL-7
Resolves: #1329175
* Thu Feb 11 2016 Honza Horak <hhorak@redhat.com> - 25.3.12-8
- Rebuild with newer scl-utils
* Tue Feb 09 2016 Honza Horak <hhorak@redhat.com> - 25.3.12-7
- Change sysconfdir for scls
* Tue Feb 09 2016 Honza Horak <hhorak@redhat.com> - 25.3.12-6
- Fix typo in _syconfig macro
* Tue Feb 09 2016 Honza Horak <hhorak@redhat.com> - 25.3.12-5
- Prefix service name with SCL
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.12-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jan 15 2016 Jonathan Wakely <jwakely@redhat.com> - 25.3.12-3
- Rebuilt for Boost 1.60
* Wed Sep 30 2015 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 25.3.12-2
- Remove use of -mtune=native which breaks build on secondary architectures
* Fri Sep 25 2015 Richard W.M. Jones <rjones@redhat.com> - 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 <jwakely@redhat.com> - 25.3.10-5
- Rebuilt for Boost 1.59
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 25.3.10-4
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 25.3.10-3
- rebuild for Boost 1.58
* Wed Jul 08 2015 Ryan O'Hara <rohara@redhat.com> - 25.3.10-2
- Disable ARM builds (#1241164, #1239516)
* Mon Jul 06 2015 Ryan O'Hara <rohara@redhat.com> - 25.3.10-1
- Update to version 25.3.10
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 25.3.5-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 25.3.5-10
- Rebuild for boost 1.57.0
* Thu Nov 27 2014 Richard W.M. Jones <rjones@redhat.com> - 25.3.5-9
- Add aarch64 support.
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 25.3.5-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 25.3.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 25.3.5-6
- Rebuild for boost 1.55.0
* Wed Apr 30 2014 Dan HorĂ¡k <dan[at]danny.cz> - 25.3.5-5
- set ExclusiveArch
* Thu Apr 24 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.5-4
- Use strict_build_flags=0 to avoid -Werror
- Remove unnecessary clean section
* Thu Apr 24 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.5-3
- Include galera directories in file list
- Set CPPFLAGS to optflags
* Wed Apr 23 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.5-2
- Fix client certificate verification (#1090604)
* Thu Mar 27 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.5-1
- Update to version 25.3.5
* Mon Mar 24 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.3-2
- Add systemd service
* Sun Mar 09 2014 Ryan O'Hara <rohara@redhat.com> - 25.3.3-1
- Initial build