Commit Graph

203 Commits

Author SHA1 Message Date
Julian Brost 3ad9d3316c Compile with -D_GNU_SOURCE
Needed by `boost::stacktrace` for `_Unwind_Backtrace()`.
2021-03-01 14:07:11 +01:00
Julian Brost cdfcef4d63 CMakeLists: use HAVE_LIBEXECINFO only after actually checking for it
So far, the check that actually sets HAVE_LIBEXECINFO was executed after
it was already used to add dependencies.
2021-03-01 14:07:11 +01:00
Julian Brost b931194f59 Use backtrace_symbols() when printing stack traces on FreeBSD
Unfortunately, the symbol resolution of boost::stacktrace is broken on
FreeBSD, therefore fall back to using backtrace_symbols() to print the
stack trace saved by Boost.

Additionally, -D_GNU_SOURCE is required on FreeBSD for the
_Unwind_Backtrace function used by boost::stacktrace.
2021-03-01 14:07:09 +01:00
Julian Brost f084cdecbe Windows: require at least MSVC 19.20 to build
Older versions of MSVC fail to rethrow an unhandled C++ exception (using
`throw;`) in the termination handler (`std::set_terminate`), however
Icinga relies on this behavior in its crash handler
(`Application::ExceptionHandler`).
2021-03-01 14:06:47 +01:00
Edgar Fuß 718ebe3cbd Avoid name clashes on case-insensitive file systems
On case-insensitive file systems (i.e. macOS), the VERSION file collides with the Boost-provided version file on #include <version>.

Work around by re-naming VERSION to ICINGA2_VERSION.
2021-01-15 17:46:16 +01:00
Alexander A. Klimov 34942a3511 Define BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT
... to enable compiling with Boost v1.74.

refs #8185
2020-12-14 15:59:56 +01:00
Alexander Aleksandrovič Klimov dbb5286d2c
Merge pull request #7904 from sni/fix_boost_lib_order
fix boost library order
2020-10-29 13:43:04 +01:00
Sven Nierlein 0ea6e677b6 fix boost library order
When statically compiling icinga2 with a local boost the order of the boost libraries matters.
Correcting the order fixes the following linker issue:

```
make[5]: Entering directory `.../icinga2/icinga2-2.11.3/build'
[ 98%] Linking CXX executable ../Bin/RELEASE/icinga2
.../boost_1_72_0/lib/libboost_coroutine.a(coroutine_context.o): In function `boost::coroutines::detail::coroutine_context::coroutine_context(void (*)(boost::context::detail::transfer_t), boost::coroutines::detail::preallocated const&)':
coroutine_context.cpp:(.text+0x59): undefined reference to `make_fcontext'
.../boost_1_72_0/lib/libboost_coroutine.a(coroutine_context.o): In function `boost::coroutines::detail::coroutine_context::jump(boost::coroutines::detail::coroutine_context&, void*)':
coroutine_context.cpp:(.text+0xe8): undefined reference to `jump_fcontext'
collect2: error: ld returned 1 exit status
make[5]: *** [Bin/RELEASE/icinga2] Error 1
```

Signed-off-by: Sven Nierlein <sven@nierlein.de>
2020-03-10 10:37:57 +01:00
Michael Insel d051d71b75 ChocoInstall: Update script to use checksum verification 2020-03-03 18:48:11 +01:00
Michael Friedrich 44d1cefbf7 ChocoInstall: Prefer short release version download, not long x.y.z.a 2020-03-03 18:48:11 +01:00
Michael Friedrich e89fea12d5 Disable IcingaDB on Windows
Rationale: Masters running with IcingaDB are supported, agents are not.
2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov 04dfbb07ce Rename ICINGA2_WITH_REDIS to ICINGA2_WITH_ICINGADB 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 132b2dcb77 Get rid of hiredis 2019-11-02 14:00:24 +01:00
Michael Friedrich ddf2aea065 Compile redis into the icinga2 binary; apply more C++11 code changes 2019-11-02 14:00:23 +01:00
Gunnar Beutner b75e21a998 Redis support (WIP) 2019-11-02 14:00:23 +01:00
Michael Friedrich ac57ec3c67
Merge pull request #7434 from Icinga/bugfix/cmake-aix
CMake: Fix CXX flags for AIX
2019-08-27 13:04:03 +02:00
Michael Friedrich a99855be93 CMake: Fix LTO flags for shared linking 2019-08-20 20:52:51 +02:00
Michael Friedrich a6f8031a39 CMake: Fix CXX flags for AIX 2019-08-20 15:46:45 +02:00
Michael Friedrich c89ffe408d CMake: If target arch cannot be detected, don't throw an error
This only happens when ccache is improperly in use and -dumpmachine
doesn't work. Not on our ARM build platform.
2019-08-08 19:26:10 +02:00
Markus Frosch 8b877e2a9b cmake: Improve ICINGA2_VERSION_SAFE for pre-releases 2019-07-26 09:34:53 +02:00
Michael Friedrich bdc3a12524
Merge pull request #7299 from Icinga/bugfix/arm-atomic
CMake: Detect ARM target architecture and set required -latomic
2019-07-10 08:21:49 +02:00
Michael Friedrich 22668652c3 CMake: Detect ARM target architecture and set required -latomic 2019-07-09 12:11:25 +02:00
Michael Friedrich aabfcfef9e
Merge pull request #7065 from uubk/logrotate-fix
Fix logrotate "Operation not permitted"
2019-07-08 09:47:18 +02:00
Michael Insel 54d9470c6b Use WixNetFxExtension to detect installed .NET
This implements the use of the WixNetFxExtension for the WIX toolset, to
detect the installed .NET Framework version. If the installed .NET
version is lower than 4.6 the installation process will terminate with
the note to install at least .NET Framework 4.6.

refs #7090
2019-04-29 12:19:05 +02:00
Alexander A. Klimov 4ccc152990 Require Boost.Filesystem
refs #7101
2019-04-25 09:53:01 +02:00
Markus Frosch f70e215cc9 windows: Disable SAFESEH on x86 2019-04-05 09:03:04 +02:00
Markus Frosch 9f82faa439 cmake: Use the actual GIT_VERSION for ICINGA2_VERSION
And use a safe version with dots only for Windows.
2019-04-05 09:03:04 +02:00
Markus Frosch 1ab23c20fb windows: Disable optimization for boost::context 2019-04-05 09:03:04 +02:00
Markus Frosch 53bb10c2f2 windows: Remove the flag to disable auto linking 2019-04-05 09:03:04 +02:00
Markus Frosch ff3a2fe3da CMake: Handle INSTALL_RPATH globally and allow external additions 2019-04-01 13:31:16 +02:00
Alexander A. Klimov ac72ca4ae6 Don't warn that Boost.Coroutine v1 is deprecated 2019-04-01 11:40:14 +02:00
Alexander A. Klimov f38c68a4c6 Require Boost context, coroutine and date_time 2019-04-01 11:40:14 +02:00
Alexander A. Klimov c262c701d9 Require Boost v1.66.0+ 2019-04-01 11:40:14 +02:00
Maximilian Falkenstein a205fd0887
Fix logrotate "Operation not permitted"
PR 75 (commit afb6346) added support for the 'su' directive of
logrotate. However, when using 'su', we cannot chown to arbitrary file
owners anymore, which means that unless the file has already been
created with the same permissions we'll get an error.
Fix this by not using chown and su together.
2019-03-31 22:16:06 +02:00
Michael Friedrich 1c6a8d7467 Update NSClient++ to 0.5.2.39 2019-03-19 10:00:24 +01:00
Michael Friedrich 6ace8001d8
Merge pull request #7019 from Icinga/feature/new-json-library
Replace YAJL with nlohmann::json
2019-03-18 17:26:57 +01:00
Alexander A. Klimov 9daca0b216 Get rid of YAJL 2019-03-18 15:07:57 +01:00
Michael Friedrich 724b34c6f2 Integrate nlohmann_json into CMake
Better integration into base/json.cpp

Signed-off-by: Alexander A. Klimov <alexander.klimov@icinga.com>
2019-03-18 15:07:50 +01:00
Alexander A. Klimov 85c0d2c2cc Integrate UTF8-CPP into CMake 2019-03-15 13:34:20 +01:00
Michael Friedrich 37b715baf1 Replace a few more copyright strings 2019-02-25 16:30:40 +01:00
Michael Friedrich 458f997a18 Replace Copyright header with a short version, part II 2019-02-25 15:09:36 +01:00
Alexander A. Klimov c693a07399 Raise required Boost version to 1.53
refs #6933
2019-02-08 17:33:46 +01:00
Michael Friedrich dea5ec614e icinga.com: Update CMakeLists.txt 2018-10-18 09:35:18 +02:00
Markus Frosch 9fbc40615a Improve path handling in cmake and daemon 2018-08-07 14:10:26 +02:00
Andrea Kao 5c7c21650d edit Icinga license info so that GitHub recognizes it
GitHub uses a library called Licensee to identify a project's license
type. It shows this information in the status bar and via the API if it
can unambiguously identify the license.

This commit modifies a few of Icinga's license-related docs so that
Licensee is able to recognize the repository's license type. It moves
the contents of COPYING.Exceptions to the relevant section of the
README, which has been renamed to "Licensing". It then removes the
COPYING.Exceptions file and updates CMakeLists.txt accordingly.

Collectively, these changes allow Licensee to successfully identify the
license type of Icinga as GPL 2.0.

Signed-off-by: Andrea Kao <eirinikos@gmail.com>
2018-05-02 17:53:53 -07:00
Michael Friedrich a45dba15d3 Fix SysconfigFile detection for binary builds
It may happen that the variable is not properly initialized
and we'll have an empty string. Observed on macOS and inside
Docker.

refs #6215
2018-04-19 08:55:05 +02:00
Michael Friedrich 441536f292 Use VERSION instead of icinga2.spec 2018-04-05 16:59:57 +02:00
Gunnar Beutner e8b3faec91 Remove Icinga Studio 2018-02-02 07:22:50 +01:00
Jean Flach c418a9611e Add systemd watchdog and adjust reload behaviour 2018-01-19 16:52:36 +01:00
Jean Flach 1da6b2c883 Fix whitespaces in CMakeLists files
Uses 2 space indentation as standard
2018-01-19 09:19:40 +01:00