import galera-26.4.9-2.el9

This commit is contained in:
CentOS Sources 2022-05-17 04:56:45 -04:00 committed by Stepan Oksanichenko
commit 08a6777c8e
6 changed files with 517 additions and 0 deletions

1
.galera.metadata Normal file
View File

@ -0,0 +1 @@
3c9925963811319563163a5364c36871ca25c556 SOURCES/galera-26.4.9.tar.gz

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/galera-26.4.9.tar.gz

112
SOURCES/cmake_paths.patch Normal file
View File

@ -0,0 +1,112 @@
1) Documentation files
--- galera-26.4.8/CMakeLists.txt 2021-04-08 08:05:44.000000000 +0200
+++ galera-26.4.8/CMakeLists.txt_patched 2021-06-10 01:40:26.886770832 +0200
@@ -106,14 +106,19 @@ add_subdirectory(galera)
add_subdirectory(scripts/packages)
add_subdirectory(wsrep/tests)
+# Make the intall destination for documentation files configurable
+if(NOT DEFINED INSTALL_DOCDIR)
+ set(INSTALL_DOCDIR "doc" CACHE STRING "path to install documentaion to")
+endif()
+
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES ".*BSD")
install(FILES
${CMAKE_SOURCE_DIR}/AUTHORS
${CMAKE_SOURCE_DIR}/COPYING
${CMAKE_SOURCE_DIR}/README
- DESTINATION doc)
+ DESTINATION ${INSTALL_DOCDIR} )
install(FILES ${CMAKE_SOURCE_DIR}/asio/LICENSE_1_0.txt
- DESTINATION doc
+ DESTINATION ${INSTALL_DOCDIR}
RENAME LICENSE.asio)
endif()
2) Configuration file
3) Executable files
4) Systemd service file
--- galera-26.4.8/garb/CMakeLists.txt 2021-06-10 03:54:55.482520883 +0200
+++ galera-26.4.8/garb/CMakeLists.txt_patched 2021-06-10 03:54:41.070274710 +0200
@@ -31,14 +31,51 @@ target_compile_options(garbd
target_link_libraries(garbd gcs4garb gcomm gcache
${Boost_PROGRAM_OPTIONS_LIBRARIES})
-install(TARGETS garbd DESTINATION bin)
+# Make the install destination for garbd binary configurable
+if(NOT DEFINED INSTALL_GARBD)
+ set(INSTALL_GARBD "bin" CACHE STRING "path to install garbd binary to")
+endif()
+
+install(TARGETS garbd
+ DESTINATION ${INSTALL_GARBD})
+
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES ".*BSD")
+
+ # Make the install destination for garbd-systemd wrapper script configurable
+ if(NOT DEFINED INSTALL_GARBD-SYSTEMD)
+ set(INSTALL_GARBD-SYSTEMD "share" CACHE STRING "path to install garbd-systemd wrapper script to")
+ endif()
+
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/files/garb-systemd
+ DESTINATION ${INSTALL_GARBD-SYSTEMD})
+
+ # Make the install destination for garbd configuration file configurable
+ if(NOT DEFINED INSTALL_CONFIGURATION)
+ set(INSTALL_CONFIGURATION "share" CACHE STRING "path to install garbd configuration to")
+ endif()
+
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/files/garb.cnf
+ DESTINATION ${INSTALL_CONFIGURATION}
+ RENAME garb)
+
+ # Make the install destination for garbd systemd service file configurable
+ if(NOT DEFINED INSTALL_SYSTEMD_SERVICE)
+ set(INSTALL_SYSTEMD_SERVICE "share" CACHE STRING "path to install garbd Systemd service to")
+ endif()
+
+ install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/files/garb.service
- ${CMAKE_CURRENT_SOURCE_DIR}/files/garb-systemd
- DESTINATION share)
+ DESTINATION ${INSTALL_SYSTEMD_SERVICE})
+
+ # Make the install destination for manpage configurable
+ if(NOT DEFINED INSTALL_MANPAGE)
+ set(INSTALL_MANPAGE "man/man8" CACHE STRING "path to install manpage to")
+ endif()
+
install(FILES
${CMAKE_SOURCE_DIR}/man/garbd.8
- DESTINATION man/man8)
+ DESTINATION ${INSTALL_MANPAGE})
+
endif()
5) Shared library path
--- galera-26.4.8/galera/src/CMakeLists.txt 2021-06-10 03:13:05.465005845 +0200
+++ galera-26.4.8/galera/src/CMakeLists.txt_patched 2021-06-10 03:16:53.388699046 +0200
@@ -112,7 +112,12 @@ endif()
target_link_libraries(galera_smm galera ${GALERA_LINK_OPTIONS})
-install(TARGETS galera_smm DESTINATION lib)
+# Make the install destination for garbd binary configurable
+if(NOT DEFINED INSTALL_LIBDIR)
+ set(INSTALL_LIBDIR "lib" CACHE STRING "path to install shared libraries to")
+endif()
+
+install(TARGETS galera_smm DESTINATION ${INSTALL_LIBDIR})
# The following checks are guaranteed to work only
# Linux platform, we skip them on others.

