Hello community,
here is the log from the commit of package icinga2 for openSUSE:Factory checked in at 2018-07-31 15:59:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icinga2 (Old)
and /work/SRC/openSUSE:Factory/.icinga2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icinga2"
Tue Jul 31 15:59:05 2018 rev:10 rq:625982 version:2.9.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/icinga2/icinga2.changes 2018-07-28 12:40:05.548390030 +0200
+++ /work/SRC/openSUSE:Factory/.icinga2.new/icinga2.changes 2018-07-31 15:59:11.135524661 +0200
@@ -1,0 +2,23 @@
+Sat Jul 28 22:12:45 UTC 2018 - ecsos@opensuse.org
+
+- update to 2.9.1
+ * Bug
+ - #6457 (PR): Ensure that timer thread is initialized after Daemonize()
+ - #6449: icinga r2.9.0-1 init.d script overrides PATH variable
+ - #6445: Problem with daemonize (init scripts, -d) on Debian 8 / CentOS 6 / Ubuntu 14 / SLES 11 in 2.9
+ - #6444 (PR): SELinux: allow systemd notify
+ - #6443: selinux and 2.9
+ * Support
+ - #6470 (code-quality, PR): Fix spelling errors.
+ - #6467 (Tests, PR): Start and stop the timer thread lazily
+ - #6461 (Tests): Broken tests with fix from #6457
+ - #6451 (Packages, PR): Fix initscripts
+ - #6450 (Packages): init script helpers - source: not found
+
+-------------------------------------------------------------------
+Sat Jul 28 14:09:14 UTC 2018 - uhaider.msee15seecs@seecs.edu.pk
+
+- Fixed the "No valid ELF RPATH or RUNPATH entry exists in the file"
+ error. (boo#1102980)
+
+-------------------------------------------------------------------
Old:
----
v2.9.0.tar.gz
New:
----
v2.9.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icinga2.spec ++++++
--- /var/tmp/diff_new_pack.pXIGRr/_old 2018-07-31 15:59:13.203528169 +0200
+++ /var/tmp/diff_new_pack.pXIGRr/_new 2018-07-31 15:59:13.203528169 +0200
@@ -83,7 +83,7 @@
License: GPL-2.0-or-later
Group: System/Monitoring
Name: icinga2
-Version: 2.9.0
+Version: 2.9.1
Release: %{revision}%{?dist}
Url: https://www.icinga.com/
Source: https://github.com/Icinga/%{name}/archive/v%{version}.tar.gz
@@ -302,6 +302,7 @@
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DICINGA2_LTO_BUILD=ON \
+ -DCMAKE_NO_BUILTIN_CHRPATH=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBoost_NO_BOOST_CMAKE=ON \
-DICINGA2_PLUGINDIR=%{plugindir} \
++++++ v2.9.0.tar.gz -> v2.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/AUTHORS new/icinga2-2.9.1/AUTHORS
--- old/icinga2-2.9.0/AUTHORS 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/AUTHORS 2018-07-24 12:48:12.000000000 +0200
@@ -11,6 +11,7 @@
Andy Grunwald
Arnd Hannemann
Assaf Flatto
+Bas Couwenberg
Bastian Guse
Benedikt Heine
Bernd Erk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/CHANGELOG.md new/icinga2-2.9.1/CHANGELOG.md
--- old/icinga2-2.9.0/CHANGELOG.md 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/CHANGELOG.md 2018-07-24 12:48:12.000000000 +0200
@@ -1,5 +1,23 @@
# Icinga 2.x CHANGELOG
+## 2.9.1 (2018-07-24)
+
+### Bug
+
+* [#6457](https://github.com/icinga/icinga2/issues/6457) (PR): Ensure that timer thread is initialized after Daemonize\(\)
+* [#6449](https://github.com/icinga/icinga2/issues/6449): icinga r2.9.0-1 init.d script overrides PATH variable
+* [#6445](https://github.com/icinga/icinga2/issues/6445): Problem with daemonize \(init scripts, -d\) on Debian 8 / CentOS 6 / Ubuntu 14 / SLES 11 in 2.9
+* [#6444](https://github.com/icinga/icinga2/issues/6444) (PR): SELinux: allow systemd notify
+* [#6443](https://github.com/icinga/icinga2/issues/6443): selinux and 2.9
+
+### Support
+
+* [#6470](https://github.com/icinga/icinga2/issues/6470) (code-quality, PR): Fix spelling errors.
+* [#6467](https://github.com/icinga/icinga2/issues/6467) (Tests, PR): Start and stop the timer thread lazily
+* [#6461](https://github.com/icinga/icinga2/issues/6461) (Tests): Broken tests with fix from \#6457
+* [#6451](https://github.com/icinga/icinga2/issues/6451) (Packages, PR): Fix initscripts
+* [#6450](https://github.com/icinga/icinga2/issues/6450) (Packages): init script helpers - source: not found
+
## 2.9.0 (2018-07-17)
### Notes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/VERSION new/icinga2-2.9.1/VERSION
--- old/icinga2-2.9.0/VERSION 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/VERSION 2018-07-24 12:48:12.000000000 +0200
@@ -1,2 +1,2 @@
-Version: 2.9.0
+Version: 2.9.1
Revision: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/etc/initsystem/icinga2.init.d.cmake new/icinga2-2.9.1/etc/initsystem/icinga2.init.d.cmake
--- old/icinga2-2.9.0/etc/initsystem/icinga2.init.d.cmake 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/etc/initsystem/icinga2.init.d.cmake 2018-07-24 12:48:12.000000000 +0200
@@ -15,6 +15,13 @@
# Description: Icinga 2 is a monitoring and management system for hosts, services and networks.
### END INIT INFO
+# Get function from functions library
+if [ -f /etc/rc.d/init.d/functions ]; then
+ . /etc/rc.d/init.d/functions
+elif [ -f /etc/init.d/functions ]; then
+ . /etc/init.d/functions
+fi
+
# load system specific defines
SYSCONFIGFILE=@ICINGA2_SYSCONFIGFILE@
if [ -f $SYSCONFIGFILE ]; then
@@ -50,13 +57,6 @@
getent group $ICINGA2_GROUP >/dev/null 2>&1 || (echo "Icinga group '$ICINGA2_GROUP' does not exist. Exiting." && exit 6)
getent group $ICINGA2_COMMAND_GROUP >/dev/null 2>&1 || (echo "Icinga command group '$ICINGA2_COMMAND_GROUP' does not exist. Exiting." && exit 6)
-# Get function from functions library
-if [ -f /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-elif [ -f /etc/init.d/functions ]; then
- . /etc/init.d/functions
-fi
-
# Start Icinga 2
start() {
printf "Starting Icinga 2: "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/etc/initsystem/prepare-dirs.cmake new/icinga2-2.9.1/etc/initsystem/prepare-dirs.cmake
--- old/icinga2-2.9.0/etc/initsystem/prepare-dirs.cmake 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/etc/initsystem/prepare-dirs.cmake 2018-07-24 12:48:12.000000000 +0200
@@ -6,7 +6,7 @@
# Load sysconf on systems where the initsystem does not pass the environment
if [ "$1" != "" ]; then
if [ -r "$1" ]; then
- source "$1"
+ . "$1"
else
echo "Unable to read sysconf from '$1'. Exiting." && exit 6
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/etc/initsystem/safe-reload.cmake new/icinga2-2.9.1/etc/initsystem/safe-reload.cmake
--- old/icinga2-2.9.0/etc/initsystem/safe-reload.cmake 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/etc/initsystem/safe-reload.cmake 2018-07-24 12:48:12.000000000 +0200
@@ -3,7 +3,7 @@
# Load sysconf on systems where the initsystem does not pass the environment
if [ "$1" != "" ]; then
if [ -r "$1" ]; then
- source "$1"
+ . "$1"
else
echo "Unable to read sysconf from '$1'. Exiting." && exit 6
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/base/application.cpp new/icinga2-2.9.1/lib/base/application.cpp
--- old/icinga2-2.9.0/lib/base/application.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/base/application.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -138,8 +138,11 @@
Loader::ExecuteDeferredInitializers();
- /* make sure the thread pool gets initialized */
+ /* Make sure the thread pool gets initialized. */
GetTP().Start();
+
+ /* Make sure the timer thread gets initialized. */
+ Timer::Initialize();
}
void Application::UninitializeBase()
@@ -300,7 +303,6 @@
*/
void Application::RunEventLoop()
{
-
#ifdef HAVE_SYSTEMD
sd_notify(0, "READY=1");
#endif /* HAVE_SYSTEMD */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/base/socket.cpp new/icinga2-2.9.1/lib/base/socket.cpp
--- old/icinga2-2.9.0/lib/base/socket.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/base/socket.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -94,7 +94,7 @@
}
/**
- * Retrieves the last error that occured for the socket.
+ * Retrieves the last error that occurred for the socket.
*
* @returns An error code.
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/base/timer.cpp new/icinga2-2.9.1/lib/base/timer.cpp
--- old/icinga2-2.9.0/lib/base/timer.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/base/timer.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -19,6 +19,7 @@
#include "base/timer.hpp"
#include "base/debug.hpp"
+#include "base/logger.hpp"
#include "base/utility.hpp"
#include
#include
@@ -71,7 +72,7 @@
static std::thread l_TimerThread;
static bool l_StopTimerThread;
static TimerSet l_Timers;
-static int l_AliveTimers;
+static int l_AliveTimers = 0;
/**
* Destructor for the Timer class.
@@ -81,16 +82,43 @@
Stop(true);
}
+void Timer::Initialize()
+{
+ boost::mutex::scoped_lock lock(l_TimerMutex);
+
+ if (l_AliveTimers > 0) {
+ InitializeThread();
+ }
+}
+
void Timer::Uninitialize()
{
+ boost::mutex::scoped_lock lock(l_TimerMutex);
+
+ if (l_AliveTimers > 0) {
+ UninitializeThread();
+ }
+}
+
+void Timer::InitializeThread()
+{
+ l_StopTimerThread = false;
+ l_TimerThread = std::thread(&Timer::TimerThreadProc);
+}
+
+void Timer::UninitializeThread()
+{
{
- boost::mutex::scoped_lock lock(l_TimerMutex);
l_StopTimerThread = true;
l_TimerCV.notify_all();
}
+ l_TimerMutex.unlock();
+
if (l_TimerThread.joinable())
l_TimerThread.join();
+
+ l_TimerMutex.lock();
}
/**
@@ -140,9 +168,8 @@
boost::mutex::scoped_lock lock(l_TimerMutex);
m_Started = true;
- if (l_AliveTimers++ == 0) {
- l_StopTimerThread = false;
- l_TimerThread = std::thread(&Timer::TimerThreadProc);
+ if (++l_AliveTimers == 1) {
+ InitializeThread();
}
}
@@ -160,15 +187,7 @@
boost::mutex::scoped_lock lock(l_TimerMutex);
if (m_Started && --l_AliveTimers == 0) {
- l_StopTimerThread = true;
- l_TimerCV.notify_all();
-
- lock.unlock();
-
- if (l_TimerThread.joinable() && l_TimerThread.get_id() != std::this_thread::get_id())
- l_TimerThread.join();
-
- lock.lock();
+ UninitializeThread();
}
m_Started = false;
@@ -270,6 +289,8 @@
*/
void Timer::TimerThreadProc()
{
+ Log(LogDebug, "Timer", "TimerThreadProc started.");
+
Utility::SetThreadName("Timer Thread");
for (;;) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/base/timer.hpp new/icinga2-2.9.1/lib/base/timer.hpp
--- old/icinga2-2.9.0/lib/base/timer.hpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/base/timer.hpp 2018-07-24 12:48:12.000000000 +0200
@@ -40,7 +40,10 @@
~Timer() override;
+ static void Initialize();
static void Uninitialize();
+ static void InitializeThread();
+ static void UninitializeThread();
void SetInterval(double interval);
double GetInterval() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/checker/checkercomponent.cpp new/icinga2-2.9.1/lib/checker/checkercomponent.cpp
--- old/icinga2-2.9.0/lib/checker/checkercomponent.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/checker/checkercomponent.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -221,7 +221,7 @@
CheckResult::Ptr cr = new CheckResult();
cr->SetState(ServiceUnknown);
- String output = "Exception occured while checking '" + checkable->GetName() + "': " + DiagnosticInformation(ex);
+ String output = "Exception occurred while checking '" + checkable->GetName() + "': " + DiagnosticInformation(ex);
cr->SetOutput(output);
double now = Utility::GetTime();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/cli/daemoncommand.cpp new/icinga2-2.9.1/lib/cli/daemoncommand.cpp
--- old/icinga2-2.9.0/lib/cli/daemoncommand.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/cli/daemoncommand.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -88,6 +88,9 @@
_exit(EXIT_SUCCESS);
}
+ Log(LogDebug, "Daemonize()")
+ << "Child process with PID " << Utility::GetPid() << " continues; re-initializing base.";
+
Application::InitializeBase();
#endif /* _WIN32 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/cli/nodesetupcommand.cpp new/icinga2-2.9.1/lib/cli/nodesetupcommand.cpp
--- old/icinga2-2.9.0/lib/cli/nodesetupcommand.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/cli/nodesetupcommand.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -262,7 +262,7 @@
NodeUtility::UpdateConfiguration("\"conf.d/api-users.conf\"", true, false);
} else {
Log(LogWarning, "cli")
- << "Included file dosen't exist " << apiUsersFilePath;
+ << "Included file doesn't exist " << apiUsersFilePath;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/icinga/checkable-check.cpp new/icinga2-2.9.1/lib/icinga/checkable-check.cpp
--- old/icinga2-2.9.0/lib/icinga/checkable-check.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/icinga/checkable-check.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -293,7 +293,7 @@
bool send_notification = false;
if (notification_reachable && !in_downtime && !IsAcknowledged()) {
- /* Send notifications whether when a hard state change occured. */
+ /* Send notifications whether when a hard state change occurred. */
if (hardChange && !(old_stateType == StateTypeSoft && IsStateOK(new_state)))
send_notification = true;
/* Or if the checkable is volatile and in a HARD state. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/icinga/checkable-notification.cpp new/icinga2-2.9.1/lib/icinga/checkable-notification.cpp
--- old/icinga2-2.9.0/lib/icinga/checkable-notification.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/icinga/checkable-notification.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -76,7 +76,7 @@
notification->BeginExecuteNotification(type, cr, force, false, author, text);
} catch (const std::exception& ex) {
Log(LogWarning, "Checkable")
- << "Exception occured during notification for service '"
+ << "Exception occurred during notification for service '"
<< GetName() << "': " << DiagnosticInformation(ex);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/icinga/clusterevents-check.cpp new/icinga2-2.9.1/lib/icinga/clusterevents-check.cpp
--- old/icinga2-2.9.0/lib/icinga/clusterevents-check.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/icinga/clusterevents-check.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -179,7 +179,7 @@
CheckResult::Ptr cr = new CheckResult();
cr->SetState(ServiceUnknown);
- String output = "Exception occured while checking '" + host->GetName() + "': " + DiagnosticInformation(ex);
+ String output = "Exception occurred while checking '" + host->GetName() + "': " + DiagnosticInformation(ex);
cr->SetOutput(output);
double now = Utility::GetTime();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/icinga/notification.cpp new/icinga2-2.9.1/lib/icinga/notification.cpp
--- old/icinga2-2.9.0/lib/icinga/notification.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/icinga/notification.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -524,7 +524,7 @@
<< "' and user '" << user->GetName() << "'.";
} catch (const std::exception& ex) {
Log(LogWarning, "Notification")
- << "Exception occured during notification for checkable '"
+ << "Exception occurred during notification for checkable '"
<< GetCheckable()->GetName() << "': " << DiagnosticInformation(ex);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/lib/notification/notificationcomponent.cpp new/icinga2-2.9.1/lib/notification/notificationcomponent.cpp
--- old/icinga2-2.9.0/lib/notification/notificationcomponent.cpp 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/lib/notification/notificationcomponent.cpp 2018-07-24 12:48:12.000000000 +0200
@@ -130,7 +130,7 @@
notification->BeginExecuteNotification(NotificationProblem, checkable->GetLastCheckResult(), false, true);
} catch (const std::exception& ex) {
Log(LogWarning, "NotificationComponent")
- << "Exception occured during notification for object '"
+ << "Exception occurred during notification for object '"
<< GetName() << "': " << DiagnosticInformation(ex);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/third-party/yajl/src/api/yajl_parse.h new/icinga2-2.9.1/third-party/yajl/src/api/yajl_parse.h
--- old/icinga2-2.9.0/third-party/yajl/src/api/yajl_parse.h 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/third-party/yajl/src/api/yajl_parse.h 2018-07-24 12:48:12.000000000 +0200
@@ -35,7 +35,7 @@
yajl_status_ok,
/** a client callback returned zero, stopping the parse */
yajl_status_client_canceled,
- /** An error occured during the parse. Call yajl_get_error for
+ /** An error occurred during the parse. Call yajl_get_error for
* more information about the encountered error */
yajl_status_error
} yajl_status;
@@ -192,7 +192,7 @@
* parse.
*
* If verbose is non-zero, the message will include the JSON
- * text where the error occured, along with an arrow pointing to
+ * text where the error occurred, along with an arrow pointing to
* the specific char.
*
* \returns A dynamically allocated string will be returned which should
@@ -211,7 +211,7 @@
*
* In the event an error is encountered during parsing, this function
* affords the client a way to get the offset into the most recent
- * chunk where the error occured. 0 will be returned if no error
+ * chunk where the error occurred. 0 will be returned if no error
* was encountered.
*/
YAJL_API size_t yajl_get_bytes_consumed(yajl_handle hand);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icinga2-2.9.0/tools/selinux/icinga2.te new/icinga2-2.9.1/tools/selinux/icinga2.te
--- old/icinga2-2.9.0/tools/selinux/icinga2.te 2018-07-17 14:27:32.000000000 +0200
+++ new/icinga2-2.9.1/tools/selinux/icinga2.te 2018-07-24 12:48:12.000000000 +0200
@@ -1,4 +1,4 @@
-policy_module(icinga2, 0.1.6)
+policy_module(icinga2, 0.1.7)
########################################
#
@@ -122,6 +122,7 @@
kernel_read_system_state(icinga2_t)
kernel_read_network_state(icinga2_t)
+kernel_dgram_send(icinga2_t)
# should be moved to nagios_plugin_template in nagios.if
icinga2_execstrans(nagios_admin_plugin_exec_t, nagios_admin_plugin_t)