Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package galera-4 for openSUSE:Factory 
checked in at 2022-06-17 21:19:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/galera-4 (Old)
 and      /work/SRC/openSUSE:Factory/.galera-4.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "galera-4"

Fri Jun 17 21:19:57 2022 rev:7 rq:982047 version:26.4.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/galera-4/galera-4.changes        2022-04-30 
00:44:15.474884803 +0200
+++ /work/SRC/openSUSE:Factory/.galera-4.new.1548/galera-4.changes      
2022-06-17 21:22:10.502762379 +0200
@@ -1,0 +2,12 @@
+Thu Jun  9 14:11:09 UTC 2022 - Danilo Spinella <danilo.spine...@suse.com>
+
+- Update to 26.4.12:
+  * WORK_DIR parameter added for garb.cnf and launch scripts to ensure Galera
+    Arbitrator handles recovery files better (this includes command line 
option to
+    specify working directory), fixing codership/galera#313
+  * Fixes to renaming fc_master_slave to fc_single_primary
+  * Catch local_endpoint() and remote_endpoint() exceptions, so they aren't
+    propagated to the stack, fixing a cluster crash and MDEV-25068
+  * SSL options are explicitly initialised in garbd, fixing MDEV-28158
+
+-------------------------------------------------------------------

Old:
----
  galera-4-26.4.11.tar.gz
  galera-4-26.4.11.tar.gz.asc

New:
----
  galera-4-26.4.12.tar.gz
  galera-4-26.4.12.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ galera-4.spec ++++++
--- /var/tmp/diff_new_pack.PiMXAx/_old  2022-06-17 21:22:10.910762600 +0200
+++ /var/tmp/diff_new_pack.PiMXAx/_new  2022-06-17 21:22:10.914762603 +0200
@@ -25,14 +25,14 @@
   %define _fillupdir %{_localstatedir}/adm/fillup-templates
 %endif
 Name:           galera-4
-Version:        26.4.11
+Version:        26.4.12
 Release:        0
 Summary:        Galera: a synchronous multi-master wsrep provider (replication 
engine)
 License:        GPL-2.0-only
 Group:          Productivity/Databases/Tools
 URL:            https://galeracluster.com/
-Source:         
http://releases.galeracluster.com/staging/galera-4/source/%{name}-%{version}.tar.gz
-Source1:        
http://releases.galeracluster.com/staging/galera-4/source/%{name}-%{version}.tar.gz.asc
+Source:         
https://releases.galeracluster.com/galera-4.12/source/%{name}-%{version}.tar.gz
+Source1:        
https://releases.galeracluster.com/galera-4.12/source/%{name}-%{version}.tar.gz.asc
 Source2:        garb-user.conf
 Patch0:         galera-3-25.3.10_fix_startup_scripts.patch
 Patch2:         fix-cmake-install.patch

++++++ galera-4-26.4.11.tar.gz -> galera-4-26.4.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/DartConfiguration.tcl 
new/galera-4-26.4.12/DartConfiguration.tcl
--- old/galera-4-26.4.11/DartConfiguration.tcl  1970-01-01 01:00:00.000000000 
+0100
+++ new/galera-4-26.4.12/DartConfiguration.tcl  2022-04-27 16:01:51.000000000 
+0200
@@ -0,0 +1,115 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /var/lib/jenkins/workspace/aws-galera-4-sourcetar
+BuildDirectory: /var/lib/jenkins/workspace/aws-galera-4-sourcetar
+
+# Where to place the cost data store
+CostDataFile: 
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: master
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: Linux-c++
+
+# Subprojects
+LabelsForSubprojects: 
+
+# Submission information
+IsCDash: 
+CDashVersion: 
+QueryCDashVersion: 
+DropSite: 
+DropLocation: 
+DropSiteUser: 
+DropSitePassword: 
+DropSiteMode: 
+DropMethod: http
+TriggerSite: 
+ScpCommand: /usr/bin/scp
+
+# Dashboard start time
+NightlyStartTime: 00:00:00 EDT
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" 
"/var/lib/jenkins/workspace/aws-galera-4-sourcetar"
+MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" 
-- -i
+DefaultCTestConfigurationType: Release
+
+# version control
+UpdateVersionOnly: 
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: CVSCOMMAND-NOTFOUND
+CVSUpdateOptions: -d -A -P
+
+# Subversion options
+SVNCommand: /usr/bin/svn
+SVNOptions: 
+SVNUpdateOptions: 
+
+# Git options
+GITCommand: /usr/bin/git
+GITInitSubmodules: 
+GITUpdateOptions: 
+GITUpdateCustom: 
+
+# Perforce options
+P4Command: P4COMMAND-NOTFOUND
+P4Client: 
+P4Options: 
+P4UpdateOptions: 
+P4UpdateCustom: 
+
+# Generic update command
+UpdateCommand: /usr/bin/git
+UpdateOptions: 
+UpdateType: git
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 7.5.0
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: 
+ValgrindCommand: 
+ValgrindCommandOptions: 
+MemoryCheckType: 
+MemoryCheckSanitizerOptions: 
+MemoryCheckCommand: /usr/bin/valgrind
+MemoryCheckCommandOptions: 
+MemoryCheckSuppressionFile: 
+
+# Coverage
+CoverageCommand: /usr/bin/gcov
+CoverageExtraFlags: -l
+
+# Cluster commands
+SlurmBatchCommand: SLURM_SBATCH_COMMAND-NOTFOUND
+SlurmRunCommand: SLURM_SRUN_COMMAND-NOTFOUND
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 1500
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: 
+
+UseLaunchers: 
+CurlOptions: 
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 5
+CTestSubmitRetryCount: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/GALERA_GIT_REVISION 
new/galera-4-26.4.12/GALERA_GIT_REVISION
--- old/galera-4-26.4.11/GALERA_GIT_REVISION    2022-02-09 12:02:13.000000000 
+0100
+++ new/galera-4-26.4.12/GALERA_GIT_REVISION    2022-04-27 16:01:49.000000000 
+0200
@@ -1 +1 @@
-7b59af73
\ No newline at end of file
+63116854
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/GALERA_REVISION 
new/galera-4-26.4.12/GALERA_REVISION
--- old/galera-4-26.4.11/GALERA_REVISION        1970-01-01 01:00:00.000000000 
+0100
+++ new/galera-4-26.4.12/GALERA_REVISION        2022-04-27 16:01:49.000000000 
+0200
@@ -0,0 +1 @@
+63116854
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/GALERA_VERSION 
new/galera-4-26.4.12/GALERA_VERSION
--- old/galera-4-26.4.11/GALERA_VERSION 2022-02-09 12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/GALERA_VERSION 2022-04-27 16:01:47.000000000 +0200
@@ -1,4 +1,4 @@
 GALERA_VERSION_WSREP_API=26
 GALERA_VERSION_MAJOR=4
