Lines 1-88
Link Here
|
1 |
--- CMakeLists.txt.orig 2020-12-12 09:55:17 UTC |
1 |
--- CMakeLists.txt.orig 2023-07-15 18:53:41 UTC |
2 |
+++ CMakeLists.txt |
2 |
+++ CMakeLists.txt |
3 |
@@ -7,12 +7,15 @@ include(CTest) |
3 |
@@ -55,6 +55,7 @@ option(WITH_REDIS |
|
|
4 |
) |
5 |
add_feature_info(WITH_REDIS WITH_REDIS "use Redis as database backend") |
4 |
|
6 |
|
5 |
option(GENERATE_SRS_SECRET "Generate a random SRS secret if none exists during install" ON) |
|
|
6 |
option(USE_APPARMOR "Enable AppArmor profile" OFF) |
7 |
+option(MK_CHROOT_DIR "Chroot jail for daemon" OFF) |
7 |
+option(MK_CHROOT_DIR "Chroot jail for daemon" OFF) |
8 |
option(USE_SELINUX "Enable SELinux policy module" OFF) |
8 |
option(TESTS_WITH_ASAN "Run test suite with AddressSanitizer" ON) |
9 |
|
9 |
option(GENERATE_SRS_SECRET "Generate and install a postsrsd.secret" ON) |
|
|
10 |
add_feature_info( |
11 |
@@ -71,15 +72,13 @@ set(POSTSRSD_DATADIR |
12 |
"${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/${PROJECT_NAME}" |
13 |
CACHE PATH "The default directory where PostSRSd should put runtime data" |
14 |
) |
15 |
+set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") |
10 |
+if(MK_CHROOT_DIR) |
16 |
+if(MK_CHROOT_DIR) |
11 |
set(CHROOT_DIR "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}" CACHE PATH "Chroot jail for daemon") |
17 |
set(POSTSRSD_CHROOTDIR |
|
|
18 |
"${POSTSRSD_DATADIR}" |
19 |
CACHE PATH "The default chroot directory where PostSRSd should jail itself" |
20 |
) |
21 |
-find_systemd_unit_destination(DETECTED_SYSTEMD_UNITDIR) |
22 |
-set(SYSTEMD_UNITDIR |
23 |
- "${DETECTED_SYSTEMD_UNITDIR}" |
24 |
- CACHE PATH "Install destination for systemd service unit" |
25 |
-) |
12 |
+endif() |
26 |
+endif() |
13 |
set(SYSCONF_DIR "/etc" CACHE PATH "Global system configuration folder") |
|
|
14 |
set(SYSD_UNIT_DIR "${SYSCONF_DIR}/systemd/system" CACHE PATH "Systemd unit file folder") |
15 |
-set(CONFIG_DIR "${SYSCONF_DIR}/default" CACHE PATH "Location of startup configuration file") |
16 |
+set(CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "Location of startup configuration file") |
17 |
set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") |
18 |
mark_as_advanced(CHROOT_DIR SYSCONF_DIR SYSD_UNIT_DIR CONFIG_DIR DOC_DIR) |
19 |
|
20 |
@@ -20,8 +23,6 @@ find_program(HELP2MAN help2man DOC "path to help2man e |
21 |
find_program(DD dd DOC "path to dd executable") |
22 |
find_program(BASE64 base64 DOC "path to base64 executable") |
23 |
find_program(OPENSSL openssl DOC "path to OpenSSL executable") |
24 |
-find_program(INSSERV insserv DOC "path to insserv executable") |
25 |
-find_program(CHKCONFIG chkconfig DOC "path to chkconfig executable") |
26 |
find_program(SYSTEMCTL systemctl DOC "path to systemctl executable") |
27 |
|
28 |
if(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
29 |
@@ -69,23 +70,6 @@ endif() |
30 |
check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG) |
31 |
add_definitions(-DSIZEOF_UNSIGNED_LONG=${SIZEOF_UNSIGNED_LONG}) |
32 |
|
27 |
|
33 |
-if(NOT DEFINED INIT_FLAVOR) |
28 |
if(POSTSRSD_CHROOTDIR) |
34 |
- if(SYSTEMCTL) |
29 |
file(RELATIVE_PATH CHROOTABLE_DATADIR "${POSTSRSD_CHROOTDIR}" |
35 |
- message(STATUS "Detected init flavor: systemd") |
30 |
@@ -105,7 +104,6 @@ mark_as_advanced( |
36 |
- set(INIT_FLAVOR "systemd" CACHE STRING "Init daemon of this system") |
31 |
POSTSRSD_USER |
37 |
- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "${SYSCONF_DIR}/init.d/functions") |
32 |
POSTSRSD_DATADIR |
38 |
- message(STATUS "Detected init flavor: sysv-redhat") |
33 |
POSTSRSD_CHROOTDIR |
39 |
- set(INIT_FLAVOR "sysv-redhat" CACHE STRING "Init daemon of this system") |
34 |
- SYSTEMD_UNITDIR |
40 |
- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "/lib/lsb/init-functions") |
35 |
) |
41 |
- message(STATUS "Detected init flavor: sysv-lsb") |
|
|
42 |
- set(INIT_FLAVOR "sysv-lsb" CACHE STRING "Init daemon of this system") |
43 |
- else() |
44 |
- message(STATUS "Detected init flavor: none") |
45 |
- message(STATUS "System startup files will not be installed") |
46 |
- set(INIT_FLAVOR "" CACHE STRING "Init daemon of this system") |
47 |
- endif() |
48 |
-endif() |
49 |
- |
50 |
add_definitions(-DPOSTSRSD_VERSION=\"${PROJECT_VERSION}\") |
51 |
add_executable(${PROJECT_NAME} postsrsd.c sha1.c srs2.c) |
52 |
|
53 |
@@ -95,16 +79,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
54 |
endif() |
55 |
|
56 |
set(POSTSRSD "${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}") |
57 |
-set(APPARMOR_PROFILE "${CMAKE_INSTALL_PREFIX}/sbin/${POSTSRSD}") |
58 |
-string(REGEX REPLACE "^/+" "" APPARMOR_PROFILE "${APPARMOR_PROFILE}") |
59 |
-string(REPLACE "/" "." APPARMOR_PROFILE "${APPARMOR_PROFILE}") |
60 |
|
36 |
|
61 |
-configure_file(init/${PROJECT_NAME}.sysv-lsb.in ${PROJECT_NAME}.sysv-lsb @ONLY) |
37 |
FetchContent_Declare( |
62 |
-configure_file(init/${PROJECT_NAME}.sysv-redhat.in ${PROJECT_NAME}.sysv-redhat @ONLY) |
38 |
@@ -181,11 +179,7 @@ endif() |
63 |
-configure_file(init/${PROJECT_NAME}.apparmor.in ${PROJECT_NAME}.apparmor @ONLY) |
39 |
set(THREADS_PREFER_PTHREAD_FLAG TRUE) |
64 |
-configure_file(init/${PROJECT_NAME}.systemd.in ${PROJECT_NAME}.systemd @ONLY) |
40 |
find_package(Threads QUIET) |
65 |
configure_file(init/${PROJECT_NAME}.default.in ${PROJECT_NAME}.default @ONLY) |
|
|
66 |
-configure_file(init/${PROJECT_NAME}-systemd-launcher.in ${PROJECT_NAME}-systemd-launcher @ONLY) |
67 |
|
41 |
|
68 |
configure_file(postinstall.cmake.in postinstall.cmake @ONLY) |
42 |
-add_autotools_dependency( |
|
|
43 |
- Confuse |
44 |
- LIBRARY_NAME confuse |
45 |
- EXPORTED_TARGET Confuse::Confuse |
46 |
-) |
47 |
+find_package(Confuse REQUIRED) |
69 |
|
48 |
|
70 |
@@ -118,7 +94,7 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD |
49 |
if(WITH_REDIS) |
71 |
COMMAND ${HELP2MAN} ARGS -s8 -o${PROJECT_NAME}.8 -n "Postfix Sender Rewriting Scheme daemon" -N -h-h -v-v ${CMAKE_CURRENT_BINARY_DIR}/${POSTSRSD} |
50 |
set(DISABLE_TESTS |
72 |
VERBATIM |
51 |
@@ -202,6 +196,7 @@ if(WITH_REDIS) |
|
|
52 |
DIRECTORY "${hiredis_SOURCE_DIR}" PROPERTY EXCLUDE_FROM_ALL TRUE |
53 |
) |
54 |
endif() |
55 |
+ find_package(Hiredis REQUIRED) |
56 |
if(TARGET hiredis::hiredis_static) |
57 |
set(HIREDIS_TARGET hiredis::hiredis_static) |
58 |
elseif(TARGET hiredis::hiredis) |
59 |
@@ -315,7 +310,7 @@ target_compile_features(postsrsd PRIVATE c_std_99) |
60 |
target_link_libraries( |
61 |
postsrsd |
62 |
PRIVATE Confuse::Confuse |
63 |
- $<$<BOOL:${WITH_SQLITE}>:sqlite3::sqlite3> |
64 |
+ $<$<BOOL:${WITH_SQLITE}>:sqlite3> |
65 |
$<$<BOOL:${WITH_REDIS}>:${HIREDIS_TARGET}> |
66 |
$<$<BOOL:${WITH_MILTER}>:LibMilter::LibMilter> |
67 |
${LIBSOCKET} |
68 |
@@ -335,9 +330,9 @@ install(TARGETS postsrsd RUNTIME DESTINATION ${CMAKE_I |
69 |
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.conf" |
70 |
DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME}" |
73 |
) |
71 |
) |
74 |
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "share/man/man8") |
72 |
-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.service" |
75 |
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "man/man8") |
73 |
- DESTINATION "${SYSTEMD_UNITDIR}" |
76 |
endif() |
74 |
-) |
77 |
|
|
|
78 |
if(USE_APPARMOR) |
79 |
@@ -135,6 +111,8 @@ if(USE_SELINUX) |
80 |
endif() |
81 |
|
82 |
install(TARGETS ${PROJECT_NAME} DESTINATION "sbin") |
83 |
-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-systemd-launcher DESTINATION "share/${PROJECT_NAME}") |
84 |
+if(ENABLE_DOCS) |
75 |
+if(ENABLE_DOCS) |
85 |
+ install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") |
76 |
+ install(FILES README.rst CHANGELOG.rst doc/postsrsd.conf DESTINATION "${DOC_DIR}" ) |
86 |
+endif() |
77 |
+endif() |
87 |
install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") |
78 |
|
88 |
install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/postinstall.cmake") |
79 |
if(GENERATE_SRS_SECRET) |
|
|
80 |
find_program(DD dd DOC "path to dd executable") |