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