38
SOURCES/garbd-wrapper Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/sh
# This script is simple wrapper around garbd, that parses startup configuration.
# Its main purpose is to bridge the differences between initscript and systemd unit file.
CONFIG_FILE=/etc/sysconfig/garb
source $CONFIG_FILE
# Check that node addresses and group name are configured
if [ -z "$GALERA_NODES" ]; then
echo "List of GALERA_NODES is not configured" >&2
exit 1
fi
if [ -z "$GALERA_GROUP" ]; then
echo "GALERA_GROUP name is not configured" >&2
exit 1
fi
GALERA_PORT=${GALERA_PORT:-4567}
# Find a working node
for ADDRESS in ${GALERA_NODES} 0; do
HOST=$(echo $ADDRESS | cut -d \: -f 1)
PORT=$(echo $ADDRESS | cut -s -d \: -f 2)
PORT=${PORT:-$GALERA_PORT}
ncat --send-only --recv-only $HOST $PORT >/dev/null && break
done
if [ ${ADDRESS} == "0" ]; then
echo "None of the nodes in GALERA_NODES is accessible" >&2
exit 1
fi
OPTIONS="-a gcomm://$ADDRESS"
[ -n "$GALERA_GROUP" ] && OPTIONS="$OPTIONS -g $GALERA_GROUP"
[ -n "$GALERA_OPTIONS" ] && OPTIONS="$OPTIONS -o $GALERA_OPTIONS"
[ -n "$LOG_FILE" ] && OPTIONS="$OPTIONS -l $LOG_FILE"
exec /usr/sbin/garbd $OPTIONS

10
SOURCES/garbd.service Normal file
View File

@ -0,0 +1,10 @@
[Unit]
Description=Galera Arbitrator Daemon
Documentation=http://www.codership.com/wiki/doku.php?id=galera_arbitrator
[Service]
ExecStart=/usr/sbin/garbd-wrapper
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

355
SPECS/galera.spec Normal file
View File