-GALERA_VERSION_MINOR=11
+GALERA_VERSION_MINOR=12
 GALERA_VERSION_EXTRA=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/SConstruct 
new/galera-4-26.4.12/SConstruct
--- old/galera-4-26.4.11/SConstruct     2022-02-09 12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/SConstruct     2022-04-27 16:01:47.000000000 +0200
@@ -163,7 +163,7 @@
 install = ARGUMENTS.get('install', None)
 version_script = int(ARGUMENTS.get('version_script', 1))
 
-GALERA_VER = ARGUMENTS.get('version', '4.11')
+GALERA_VER = ARGUMENTS.get('version', '4.12')
 GALERA_REV = ARGUMENTS.get('revno', 'XXXX')
 
 # Attempt to read from file if not given
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/debian/changelog 
new/galera-4-26.4.12/debian/changelog
--- old/galera-4-26.4.11/debian/changelog       2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/debian/changelog       2022-04-27 16:01:47.000000000 
+0200
@@ -1,5 +1,5 @@
-galera-4 (26.4.11) unstable; urgency=medium
+galera-4 (26.4.12) UNRELEASED; urgency=medium
 
   * Galera 4 release
 
- -- Codership Oy <i...@codership.com>  Mon, 10 Jan 2022 17:37:52 +0200
+ -- Codership Oy <i...@codership.com>  Fri, 22 Apr 2022 13:53:36 +0300
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/galera-4-26.4.11/galerautils/src/gu_asio_stream_react.cpp 
new/galera-4-26.4.12/galerautils/src/gu_asio_stream_react.cpp
--- old/galera-4-26.4.11/galerautils/src/gu_asio_stream_react.cpp       
2022-02-09 12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/galerautils/src/gu_asio_stream_react.cpp       
2022-04-27 16:01:47.000000000 +0200
@@ -292,7 +292,15 @@
 
     set_socket_options(socket_);
     prepare_engine(true);
-    assign_addresses();
+    try
+    {
+        assign_addresses();
+    }
+    catch(const asio::system_error& e)
+    {
+        handler->connect_handler(*this, AsioErrorCode(e.code().value()));
+        return;
+    }
     GU_ASIO_DEBUG(debug_print()
                   << " AsioStreamReact::connect_handler: init handshake");
     auto result(engine_->client_handshake());
@@ -790,7 +798,6 @@
     set_socket_options(socket->socket_);
     socket->prepare_engine(false);
     socket->assign_addresses();
-
     std::string remote_ip = 
gu::unescape_addr(::escape_addr(socket->socket_.remote_endpoint().address()));
     auto connection_allowed(gu::allowlist_value_check(WSREP_ALLOWLIST_KEY_IP, 
remote_ip));
     if (connection_allowed == false)
@@ -885,8 +892,16 @@
     set_socket_options(socket->socket_);
     socket->set_non_blocking(true);
     socket->prepare_engine(true);
