From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- net-analyzer/icinga2/Manifest | 13 +- .../files/icinga2-2.12.1-boost-1.74.0.patch | 436 +++++++++++++++++++++ net-analyzer/icinga2/icinga2-2.11.5.ebuild | 170 -------- net-analyzer/icinga2/icinga2-2.11.6.ebuild | 170 ++++++++ net-analyzer/icinga2/icinga2-2.12.1.ebuild | 149 +++++++ net-analyzer/icinga2/icinga2-2.12.2.ebuild | 149 +++++++ net-analyzer/icinga2/icinga2-9999.ebuild | 92 ++--- net-analyzer/icinga2/metadata.xml | 1 + 8 files changed, 947 insertions(+), 233 deletions(-) create mode 100644 net-analyzer/icinga2/files/icinga2-2.12.1-boost-1.74.0.patch delete mode 100644 net-analyzer/icinga2/icinga2-2.11.5.ebuild create mode 100644 net-analyzer/icinga2/icinga2-2.11.6.ebuild create mode 100644 net-analyzer/icinga2/icinga2-2.12.1.ebuild create mode 100644 net-analyzer/icinga2/icinga2-2.12.2.ebuild (limited to 'net-analyzer/icinga2') diff --git a/net-analyzer/icinga2/Manifest b/net-analyzer/icinga2/Manifest index 7a958cddcb57..9e8776a92305 100644 --- a/net-analyzer/icinga2/Manifest +++ b/net-analyzer/icinga2/Manifest @@ -1,8 +1,13 @@ +AUX icinga2-2.12.1-boost-1.74.0.patch 19210 BLAKE2B e6e09b631dc70b740212ad20d4e1bb38c7c8cf75c535f8935531bb02d0d3a9c3917bc272046315782aca2aa9e9f541c6686ef14810acfd854af9c64d647a554d SHA512 6f5b457dd4ef8d08fd4063a1a9babdc81d8f6789547448180795a30b46c4868ff1c520cc6e9b9140c866e0b62c9caae30ef4af53a963e29a0d2b4280acac1360 AUX icinga2.initd 2276 BLAKE2B 9573c876cb1fc6ff641d4503d5446840725d94ac2a824cd124872af84032519a5ee1237b0ebc38783e673cb87169feb48b7690978e9b7d2e38549a7272f403fc SHA512 5b31f748eda8f52d8efe2c744c3c1adacffdb40c04d93cdaf7ee82129d632783362f6ea51b5a4c05ca9cd98d3343abfcfc86c98e99afd429d6bce390b9ffd082 AUX icinga2.initd-3 2390 BLAKE2B 1ead1dd958d978324dfa043abcc58be7ed389207e2bf4dc4786bd2705f94c70a03b84f34a55435f6d9dfcc0483e35da60c1f536dec1060bdc232108c622e0615 SHA512 a43911717fe891e70690647daa57426f70d10f9cb02c721962be4c13cfe8a95bc3ff84b9ba2a293adafc8ddacf8ea6771bd66e7ff6dabe3e732176bf6e6e474a -DIST icinga2-2.11.5.tar.gz 7478038 BLAKE2B 309d090e9dab5fb79b411ee75bdcdc3351b559a434543937b3486bc0d45a25fc320609985e4130c2cca83972e4be15180f85bc4c78851fcecbc96ae523ca6bcd SHA512 22b0902818ee840c5c50da3768d6fc6dadf574d8fb5884eb45a2184b9e516888caa2e09ece4f8880139fb0931f131786002f494de702925a6f458968c3cee144 +DIST icinga2-2.11.6.tar.gz 7480970 BLAKE2B d247a4c0272227e0dfa2df46f91d84c7630c56df8d77d7de30aea715509b68fddbe74ef58c9b50acb4965e7108c3f9c23cf4e9c0f1a572763c34dd87cfaae1ec SHA512 e455d10612721ef6090256618c5a87e2f06e6284c2b2d137b85058bb5cdc30f3524fbcab5559acbe891e37d90f862c1b117115451bb3b59b8a2f67bb9d027e6e DIST icinga2-2.12.0.tar.gz 7530104 BLAKE2B 6f4a37d638449596d163add4ee070d24c1eb5f483e32f6c666454353578e6399a04cda949cb51b135516be7b437196e5beeff0e5e24a7bc26b855de87e24a797 SHA512 2a0ead159cfd71ebb662b909d8c4a64bdf13235b14d37b67057034da4fbf8764167b175e20f635989a98faafabb5da4f71321a4f8592172bed5cbb3ee557b276 -EBUILD icinga2-2.11.5.ebuild 4582 BLAKE2B e4f9f977636053c64d8a1bb86bf8f62cb5f42f9a3fea84bb90eb03470533a6b29a24851023b6353558fd8ae3ef7622759887b559b7080aae400505eaeb7e8838 SHA512 94ef9210e2b300cf6aecf8b3caedc9fde4e17b53b90ad554737a94c0207d86a31c139e1280ae55ca17332cbe70326afccb1e7670d2eea279fcc5d42dbbfa9678 +DIST icinga2-2.12.1.tar.gz 7532104 BLAKE2B addb3bb6f81cb41e1ec23e989d6151af6f39fdded5a76a791806114cc2ba46c786b5d6674e9e0e86eb701cb5132f766cdf3cbdfbbcc0f9263db3a7ba844705c6 SHA512 8c266db67fb7aa27dc86e9dc28fa0e1ff7b11260ed529d3963c5cf25a5230fc9f02d7d44076948fbde6e39e2cb02f2d99c2c5b72396154baf95aaa5eba461529 +DIST icinga2-2.12.2.tar.gz 7534173 BLAKE2B 58aa25be81cfd9d674371dcd17043fbdd8fd9f03b2fdbe994101dfe6088ed289e64c213bb5ec1c62863fc2a5d015f2ee928a4bd45343eeead62aea3472faf187 SHA512 db61843f0ea0e05ea8c0ae035e6fdaf1ebc03115b0690a0465ef1847426656acd8ffc108e36056a46cfbc4eb9538c612bbb5adff2db72c9cc51330fcdd62c136 +EBUILD icinga2-2.11.6.ebuild 4584 BLAKE2B 26ebea2c0c182362d24720bf50b95bc5ec364629c0229d2399c666081570909d66f3cfb4dd357a0b5c61447a5a369bbb833fc51c1fc1a99a6902ed33c4ca6402 SHA512 801050caf9c1ac07a2177f61965aac1829b8ba8bb8961c7a6f300ac1fadee3cee290cf58d499c8e6f52dada72a659baaf8905cf636cd3dd369764a2a4781af09 EBUILD icinga2-2.12.0.ebuild 4582 BLAKE2B e4f9f977636053c64d8a1bb86bf8f62cb5f42f9a3fea84bb90eb03470533a6b29a24851023b6353558fd8ae3ef7622759887b559b7080aae400505eaeb7e8838 SHA512 94ef9210e2b300cf6aecf8b3caedc9fde4e17b53b90ad554737a94c0207d86a31c139e1280ae55ca17332cbe70326afccb1e7670d2eea279fcc5d42dbbfa9678 -EBUILD icinga2-9999.ebuild 4584 BLAKE2B 26ebea2c0c182362d24720bf50b95bc5ec364629c0229d2399c666081570909d66f3cfb4dd357a0b5c61447a5a369bbb833fc51c1fc1a99a6902ed33c4ca6402 SHA512 801050caf9c1ac07a2177f61965aac1829b8ba8bb8961c7a6f300ac1fadee3cee290cf58d499c8e6f52dada72a659baaf8905cf636cd3dd369764a2a4781af09 -MISC metadata.xml 767 BLAKE2B 5a1f42327c794c6a9c7bc2c12a9d58fc0eb01e414f18a3ef80ac25263166a615ac1e3865544d3cc17bd950e5688b1f092b5061cbb5d4a51bca8c94bc83ddf9e5 SHA512 e92f81fbe17e5a54e509f26fa6b1fd0461c5229eecd3d0c5e078ab35fa6f2b5898e60e0d132b096bd2292d54ec9c4694564e96282fb4157985dfddec80c58675 +EBUILD icinga2-2.12.1.ebuild 4060 BLAKE2B f775606357a69066c8cbf1cd2e686f623e4e88824e703f6b4dfe4280ca3ea0620436ef156625974ff5e9cc177b206101a968892b68fc4783828a4192b39ea67e SHA512 5f37665f4efce4dc3f7bc26620b8573606ea45a77858a66c0feb881644dba96c9ee1215912c9b0787e58e5e63ab988d0b96ab7de854890dc0467cd02b300c4fb +EBUILD icinga2-2.12.2.ebuild 4062 BLAKE2B d1f56152154fbb597dcafbe5e567af8e84b7bb264cec07a513c2d0f8f1933714c0da7c34754e33c39198d46a964629c31010f4657c849bc0779da26daf2b5b79 SHA512 d9757572257d0bd9ca576cc454b885b9b7f4f5419b3de85e61e1b7bdf75b40dd4dc9355543249d61d9900a1c5d0023812d7f4fdbbb934b5af35d25cdec0d5004 +EBUILD icinga2-9999.ebuild 3930 BLAKE2B 20bacd633c55857af4e85b4ddf36ad86cae209adf380a183c35157bd69c553d70731ba699a6c706c0f77cfd03563af8fdad9748856cd1b91a9b387c5f175a035 SHA512 1249cb4f89bbee800a7cc8e8a35da90b6978878c14860e2d93651de641268328b2b1ffafb2363fb96c3b45de3b180b278a59cadcf0a4b2210655f3d8770a3285 +MISC metadata.xml 870 BLAKE2B f18bef5b15712d2fddf22edaaf628b4b9bacbb92fd03750b0d956aa7e13baaf389c131b929236158f1df8c718c754bd55ef6031cca282db0b22d2a4d94a353a3 SHA512 30744556867891c0a4e3ab86dbebdd6b1191bfe25f8b9f997fc8c88b3b8d69365a33184c7ae2cfa7fee5c19e8c348c768fcdaede7a0e4ab5c28927bc09151ae0 diff --git a/net-analyzer/icinga2/files/icinga2-2.12.1-boost-1.74.0.patch b/net-analyzer/icinga2/files/icinga2-2.12.1-boost-1.74.0.patch new file mode 100644 index 000000000000..e6ad4807993a --- /dev/null +++ b/net-analyzer/icinga2/files/icinga2-2.12.1-boost-1.74.0.patch @@ -0,0 +1,436 @@ +From c30bae2994f1e5f33f6da51eb96d423e9bf0f75c Mon Sep 17 00:00:00 2001 +From: Louis Sautier +Date: Thu, 20 Aug 2020 18:25:48 +0200 +Subject: [PATCH] =?UTF-8?q?Fix=20=E2=80=98fs::copy=5Foption=E2=80=99=20has?= + =?UTF-8?q?=20not=20been=20declared=20with=20boost=201.74.0?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It was deprecated in +https://github.com/boostorg/filesystem/commit/f199152b7df036ff1606c85e4ea1b28edfeda6cc +--- + lib/base/utility.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/base/utility.cpp b/lib/base/utility.cpp +index 1add7616c6..d8e6f20b0c 100644 +--- a/lib/base/utility.cpp ++++ b/lib/base/utility.cpp +@@ -725,7 +725,11 @@ void Utility::CopyFile(const String& source, const String& target) + { + namespace fs = boost::filesystem; + ++#if BOOST_VERSION >= 107400 ++ fs::copy_file(fs::path(source.Begin(), source.End()), fs::path(target.Begin(), target.End()), fs::copy_options::overwrite_existing); ++#else /* BOOST_VERSION */ + fs::copy_file(fs::path(source.Begin(), source.End()), fs::path(target.Begin(), target.End()), fs::copy_option::overwrite_if_exists); ++#endif /* BOOST_VERSION */ + } + + /* +From 45dd71e0f9a93369e08d6cb26f97940f9c9594aa Mon Sep 17 00:00:00 2001 +From: "Alexander A. Klimov" +Date: Wed, 26 Aug 2020 13:56:26 +0200 +Subject: [PATCH] Introduce HttpUtility::Set() + +refs #8185 +--- + lib/cli/consolecommand.cpp | 9 ++++--- + lib/perfdata/elasticsearchwriter.cpp | 13 ++++----- + lib/perfdata/influxdbwriter.cpp | 7 ++--- + lib/remote/configfileshandler.cpp | 4 +-- + lib/remote/eventshandler.cpp | 2 +- + lib/remote/httpserverconnection.cpp | 40 ++++++++++++++-------------- + lib/remote/httputility.cpp | 4 +-- + lib/remote/httputility.hpp | 28 +++++++++++++++++++ + lib/remote/infohandler.cpp | 6 ++--- + plugins/check_nscp_api.cpp | 9 ++++--- + 10 files changed, 77 insertions(+), 45 deletions(-) + +diff --git a/lib/cli/consolecommand.cpp b/lib/cli/consolecommand.cpp +index 41b6590e4c..42c5c63133 100644 +--- a/lib/cli/consolecommand.cpp ++++ b/lib/cli/consolecommand.cpp +@@ -3,6 +3,7 @@ + #include "cli/consolecommand.hpp" + #include "config/configcompiler.hpp" + #include "remote/consolehandler.hpp" ++#include "remote/httputility.hpp" + #include "remote/url.hpp" + #include "base/configwriter.hpp" + #include "base/serializer.hpp" +@@ -580,11 +581,11 @@ Dictionary::Ptr ConsoleCommand::SendRequest() + + http::request request(http::verb::post, std::string(l_Url->Format(false)), 10); + +- request.set(http::field::user_agent, "Icinga/DebugConsole/" + Application::GetAppVersion()); +- request.set(http::field::host, l_Url->GetHost() + ":" + l_Url->GetPort()); ++ HttpUtility::Set(request, http::field::user_agent, "Icinga/DebugConsole/" + Application::GetAppVersion()); ++ HttpUtility::Set(request, http::field::host, l_Url->GetHost() + ":" + l_Url->GetPort()); + +- request.set(http::field::accept, "application/json"); +- request.set(http::field::authorization, "Basic " + Base64::Encode(l_Url->GetUsername() + ":" + l_Url->GetPassword())); ++ HttpUtility::Set(request, http::field::accept, "application/json"); ++ HttpUtility::Set(request, http::field::authorization, "Basic " + Base64::Encode(l_Url->GetUsername() + ":" + l_Url->GetPassword())); + + try { + http::write(*l_TlsStream, request); +diff --git a/lib/perfdata/elasticsearchwriter.cpp b/lib/perfdata/elasticsearchwriter.cpp +index 6870198e45..3764bf536b 100644 +--- a/lib/perfdata/elasticsearchwriter.cpp ++++ b/lib/perfdata/elasticsearchwriter.cpp +@@ -2,6 +2,7 @@ + + #include "perfdata/elasticsearchwriter.hpp" + #include "perfdata/elasticsearchwriter-ti.cpp" ++#include "remote/httputility.hpp" + #include "remote/url.hpp" + #include "icinga/compatutility.hpp" + #include "icinga/service.hpp" +@@ -474,27 +475,27 @@ void ElasticsearchWriter::SendRequest(const String& body) + + http::request request (http::verb::post, std::string(url->Format(true)), 10); + +- request.set(http::field::user_agent, "Icinga/" + Application::GetAppVersion()); +- request.set(http::field::host, url->GetHost() + ":" + url->GetPort()); ++ HttpUtility::Set(request, http::field::user_agent, "Icinga/" + Application::GetAppVersion()); ++ HttpUtility::Set(request, http::field::host, url->GetHost() + ":" + url->GetPort()); + + /* Specify required headers by Elasticsearch. */ +- request.set(http::field::accept, "application/json"); ++ HttpUtility::Set(request, http::field::accept, "application/json"); + + /* Use application/x-ndjson for bulk streams. While ES + * is able to handle application/json, the newline separator + * causes problems with Logstash (#6609). + */ +- request.set(http::field::content_type, "application/x-ndjson"); ++ HttpUtility::Set(request, http::field::content_type, "application/x-ndjson"); + + /* Send authentication if configured. */ + String username = GetUsername(); + String password = GetPassword(); + + if (!username.IsEmpty() && !password.IsEmpty()) +- request.set(http::field::authorization, "Basic " + Base64::Encode(username + ":" + password)); ++ HttpUtility::Set(request, http::field::authorization, "Basic " + Base64::Encode(username + ":" + password)); + + request.body() = body; +- request.set(http::field::content_length, request.body().size()); ++ HttpUtility::Set(request, http::field::content_length, request.body().size()); + + /* Don't log the request body to debug log, this is already done above. */ + Log(LogDebug, "ElasticsearchWriter") +diff --git a/lib/perfdata/influxdbwriter.cpp b/lib/perfdata/influxdbwriter.cpp +index 4692b8b5df..0ddd582447 100644 +--- a/lib/perfdata/influxdbwriter.cpp ++++ b/lib/perfdata/influxdbwriter.cpp +@@ -2,6 +2,7 @@ + + #include "perfdata/influxdbwriter.hpp" + #include "perfdata/influxdbwriter-ti.cpp" ++#include "remote/httputility.hpp" + #include "remote/url.hpp" + #include "icinga/service.hpp" + #include "icinga/macroprocessor.hpp" +@@ -501,11 +502,11 @@ void InfluxdbWriter::Flush() + + http::request request (http::verb::post, std::string(url->Format(true)), 10); + +- request.set(http::field::user_agent, "Icinga/" + Application::GetAppVersion()); +- request.set(http::field::host, url->GetHost() + ":" + url->GetPort()); ++ HttpUtility::Set(request, http::field::user_agent, "Icinga/" + Application::GetAppVersion()); ++ HttpUtility::Set(request, http::field::host, url->GetHost() + ":" + url->GetPort()); + + request.body() = body; +- request.set(http::field::content_length, request.body().size()); ++ HttpUtility::Set(request, http::field::content_length, request.body().size()); + + try { + if (stream.first) { +diff --git a/lib/remote/configfileshandler.cpp b/lib/remote/configfileshandler.cpp +index d714f4d864..5c2bfdb405 100644 +--- a/lib/remote/configfileshandler.cpp ++++ b/lib/remote/configfileshandler.cpp +@@ -82,9 +82,9 @@ bool ConfigFilesHandler::HandleRequest( + + String content((std::istreambuf_iterator(fp)), std::istreambuf_iterator()); + response.result(http::status::ok); +- response.set(http::field::content_type, "application/octet-stream"); ++ HttpUtility::Set(response, http::field::content_type, "application/octet-stream"); + response.body() = content; +- response.set(http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); + } catch (const std::exception& ex) { + HttpUtility::SendJsonError(response, params, 500, "Could not read file.", + DiagnosticInformation(ex)); +diff --git a/lib/remote/eventshandler.cpp b/lib/remote/eventshandler.cpp +index e92b14a2d4..e41b4711c6 100644 +--- a/lib/remote/eventshandler.cpp ++++ b/lib/remote/eventshandler.cpp +@@ -100,7 +100,7 @@ bool EventsHandler::HandleRequest( + server.StartStreaming(); + + response.result(http::status::ok); +- response.set(http::field::content_type, "application/json"); ++ HttpUtility::Set(response, http::field::content_type, "application/json"); + + IoBoundWorkSlot dontLockTheIoThread (yc); + +diff --git a/lib/remote/httpserverconnection.cpp b/lib/remote/httpserverconnection.cpp +index d4eac7d074..688392c821 100644 +--- a/lib/remote/httpserverconnection.cpp ++++ b/lib/remote/httpserverconnection.cpp +@@ -184,12 +184,12 @@ bool EnsureValidHeaders( + { "status", String("Bad Request: ") + errorMsg } + })); + } else { +- response.set(http::field::content_type, "text/html"); ++ HttpUtility::Set(response, http::field::content_type, "text/html"); + response.body() = String("