@ -0,0 +1,355 @@
Name: galera
Version: 26.4.9
Release: 2%{?dist}
Summary: Synchronous multi-master wsrep provider (replication engine)
License: GPLv2
URL: http://galeracluster.com/
# Actually, the truth is, we do use galera source tarball provided by MariaDB on
# following URL (without macros):
# https://archive.mariadb.org/mariadb-10.4.16/galera-26.4.6/src/galera-26.4.6.tar.gz
Source0: http://releases.galeracluster.com/source/%{name}-%{version}.tar.gz
Source1: garbd.service
Source2: garbd-wrapper
Patch0: cmake_paths.patch
BuildRequires: boost-devel check-devel openssl-devel cmake systemd gcc-c++ asio-devel
Requires(pre): /usr/sbin/useradd
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
%patch0 -p1
%build
%{set_build_flags}
%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="share/doc/%{name}/" \
-DINSTALL_GARBD="sbin" \
-DINSTALL_GARBD-SYSTEMD="sbin" \
-DINSTALL_CONFIGURATION="/etc/sysconfig/" \
-DINSTALL_SYSTEMD_SERVICE="lib/systemd/system" \
-DINSTALL_LIBDIR="%{_lib}/galera" \
-DINSTALL_MANPAGE="share/man/man8"
cmake -B %_vpath_builddir -LAH
%cmake_build
%install
%cmake_install
# PATCH 1:
# Change the Systemd service name from "garb" to "garbd"
#
# The Galera upstream uses name "garb" for the service while providing "garbd" alias
# Fedora downstream packaging historically used "garbd" name for the service.
#
# Let's stick with the Fedora legacy naming, AND provide an alias to the Galera upstream name
mv %{buildroot}/usr/lib/systemd/system/garb.service %{buildroot}/usr/lib/systemd/system/garbd.service
sed -i 's/Alias=garbd.service/Alias=garb.service/g' %{buildroot}/usr/lib/systemd/system/garbd.service
# PATCH 2:
# Fix the hardcoded paths
# In the Systemd service file:
sed -i 's;/usr/bin/garb-systemd;/usr/sbin/garb-systemd;g' %{buildroot}/usr/lib/systemd/system/garbd.service
# In the wrapper script:
sed -i 's;/usr/bin/garbd;/usr/sbin/garbd;g' %{buildroot}/usr/sbin/garb-systemd
# PATCH 4:
# Use a dedicated user for the Systemd service
# To fix an security issue reported by Systemd:
#
## systemd[1]: /usr/lib/systemd/system/garb.service:14: Special user nobody configured, this is not safe!
## Subject: Special user nobody configured, this is not safe!
## Defined-By: systemd
## Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
## Documentation: https://systemd.io/UIDS-GIDS
##
## The unit garb.service is configured to use User=nobody.
##
## This is not safe. The nobody user's main purpose on Linux-based
## operating systems is to be the owner of files that otherwise cannot be mapped
## to any local user. It's used by the NFS client and Linux user namespacing,
## among others. By running a unit's processes under the identity of this user
## they might possibly get read and even write access to such files that cannot
## otherwise be mapped.
##
## It is strongly recommended to avoid running services under this user identity,
## in particular on systems using NFS or running containers. Allocate a user ID
## specific to this service, either statically via systemd-sysusers or dynamically
## via the DynamicUser= service setting.
sed -i 's/User=nobody/User=garb/g' %{buildroot}/usr/lib/systemd/system/garbd.service
%pre
/usr/sbin/useradd -M -r -d /dev/null -s /sbin/nologin -c "Galera Arbitrator Daemon" garb >/dev/null 2>&1 || :
%post
/sbin/ldconfig
%systemd_post garbd.service
%preun
%systemd_preun garbd.service
%postun
/sbin/ldconfig
%systemd_postun_with_restart garbd.service
%files
%config(noreplace,missingok) %{_sysconfdir}/sysconfig/garb
%dir %{_docdir}/galera
%dir %{_libdir}/galera
%{_sbindir}/garbd
#%{_sbindir}/garbd-wrapper
# PATCH 3:
# Make sure the wrapper script is executable
%attr(755, -, -) %{_sbindir}/garb-systemd
%{_mandir}/man8/garbd.8*
%{_unitdir}/garbd.service
%{_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
* Fri Nov 19 2021 Lukas Javorsky <ljavorsk@redhat.com> - 26.4.9-2
- 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
* Tue Aug 17 2021 Michal Schorm <mschorm@redhat.com> - 26.4.9-1
- Rebase to 26.4.9
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Jul 15 2021 Michal Schorm <mschorm@redhat.com> - 26.4.8-2
- Switch from SCONS build tooling to CMAKE build tooling
- Use upstream variants of Systemd service file and Systemd service file wrapper srcipt
* Thu Jun 03 2021 Lukas Javorsky <ljavorsk@redhat.com> - 26.4.8-1
- Rebase to 26.4.8
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 26.4.7-3
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 26.4.7-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Feb 23 2021 Michal Schorm <mschorm@redhat.com> - 26.4.7-1
- Rebase to 26.4.7
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 26.4.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 22 2021 Jonathan Wakely <jwakely@redhat.com> - 26.4.6-2
- Rebuilt for Boost 1.75
* Wed Nov 04 2020 Michal Schorm <mschorm@redhat.com> - 26.4.6-1
- Rebase to 26.4.6
* Thu Sep 17 2020 Michal Schorm <mschorm@redhat.com> - 26.4.5-2
- Extend the workaround also to ELN
* Wed Sep 16 2020 Michal Schorm <mschorm@redhat.com> - 26.4.5-1
- Rebase to 26.4.5
* Wed Sep 16 2020 Michal Schorm <mschorm@redhat.com> - 26.4.4-5
- Apply workaround for FTBFS on F33+
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 26.4.4-4
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 26.4.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 08 2020 Michal Schorm <mschorm@redhat.com> - 26.4.4-2
- Second rebuild for Boost 1.73
* Fri Jun 05 2020 Michal Schorm <mschorm@redhat.com> - 26.4.4-1
- Rebase to 26.4.4
Resolves: rhbz#1546787
* Thu May 28 2020 Jonathan Wakely <jwakely@redhat.com> - 26.4.3-4
- Rebuilt for Boost 1.73
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 26.4.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 18 2020 Michal Schorm <mschorm@redhat.com> - 26.4.3-2
- Rebase to 26.4.3
* Wed Nov 06 2019 Michal Schorm <mschorm@redhat.com> - 25.3.28-1
- Rebase to 25.3.28
* Thu Aug 01 2019 Michal Schorm <mschorm@redhat.com> - 25.3.26-3
- Fix for #1735233 and #1737108
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.26-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jul 19 2019 Michal Schorm <mschorm@redhat.com> - 25.3.26-1
- Rebase to 25.3.26
* Fri Jul 19 2019 Michal Schorm <mschorm@redhat.com> - 25.3.25-4
- Use macro for setting up the compiler flags
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.25-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jan 29 2019 Jonathan Wakely <jwakely@redhat.com> - 25.3.25-2
- Rebuilt for Boost 1.69
* Tue Jan 01 2019 Michal Schorm <mschorm@redhat.com> - 25.3.25-1
- Rebase to 25.3.25
* Mon Jul 16 2018 Honza Horak <hhorak@redhat.com> - 25.3.23-5
- Require asio also on rhel
* Fri Jul 13 2018 Honza Horak <hhorak@redhat.com> - 25.3.23-4
- Add explicit gcc-c++ BR
- Use python3-scons
* Fri Jul 13 2018 Honza Horak <hhorak@redhat.com> - 25.3.23-3
- Do not require asio on rhel
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.23-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 16 2018 Michal Schorm <mschorm@redhat.com> - 25.3.23-1
- Update to 25.3.23
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.22-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Nov 24 2017 Honza Horak <hhorak@redhat.com> - 25.3.22-1
- Update to 25.3.22
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.16-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.16-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jul 03 2017 Jonathan Wakely <jwakely@redhat.com> - 25.3.16-4
- Rebuilt for Boost 1.64
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 25.3.16-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
* Sat Feb 18 2017 Jonathan Wakely <jwakely@redhat.com> - 25.3.16-2
- Use asio-devel instead of bundled asio library
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 25.3.16-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Jun 22 2016 Mike Bayer <mbayer@redhat.com> - 25.3.16-1
- Update to 25.3.16
* 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