-    socket->assign_addresses();
-   
+    try
+    {
+       socket->assign_addresses();
+    }
+    catch(const asio::system_error& e)
+    {
+        log_warn << "Failed to accept: " << e.what();
+        async_accept(handler);
+        return;
+    }
     std::string remote_ip = 
gu::unescape_addr(::escape_addr(socket->socket_.remote_endpoint().address()));
     auto connection_allowed(gu::allowlist_value_check(WSREP_ALLOWLIST_KEY_IP, 
remote_ip));
     if (connection_allowed == false)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/galerautils/src/gu_asio_utils.hpp 
new/galera-4-26.4.12/galerautils/src/gu_asio_utils.hpp
--- old/galera-4-26.4.11/galerautils/src/gu_asio_utils.hpp      2022-02-09 
12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/galerautils/src/gu_asio_utils.hpp      2022-04-27 
16:01:47.000000000 +0200
@@ -14,11 +14,13 @@
 #endif // GU_ASIO_IMPL
 
 #include "asio/ip/address.hpp"
+#include <boost/version.hpp>
 
 // Workaround for clang 3.4 which pretends to be an old gcc compiler
-// which in turn turns off some features in boost headers.
-#if (defined(__clang__) && __clang_major__ == 3 && __clang_minor__ <= 4) || 
(__GNUC__ == 4 && __GNUC_MINOR__ == 4)
-
+// which in turn turns off some features in boost headers. Also
+// GCC 4.4 and early Boost versions seem to be affected.
+#if (defined(__clang__) && __clang_major__ == 3 && __clang_minor__ <= 4) || \
+    (__GNUC__ == 4 && __GNUC_MINOR__ == 4) || BOOST_VERSION < 105300
 namespace gu
 {
     template <class T> inline T* get_pointer(std::shared_ptr<T> const& r)
@@ -26,6 +28,8 @@
         return r.get();
     }
 }
-#endif // defined(__clang__) && __clang_major__ == 3 && __clang_minor__ <= 4
+#endif // (defined(__clang__) && __clang_major__ == 3 &&
+  //        __clang_minor__ <= 4) ||
+  // (__GNUC__ == 4 && __GNUC_MINOR__ == 4) || BOOST_VERSION < 105300
 
 #endif // GU_ASIO_UTILS_HPP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/files/freebsd/garb.sh 
new/galera-4-26.4.12/garb/files/freebsd/garb.sh
--- old/galera-4-26.4.11/garb/files/freebsd/garb.sh     2022-02-09 
12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/garb/files/freebsd/garb.sh     2022-04-27 
16:01:47.000000000 +0200
@@ -37,6 +37,7 @@
 : ${garb_galera_options=""}
 : ${garb_log_file=""}
 : ${garb_pid_file="/var/run/garb.pid"}
+: ${garb_working_directory=""}
 
 procname="/usr/local/bin/garbd"
 command="/usr/sbin/daemon"
@@ -73,6 +74,7 @@
        [ -n "$garb_galera_group" ]   && command_args="$command_args -g 
$garb_galera_group"
        [ -n "$garb_galera_options" ] && command_args="$command_args -o 
$garb_galera_options"
        [ -n "$garb_log_file" ]       && command_args="$command_args -l 
$garb_log_file"
+       [ -n "$garb_working_directory" ] && command_args="$command_args -w 
$garb_working_directory"
        return 0
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/files/garb-systemd 
new/galera-4-26.4.12/garb/files/garb-systemd
--- old/galera-4-26.4.11/garb/files/garb-systemd        2022-02-09 
12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/garb/files/garb-systemd        2022-04-27 
16:01:47.000000000 +0200
@@ -43,6 +43,7 @@
   [ -n "${GALERA_GROUP:-}" ] && OPTIONS="$OPTIONS -g '$GALERA_GROUP'"
   [ -n "${GALERA_OPTIONS:-}" ] && OPTIONS="$OPTIONS -o '$GALERA_OPTIONS'"
   [ -n "${LOG_FILE:-}" ] && OPTIONS="$OPTIONS -l '$LOG_FILE'"
+  [ -n "${WORK_DIR:-}" ] && OPTIONS="$OPTIONS -w '$WORK_DIR'"
 
   eval program_start $OPTIONS
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/files/garb.cnf 
new/galera-4-26.4.12/garb/files/garb.cnf
--- old/galera-4-26.4.11/garb/files/garb.cnf    2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/garb/files/garb.cnf    2022-04-27 16:01:47.000000000 
+0200
@@ -8,9 +8,11 @@
 # GALERA_GROUP=""
 
 # Optional Galera internal options string (e.g. SSL settings)
-# see http://galeracluster.com/documentation-webpages/galeraparameters.html
+# see https://galeracluster.com/library/documentation/galera-parameters.html
 # GALERA_OPTIONS=""
 
 # Log file for garbd. Optional, by default logs to syslog
 # LOG_FILE=""
 
