230 Commits

Author SHA1 Message Date
Alexander Aleksandrovič Klimov
da888b8719
Require CMake 3.5
Compatibility with CMake < 3.5 has been removed from CMake.
2025-04-03 13:25:45 +02:00
Yonas Habteab
3fcc909cdc Don't mix C and C++ compiler flags 2025-03-03 16:52:58 +01:00
Alexander A. Klimov
1c5dfc58ea Always compile with -Wsuggest-override not to forget override
`override` indicates an override of a virtual method and refuses to compile in case of a signature mismatch across the inheritence hierarchy.

This is especially useful when signatures change not to forget anything. Hence, we shall always use `override` whereever applicable.
2025-01-14 15:35:51 +01:00
Alexander A. Klimov
6195a457a7 Silence compiler warnings in code we don't maintain 2025-01-14 11:48:33 +01:00
Alexander A. Klimov
f3c7ac11e9 /v1/debug/malloc_info: call malloc_info(3) if available
The GNU libc function malloc_info(3) provides memory allocation and usage
statistics of Icinga 2 itself.
2024-08-09 12:59:25 +02:00
Alexander Aleksandrovič Klimov
ba0c712a8d
CMakeLists.txt: set(CPACK_WIX_INSTALL_SCOPE NONE)
to stick to CMake pre-v3.29 behavior. CMake v3.29 introduces CPACK_WIX_INSTALL_SCOPE. Its default conflicts with the ALLUSERS property in our icinga-installer/icinga2.wixpatch.cmake.
2024-04-04 17:53:42 +02:00
Alexander A. Klimov
c070e95b03 Windows: bump OpenSSL v1.1 (soon EOL) -> v3.0 2023-06-14 12:03:22 +02:00
Julian Brost
07d2527c7f
Merge pull request #9703 from Icinga/NSClient++
Windows MSI: don't bundle NSClient++
2023-05-24 14:49:54 +02:00
Julian Brost
3276cc9412
Merge pull request #9705 from Icinga/windows-doc-off
On Windows don't ship docs and images
2023-05-11 16:13:55 +02:00
Alexander Aleksandrovič Klimov
9f5ba58a1c
Merge pull request #9706 from Icinga/Al2Klimov-patch-3
Require CMake s/2.8.8/2.8.12/
2023-05-09 10:20:28 +02:00
Alexander A. Klimov
2948d023bf Windows MSI: don't bundle NSClient++ 2023-04-03 14:36:30 +02:00
Julian Brost
41065e30c8
Merge pull request #9485 from Icinga/cxx17
Require GCC 7+ for C++17
2023-03-31 14:06:55 +02:00
Alexander A. Klimov
5055d216a3 Don't include perfdata writers on Windows
Icinga DB, IDO and Livestatus are already not included.
2023-02-23 16:03:57 +01:00
Alexander Aleksandrovič Klimov
45e1c29935
Require CMake s/2.8.8/2.8.12/
because we can.
2023-02-23 15:49:20 +01:00
Alexander A. Klimov
260eb5c475 CMakeLists.txt: provide sane defaults for which subsystems to build
not to have to explicitly disable particular ones in multiple locations.
2023-02-23 14:54:57 +01:00
Alexander A. Klimov
9cdc353325 On Windows don't ship docs and images 2023-02-23 12:31:28 +01:00
Alexander A. Klimov
11f7fb1928 CMakeLists.txt: don't surprise (i.e. terminate) CMake < 3.8 (on SLES 12.5)
with "set(CMAKE_CXX_STANDARD 17)" which it doesn't know.
2023-02-20 15:35:37 +01:00
Alexander A. Klimov
616ccc45fc Require C++17 2023-02-20 15:35:37 +01:00
Alexander A. Klimov
9e90b17eb4 Require GCC 7+ 2023-02-20 15:35:37 +01:00
Julian Brost
83dba2f93b
Merge pull request #7921 from Icinga/feature/-fno-limit-debug-info-6395
CLang: compile with -fno-limit-debug-info
2023-01-12 17:10:39 +01:00
Alexander A. Klimov
797da46f1e Compile with -std=c++YY, not -std=gnu++YY, again 2022-08-15 17:33:54 +02:00
Julian Brost
ad58106226
Merge pull request #9133 from Icinga/feature/gcc63
Require C++14 and GCC 6.3+
2022-08-12 14:17:12 +02:00
Alexander A. Klimov
600fb0e3c2 Introduce AtomicFile 2022-07-28 18:00:37 +02:00
Alexander A. Klimov
1d67a3dcf3 Require C++14 2022-06-13 18:54:39 +02:00
Alexander A. Klimov
9284e67aa2 Require GCC 6.3+ 2022-06-13 18:54:39 +02:00
Alexander Aleksandrovič Klimov
7270caf226
Put -latomic to the other -ls
to make it compiling on Raspberry Pi OS bullseye.
2021-11-23 16:19:05 +01:00
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
Alexander A. Klimov
535bd7a1c4 CLang: compile with -fno-limit-debug-info
refs #6395
2020-03-17 18:12:36 +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