diff --git a/net-mgmt/icinga2/Makefile b/net-mgmt/icinga2/Makefile index b30568b3a1c0..ce14bb592e9f 100644 --- a/net-mgmt/icinga2/Makefile +++ b/net-mgmt/icinga2/Makefile @@ -1,111 +1,108 @@ PORTNAME= icinga2 DISTVERSIONPREFIX= v -DISTVERSION= 2.14.3 -PORTREVISION= 1 +DISTVERSION= 2.14.5 CATEGORIES= net-mgmt MAINTAINER= flo@FreeBSD.org COMMENT= Monitoring and management system for hosts, services and networks WWW= https://www.icinga.org/icinga2/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= fails to build with Boost>=1.87 - LIB_DEPENDS= libboost_system.so:devel/boost-libs RUN_DEPENDS= ${LOCALBASE}/bin/bash:shells/bash USES= alias bison cmake:insource compiler:c++0x libedit ssl USE_GITHUB= yes GH_ACCOUNT= icinga USE_LDCONFIG= yes USE_RC_SUBR= ${PORTNAME} OPTIONS_DEFINE= DOCS EXAMPLES LTO UNITY OPTIONS_GROUP= BACKEND OPTIONS_GROUP_BACKEND= MYSQL PGSQL OPTIONS_RADIO= PLUGINS OPTIONS_RADIO_PLUGINS= MONPLUGINS NAGPLUGINS OPTIONS_DEFAULT= MONPLUGINS MYSQL PGSQL UNITY UNITY_DESC= Use icinga unity build system (faster, memory intensive) MONPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/monitoring-plugins NAGPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/nagios-plugins MYSQL_CMAKE_OFF= -DICINGA2_WITH_MYSQL=OFF PGSQL_CMAKE_OFF= -DICINGA2_WITH_PGSQL=OFF UNITY_CMAKE_OFF= -DICINGA2_UNITY_BUILD=OFF ICINGA2USER?= icinga ICINGA2GROUP?= icinga USERS= ${ICINGA2USER} GROUPS= ${ICINGA2GROUP} LOCALSTATEDIR?= /var ICINGA2LOGDIR?= /var/log/${PORTNAME} CMAKE_ARGS+= -DCMAKE_EXE_LINKER_FLAGS=${PREFIX}/lib/icinga2 \ -DCMAKE_INSTALL_LOCALSTATEDIR=${LOCALSTATEDIR} \ -DCMAKE_INSTALL_SYSCONFDIR=${PREFIX}/etc \ -DCMAKE_MODULE_LINKER_FLAGS=${PREFIX}/lib/icinga2 \ -DCMAKE_SHARED_LINKER_FLAGS=${PREFIX}/lib/icinga2 \ -DCMAKE_STATIC_LINKER_FLAGS=${PREFIX}/lib/icinga2 \ -DCMAKE_INSTALL_MANDIR=${PREFIX}/share/man \ -DICINGA2_COMMAND_GROUP=${ICINGA2USER} \ -DICINGA2_COMMAND_USER=${ICINGA2USER} \ -DICINGA2_GROUP=${ICINGA2GROUP} \ -DICINGA2_PLUGINDIR=${LOCALBASE}/libexec/nagios \ -DICINGA2_RUNDIR=/var/run \ -DICINGA2_USER=${ICINGA2USER} SUB_LIST= ICINGA2GROUP=${ICINGA2GROUP} \ ICINGA2LOGDIR=${ICINGA2LOGDIR} \ ICINGA2USER=${ICINGA2USER} \ WWWGRP=${WWWGRP} PLIST_SUB= ICINGA2GROUP=${ICINGA2GROUP} \ ICINGA2USER=${ICINGA2USER} \ WWWGRP=${WWWGRP} SUB_FILES= ${PORTNAME}-newsyslog.conf pkg-message # Config files with references to "Linux" LINUX_CONFIG= groups.conf services.conf hosts.conf LTO_CMAKE_BOOL= ICINGA2_LTO_BUILD MYSQL_USES= mysql PGSQL_USES= pgsql OPTIONS_SUB= yes .include .if ! ${PORT_OPTIONS:MMYSQL} && ! ${PORT_OPTIONS:MPGSQL} PLIST_SUB+= DBBACKEND="@comment " .else PLIST_SUB+= DBBACKEND="" .endif post-patch: .for f in ${LINUX_CONFIG} ${REINPLACE_CMD} 's,[Ll]inux,FreeBSD,g' ${WRKSRC}/etc/icinga2/conf.d/${f} .endfor pre-install: ${FIND} ${WRKSRC}/etc -type f -name "*.conf" -exec ${MV} {} {}.sample \; ${FIND} ${WRKSRC}/etc/icinga2/scripts -type f -name "*.sh" \ -exec ${MV} {} {}.sample \; post-install: ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/newsyslog/ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-newsyslog.conf ${STAGEDIR}${EXAMPLESDIR}/newsyslog/${PORTNAME}.conf ${MKDIR} ${STAGEDIR}${PREFIX}/share/vim/vimfiles (cd ${WRKSRC}/tools/syntax/vim && ${COPYTREE_SHARE} . \ ${STAGEDIR}${PREFIX}/share/vim/vimfiles) .include diff --git a/net-mgmt/icinga2/distinfo b/net-mgmt/icinga2/distinfo index c5066ef8b891..a79dbd826262 100644 --- a/net-mgmt/icinga2/distinfo +++ b/net-mgmt/icinga2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1731438143 -SHA256 (icinga-icinga2-v2.14.3_GH0.tar.gz) = 8cde20f8d8f66228fd66b4b4cef0deb0e60cf8d2a0ddc94c4cf54df5bec7db33 -SIZE (icinga-icinga2-v2.14.3_GH0.tar.gz) = 9397891 +TIMESTAMP = 1739700506 +SHA256 (icinga-icinga2-v2.14.5_GH0.tar.gz) = 9ab744de272ce17a871298116bd8029400a08563664f07ad1e52d2fa73d6929f +SIZE (icinga-icinga2-v2.14.5_GH0.tar.gz) = 9413390 diff --git a/net-mgmt/icinga2/files/patch-boost-1.87.diff b/net-mgmt/icinga2/files/patch-boost-1.87.diff new file mode 100644 index 000000000000..831c3b9d1e3a --- /dev/null +++ b/net-mgmt/icinga2/files/patch-boost-1.87.diff @@ -0,0 +1,341 @@ +diff --git a/lib/base/io-engine.hpp b/lib/base/io-engine.hpp +index 55a06fb6a6..37ba434761 100644 +--- lib/base/io-engine.hpp ++++ lib/base/io-engine.hpp +@@ -16,11 +16,16 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + ++#if BOOST_VERSION >= 108000 ++# include ++#endif // BOOST_VERSION >= 108000 ++ + namespace icinga + { + +@@ -102,6 +107,10 @@ class IoEngine + static void SpawnCoroutine(Handler& h, Function f) { + + boost::asio::spawn(h, ++#if BOOST_VERSION >= 108000 ++ std::allocator_arg_t(), ++ boost::context::fixedsize_stack(GetCoroutineStackSize()), ++#endif // BOOST_VERSION >= 108000 + [f](boost::asio::yield_context yc) { + + try { +@@ -119,7 +128,11 @@ class IoEngine + throw; + } + }, ++#if BOOST_VERSION >= 108000 ++ boost::asio::detached ++#else // BOOST_VERSION >= 108000 + boost::coroutines::attributes(GetCoroutineStackSize()) // Set a pre-defined stack size. ++#endif // BOOST_VERSION >= 108000 + ); + } + +diff --git a/test/base-io-engine.cpp b/test/base-io-engine.cpp +index 869688b1a6..3a251b1b42 100644 +--- test/base-io-engine.cpp ++++ test/base-io-engine.cpp +@@ -17,7 +17,7 @@ BOOST_AUTO_TEST_CASE(timeout_run) + boost::asio::io_context::strand strand (io); + int called = 0; + +- boost::asio::spawn(strand, [&](boost::asio::yield_context yc) { ++ IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) { + boost::asio::deadline_timer timer (io); + + Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; }); +@@ -44,7 +44,7 @@ BOOST_AUTO_TEST_CASE(timeout_cancelled) + boost::asio::io_context::strand strand (io); + int called = 0; + +- boost::asio::spawn(strand, [&](boost::asio::yield_context yc) { ++ IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) { + boost::asio::deadline_timer timer (io); + Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; }); + +@@ -71,7 +71,7 @@ BOOST_AUTO_TEST_CASE(timeout_scope) + boost::asio::io_context::strand strand (io); + int called = 0; + +- boost::asio::spawn(strand, [&](boost::asio::yield_context yc) { ++ IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) { + boost::asio::deadline_timer timer (io); + + { +@@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_cancelled) + boost::asio::io_context::strand strand (io); + int called = 0; + +- boost::asio::spawn(strand, [&](boost::asio::yield_context yc) { ++ IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) { + boost::asio::deadline_timer timer (io); + Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; }); + +@@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_scope) + boost::asio::io_context::strand strand (io); + int called = 0; + +- boost::asio::spawn(strand, [&](boost::asio::yield_context yc) { ++ IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) { + boost::asio::deadline_timer timer (io); + + { +diff --git a/lib/base/io-engine.hpp b/lib/base/io-engine.hpp +index 0350d45b83..55a06fb6a6 100644 +--- lib/base/io-engine.hpp ++++ lib/base/io-engine.hpp +@@ -106,14 +106,17 @@ class IoEngine + + try { + f(yc); +- } catch (const boost::coroutines::detail::forced_unwind &) { +- // Required for proper stack unwinding when coroutines are destroyed. +- // https://github.com/boostorg/coroutine/issues/39 +- throw; + } catch (const std::exception& ex) { + Log(LogCritical, "IoEngine") << "Exception in coroutine: " << DiagnosticInformation(ex); + } catch (...) { +- Log(LogCritical, "IoEngine", "Exception in coroutine!"); ++ try { ++ Log(LogCritical, "IoEngine", "Exception in coroutine!"); ++ } catch (...) { ++ } ++ ++ // Required for proper stack unwinding when coroutines are destroyed. ++ // https://github.com/boostorg/coroutine/issues/39 ++ throw; + } + }, + boost::coroutines::attributes(GetCoroutineStackSize()) // Set a pre-defined stack size. +diff --git a/lib/icingadb/redisconnection.cpp b/lib/icingadb/redisconnection.cpp +index a6b82187dd..c1f73f5a0e 100644 +--- lib/icingadb/redisconnection.cpp ++++ lib/icingadb/redisconnection.cpp +@@ -377,8 +377,6 @@ void RedisConnection::Connect(asio::yield_context& yc) + } + + break; +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; + } catch (const std::exception& ex) { + Log(LogCritical, "IcingaDB") + << "Cannot connect to " << m_Host << ":" << m_Port << ": " << ex.what(); +@@ -408,17 +406,10 @@ void RedisConnection::ReadLoop(asio::yield_context& yc) + for (auto i (item.Amount); i; --i) { + ReadOne(yc); + } +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; + } catch (const std::exception& ex) { + Log(LogCritical, "IcingaDB") + << "Error during receiving the response to a query which has been fired and forgotten: " << ex.what(); + +- continue; +- } catch (...) { +- Log(LogCritical, "IcingaDB") +- << "Error during receiving the response to a query which has been fired and forgotten"; +- + continue; + } + +@@ -432,9 +423,7 @@ void RedisConnection::ReadLoop(asio::yield_context& yc) + + try { + reply = ReadOne(yc); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + promise.set_exception(std::current_exception()); + + continue; +@@ -455,9 +444,7 @@ void RedisConnection::ReadLoop(asio::yield_context& yc) + for (auto i (item.Amount); i; --i) { + try { + replies.emplace_back(ReadOne(yc)); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + promise.set_exception(std::current_exception()); + break; + } +@@ -551,19 +538,11 @@ void RedisConnection::WriteItem(boost::asio::yield_context& yc, RedisConnection: + + try { + WriteOne(item, yc); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; + } catch (const std::exception& ex) { + Log msg (LogCritical, "IcingaDB", "Error during sending query"); + LogQuery(item, msg); + msg << " which has been fired and forgotten: " << ex.what(); + +- return; +- } catch (...) { +- Log msg (LogCritical, "IcingaDB", "Error during sending query"); +- LogQuery(item, msg); +- msg << " which has been fired and forgotten"; +- + return; + } + +@@ -587,19 +566,11 @@ void RedisConnection::WriteItem(boost::asio::yield_context& yc, RedisConnection: + WriteOne(query, yc); + ++i; + } +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; + } catch (const std::exception& ex) { + Log msg (LogCritical, "IcingaDB", "Error during sending query"); + LogQuery(item[i], msg); + msg << " which has been fired and forgotten: " << ex.what(); + +- return; +- } catch (...) { +- Log msg (LogCritical, "IcingaDB", "Error during sending query"); +- LogQuery(item[i], msg); +- msg << " which has been fired and forgotten"; +- + return; + } + +@@ -618,9 +589,7 @@ void RedisConnection::WriteItem(boost::asio::yield_context& yc, RedisConnection: + + try { + WriteOne(item.first, yc); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + item.second.set_exception(std::current_exception()); + + return; +@@ -645,9 +614,7 @@ void RedisConnection::WriteItem(boost::asio::yield_context& yc, RedisConnection: + for (auto& query : item.first) { + WriteOne(query, yc); + } +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + item.second.set_exception(std::current_exception()); + + return; +diff --git a/lib/icingadb/redisconnection.hpp b/lib/icingadb/redisconnection.hpp +index 3f963f3d37..2386a1e36e 100644 +--- lib/icingadb/redisconnection.hpp ++++ lib/icingadb/redisconnection.hpp +@@ -389,9 +389,7 @@ RedisConnection::Reply RedisConnection::ReadOne(StreamPtr& stream, boost::asio:: + + try { + return ReadRESP(*strm, yc); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + if (m_Connecting.exchange(false)) { + m_Connected.store(false); + stream = nullptr; +@@ -403,6 +401,8 @@ RedisConnection::Reply RedisConnection::ReadOne(StreamPtr& stream, boost::asio:: + } + } + ++ throw; ++ } catch (...) { + throw; + } + } +@@ -427,9 +427,7 @@ void RedisConnection::WriteOne(StreamPtr& stream, RedisConnection::Query& query, + try { + WriteRESP(*strm, query, yc); + strm->async_flush(yc); +- } catch (const boost::coroutines::detail::forced_unwind&) { +- throw; +- } catch (...) { ++ } catch (const std::exception&) { + if (m_Connecting.exchange(false)) { + m_Connected.store(false); + stream = nullptr; +@@ -441,6 +439,8 @@ void RedisConnection::WriteOne(StreamPtr& stream, RedisConnection::Query& query, + } + } + ++ throw; ++ } catch (...) { + throw; + } + } +diff --git a/lib/remote/jsonrpcconnection.cpp b/lib/remote/jsonrpcconnection.cpp +index d49c0b359a..8e95325feb 100644 +--- lib/remote/jsonrpcconnection.cpp ++++ lib/remote/jsonrpcconnection.cpp +@@ -212,7 +212,7 @@ void JsonRpcConnection::SendMessage(const Dictionary::Ptr& message) + + Ptr keepAlive (this); + +- m_IoStrand.post([this, keepAlive, message]() { SendMessageInternal(message); }); ++ boost::asio::post(m_IoStrand, [this, keepAlive, message] { SendMessageInternal(message); }); + } + + void JsonRpcConnection::SendRawMessage(const String& message) +@@ -223,7 +223,7 @@ void JsonRpcConnection::SendRawMessage(const String& message) + + Ptr keepAlive (this); + +- m_IoStrand.post([this, keepAlive, message]() { ++ boost::asio::post(m_IoStrand, [this, keepAlive, message] { + if (m_ShuttingDown) { + return; + } +diff --git a/lib/base/tcpsocket.hpp b/lib/base/tcpsocket.hpp +index 471ad8d239..1cf1a23501 100644 +--- lib/base/tcpsocket.hpp ++++ lib/base/tcpsocket.hpp +@@ -41,8 +41,7 @@ void Connect(Socket& socket, const String& node, const String& service) + using boost::asio::ip::tcp; + + tcp::resolver resolver (IoEngine::Get().GetIoContext()); +- tcp::resolver::query query (node, service); +- auto result (resolver.resolve(query)); ++ auto result (resolver.resolve(node.CStr(), service.CStr())); + auto current (result.begin()); + + for (;;) { +@@ -72,8 +71,7 @@ void Connect(Socket& socket, const String& node, const String& service, boost::a + using boost::asio::ip::tcp; + + tcp::resolver resolver (IoEngine::Get().GetIoContext()); +- tcp::resolver::query query (node, service); +- auto result (resolver.async_resolve(query, yc)); ++ auto result (resolver.async_resolve(node.CStr(), service.CStr(), yc)); + auto current (result.begin()); + + for (;;) { +diff --git a/lib/remote/apilistener.cpp b/lib/remote/apilistener.cpp +index 519469aafa..7ef3acddda 100644 +--- lib/remote/apilistener.cpp ++++ lib/remote/apilistener.cpp +@@ -439,9 +439,7 @@ bool ApiListener::AddListener(const String& node, const String& service) + + try { + tcp::resolver resolver (io); +- tcp::resolver::query query (node, service, tcp::resolver::query::passive); +- +- auto result (resolver.resolve(query)); ++ auto result (resolver.resolve(node.CStr(), service.CStr(), tcp::resolver::passive)); + auto current (result.begin()); + + for (;;) { + diff --git a/net-mgmt/icinga2/pkg-plist b/net-mgmt/icinga2/pkg-plist index 110b03aab758..edc45110c4d4 100644 --- a/net-mgmt/icinga2/pkg-plist +++ b/net-mgmt/icinga2/pkg-plist @@ -1,203 +1,203 @@ etc/bash_completion.d/icinga2 @sample %%ETCDIR%%/conf.d/app.conf.sample @sample %%ETCDIR%%/conf.d/commands.conf.sample @sample %%ETCDIR%%/conf.d/downtimes.conf.sample @sample %%ETCDIR%%/conf.d/groups.conf.sample @sample %%ETCDIR%%/conf.d/hosts.conf.sample @sample %%ETCDIR%%/conf.d/notifications.conf.sample @sample %%ETCDIR%%/conf.d/services.conf.sample @sample %%ETCDIR%%/conf.d/templates.conf.sample @sample %%ETCDIR%%/conf.d/timeperiods.conf.sample @sample %%ETCDIR%%/conf.d/users.conf.sample @sample %%ETCDIR%%/constants.conf.sample @sample %%ETCDIR%%/features-available/api.conf.sample @sample %%ETCDIR%%/features-available/checker.conf.sample @sample %%ETCDIR%%/features-available/command.conf.sample @sample %%ETCDIR%%/features-available/compatlog.conf.sample @sample %%ETCDIR%%/features-available/debuglog.conf.sample @sample %%ETCDIR%%/features-available/elasticsearch.conf.sample @sample %%ETCDIR%%/features-available/gelf.conf.sample @sample %%ETCDIR%%/features-available/graphite.conf.sample @sample %%ETCDIR%%/features-available/icingadb.conf.sample %%MYSQL%%@sample(%%ICINGA2USER%%,%%ICINGA2GROUP%%,0640) %%ETCDIR%%/features-available/ido-mysql.conf.sample %%PGSQL%%@sample(%%ICINGA2USER%%,%%ICINGA2GROUP%%,0640) %%ETCDIR%%/features-available/ido-pgsql.conf.sample @sample %%ETCDIR%%/features-available/influxdb.conf.sample @sample %%ETCDIR%%/features-available/influxdb2.conf.sample @sample %%ETCDIR%%/features-available/livestatus.conf.sample @sample %%ETCDIR%%/features-available/mainlog.conf.sample @sample %%ETCDIR%%/features-available/notification.conf.sample @sample %%ETCDIR%%/features-available/opentsdb.conf.sample @sample %%ETCDIR%%/features-available/perfdata.conf.sample @sample %%ETCDIR%%/features-available/syslog.conf.sample %%ETCDIR%%/features-enabled/checker.conf %%ETCDIR%%/features-enabled/mainlog.conf %%ETCDIR%%/features-enabled/notification.conf @sample %%ETCDIR%%/icinga2.conf.sample @sample %%ETCDIR%%/scripts/mail-host-notification.sh.sample @sample %%ETCDIR%%/scripts/mail-service-notification.sh.sample @sample %%ETCDIR%%/zones.conf.sample %%ETCDIR%%/zones.d/README %%MYSQL%%lib/icinga2/libmysql_shim.so -%%MYSQL%%lib/icinga2/libmysql_shim.so.2.14.3 +%%MYSQL%%lib/icinga2/libmysql_shim.so.2.14.5 %%PGSQL%%lib/icinga2/libpgsql_shim.so -%%PGSQL%%lib/icinga2/libpgsql_shim.so.2.14.3 +%%PGSQL%%lib/icinga2/libpgsql_shim.so.2.14.5 lib/icinga2/sbin/icinga2 libexec/nagios/check_nscp_api sbin/icinga2 %%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/CHANGELOG.md %%PORTDOCS%%%%DOCSDIR%%/COPYING %%PORTDOCS%%%%DOCSDIR%%/NEWS %%PORTDOCS%%%%DOCSDIR%%/README.md %%PORTDOCS%%%%DOCSDIR%%/markdown/01-about.md %%PORTDOCS%%%%DOCSDIR%%/markdown/02-installation.md %%PORTDOCS%%%%DOCSDIR%%/markdown/03-monitoring-basics.md %%PORTDOCS%%%%DOCSDIR%%/markdown/04-configuration.md %%PORTDOCS%%%%DOCSDIR%%/markdown/05-service-monitoring.md %%PORTDOCS%%%%DOCSDIR%%/markdown/06-distributed-monitoring.md %%PORTDOCS%%%%DOCSDIR%%/markdown/07-agent-based-monitoring.md %%PORTDOCS%%%%DOCSDIR%%/markdown/08-advanced-topics.md %%PORTDOCS%%%%DOCSDIR%%/markdown/09-object-types.md %%PORTDOCS%%%%DOCSDIR%%/markdown/10-icinga-template-library.md %%PORTDOCS%%%%DOCSDIR%%/markdown/11-cli-commands.md %%PORTDOCS%%%%DOCSDIR%%/markdown/12-icinga2-api.md %%PORTDOCS%%%%DOCSDIR%%/markdown/13-addons.md %%PORTDOCS%%%%DOCSDIR%%/markdown/14-features.md %%PORTDOCS%%%%DOCSDIR%%/markdown/15-troubleshooting.md %%PORTDOCS%%%%DOCSDIR%%/markdown/16-upgrading-icinga-2.md %%PORTDOCS%%%%DOCSDIR%%/markdown/17-language-reference.md %%PORTDOCS%%%%DOCSDIR%%/markdown/18-library-reference.md %%PORTDOCS%%%%DOCSDIR%%/markdown/19-technical-concepts.md %%PORTDOCS%%%%DOCSDIR%%/markdown/20-script-debugger.md %%PORTDOCS%%%%DOCSDIR%%/markdown/21-development.md %%PORTDOCS%%%%DOCSDIR%%/markdown/22-selinux.md %%PORTDOCS%%%%DOCSDIR%%/markdown/23-migrating-from-icinga-1x.md %%PORTDOCS%%%%DOCSDIR%%/markdown/24-appendix.md %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/dashing_icinga2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icinga_certificate_monitoring.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icinga_reporting.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icingaweb2_businessprocess.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icingaweb2_grafana.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icingaweb2_graphite.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/icingaweb2_maps.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/nano-syntax.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/addons/vim-syntax.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/advanced-topics/flapping-state-graph.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/advanced-topics/icinga2_external_checks_freshness_icingaweb2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/advanced-topics/icingaweb2_downtime_handled.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/api/icinga2_api_powershell_ise.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/configuration/icinga_web_local_server.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_boost_build_dev_cmd.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_builds_gitlab_pipeline.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_powershell_posh_git.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_visual_studio_installer_01.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_visual_studio_installer_02.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_visual_studio_installer_03.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/development/windows_visual_studio_tabs_c++.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_agent_checks_command_endpoint.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_endpoints.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_roles.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_satellite_config_sync.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenario_ha_masters_with_agents.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenarios_master_satellites_agents.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenarios_master_with_agents.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_zones.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_windows_client_disk_icingaweb2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_windows_nscp_api_drivesize_icingaweb2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_distributed_windows_nscp_counter_icingaweb2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_running_service.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_01.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_02.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_03.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_04.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_05.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_01.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_02.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_02_global_zone.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_03.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_04.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_no_ticket.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_with_ticket.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_examine_config.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/icingadb/icingadb-architecture.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/icingadb/icingadb-daemon.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/icingadb/icingadb-icinga2.png %%PORTDOCS%%%%DOCSDIR%%/markdown/images/icingadb/icingadb-redis.png %%PORTEXAMPLES%%%%EXAMPLESDIR%%/newsyslog/icinga2.conf %%MYSQL%%%%DATADIR%%-ido-mysql/schema/mysql.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.0.2.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.1.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.11.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.12.7.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.13.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.13.3.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.2.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.3.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.4.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.5.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.6.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.8.0.sql %%MYSQL%%%%DATADIR%%-ido-mysql/schema/upgrade/2.8.1.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/pgsql.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.0.2.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.1.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.2.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.3.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.4.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.5.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.6.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.8.0.sql %%PGSQL%%%%DATADIR%%-ido-pgsql/schema/upgrade/2.8.1.sql %%DATADIR%%/include/command-icinga.conf %%DATADIR%%/include/command-nscp-local.conf %%DATADIR%%/include/command-plugins-manubulon.conf %%DATADIR%%/include/command-plugins-windows.conf %%DATADIR%%/include/command-plugins.conf %%DATADIR%%/include/hangman %%DATADIR%%/include/itl %%DATADIR%%/include/manubulon %%DATADIR%%/include/nscp %%DATADIR%%/include/plugins %%DATADIR%%/include/plugins-contrib %%DATADIR%%/include/plugins-contrib.d/big-data.conf %%DATADIR%%/include/plugins-contrib.d/databases.conf %%DATADIR%%/include/plugins-contrib.d/hardware.conf %%DATADIR%%/include/plugins-contrib.d/icingacli.conf %%DATADIR%%/include/plugins-contrib.d/ipmi.conf %%DATADIR%%/include/plugins-contrib.d/logmanagement.conf %%DATADIR%%/include/plugins-contrib.d/metrics.conf %%DATADIR%%/include/plugins-contrib.d/network-components.conf %%DATADIR%%/include/plugins-contrib.d/network-services.conf %%DATADIR%%/include/plugins-contrib.d/operating-system.conf %%DATADIR%%/include/plugins-contrib.d/raid-controller.conf %%DATADIR%%/include/plugins-contrib.d/smart-attributes.conf %%DATADIR%%/include/plugins-contrib.d/storage.conf %%DATADIR%%/include/plugins-contrib.d/systemd.conf %%DATADIR%%/include/plugins-contrib.d/virtualization.conf %%DATADIR%%/include/plugins-contrib.d/vmware.conf %%DATADIR%%/include/plugins-contrib.d/web.conf %%DATADIR%%/include/windows-plugins share/man/man8/icinga2.8.gz share/vim/vimfiles/ftdetect/icinga2.vim share/vim/vimfiles/syntax/icinga2.vim @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) %%ETCDIR%% @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) %%ETCDIR%%/conf.d @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) %%ETCDIR%%/features-enabled @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/cache/icinga2 @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/api/log @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/api/zones @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/api/zones-stage @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/api @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/certificate-requests @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2/certs @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/lib/icinga2 @dir /var/lib @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/log/icinga2/compat/archives @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/log/icinga2/compat @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/log/icinga2/crash @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/log/icinga2 @dir(%%ICINGA2USER%%,%%WWWGRP%%,2750) /var/run/icinga2/cmd @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%,0775) /var/run/icinga2 @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/spool/icinga2/perfdata @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%) /var/spool/icinga2/tmp @dir(%%ICINGA2USER%%,%%ICINGA2GROUP%%,0775) /var/spool/icinga2