+# Where to persist necessary data
+# WORK_DIR=""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/files/garb.sh 
new/galera-4-26.4.12/garb/files/garb.sh
--- old/galera-4-26.4.11/garb/files/garb.sh     2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/garb/files/garb.sh     2022-04-27 16:01:47.000000000 
+0200
@@ -135,6 +135,7 @@
        [ -n "$GALERA_GROUP" ]   && OPTIONS="$OPTIONS -g '$GALERA_GROUP'"
        [ -n "$GALERA_OPTIONS" ] && OPTIONS="$OPTIONS -o '$GALERA_OPTIONS'"
        [ -n "$LOG_FILE" ]       && OPTIONS="$OPTIONS -l '$LOG_FILE'"
+       [ -n "$WORK_DIR" ]       && OPTIONS="$OPTIONS -w '$WORK_DIR'"
 
        eval program_start $OPTIONS
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/garb_config.cpp 
new/galera-4-26.4.12/garb/garb_config.cpp
--- old/galera-4-26.4.11/garb/garb_config.cpp   2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/garb/garb_config.cpp   2022-04-27 16:01:47.000000000 
+0200
@@ -41,6 +41,7 @@
       options_ (),
       log_     (),
       cfg_     (),
+      workdir_ (),
       exit_    (false)
 {
     po::options_description other ("Other options");
@@ -60,6 +61,8 @@
         ("donor",    po::value<std::string>(&donor_),   "SST donor name")
         ("options,o",po::value<std::string>(&options_), "GCS/GCOMM option 
list")
         ("log,l",    po::value<std::string>(&log_),     "Log file")
+        ("workdir,w",po::value<std::string>(&workdir_),
+         "Daemon working directory")
         ;
 
     po::options_description cfg_opt;
@@ -136,10 +139,15 @@
     strip_quotes(donor_);
     strip_quotes(options_);
     strip_quotes(log_);
+    strip_quotes(workdir_);
     strip_quotes(cfg_);
 
     if (options_.length() > 0) options_ += "; ";
-    options_ += "gcs.fc_limit=9999999; gcs.fc_factor=1.0; 
gcs.fc_master_slave=yes";
+    options_ += "gcs.fc_limit=9999999; gcs.fc_factor=1.0; 
gcs.fc_single_primary=yes";
+    if (!workdir_.empty())
+    {
+        options_ += " base_dir=" + workdir_ + ";";
+    }
 
     // this block must be the very last.
     gu_conf_self_tstamp_on();
@@ -167,6 +175,7 @@
        << "\n\tdonor:   " << c.donor()
        << "\n\toptions: " << c.options()
        << "\n\tcfg:     " << c.cfg()
+       << "\n\tworkdir: " << c.workdir()
        << "\n\tlog:     " << c.log();
     return os;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/garb_config.hpp 
new/galera-4-26.4.12/garb/garb_config.hpp
--- old/galera-4-26.4.11/garb/garb_config.hpp   2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/garb/garb_config.hpp   2022-04-27 16:01:47.000000000 
+0200
@@ -27,6 +27,7 @@
     const std::string& options() const { return options_; }
     const std::string& cfg()     const { return cfg_    ; }
     const std::string& log()     const { return log_    ; }
+    const std::string& workdir() const { return workdir_; }
     bool               exit()    const { return exit_   ; }
 
 private:
@@ -40,6 +41,7 @@
     std::string options_;
     std::string log_;
     std::string cfg_;
+    std::string workdir_;
     bool exit_; /* Exit on --help or --version */
 
 }; /* class Config */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/garb_main.cpp 
new/galera-4-26.4.12/garb/garb_main.cpp
--- old/galera-4-26.4.11/garb/garb_main.cpp     2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/garb/garb_main.cpp     2022-04-27 16:01:47.000000000 
+0200
@@ -15,8 +15,18 @@
 {
 
 void
-become_daemon ()
+become_daemon (const std::string& workdir)
 {
+    if (chdir("/")) // detach from potentially removable block devices
+    {
+        gu_throw_error(errno) << "chdir(" << workdir << ") failed";
+    }
+
+    if (!workdir.empty() && chdir(workdir.c_str()))
+    {
+        gu_throw_error(errno) << "chdir(" << workdir << ") failed";
+    }
+
     if (pid_t pid = fork())
     {
         if (pid > 0) // parent
@@ -39,11 +49,6 @@
         gu_throw_error(errno) << "setsid() failed";
     }
 
-    if (chdir("/")) // detach from potentially removable block devices
-    {
-        gu_throw_error(errno) << "chdir(\"/\") failed";
-    }
-
     // umask(0);
 
     // A second fork ensures the process cannot acquire a controlling
@@ -74,6 +79,13 @@
             gu_throw_error(errno) << "Unable to open /dev/null for fd " << fd;
         }
     }
+
+    char* wd(static_cast<char*>(::malloc(PATH_MAX)));
+    if (wd)
+    {
+        log_info << "Currend WD: " << getcwd(wd, PATH_MAX);
+        ::free(wd);
+    }
 }
 
 int
