diff --git a/.galera.metadata b/.galera.metadata index 97fda42..ee33694 100644 --- a/.galera.metadata +++ b/.galera.metadata @@ -1 +1 @@ -5146c0d2a899cefaf537925d52382069d007b973 SOURCES/galera-25.3.37.tar.gz +5efbd2364608d9e061d1e0b82a793587858d0150 SOURCES/galera-26.4.25.tar.gz diff --git a/.gitignore b/.gitignore index 24a908e..1aaa291 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/galera-25.3.37.tar.gz +SOURCES/galera-26.4.25.tar.gz diff --git a/SOURCES/cmake_paths.patch b/SOURCES/cmake_paths.patch index ba12300..27d5643 100644 --- a/SOURCES/cmake_paths.patch +++ b/SOURCES/cmake_paths.patch @@ -1,12 +1,18 @@ +This patch has been offered upstream with slight typo fixes: + https://github.com/codership/galera/pull/614 +on 21/02/2022 + +#---------------------- + + 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,17 +106,23 @@ +--- galera-26.4.11/CMakeLists.txt 2022-02-20 03:35:32.039968825 +0100 ++++ galera-26.4.11/CMakeLists.txt_patched 2022-02-20 03:34:57.710641631 +0100 +@@ -109,14 +109,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") @@ -14,32 +20,28 @@ + if (NOT ${CMAKE_SYSTEM_NAME} MATCHES ".*BSD") install(FILES - ${CMAKE_SOURCE_DIR}/AUTHORS - ${CMAKE_SOURCE_DIR}/COPYING - ${CMAKE_SOURCE_DIR}/README + ${PROJECT_SOURCE_DIR}/AUTHORS + ${PROJECT_SOURCE_DIR}/COPYING + ${PROJECT_SOURCE_DIR}/README - DESTINATION doc) -+ DESTINATION ${INSTALL_DOCDIR}) - install(FILES ${CMAKE_SOURCE_DIR}/asio/LICENSE_1_0.txt ++ DESTINATION ${INSTALL_DOCDIR} ) + install(FILES ${PROJECT_SOURCE_DIR}/asio/LICENSE_1_0.txt - DESTINATION doc + DESTINATION ${INSTALL_DOCDIR} RENAME LICENSE.asio) - install(FILES ${CMAKE_SOURCE_DIR}/chromium/LICENSE -- DESTINATION doc -+ DESTINATION ${INSTALL_DOCDIR} - RENAME LICENSE.chromium) 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 +--- galera-26.4.23/garb/CMakeLists.txt 2025-07-15 07:34:42.000000000 +0200 ++++ galera-26.4.23/garb/CMakeLists.txt_patched 2025-08-08 15:22:15.492953438 +0200 +@@ -35,14 +35,51 @@ target_compile_options(garbd target_link_libraries(garbd gcs4garb gcomm gcache - ${Boost_PROGRAM_OPTIONS_LIBRARIES}) + ${Boost_PROGRAM_OPTIONS_LIBRARY}) -install(TARGETS garbd DESTINATION bin) +# Make the install destination for garbd binary configurable @@ -88,7 +90,7 @@ + endif() + install(FILES - ${CMAKE_SOURCE_DIR}/man/garbd.8 + ${PROJECT_SOURCE_DIR}/man/garbd.8 - DESTINATION man/man8) + DESTINATION ${INSTALL_MANPAGE}) + diff --git a/SOURCES/docs.patch b/SOURCES/docs.patch new file mode 100644 index 0000000..7a6bec5 --- /dev/null +++ b/SOURCES/docs.patch @@ -0,0 +1,25 @@ +The CMake prepares file AUTHORS for packing. +It only contains one line, and isn't packed in any upstream-produced packagess. +I don't find it useful and since upstream doesn't pack it either, stop packing it here. + +The README file contains infromation on how to build the project from sources, and thus isn't useful for the end users. + +On the other hand, the README-MySQL isn't prepared for packing by CMake, but contains useful information about the software usage and it is package in upstream-produced packages. + +Offered upstream: +https://github.com/codership/galera/pull/666 +https://groups.google.com/g/codership-team/c/Cn4UO3MkNQs + +--- galera-26.4.18/CMakeLists.txt 2024-06-09 04:54:56.281408893 +0200 ++++ galera-26.4.18/CMakeLists.txt_patched 2024-06-09 06:52:58.093217968 +0200 +@@ -118,9 +118,8 @@ endif() + + if (NOT ${CMAKE_SYSTEM_NAME} MATCHES ".*BSD") + install(FILES +- ${PROJECT_SOURCE_DIR}/AUTHORS + ${PROJECT_SOURCE_DIR}/COPYING +- ${PROJECT_SOURCE_DIR}/README ++ ${PROJECT_SOURCE_DIR}/scripts/packages/README-MySQL + DESTINATION ${INSTALL_DOCDIR} ) + install(FILES ${PROJECT_SOURCE_DIR}/asio/LICENSE_1_0.txt + DESTINATION ${INSTALL_DOCDIR} diff --git a/SOURCES/galera-va_end.patch b/SOURCES/galera-va_end.patch deleted file mode 100644 index 167b3b1..0000000 --- a/SOURCES/galera-va_end.patch +++ /dev/null @@ -1,16 +0,0 @@ -This is an upstream patch for https://github.com/codership/galera/pull/617 -"remove duplicate va_end call" that originates from BZ #2051849 covscan -results. The upstream has not addressed the issue for over a year so this -is the reason to cover it as separate patch here. - ---- galera-25.3.37/galerautils/src/gu_dbug.c 2022-05-31 17:05:23.000000000 +0200 -+++ ../../galera-25.3.37/galerautils/src/gu_dbug.c 2023-07-10 17:09:58.969599380 +0200 -@@ -1040,7 +1040,6 @@ _gu_db_doprnt_(const char *format, ...) - } - (void) fprintf(_gu_db_fp_, "%s: ", state->u_keyword); - (void) vfprintf(_gu_db_fp_, format, args); -- va_end(args); - (void) fputc('\n', _gu_db_fp_); - dbug_flush(state); - errno = save_errno; - diff --git a/SOURCES/garbd-wrapper b/SOURCES/garbd-wrapper deleted file mode 100755 index ede76f7..0000000 --- a/SOURCES/garbd-wrapper +++ /dev/null @@ -1,38 +0,0 @@ -#!/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 diff --git a/SOURCES/garbd.service b/SOURCES/garbd.service deleted file mode 100644 index 9645fe2..0000000 --- a/SOURCES/garbd.service +++ /dev/null @@ -1,10 +0,0 @@ -[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 diff --git a/SPECS/galera.spec b/SPECS/galera.spec index 2fc9600..38b1f3f 100644 --- a/SPECS/galera.spec +++ b/SPECS/galera.spec @@ -1,5 +1,8 @@ +# To both save infrastructure resources and workaround for i686 FTBFS +ExcludeArch: %{ix86} + Name: galera -Version: 25.3.37 +Version: 26.4.25 Release: 1%{?dist} Summary: Synchronous multi-master wsrep provider (replication engine) @@ -8,43 +11,40 @@ 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.3.32/galera-25.3.34/src/galera-25.3.34.tar.gz +# 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 -Patch1: galera-va_end.patch +Patch1: docs.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 - -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description -Galera is a fast synchronous multi-master wsrep provider (replication engine) +Galera is a fast synchronous multimaster 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. +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 -%patch0 -p1 -%patch1 -p1 +%patch -P0 -p1 +%patch -P1 -p1 + +# Create a sysusers.d config file +cat >galera.sysusers.conf </dev/null 2>&1 || : +# Fixup after upgrading on system before systemd unit rename +unlink /etc/systemd/system/garb.service || : %post /sbin/ldconfig @@ -135,62 +141,156 @@ install -D -m 755 %{SOURCE2} %{buildroot}%{_sbindir}/garbd-wrapper %dir %{_libdir}/galera %{_sbindir}/garbd -%{_sbindir}/garbd-wrapper # PATCH 3: # Make sure the wrapper script is executable -%attr(755, -, -) %{_docdir}/galera/garb-systemd +%attr(755, -, -) %{_sbindir}/garb-systemd %{_mandir}/man8/garbd.8* %{_unitdir}/garbd.service -%{_docdir}/galera/garbd.service %{_libdir}/galera/libgalera_smm.so -%doc %{_docdir}/galera/AUTHORS %doc %{_docdir}/galera/COPYING %doc %{_docdir}/galera/LICENSE.asio -%doc %{_docdir}/galera/LICENSE.chromium -%doc %{_docdir}/galera/README -#%doc %{_docdir}/galera/README-MySQL +%doc %{_docdir}/galera/README-MySQL +%{_sysusersdir}/galera.conf %changelog -* Tue Jul 04 2023 Anton Bobrov - 25.3.37-1 -- Rebase to 25.3.37 +* Sun Feb 08 2026 Michal Schorm - 26.4.25-1 +- Rebased to 26.4.25 -* Fri Jul 01 2022 Zuzana Miklankova - 25.3.35-1 -- Rebase to 25.3.35 +* Tue Jan 06 2026 Michal Schorm - 26.4.24-1 +- Rebase to 26.4.24 -* Thu Feb 03 2022 Lukas Javorsky - 25.3.34-4 +* Fri Aug 08 2025 Michal Schorm - 26.4.23-1 +- Rebase to 26.4.23 + +* Wed Jul 30 2025 Michal Schorm - 26.4.22-1 +- Rebase to 26.4.22 + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 26.4.21-2 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Wed Feb 05 2025 Michal Schorm - 26.4.21-1 +- Rebase to 26.4.21 + +* Fri Oct 18 2024 Michal Schorm - 26.4.19-1 +- Rebase to 26.4.19 + +* Fri Jun 07 2024 Michal Schorm - 26.4.18-1 +- Rebase to 26.4.18 + +* Fri Nov 17 2023 Michal Schorm - 26.4.16-1 +- Rebase to 26.4.16 + +* Sat Apr 29 2023 Michal Schorm - 26.4.14-1 +- Rebase to 26.4.14 + +* Tue Nov 15 2022 Michal Schorm - 26.4.13-1 +- Rebase to 26.4.13 + +* Wed Aug 24 2022 Michal Schorm - 26.4.12-1 +- Rebase to 26.4.12 + +* Sun Feb 20 2022 Michal Schorm - 26.4.11-1 +- Rebase to 26.4.11 + +* Fri Nov 19 2021 Lukas Javorsky - 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 -* Fri Jan 28 2022 Lukas Javorsky - 25.3.34-3 -- Use downstream garbd-wrapper and garbd.service to ensure compatibility -- Add upstream versions of garbd-wrapper (called garbd-systemd) and garbd.service - in case user want's to use them +* Tue Aug 17 2021 Michal Schorm - 26.4.9-1 +- Rebase to 26.4.9 -* Wed Jan 19 2022 Michal Schorm - 25.3.34-2 +* Mon Aug 09 2021 Mohan Boddu +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Jul 15 2021 Michal Schorm - 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 -* Wed Jan 19 2022 Zuzana Miklankova - 25.3.34-1 -- Rebase to 25.3.34 - Resolves: #2042298 - -* Tue Mar 23 2021 Michal Schorm - 25.3.32-1 -- Rebase to 25.3.32 +* Thu Jun 03 2021 Lukas Javorsky - 26.4.8-1 +- Rebase to 26.4.8 -* Tue Nov 10 2020 Michal Schorm - 25.3.31-1 -- Rebase to 25.3.31 - Resolves: #1731289, #1856812 +* Wed Jun 16 2021 Mohan Boddu - 26.4.7-3 +- Rebuilt for RHEL 9 BETA for openssl 3.0 + Related: rhbz#1971065 -* Thu Jul 18 2019 Michal Schorm - 25.3.26-1 +* Thu Apr 15 2021 Mohan Boddu - 26.4.7-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Feb 23 2021 Michal Schorm - 26.4.7-1 +- Rebase to 26.4.7 + +* Tue Jan 26 2021 Fedora Release Engineering - 26.4.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Jonathan Wakely - 26.4.6-2 +- Rebuilt for Boost 1.75 + +* Wed Nov 04 2020 Michal Schorm - 26.4.6-1 +- Rebase to 26.4.6 + +* Thu Sep 17 2020 Michal Schorm - 26.4.5-2 +- Extend the workaround also to ELN + +* Wed Sep 16 2020 Michal Schorm - 26.4.5-1 +- Rebase to 26.4.5 + +* Wed Sep 16 2020 Michal Schorm - 26.4.4-5 +- Apply workaround for FTBFS on F33+ + +* Sat Aug 01 2020 Fedora Release Engineering - 26.4.4-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 26.4.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 08 2020 Michal Schorm - 26.4.4-2 +- Second rebuild for Boost 1.73 + +* Fri Jun 05 2020 Michal Schorm - 26.4.4-1 +- Rebase to 26.4.4 + Resolves: rhbz#1546787 + +* Thu May 28 2020 Jonathan Wakely - 26.4.3-4 +- Rebuilt for Boost 1.73 + +* Tue Jan 28 2020 Fedora Release Engineering - 26.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jan 18 2020 Michal Schorm - 26.4.3-2 +- Rebase to 26.4.3 + +* Wed Nov 06 2019 Michal Schorm - 25.3.28-1 +- Rebase to 25.3.28 + +* Thu Aug 01 2019 Michal Schorm - 25.3.26-3 +- Fix for #1735233 and #1737108 + +* Thu Jul 25 2019 Fedora Release Engineering - 25.3.26-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jul 19 2019 Michal Schorm - 25.3.26-1 - Rebase to 25.3.26 - Resolves: #1687879 - Resolves: #1657220 + +* Fri Jul 19 2019 Michal Schorm - 25.3.25-4 +- Use macro for setting up the compiler flags + +* Thu Jan 31 2019 Fedora Release Engineering - 25.3.25-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 29 2019 Jonathan Wakely - 25.3.25-2 +- Rebuilt for Boost 1.69 + +* Tue Jan 01 2019 Michal Schorm - 25.3.25-1 +- Rebase to 25.3.25 * Mon Jul 16 2018 Honza Horak - 25.3.23-5 - Require asio also on rhel