]> granicus.if.org Git - icinga2/commitdiff
Re-add the 'su' directive to logrotate if supported
authorLouis Sautier <sautier.louis@gmail.com>
Sat, 26 Mar 2016 13:41:58 +0000 (14:41 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 20 Apr 2016 08:07:24 +0000 (10:07 +0200)
- try to detect a recent logrotate version which supports the 'su'
directive (added in 3.8.0, see
https://github.com/logrotate/logrotate/commit/5be96cf1822496f80227e9a446281c3fa42e7b67#diff-e4eb329834da3d36278b1b7d943b3bc9R6)
- if logrotate can't be found, assume an old version is used
- allow the parameter to be forced by the user

fixes #9249

Signed-off-by: Gunnar Beutner <gunnar@beutner.name>
CMakeLists.txt
etc/logrotate.d/icinga2.cmake

index bf5379f0fba0202c600b6e12d4aee378e9fc2f5a..97ccd553380d21c1c291a17825254393931cb396 100644 (file)
@@ -87,6 +87,22 @@ if(WIN32)
   add_definitions(/bigobj)
 endif()
 
+if(NOT DEFINED LOGROTATE_HAS_SU)
+  set(LOGROTATE_HAS_SU OFF)
+  execute_process(COMMAND "/usr/sbin/logrotate" ERROR_VARIABLE LOGROTATE_OUTPUT)
+  if(LOGROTATE_OUTPUT)
+    string(REGEX REPLACE "^logrotate ([0-9.]*).*" "\\1" LOGROTATE_VERSION
+      ${LOGROTATE_OUTPUT})
+    message(STATUS "Found logrotate (found version \"${LOGROTATE_VERSION}\")")
+    if("${LOGROTATE_VERSION}" VERSION_GREATER "3.7.9")
+      set(LOGROTATE_HAS_SU ON)
+    endif()
+  endif()
+endif()
+if(LOGROTATE_HAS_SU)
+  set(LOGROTATE_USE_SU "\n\tsu ${ICINGA2_USER} ${ICINGA2_GROUP}")
+endif()
+
 find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS thread system program_options regex REQUIRED)
 
 link_directories(${Boost_LIBRARY_DIRS})
index d96fd7a0981fbede9fd4cd5a377d8d8d5c832ca2..91d8d23d3a6ef3ebc5738008a5081596863ae7ac 100644 (file)
@@ -1,6 +1,6 @@
 @CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/icinga2.log @CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/debug.log {
        daily
-       rotate 7
+       rotate 7@LOGROTATE_USE_SU@
        compress
        delaycompress
        missingok
@@ -13,7 +13,7 @@
 
 @CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/error.log {
        daily
-       rotate 90
+       rotate 90@LOGROTATE_USE_SU@
        compress
        delaycompress
        missingok