@@ -84,7 +96,7 @@
 
     log_info << "Read config: " <<  config << std::endl;
 
-    if (config.daemon()) become_daemon();
+    if (config.daemon()) become_daemon(config.workdir());
 
     try
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/garb/garb_recv_loop.hpp 
new/galera-4-26.4.12/garb/garb_recv_loop.hpp
--- old/galera-4-26.4.11/garb/garb_recv_loop.hpp        2022-02-09 
12:02:02.000000000 +0100
+++ new/galera-4-26.4.12/garb/garb_recv_loop.hpp        2022-04-27 
16:01:47.000000000 +0200
@@ -8,6 +8,7 @@
 
 #include <gu_throw.hpp>
 #include <gu_asio.hpp>
+#include <common.h> // COMMON_BASE_DIR_KEY
 
 #include <pthread.h>
 
@@ -38,6 +39,7 @@
             {
                 gu_throw_fatal << "Error initializing GCS parameters";
             }
+            cnf.add(COMMON_BASE_DIR_KEY);
         }
     }
         params_;
@@ -47,6 +49,7 @@
         ParseOptions(gu::Config& cnf, const std::string& opt)
         {
             cnf.parse(opt);
+            gu::ssl_init_options(cnf);
         }
     }
         parse_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/gcomm/src/view.cpp 
new/galera-4-26.4.12/gcomm/src/view.cpp
--- old/galera-4-26.4.11/gcomm/src/view.cpp     2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/gcomm/src/view.cpp     2022-04-27 16:01:47.000000000 
+0200
@@ -320,8 +320,17 @@
 bool gcomm::ViewState::read_file()
 {
     if (access(file_name_.c_str(), R_OK) != 0) {
-        log_warn << "access file(" << file_name_ << ") failed("
-                 << strerror(errno) << ")";
+        int const errn(errno);
+        std::ostringstream msg;
+        msg << "access file(" << file_name_ << ") failed("
+            << strerror(errn) << ")";
+        if (ENOENT == errn) {
+            // absence of a file should be only a notice since it is removed
+            // on graceful shutdown, so it is an expected situation
+            log_info << msg.str();
+        } else {
+            log_warn << msg.str();
+        }
         return false;
     }
     try {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/gcs/src/gcs.cpp 
new/galera-4-26.4.12/gcs/src/gcs.cpp
--- old/galera-4-26.4.11/gcs/src/gcs.cpp        2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/gcs/src/gcs.cpp        2022-04-27 16:01:47.000000000 
+0200
@@ -892,7 +892,7 @@
     /* Killing two birds with one stone: flat FC profile for master-slave 
setups
      * plus #440: giving single node some slack at some math correctness exp.*/
     double const fn
-        (conn->params.fc_master_slave ? 1.0 : sqrt(double(conn->memb_num)));
+        (conn->params.fc_single_primary ? 1.0 : sqrt(double(conn->memb_num)));
 
     conn->upper_limit = conn->params.fc_base_limit * fn + .5;
     conn->lower_limit = conn->upper_limit * conn->params.fc_resume_factor + .5;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/gcs/src/gcs_params.cpp 
new/galera-4-26.4.12/gcs/src/gcs_params.cpp
--- old/galera-4-26.4.11/gcs/src/gcs_params.cpp 2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/gcs/src/gcs_params.cpp 2022-04-27 16:01:47.000000000 
+0200
@@ -225,13 +225,20 @@
     params->recv_q_hard_limit = tmp * gcs_fc_hard_limit_fix;
     // allow for some meta overhead
 
-    deprecation_warning(config, GCS_PARAMS_FC_MASTER_SLAVE,
-                        GCS_PARAMS_FC_SINGLE_PRIMARY);
     if ((ret = params_init_bool (config, GCS_PARAMS_FC_MASTER_SLAVE,
-                                 &params->fc_master_slave))) return ret;
-    // Overrides deprecated GCS_PARAMS_FC_MASTER_SLAVE if set
-    if ((ret = params_init_bool (config, GCS_PARAMS_FC_SINGLE_PRIMARY,
-                                 &params->fc_master_slave))) return ret;
+                                 &params->fc_single_primary))) return ret;
+    if (params->fc_single_primary)
+    {
+        // if GCS_PARAMS_FC_MASTER_SLAVE was used, log deprecation warning
+        deprecation_warning(config, GCS_PARAMS_FC_MASTER_SLAVE,
+                            GCS_PARAMS_FC_SINGLE_PRIMARY);
+    }
+    else
+    {
+        // Overrides deprecated GCS_PARAMS_FC_MASTER_SLAVE if set
+        if ((ret = params_init_bool (config, GCS_PARAMS_FC_SINGLE_PRIMARY,
+                                     &params->fc_single_primary))) return ret;
+    }
 
     if ((ret = params_init_bool (config, GCS_PARAMS_SYNC_DONOR,
                                  &params->sync_donor))) return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/galera-4-26.4.11/gcs/src/gcs_params.hpp 