Bad Request

") + errorMsg + "

"; +- response.set(http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); + } + +- response.set(http::field::connection, "close"); ++ HttpUtility::Set(response, http::field::connection, "close"); + + boost::system::error_code ec; + +@@ -247,20 +247,20 @@ bool HandleAccessControl( + auto& origin (request[http::field::origin]); + + if (allowedOrigins.find(origin.to_string()) != allowedOrigins.end()) { +- response.set(http::field::access_control_allow_origin, origin); ++ HttpUtility::Set(response, http::field::access_control_allow_origin, origin); + } + + allowOriginHeader.Done(); + +- response.set(http::field::access_control_allow_credentials, "true"); ++ HttpUtility::Set(response, http::field::access_control_allow_credentials, "true"); + + if (request.method() == http::verb::options && !request[http::field::access_control_request_method].empty()) { + response.result(http::status::ok); +- response.set(http::field::access_control_allow_methods, "GET, POST, PUT, DELETE"); +- response.set(http::field::access_control_allow_headers, "Authorization, X-HTTP-Method-Override"); ++ HttpUtility::Set(response, http::field::access_control_allow_methods, "GET, POST, PUT, DELETE"); ++ HttpUtility::Set(response, http::field::access_control_allow_headers, "Authorization, X-HTTP-Method-Override"); + response.body() = "Preflight OK"; +- response.set(http::field::content_length, response.body().size()); +- response.set(http::field::connection, "close"); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::connection, "close"); + + boost::system::error_code ec; + +@@ -288,10 +288,10 @@ bool EnsureAcceptHeader( + + if (request.method() != http::verb::get && request[http::field::accept] != "application/json") { + response.result(http::status::bad_request); +- response.set(http::field::content_type, "text/html"); ++ HttpUtility::Set(response, http::field::content_type, "text/html"); + response.body() = "

