Lines 1-88
Link Here
|
1 |
--- CMakeLists.txt.orig 2020-12-12 09:55:17 UTC |
1 |
--- CMakeLists.txt.orig 2023-08-25 21:10:07 UTC |
2 |
+++ CMakeLists.txt |
2 |
+++ CMakeLists.txt |
3 |
@@ -7,12 +7,15 @@ include(CTest) |
3 |
@@ -49,7 +49,7 @@ set(POSTSRSD_CONFIGDIR |
4 |
|
4 |
"The default directory where PostSRSd should look for configuration files" |
5 |
option(GENERATE_SRS_SECRET "Generate a random SRS secret if none exists during install" ON) |
5 |
) |
6 |
option(USE_APPARMOR "Enable AppArmor profile" OFF) |
6 |
set(POSTSRSD_DATADIR |
|
|
7 |
- "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/${PROJECT_NAME}" |
8 |
+ "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/db/${PROJECT_NAME}" |
9 |
CACHE PATH "The default directory where PostSRSd should put runtime data" |
10 |
) |
11 |
set(POSTSRSD_CHROOTDIR |
12 |
@@ -73,24 +73,21 @@ option(WITH_REDIS |
13 |
OFF |
14 |
) |
15 |
add_feature_info(WITH_REDIS WITH_REDIS "use Redis as database backend") |
16 |
+set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") |
7 |
+option(MK_CHROOT_DIR "Chroot jail for daemon" OFF) |
17 |
+option(MK_CHROOT_DIR "Chroot jail for daemon" OFF) |
8 |
option(USE_SELINUX "Enable SELinux policy module" OFF) |
18 |
option(TESTS_WITH_ASAN "Run test suite with AddressSanitizer" ON) |
9 |
|
19 |
option(DEVELOPER_BUILD "Add strict compiler options for development only" OFF) |
10 |
+if(MK_CHROOT_DIR) |
20 |
-option(GENERATE_SRS_SECRET "Generate and install a postsrsd.secret" ON) |
11 |
set(CHROOT_DIR "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}" CACHE PATH "Chroot jail for daemon") |
21 |
+option(GENERATE_SRS_SECRET "Generate and install a postsrsd.secret" OFF) |
12 |
+endif() |
22 |
add_feature_info( |
13 |
set(SYSCONF_DIR "/etc" CACHE PATH "Global system configuration folder") |
23 |
GENERATE_SRS_SECRET |
14 |
set(SYSD_UNIT_DIR "${SYSCONF_DIR}/systemd/system" CACHE PATH "Systemd unit file folder") |
24 |
GENERATE_SRS_SECRET |
15 |
-set(CONFIG_DIR "${SYSCONF_DIR}/default" CACHE PATH "Location of startup configuration file") |
25 |
"generate missing ${CMAKE_INSTALL_FULL_SYSCONFDIR}/${PROJECT_NAME}.secret on install" |
16 |
+set(CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "Location of startup configuration file") |
26 |
) |
17 |
set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") |
27 |
-option(INSTALL_SYSTEMD_SERVICE "Install the systemd postsrsd.service unit" ON) |
18 |
mark_as_advanced(CHROOT_DIR SYSCONF_DIR SYSD_UNIT_DIR CONFIG_DIR DOC_DIR) |
28 |
+option(INSTALL_SYSTEMD_SERVICE "Install the systemd postsrsd.service unit" OFF) |
19 |
|
29 |
add_feature_info( |
20 |
@@ -20,8 +23,6 @@ find_program(HELP2MAN help2man DOC "path to help2man e |
30 |
INSTALL_SYSTEMD_SERVICE INSTALL_SYSTEMD_SERVICE |
21 |
find_program(DD dd DOC "path to dd executable") |
31 |
"install the systemd postsrsd.service unit" |
22 |
find_program(BASE64 base64 DOC "path to base64 executable") |
32 |
) |
23 |
find_program(OPENSSL openssl DOC "path to OpenSSL executable") |
33 |
-find_systemd_unit_destination(DETECTED_SYSTEMD_UNITDIR) |
24 |
-find_program(INSSERV insserv DOC "path to insserv executable") |
34 |
-set(SYSTEMD_UNITDIR |
25 |
-find_program(CHKCONFIG chkconfig DOC "path to chkconfig executable") |
35 |
- "${DETECTED_SYSTEMD_UNITDIR}" |
26 |
find_program(SYSTEMCTL systemctl DOC "path to systemctl executable") |
36 |
- CACHE PATH "Install destination for the systemd postsrsd.service unit" |
27 |
|
37 |
-) |
28 |
if(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
38 |
find_systemd_sysusers_destination(DETECTED_SYSTEMD_SYSUSERSDIR) |
29 |
@@ -69,23 +70,6 @@ endif() |
39 |
set(SYSTEMD_SYSUSERSDIR |
30 |
check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG) |
40 |
"${DETECTED_SYSTEMD_SYSUSERSDIR}" |
31 |
add_definitions(-DSIZEOF_UNSIGNED_LONG=${SIZEOF_UNSIGNED_LONG}) |
41 |
@@ -118,7 +115,6 @@ mark_as_advanced( |
32 |
|
42 |
TESTS_WITH_ASAN |
33 |
-if(NOT DEFINED INIT_FLAVOR) |
43 |
GENERATE_SRS_SECRET |
34 |
- if(SYSTEMCTL) |
44 |
DEVELOPER_BUILD |
35 |
- message(STATUS "Detected init flavor: systemd") |
45 |
- SYSTEMD_UNITDIR |
36 |
- set(INIT_FLAVOR "systemd" CACHE STRING "Init daemon of this system") |
46 |
POSTSRSD_CONFIGDIR |
37 |
- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "${SYSCONF_DIR}/init.d/functions") |
47 |
POSTSRSD_CHROOTDIR |
38 |
- message(STATUS "Detected init flavor: sysv-redhat") |
48 |
POSTSRSD_DATADIR |
39 |
- set(INIT_FLAVOR "sysv-redhat" CACHE STRING "Init daemon of this system") |
49 |
@@ -200,11 +196,7 @@ endif() |
40 |
- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "/lib/lsb/init-functions") |
50 |
set(THREADS_PREFER_PTHREAD_FLAG TRUE) |
41 |
- message(STATUS "Detected init flavor: sysv-lsb") |
51 |
find_package(Threads QUIET) |
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 |
|
61 |
-configure_file(init/${PROJECT_NAME}.sysv-lsb.in ${PROJECT_NAME}.sysv-lsb @ONLY) |
62 |
-configure_file(init/${PROJECT_NAME}.sysv-redhat.in ${PROJECT_NAME}.sysv-redhat @ONLY) |
63 |
-configure_file(init/${PROJECT_NAME}.apparmor.in ${PROJECT_NAME}.apparmor @ONLY) |
64 |
-configure_file(init/${PROJECT_NAME}.systemd.in ${PROJECT_NAME}.systemd @ONLY) |
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 |
|
52 |
|
68 |
configure_file(postinstall.cmake.in postinstall.cmake @ONLY) |
53 |
-add_autotools_dependency( |
|
|
54 |
- Confuse |
55 |
- LIBRARY_NAME confuse |
56 |
- EXPORTED_TARGET Confuse::Confuse |
57 |
-) |
58 |
+find_package(Confuse REQUIRED) |
69 |
|
59 |
|
70 |
@@ -118,7 +94,7 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD |
60 |
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} |
61 |
set(DISABLE_TESTS |
72 |
VERBATIM |
62 |
@@ -221,6 +213,7 @@ if(WITH_REDIS) |
|
|
63 |
DIRECTORY "${hiredis_SOURCE_DIR}" PROPERTY EXCLUDE_FROM_ALL TRUE |
64 |
) |
65 |
endif() |
66 |
+ find_package(Hiredis REQUIRED) |
67 |
if(TARGET hiredis::hiredis_static) |
68 |
set(HIREDIS_TARGET hiredis::hiredis_static) |
69 |
elseif(TARGET hiredis::hiredis) |
70 |
@@ -364,13 +357,9 @@ install(TARGETS postsrsd RUNTIME DESTINATION ${CMAKE_I |
71 |
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.conf" |
72 |
DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME}" |
73 |
) |
73 |
) |
74 |
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "share/man/man8") |
74 |
-if(INSTALL_SYSTEMD_SERVICE) |
75 |
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "man/man8") |
75 |
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.service" |
76 |
endif() |
76 |
- DESTINATION "${SYSTEMD_UNITDIR}" |
77 |
|
77 |
- ) |
78 |
if(USE_APPARMOR) |
78 |
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sysusers.d/${PROJECT_NAME}.conf" |
79 |
@@ -135,6 +111,8 @@ if(USE_SELINUX) |
79 |
- DESTINATION "${SYSTEMD_SYSUSERSDIR}" |
|
|
80 |
- ) |
81 |
+ |
82 |
+if(ENABLE_DOCS) |
83 |
+ install(FILES README.rst CHANGELOG.rst doc/postsrsd.conf DESTINATION "${DOC_DIR}" ) |
80 |
endif() |
84 |
endif() |
81 |
|
85 |
|
82 |
install(TARGETS ${PROJECT_NAME} DESTINATION "sbin") |
86 |
if(GENERATE_SRS_SECRET) |
83 |
-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-systemd-launcher DESTINATION "share/${PROJECT_NAME}") |
|
|
84 |
+if(ENABLE_DOCS) |
85 |
+ install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") |
86 |
+endif() |
87 |
install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") |
88 |
install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/postinstall.cmake") |