new/galera-4-26.4.12/gcs/src/gcs_params.hpp
--- old/galera-4-26.4.11/gcs/src/gcs_params.hpp 2022-02-09 12:02:02.000000000 
+0100
+++ new/galera-4-26.4.12/gcs/src/gcs_params.hpp 2022-04-27 16:01:47.000000000 
+0200
@@ -17,7 +17,7 @@
     long    fc_base_limit;
     long    max_packet_size;
     long    fc_debug;
-    bool    fc_master_slave;
+    bool    fc_single_primary;
     bool    sync_donor;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/galera-4-26.4.11/scripts/packages/codership-galera.spec 
new/galera-4-26.4.12/scripts/packages/codership-galera.spec
--- old/galera-4-26.4.11/scripts/packages/codership-galera.spec 1970-01-01 
01:00:00.000000000 +0100
+++ new/galera-4-26.4.12/scripts/packages/codership-galera.spec 2022-04-27 
16:01:51.000000000 +0200
@@ -0,0 +1,375 @@
+# Copyright (c) 2011-2020, Codership Oy <i...@codership.com>.
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License or later.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING. If not, write to the
+# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston
+# MA  02110-1301  USA.
+
+# If without_crypto == 1, the library will be built without
+# SSL/TLS support.
+%{!?without_crypto: %global without_crypto 0}
+
+%define name galera-4
+%define wsrep_api 26
+%{!?version: %define version 26.4.12}
+%{!?release: %define release 1}
+%define copyright Copyright 2007-2020 Codership Oy. All rights reserved. Use 
is subject to license terms under GPLv2 license.
+%define libs %{_libdir}/%{name}
+%define docs /usr/share/doc/%{name}
+
+# Avoid debuginfo RPMs, leaves binaries unstripped
+
+%global _enable_debug_package 0
+%global debug_package %{nil}
+%global __os_install_post /usr/lib/rpm/brp-compress %{nil}
+%define ssl_package_devel openssl-devel
+# Define dist tag if not given by platform
+
+# For suse versions see:
+# https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
+%if 0%{?suse_version} == 1110
+%define dist .sle11
+%endif
+%if 0%{?suse_version} == 1310
+%define dist .suse13.1
+%endif
+%if 0%{?suse_version} == 1315
+%define dist .sle12
+%endif
+%if 0%{?suse_version} == 1320
+%define dist .suse13.2
+%endif
+%if 0%{?sle_version} == 150000 && 0%{?is_opensuse}
+%define dist .lp151
+%define ssl_package_devel libopenssl-devel
+%endif
+%if 0%{?sle_version} == 120500 && !0%{?is_opensuse}
+%define dist .sl12
+%endif
+%if 0%{?sle_version} == 150000 && !0%{?is_opensuse}
+%define dist .sl15
+%define ssl_package_devel libopenssl-devel
+%endif
+%if 0%{?sle_version} == 150100 && !0%{?is_opensuse}
+%define dist .sl15_1
+%define ssl_package_devel libopenssl-devel
+%endif
+%if 0%{?sle_version} == 150200 && !0%{?is_opensuse}
+%define dist .sl15_2
+%define ssl_package_devel libopenssl-devel
+%endif
+
+
+
+
+Name:          %{name}
+Summary:       Galera: a synchronous multi-master wsrep provider (replication 
engine)
+Group:         System Environment/Libraries
+Version:       %{version}
+Release:       %{release}%{dist}
+License:       GPL-2.0
+Source:        %{name}-%{version}.tar.gz
+URL:           http://www.codership.com/
+Packager:      Codership Oy
+Vendor:        Codership Oy
+
+BuildRoot:     %{_tmppath}/%{name}_%{version}-build
+
+BuildRequires: boost-devel >= 1.41
+BuildRequires: check-devel
+BuildRequires: glibc-devel
+BuildRequires: %{ssl_package_devel}
+BuildRequires: cmake
+
+%if 0%{?suse_version} == 1110
+# On SLES11 SPx use the linked gcc47 to build instead of default gcc43
+BuildRequires: gcc47 gcc47-c++
+# On SLES11 SP2 the libgfortran.3.so provider must be explicitly defined
+BuildRequires: libgfortran3
+# On SLES11 we got error "conflict for provider of libgcc_s1 >= 
4.7.4_20140612-2.1
+# needed by gcc47, (provider libgcc_s1 conflicts with installed libgcc43),
+# conflict for provider of libgomp1 >= 4.7.4_20140612-2.1 needed by gcc47,
+# (provider libgomp1 conflicts with installed libgomp43), conflict for provider
+# of libstdc++6 >= 4.7.4_20140612-2.1 needed by libstdc++47-devel,
+# (provider libstdc++6 conflicts with installed libstdc++43)
+# therefore:
+BuildRequires: libgcc_s1
+BuildRequires: libgomp1
+BuildRequires: libstdc++6
+#!BuildIgnore: libgcc43
+%else
+BuildRequires: gcc-c++
+%endif
+
+%if %{defined fedora}
+BuildRequires: python
+%endif
+
+# Systemd
+%if 0%{?suse_version} >= 1220 || 0%{?centos} >= 7 || 0%{?rhel} >= 7
+%define systemd 1
+BuildRequires: systemd
+%else
+%define systemd 0
+%endif
+
+%if 0%{?systemd}
+%{?systemd_requires}
+%if 0%{?suse_version}
+BuildRequires: systemd-rpm-macros
+# RedHat seems not to need this (or an equivalent).
+%endif
+
+%else
+# NOT systemd
+
+%if 0%{?suse_version}
+PreReq:        %insserv_prereq %fillup_prereq
+%else
+Requires(post): chkconfig
+Requires(preun): chkconfig
+Requires(preun): initscripts
+%endif
+%endif # systemd
+
+Requires:      openssl
+
+Provides:      wsrep, %{name} = %{version}-%{release}
+Provides:      galera, galera4, Percona-XtraDB-Cluster-galera-%{wsrep_api}
+
+%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. For a description
+of Galera replication engine see https://www.galeracluster.com.
+
+%{copyright}
+
+This software comes with ABSOLUTELY NO WARRANTY. This is free software,
+and you are welcome to modify and redistribute it under the GPLv2 license.
+
+%prep
+%setup -q -n %{name}-%{version}
+# When downloading from GitHub the contents is in a folder
+# that is named by the branch it was exported from.
+
+%build
+# Debug info:
+echo "suse_version: %{suse_version}"
+# 1110 = SLE-11 SPx
+%if 0%{?suse_version} == 1110
+export CC=gcc-4.7
+export CXX=g++-4.7
+%endif
+%if 0%{?suse_version} == 1120
+export CC=gcc-4.6
+export CXX=g++-4.6
+%endif
+%if 0%{?suse_version} == 1130
+export CC=gcc-4.7
+export CXX=g++-4.7
+%endif
+
+NUM_JOBS=${NUM_JOBS:-$(ncpu=$(cat /proc/cpuinfo | grep processor | wc -l) && 
echo $(($ncpu > 4 ? 4 : $ncpu)))}
+
+%if 0%{?without_crypto}
+%define crypto_opt -DGALERA_WITH_SSL:BOOL=OFF
+%endif
+
+cmake -DCMAKE_BUILD_TYPE=Release %{?crypto_opt} .
+make -j$(echo $NUM_JOBS) VERBOSE=1
+make test ARGS=-V
+
+%install
+RBR=$RPM_BUILD_ROOT # eg. rpmbuild/BUILDROOT/galera-3-3.x-33.1.x86_64
+RBD=$RPM_BUILD_DIR/%{name}-%{version}
+# When downloading from GitHub the contents is in a folder
+# that is named by the branch it was exported from.
+
+# Clean up the BuildRoot first
+[ "$RBR" != "/" ] && [ -d $RBR ] && rm -rf $RBR;
+mkdir -p $RBR
+
+%if 0%{?systemd}
+install -D -m 644 $RBD/garb/files/garb.service $RBR%{_unitdir}/garb.service
+install -D -m 755 $RBD/garb/files/garb-systemd $RBR%{_bindir}/garb-systemd
+%else
+install -d $RBR%{_sysconfdir}/init.d
+install -m 755 $RBD/garb/files/garb.sh  $RBR%{_sysconfdir}/init.d/garb
+%endif
+
+# Symlink required by SUSE policy for SysV init, still supported with systemd
+%if 0%{?suse_version}
+%if 0%{?systemd}
+install -d %{buildroot}%{_sbindir}
+ln -sf /usr/sbin/service %{buildroot}%{_sbindir}/rcgarb
+%else
+install -d $RBR/usr/sbin
+ln -sf /etc/init.d/garb $RBR/usr/sbin/rcgarb
+%endif # systemd
+%endif # suse_version
+
+%if 0%{?suse_version}
+install -d $RBR/var/adm/fillup-templates/
+install -m 644 $RBD/garb/files/garb.cnf 
$RBR/var/adm/fillup-templates/sysconfig.garb
+%else
+install -d $RBR%{_sysconfdir}/sysconfig
+install -m 644 $RBD/garb/files/garb.cnf $RBR%{_sysconfdir}/sysconfig/garb
+%endif # suse_version
+
+install -d $RBR%{_bindir}
+install -m 755 $RBD/garb/garbd                    $RBR%{_bindir}/garbd
+
+install -d $RBR%{libs}
+install -m 755 $RBD/libgalera_smm.so              $RBR%{libs}/libgalera_smm.so
+
+install -d $RBR%{docs}
+install -m 644 $RBD/COPYING                       $RBR%{docs}/COPYING
+install -m 644 $RBD/asio/LICENSE_1_0.txt          $RBR%{docs}/LICENSE.asio
+install -m 644 $RBD/scripts/packages/README       $RBR%{docs}/README
+install -m 644 $RBD/scripts/packages/README-MySQL $RBR%{docs}/README-MySQL
+
+install -d $RBR%{_mandir}/man8
+install -m 644 $RBD/man/garbd.8        $RBR%{_mandir}/man8/garbd.8
+
+
+%if 0%{?systemd}
+
+%if 0%{?suse_version}
+
+%post
+%service_add_post garb
+
+%preun
+%service_del_preun garb
+
+%else
+# Not SuSE - so it must be RedHat, CentOS, Fedora
+
+%post
+%systemd_post garb.service
+
+%preun
+%systemd_preun garb.service
+
+%postun
+%systemd_postun_with_restart garb.service
+
+%endif
+# SuSE versus Fedora/RedHat/CentOS
+
+%else
+# NOT systemd
+
+%if 0%{?suse_version}
+# For the various macros and their parameters, see here:
+# https://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros
+
+%post
+%fillup_and_insserv garb
+
+%preun
+%stop_on_removal garb
+rm -f $(find %{libs} -type l)
+
+%postun
+%restart_on_update garb
+%insserv_cleanup
+
+%else
+# Not SuSE - so it must be RedHat, CentOS, Fedora
+
+%post
+/sbin/chkconfig --add garb
+
+%preun
+if [ "$1" = "0" ]
+then
+    /sbin/service garb stop
+    /sbin/chkconfig --del garb
+fi
+
+%postun
+# >=1 packages after uninstall -> pkg was updated -> restart
+if [ "$1" -ge "1" ]
+then
+    /sbin/service garb restart
+fi
+
+%endif
+# SuSE versus Fedora/RedHat/CentOS
+
+%endif
+# systemd ?
+
+
+%files
+%defattr(-,root,root,0755)
+%if 0%{?suse_version}
+%config(noreplace,missingok) /var/adm/fillup-templates/sysconfig.garb
+%else
+%config(noreplace,missingok) %{_sysconfdir}/sysconfig/garb
+%endif
+
+
+%if 0%{?systemd}
+%attr(0644,root,root) %{_unitdir}/garb.service
+%attr(0755,root,root) %{_bindir}/garb-systemd
+%else
+%attr(0755,root,root) %{_sysconfdir}/init.d/garb
+%endif
+
+# Symlink required by SUSE policy for SysV init, still supported with systemd
+%if 0%{?suse_version}
+%attr(0755,root,root) /usr/sbin/rcgarb
+%endif
+
+%attr(0755,root,root) %{_bindir}/garbd
+
+%attr(0755,root,root) %dir %{libs}
+%attr(0755,root,root) %{libs}/libgalera_smm.so
+
+%attr(0755,root,root) %dir %{docs}
+%doc %attr(0644,root,root) %{docs}/COPYING
+%doc %attr(0644,root,root) %{docs}/LICENSE.asio
+%doc %attr(0644,root,root) %{docs}/README
+%doc %attr(0644,root,root) %{docs}/README-MySQL
+
+%doc %attr(644, root, man) %{_mandir}/man8/garbd.8*
+
+%clean
+[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf 
$RPM_BUILD_ROOT;
+
+%changelog
+* Mon Nov 9 2020 Teemu Ollakka <teemu.olla...@galeracluster.com>
+- Changed build system to CMake.
+- Name and version are generated by CMake.
+
+* Fri Feb 27 2015 Joerg Bruehe <joerg.bru...@fromdual.com>
+- Service name is "garb", reflect that in the config file (SuSE only, 
galera#235, Release 2)
+
+* Fri Feb 20 2015 Joerg Bruehe <joerg.bru...@fromdual.com>
+- Update copyright year.
+- Make the man page file name consistent with its section.
+
+* Wed Feb 11 2015 Joerg Bruehe <joerg.bru...@fromdual.com>
+- Add missing "prereq" directive and arguments for the various service control 
macros.
+- Handle the difference between SuSE and Fedora/RedHat/CentOS.
+- Fix systemd stuff, using info from these pages:
+  https://en.opensuse.org/openSUSE:Systemd_packaging_guidelines
+  http://fedoraproject.org/wiki/Packaging:Systemd
+  http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
+
+* Tue Sep 30 2014 Otto Kek??l??inen <o...@seravo.fi> - 3.x
+- Initial OBS packaging created
+

Reply via email to