Accept header is missing or not set to 'application/json'.

"; +- response.set(http::field::content_length, response.body().size()); +- response.set(http::field::connection, "close"); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::connection, "close"); + + boost::system::error_code ec; + +@@ -320,8 +320,8 @@ bool EnsureAuthenticatedUser( + << "Unauthorized request: " << request.method_string() << ' ' << request.target(); + + response.result(http::status::unauthorized); +- response.set(http::field::www_authenticate, "Basic realm=\"Icinga 2\""); +- response.set(http::field::connection, "close"); ++ HttpUtility::Set(response, http::field::www_authenticate, "Basic realm=\"Icinga 2\""); ++ HttpUtility::Set(response, http::field::connection, "close"); + + if (request[http::field::accept] == "application/json") { + HttpUtility::SendJsonBody(response, nullptr, new Dictionary({ +@@ -329,9 +329,9 @@ bool EnsureAuthenticatedUser( + { "status", "Unauthorized. Please check your user credentials." } + })); + } else { +- response.set(http::field::content_type, "text/html"); ++ HttpUtility::Set(response, http::field::content_type, "text/html"); + response.body() = "

Unauthorized. Please check your user credentials.

"; +- response.set(http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); + } + + boost::system::error_code ec; +@@ -421,12 +421,12 @@ bool EnsureValidBody( + { "status", String("Bad Request: ") + ec.message() } + })); + } else { +- response.set(http::field::content_type, "text/html"); ++ HttpUtility::Set(response, http::field::content_type, "text/html"); + response.body() = String("

Bad Request

") + ec.message() + "

"; +- response.set(http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); + } + +- response.set(http::field::connection, "close"); ++ HttpUtility::Set(response, http::field::connection, "close"); + + http::async_write(stream, response, yc[ec]); + stream.async_flush(yc[ec]); +@@ -511,7 +511,7 @@ void HttpServerConnection::ProcessMessages(boost::asio::yield_context yc) + parser.header_limit(1024 * 1024); + parser.body_limit(-1); + +- response.set(http::field::server, l_ServerHeader); ++ HttpUtility::Set(response, http::field::server, l_ServerHeader); + + if (!EnsureValidHeaders(*m_Stream, buf, parser, response, m_ShuttingDown, yc)) { + break; +diff --git a/lib/remote/httputility.cpp b/lib/remote/httputility.cpp +index 91902ba501..e46e990ecf 100644 +--- a/lib/remote/httputility.cpp ++++ b/lib/remote/httputility.cpp +@@ -56,9 +56,9 @@ void HttpUtility::SendJsonBody(boost::beast::http::response& response, +diff --git a/lib/remote/httputility.hpp b/lib/remote/httputility.hpp +index 6465b4af92..be600d4090 100644 +--- a/lib/remote/httputility.hpp ++++ b/lib/remote/httputility.hpp +@@ -5,8 +5,12 @@ + + #include "remote/url.hpp" + #include "base/dictionary.hpp" ++#include "base/string.hpp" + #include ++#include + #include ++#include ++#include + + namespace icinga + { +@@ -26,6 +30,30 @@ class HttpUtility + static void SendJsonBody(boost::beast::http::response& response, const Dictionary::Ptr& params, const Value& val); + static void SendJsonError(boost::beast::http::response& response, const Dictionary::Ptr& params, const int code, + const String& verbose = String(), const String& diagnosticInformation = String()); ++ ++ template::value, int>::type = 0> ++ static void Set(Message& message, Key&& key, Value value) ++ { ++ Set(message, std::forward(key), boost::lexical_cast(value)); ++ } ++ ++ template ++ static void Set(Message& message, Key&& key, const String& value) ++ { ++ Set(message, std::forward(key), value.GetData()); ++ } ++ ++ template ++ static void Set(Message& message, Key&& key, String&& value) ++ { ++ Set(message, std::forward(key), value.GetData()); ++ } ++ ++ template::value, int>::type = 0> ++ static void Set(Message& message, Key&& key, Value&& value) ++ { ++ message.set(std::forward(key), std::forward(value)); ++ } + }; + + } +diff --git a/lib/remote/infohandler.cpp b/lib/remote/infohandler.cpp +index 18c18c0e04..daec628047 100644 +--- a/lib/remote/infohandler.cpp ++++ b/lib/remote/infohandler.cpp +@@ -29,7 +29,7 @@ bool InfoHandler::HandleRequest( + + if (url->GetPath().empty()) { + response.result(http::status::found); +- response.set(http::field::location, "/v1"); ++ HttpUtility::Set(response, http::field::location, "/v1"); + return true; + } + +@@ -74,7 +74,7 @@ bool InfoHandler::HandleRequest( + + HttpUtility::SendJsonBody(response, params, result); + } else { +- response.set(http::field::content_type, "text/html"); ++ HttpUtility::Set(response, http::field::content_type, "text/html"); + + String body = "Icinga 2

Hello from Icinga 2 (Version: " + Application::GetAppVersion() + ")!

"; + body += "

You are authenticated as " + user->GetName() + ". "; +@@ -92,7 +92,7 @@ bool InfoHandler::HandleRequest( + + body += R"(

More information about API requests is available in the documentation.

)"; + response.body() = body; +- response.set(http::field::content_length, response.body().size()); ++ HttpUtility::Set(response, http::field::content_length, response.body().size()); + } + + return true; +diff --git a/plugins/check_nscp_api.cpp b/plugins/check_nscp_api.cpp +index 3f6843ec29..ad15e62527 100644 +--- a/plugins/check_nscp_api.cpp ++++ b/plugins/check_nscp_api.cpp +@@ -16,6 +16,7 @@ + #include "base/tcpsocket.hpp" /* include global icinga::Connect */ + #include "base/tlsstream.hpp" + #include "base/base64.hpp" ++#include "remote/httputility.hpp" + #include "remote/url.hpp" + #include + #include +@@ -365,11 +366,11 @@ static Dictionary::Ptr FetchData(const String& host, const String& port, const S + + http::request request (http::verb::get, std::string(url->Format(true)), 10); + +- request.set(http::field::user_agent, "Icinga/check_nscp_api/" + String(VERSION)); +- request.set(http::field::host, host + ":" + port); ++ HttpUtility::Set(request, http::field::user_agent, "Icinga/check_nscp_api/" + String(VERSION)); ++ HttpUtility::Set(request, http::field::host, host + ":" + port); + +- request.set(http::field::accept, "application/json"); +- request.set("password", password); ++ HttpUtility::Set(request, http::field::accept, "application/json"); ++ HttpUtility::Set(request, "password", password); + + if (l_Debug) { + std::cout << "Sending request to " << url->Format(false, false) << "'.\n"; +From 7e62a68eadada58e762d3f4261750796adffd440 Mon Sep 17 00:00:00 2001 +From: "Alexander A. Klimov" +Date: Wed, 26 Aug 2020 13:48:39 +0200 +Subject: [PATCH] Define BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT + +refs #8185 +--- + CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 046f23cf22..46e765415e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -172,6 +172,9 @@ add_definitions(-DBOOST_COROUTINES_NO_DEPRECATION_WARNING) + + add_definitions(-DBOOST_FILESYSTEM_NO_DEPRECATED) + ++# Required for Boost v1.74+ ++add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) ++ + link_directories(${Boost_LIBRARY_DIRS}) + include_directories(${Boost_INCLUDE_DIRS}) + diff --git a/net-analyzer/icinga2/icinga2-2.11.5.ebuild b/net-analyzer/icinga2/icinga2-2.11.5.ebuild deleted file mode 100644 index 72756f463b8e..000000000000 --- a/net-analyzer/icinga2/icinga2-2.11.5.ebuild +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -if [[ ${PV} != 9999 ]]; then - inherit cmake-utils depend.apache eutils systemd toolchain-funcs wxwidgets - SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm64 x86" -else - inherit cmake-utils depend.apache eutils git-r3 systemd toolchain-funcs wxwidgets - EGIT_REPO_URI="https://github.com/Icinga/icinga2.git" - EGIT_BRANCH="master" -fi - -DESCRIPTION="Distributed, general purpose, network monitoring engine" -HOMEPAGE="http://icinga.org/icinga2" - -LICENSE="GPL-2" -SLOT="0" -IUSE="console libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" -WX_GTK_VER="3.0" - -CDEPEND=" - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - >=dev-libs/boost-1.66.0:=[context] - console? ( dev-libs/libedit ) - mariadb? ( dev-db/mariadb-connector-c:= ) - mysql? ( dev-db/mysql-connector-c:= ) - postgres? ( dev-db/postgresql:= ) - dev-libs/yajl" - -DEPEND=" - ${CDEPEND} - sys-devel/bison - >=sys-devel/flex-2.5.35" - -RDEPEND=" - ${CDEPEND} - plugins? ( || ( - net-analyzer/monitoring-plugins - net-analyzer/nagios-plugins - ) ) - mail? ( virtual/mailx ) - acct-user/icinga - acct-group/icinga - acct-group/icingacmd - acct-group/nagios" - -REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )" - -want_apache2 - -pkg_setup() { - depend.apache_pkg_setup -} - -src_configure() { - sed -i 's/FLAGS\}\ \-g/FLAGS\}\ \-lpthread\ /g' CMakeLists.txt || die - local mycmakeargs=( - -DICINGA2_UNITY_BUILD=FALSE - -DCMAKE_VERBOSE_MAKEFILE=ON - -DCMAKE_BUILD_TYPE=None - -DCMAKE_INSTALL_SYSCONFDIR=/etc - -DCMAKE_INSTALL_LOCALSTATEDIR=/var - -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2 - -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins" - -DICINGA2_USER=icinga - -DICINGA2_GROUP=icingacmd - -DICINGA2_COMMAND_GROUP=icingacmd - -DICINGA2_RUNDIR=/run - -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=yes - -DUSE_SYSTEMD=$(usex systemd ON OFF) - -DLOGROTATE_HAS_SU=ON - ) - # default to off if minimal, allow the flags to be set otherwise - if use minimal; then - mycmakeargs+=( - -DICINGA2_WITH_MYSQL=OFF - -DICINGA2_WITH_PGSQL=OFF - ) - else - mycmakeargs+=( - -DICINGA2_WITH_PGSQL=$(usex postgres ON OFF) - -DICINGA2_WITH_MYSQL=$(usex mysql ON OFF) - ) - fi - # LTO - if use lto; then - mycmakeargs+=( - -DICINGA2_LTO_BUILD=ON - ) - else - mycmakeargs+=( - -DICINGA2_LTO_BUILD=OFF - ) - fi - - cmake-utils_src_configure -} - -src_install() { - BUILDDIR="${WORKDIR}"/icinga2-${PV}_build - cd "${BUILDDIR}" || die - - emake DESTDIR="${D}" install - - einstalldocs - - newinitd "${FILESDIR}"/icinga2.initd-3 icinga2 - - if use mysql ; then - docinto schema - newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql - docinto schema/upgrade - dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* - fi - if use mariadb ; then # same as mysql - docinto schema - newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql - docinto schema/upgrade - dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* - fi - if use postgres ; then - docinto schema - newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql - docinto schema/upgrade - dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/* - fi - - keepdir /etc/icinga2 - keepdir /var/lib/icinga2/api/zones - keepdir /var/lib/icinga2/api/repository - keepdir /var/lib/icinga2/api/log - keepdir /var/spool/icinga2/perfdata - - rm -r "${D}/run" || die "failed to remove /run" - rm -r "${D}/var/cache" || die "failed to remove /var/cache" - - fowners root:icinga /etc/icinga2 - fperms 0750 /etc/icinga2 - fowners icinga:icinga /var/lib/icinga2 - fowners icinga:icinga /var/spool/icinga2 - fowners -R icinga:icingacmd /var/lib/icinga2/api - fowners icinga:icinga /var/spool/icinga2/perfdata - fowners icinga:icingacmd /var/log/icinga2 - - fperms ug+rwX,o-rwx /etc/icinga2 - fperms ug+rwX,o-rwx /var/lib/icinga2 - fperms ug+rwX,o-rwx /var/spool/icinga2 - fperms ug+rwX,o-rwx /var/log/icinga2 - - if use vim-syntax; then - insinto /usr/share/vim/vimfiles - doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect - doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax - fi - - if use nano-syntax; then - insinto /usr/share/nano - doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc - fi -} - -pkg_postinst() { - if [[ ${PV} != 9999 && -n ${REPLACING_VERSIONS} && ${REPLACING_VERSIONS} != ${PV} ]]; then - elog "DB IDO schema upgrade may be required required. - https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" - fi -} diff --git a/net-analyzer/icinga2/icinga2-2.11.6.ebuild b/net-analyzer/icinga2/icinga2-2.11.6.ebuild new file mode 100644 index 000000000000..bb0f2605e735 --- /dev/null +++ b/net-analyzer/icinga2/icinga2-2.11.6.ebuild @@ -0,0 +1,170 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +if [[ ${PV} != 9999 ]]; then + inherit cmake-utils depend.apache eutils systemd toolchain-funcs wxwidgets + SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +else + inherit cmake-utils depend.apache eutils git-r3 systemd toolchain-funcs wxwidgets + EGIT_REPO_URI="https://github.com/Icinga/icinga2.git" + EGIT_BRANCH="master" +fi + +DESCRIPTION="Distributed, general purpose, network monitoring engine" +HOMEPAGE="http://icinga.org/icinga2" + +LICENSE="GPL-2" +SLOT="0" +IUSE="console libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" +WX_GTK_VER="3.0" + +CDEPEND=" + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + >=dev-libs/boost-1.66.0:=[context] + console? ( dev-libs/libedit ) + mariadb? ( dev-db/mariadb-connector-c:= ) + mysql? ( dev-db/mysql-connector-c:= ) + postgres? ( dev-db/postgresql:= ) + dev-libs/yajl" + +DEPEND=" + ${CDEPEND} + sys-devel/bison + >=sys-devel/flex-2.5.35" + +RDEPEND=" + ${CDEPEND} + plugins? ( || ( + net-analyzer/monitoring-plugins + net-analyzer/nagios-plugins + ) ) + mail? ( virtual/mailx ) + acct-user/icinga + acct-group/icinga + acct-group/icingacmd + acct-group/nagios" + +REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )" + +want_apache2 + +pkg_setup() { + depend.apache_pkg_setup +} + +src_configure() { + sed -i 's/FLAGS\}\ \-g/FLAGS\}\ \-lpthread\ /g' CMakeLists.txt || die + local mycmakeargs=( + -DICINGA2_UNITY_BUILD=FALSE + -DCMAKE_VERBOSE_MAKEFILE=ON + -DCMAKE_BUILD_TYPE=None + -DCMAKE_INSTALL_SYSCONFDIR=/etc + -DCMAKE_INSTALL_LOCALSTATEDIR=/var + -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2 + -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins" + -DICINGA2_USER=icinga + -DICINGA2_GROUP=icingacmd + -DICINGA2_COMMAND_GROUP=icingacmd + -DICINGA2_RUNDIR=/run + -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=yes + -DUSE_SYSTEMD=$(usex systemd ON OFF) + -DLOGROTATE_HAS_SU=ON + ) + # default to off if minimal, allow the flags to be set otherwise + if use minimal; then + mycmakeargs+=( + -DICINGA2_WITH_MYSQL=OFF + -DICINGA2_WITH_PGSQL=OFF + ) + else + mycmakeargs+=( + -DICINGA2_WITH_PGSQL=$(usex postgres ON OFF) + -DICINGA2_WITH_MYSQL=$(usex mysql ON OFF) + ) + fi + # LTO + if use lto; then + mycmakeargs+=( + -DICINGA2_LTO_BUILD=ON + ) + else + mycmakeargs+=( + -DICINGA2_LTO_BUILD=OFF + ) + fi + + cmake-utils_src_configure +} + +src_install() { + BUILDDIR="${WORKDIR}"/icinga2-${PV}_build + cd "${BUILDDIR}" || die + + emake DESTDIR="${D}" install + + einstalldocs + + newinitd "${FILESDIR}"/icinga2.initd-3 icinga2 + + if use mysql ; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* + fi + if use mariadb ; then # same as mysql + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* + fi + if use postgres ; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/* + fi + + keepdir /etc/icinga2 + keepdir /var/lib/icinga2/api/zones + keepdir /var/lib/icinga2/api/repository + keepdir /var/lib/icinga2/api/log + keepdir /var/spool/icinga2/perfdata + + rm -r "${D}/run" || die "failed to remove /run" + rm -r "${D}/var/cache" || die "failed to remove /var/cache" + + fowners root:icinga /etc/icinga2 + fperms 0750 /etc/icinga2 + fowners icinga:icinga /var/lib/icinga2 + fowners icinga:icinga /var/spool/icinga2 + fowners -R icinga:icingacmd /var/lib/icinga2/api + fowners icinga:icinga /var/spool/icinga2/perfdata + fowners icinga:icingacmd /var/log/icinga2 + + fperms ug+rwX,o-rwx /etc/icinga2 + fperms ug+rwX,o-rwx /var/lib/icinga2 + fperms ug+rwX,o-rwx /var/spool/icinga2 + fperms ug+rwX,o-rwx /var/log/icinga2 + + if use vim-syntax; then + insinto /usr/share/vim/vimfiles + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax + fi + + if use nano-syntax; then + insinto /usr/share/nano + doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc + fi +} + +pkg_postinst() { + if [[ ${PV} != 9999 && -n ${REPLACING_VERSIONS} && ${REPLACING_VERSIONS} != ${PV} ]]; then + elog "DB IDO schema upgrade may be required required. + https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" + fi +} diff --git a/net-analyzer/icinga2/icinga2-2.12.1.ebuild b/net-analyzer/icinga2/icinga2-2.12.1.ebuild new file mode 100644 index 000000000000..ad2f31c9b0f3 --- /dev/null +++ b/net-analyzer/icinga2/icinga2-2.12.1.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake systemd + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/Icinga/icinga2.git" +fi + +DESCRIPTION="Distributed, general purpose, network monitoring engine" +HOMEPAGE="https://icinga.com/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="console jumbo-build libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" + +# Add accounts to DEPEND because of fowners in src_install +DEPEND=" + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + >=dev-libs/boost-1.66.0:=[context] + console? ( dev-libs/libedit ) + mariadb? ( dev-db/mariadb-connector-c:= ) + mysql? ( dev-db/mysql-connector-c:= ) + postgres? ( dev-db/postgresql:= ) + dev-libs/yajl:= + acct-user/icinga + acct-group/icinga + acct-group/icingacmd" +BDEPEND=" + sys-devel/bison + >=sys-devel/flex-2.5.35" +RDEPEND=" + ${DEPEND} + plugins? ( || ( + net-analyzer/monitoring-plugins + net-analyzer/nagios-plugins + ) ) + mail? ( virtual/mailx ) + acct-group/nagios" + +REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )" + +PATCHES=( + # https://github.com/Icinga/icinga2/issues/8185#issuecomment-680875875 + "${FILESDIR}/${PN}-2.12.1-boost-1.74.0.patch" +) + +src_configure() { + local mycmakeargs=( + -DICINGA2_UNITY_BUILD=$(usex jumbo-build) + -DCMAKE_INSTALL_SYSCONFDIR=/etc + -DCMAKE_INSTALL_LOCALSTATEDIR=/var + -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2 + -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins" + -DICINGA2_USER=icinga + -DICINGA2_GROUP=icingacmd + -DICINGA2_COMMAND_GROUP=icingacmd + -DICINGA2_RUNDIR=/run + -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON + -DUSE_SYSTEMD=$(usex systemd) + -DLOGROTATE_HAS_SU=ON + -DICINGA2_LTO_BUILD=$(usex lto) + ) + # default to off if minimal, allow the flags to be set otherwise + if use minimal; then + mycmakeargs+=( + -DICINGA2_WITH_MYSQL=OFF + -DICINGA2_WITH_PGSQL=OFF + ) + else + mycmakeargs+=( + -DICINGA2_WITH_PGSQL=$(usex postgres) + -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb)) + ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + newinitd "${FILESDIR}"/icinga2.initd-3 icinga2 + + if use mysql || use mariadb; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* + fi + if use postgres; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/* + fi + + keepdir /etc/icinga2 + keepdir /var/lib/icinga2/api/zones + keepdir /var/lib/icinga2/api/repository + keepdir /var/lib/icinga2/api/log + keepdir /var/spool/icinga2/perfdata + + rm -r "${D}/run" || die "failed to remove /run" + rm -r "${D}/var/cache" || die "failed to remove /var/cache" + + fowners root:icinga /etc/icinga2 + fperms 0750 /etc/icinga2 + fowners icinga:icinga /var/lib/icinga2 + fowners icinga:icinga /var/spool/icinga2 + fowners -R icinga:icingacmd /var/lib/icinga2/api + fowners icinga:icinga /var/spool/icinga2/perfdata + fowners icinga:icingacmd /var/log/icinga2 + + fperms ug+rwX,o-rwx /etc/icinga2 + fperms ug+rwX,o-rwx /var/lib/icinga2 + fperms ug+rwX,o-rwx /var/spool/icinga2 + fperms ug+rwX,o-rwx /var/log/icinga2 + + if use vim-syntax; then + insinto /usr/share/vim/vimfiles + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax + fi + + if use nano-syntax; then + insinto /usr/share/nano + doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc + fi +} + +pkg_postinst() { + if [[ "${PV}" != 9999 ]]; then + local v + for v in ${REPLACING_VERSIONS}; do + if ver_test "${PV}" -gt "${v}"; then + elog "DB IDO schema upgrade may be required." + elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" + fi + done + fi +} diff --git a/net-analyzer/icinga2/icinga2-2.12.2.ebuild b/net-analyzer/icinga2/icinga2-2.12.2.ebuild new file mode 100644 index 000000000000..8ec76ee82fac --- /dev/null +++ b/net-analyzer/icinga2/icinga2-2.12.2.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake systemd + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/Icinga/icinga2.git" +fi + +DESCRIPTION="Distributed, general purpose, network monitoring engine" +HOMEPAGE="https://icinga.com/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="console jumbo-build libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" + +# Add accounts to DEPEND because of fowners in src_install +DEPEND=" + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + >=dev-libs/boost-1.66.0:=[context] + console? ( dev-libs/libedit ) + mariadb? ( dev-db/mariadb-connector-c:= ) + mysql? ( dev-db/mysql-connector-c:= ) + postgres? ( dev-db/postgresql:= ) + dev-libs/yajl:= + acct-user/icinga + acct-group/icinga + acct-group/icingacmd" +BDEPEND=" + sys-devel/bison + >=sys-devel/flex-2.5.35" +RDEPEND=" + ${DEPEND} + plugins? ( || ( + net-analyzer/monitoring-plugins + net-analyzer/nagios-plugins + ) ) + mail? ( virtual/mailx ) + acct-group/nagios" + +REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )" + +PATCHES=( + # https://github.com/Icinga/icinga2/issues/8185#issuecomment-680875875 + "${FILESDIR}/${PN}-2.12.1-boost-1.74.0.patch" +) + +src_configure() { + local mycmakeargs=( + -DICINGA2_UNITY_BUILD=$(usex jumbo-build) + -DCMAKE_INSTALL_SYSCONFDIR=/etc + -DCMAKE_INSTALL_LOCALSTATEDIR=/var + -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2 + -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins" + -DICINGA2_USER=icinga + -DICINGA2_GROUP=icingacmd + -DICINGA2_COMMAND_GROUP=icingacmd + -DICINGA2_RUNDIR=/run + -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON + -DUSE_SYSTEMD=$(usex systemd) + -DLOGROTATE_HAS_SU=ON + -DICINGA2_LTO_BUILD=$(usex lto) + ) + # default to off if minimal, allow the flags to be set otherwise + if use minimal; then + mycmakeargs+=( + -DICINGA2_WITH_MYSQL=OFF + -DICINGA2_WITH_PGSQL=OFF + ) + else + mycmakeargs+=( + -DICINGA2_WITH_PGSQL=$(usex postgres) + -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb)) + ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + newinitd "${FILESDIR}"/icinga2.initd-3 icinga2 + + if use mysql || use mariadb; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* + fi + if use postgres; then + docinto schema + newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql + docinto schema/upgrade + dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/* + fi + + keepdir /etc/icinga2 + keepdir /var/lib/icinga2/api/zones + keepdir /var/lib/icinga2/api/repository + keepdir /var/lib/icinga2/api/log + keepdir /var/spool/icinga2/perfdata + + rm -r "${D}/run" || die "failed to remove /run" + rm -r "${D}/var/cache" || die "failed to remove /var/cache" + + fowners root:icinga /etc/icinga2 + fperms 0750 /etc/icinga2 + fowners icinga:icinga /var/lib/icinga2 + fowners icinga:icinga /var/spool/icinga2 + fowners -R icinga:icingacmd /var/lib/icinga2/api + fowners icinga:icinga /var/spool/icinga2/perfdata + fowners icinga:icingacmd /var/log/icinga2 + + fperms ug+rwX,o-rwx /etc/icinga2 + fperms ug+rwX,o-rwx /var/lib/icinga2 + fperms ug+rwX,o-rwx /var/spool/icinga2 + fperms ug+rwX,o-rwx /var/log/icinga2 + + if use vim-syntax; then + insinto /usr/share/vim/vimfiles + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect + doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax + fi + + if use nano-syntax; then + insinto /usr/share/nano + doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc + fi +} + +pkg_postinst() { + if [[ "${PV}" != 9999 ]]; then + local v + for v in ${REPLACING_VERSIONS}; do + if ver_test "${PV}" -gt "${v}"; then + elog "DB IDO schema upgrade may be required." + elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" + fi + done + fi +} diff --git a/net-analyzer/icinga2/icinga2-9999.ebuild b/net-analyzer/icinga2/icinga2-9999.ebuild index bb0f2605e735..c19de03c6e71 100644 --- a/net-analyzer/icinga2/icinga2-9999.ebuild +++ b/net-analyzer/icinga2/icinga2-9999.ebuild @@ -1,26 +1,27 @@ # Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 + +inherit cmake systemd + if [[ ${PV} != 9999 ]]; then - inherit cmake-utils depend.apache eutils systemd toolchain-funcs wxwidgets SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~arm64 ~x86" else - inherit cmake-utils depend.apache eutils git-r3 systemd toolchain-funcs wxwidgets + inherit git-r3 EGIT_REPO_URI="https://github.com/Icinga/icinga2.git" - EGIT_BRANCH="master" fi DESCRIPTION="Distributed, general purpose, network monitoring engine" -HOMEPAGE="http://icinga.org/icinga2" +HOMEPAGE="https://icinga.com/" LICENSE="GPL-2" SLOT="0" -IUSE="console libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" -WX_GTK_VER="3.0" +IUSE="console jumbo-build libressl lto mail mariadb minimal +mysql nano-syntax +plugins postgres systemd +vim-syntax" -CDEPEND=" +# Add accounts to DEPEND because of fowners in src_install +DEPEND=" !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) >=dev-libs/boost-1.66.0:=[context] @@ -28,39 +29,27 @@ CDEPEND=" mariadb? ( dev-db/mariadb-connector-c:= ) mysql? ( dev-db/mysql-connector-c:= ) postgres? ( dev-db/postgresql:= ) - dev-libs/yajl" - -DEPEND=" - ${CDEPEND} + dev-libs/yajl:= + acct-user/icinga + acct-group/icinga + acct-group/icingacmd" +BDEPEND=" sys-devel/bison >=sys-devel/flex-2.5.35" - RDEPEND=" - ${CDEPEND} + ${DEPEND} plugins? ( || ( net-analyzer/monitoring-plugins net-analyzer/nagios-plugins ) ) mail? ( virtual/mailx ) - acct-user/icinga - acct-group/icinga - acct-group/icingacmd acct-group/nagios" REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )" -want_apache2 - -pkg_setup() { - depend.apache_pkg_setup -} - src_configure() { - sed -i 's/FLAGS\}\ \-g/FLAGS\}\ \-lpthread\ /g' CMakeLists.txt || die local mycmakeargs=( - -DICINGA2_UNITY_BUILD=FALSE - -DCMAKE_VERBOSE_MAKEFILE=ON - -DCMAKE_BUILD_TYPE=None + -DICINGA2_UNITY_BUILD=$(usex jumbo-build) -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2 @@ -69,9 +58,10 @@ src_configure() { -DICINGA2_GROUP=icingacmd -DICINGA2_COMMAND_GROUP=icingacmd -DICINGA2_RUNDIR=/run - -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=yes - -DUSE_SYSTEMD=$(usex systemd ON OFF) + -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON + -DUSE_SYSTEMD=$(usex systemd) -DLOGROTATE_HAS_SU=ON + -DICINGA2_LTO_BUILD=$(usex lto) ) # default to off if minimal, allow the flags to be set otherwise if use minimal; then @@ -81,47 +71,26 @@ src_configure() { ) else mycmakeargs+=( - -DICINGA2_WITH_PGSQL=$(usex postgres ON OFF) - -DICINGA2_WITH_MYSQL=$(usex mysql ON OFF) - ) - fi - # LTO - if use lto; then - mycmakeargs+=( - -DICINGA2_LTO_BUILD=ON - ) - else - mycmakeargs+=( - -DICINGA2_LTO_BUILD=OFF + -DICINGA2_WITH_PGSQL=$(usex postgres) + -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb)) ) fi - cmake-utils_src_configure + cmake_src_configure } src_install() { - BUILDDIR="${WORKDIR}"/icinga2-${PV}_build - cd "${BUILDDIR}" || die - - emake DESTDIR="${D}" install - - einstalldocs + cmake_src_install newinitd "${FILESDIR}"/icinga2.initd-3 icinga2 - if use mysql ; then - docinto schema - newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql - docinto schema/upgrade - dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* - fi - if use mariadb ; then # same as mysql + if use mysql || use mariadb; then docinto schema newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql docinto schema/upgrade dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/* fi - if use postgres ; then + if use postgres; then docinto schema newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql docinto schema/upgrade @@ -163,8 +132,13 @@ src_install() { } pkg_postinst() { - if [[ ${PV} != 9999 && -n ${REPLACING_VERSIONS} && ${REPLACING_VERSIONS} != ${PV} ]]; then - elog "DB IDO schema upgrade may be required required. - https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" + if [[ "${PV}" != 9999 ]]; then + local v + for v in ${REPLACING_VERSIONS}; do + if ver_test "${PV}" -gt "${v}"; then + elog "DB IDO schema upgrade may be required." + elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/" + fi + done fi } diff --git a/net-analyzer/icinga2/metadata.xml b/net-analyzer/icinga2/metadata.xml index 2916a6886755..720f4e2e47b7 100644 --- a/net-analyzer/icinga2/metadata.xml +++ b/net-analyzer/icinga2/metadata.xml @@ -8,6 +8,7 @@ Adds support for line-editing in the console Adds support for link time optimization + Combine source files to speed up build process, requires more memory Allows for mailing of alerts Enable support for the mariadb database backend Adds support for syntax used in the nano editor -- cgit v1.2.3