View | Details | Raw Unified | Return to bug 273002 | Differences between
and this patch

Collapse All | Expand All

(-)b/mail/postsrsd/Makefile (-11 / +21 lines)
Lines 1-34 Link Here
1
PORTNAME=	postsrsd
1
PORTNAME=	postsrsd
2
PORTVERSION=	1.10
2
PORTVERSION=	2.0.6
3
CATEGORIES=	mail
3
CATEGORIES=	mail
4
4
5
MAINTAINER=	ports@bsdserwis.com
5
MAINTAINER=	ports@bsdserwis.com
6
COMMENT=	Postfix Sender Rewriting Scheme daemon
6
COMMENT=	Postfix Sender Rewriting Scheme daemon
7
WWW=		https://github.com/roehling/postsrsd
7
WWW=		https://github.com/roehling/postsrsd
8
8
9
LICENSE=	GPLv2+
9
LICENSE=	BSD3CLAUSE GPLv3+
10
LICENSE_FILE=	${WRKSRC}/LICENSE
10
LICENSE_COMB=	dual
11
11
12
BUILD_DEPENDS=	help2man:misc/help2man
12
LIB_DEPENDS=	libconfuse.so:devel/libconfuse
13
13
14
USES=		cmake cpe pkgconfig
14
USES=		cmake cpe pkgconfig
15
USE_LDCONFIG=	yes
16
15
CPE_VENDOR=	${PORTNAME}_project
17
CPE_VENDOR=	${PORTNAME}_project
16
18
17
USE_GITHUB=	yes
19
USE_GITHUB=	yes
18
GH_ACCOUNT=	roehling
20
GH_ACCOUNT=	roehling
19
USE_RC_SUBR=	${PORTNAME}
21
USE_RC_SUBR=	${PORTNAME}
20
22
23
OPTIONS_DEFINE=	DOCS REDIS
24
25
DOCS_CMAKE_BOOL=	ENABLE_DOCS
26
27
REDIS_DESC=		Store envelope senders in redis
28
REDIS_LIB_DEPENDS=	libhiredis.so:databases/hiredis
29
REDIS_CMAKE_BOOL=	WITH_REDIS
30
21
CMAKE_ARGS=	--no-warn-unused-cli \
31
CMAKE_ARGS=	--no-warn-unused-cli \
32
		-DBUILD_TESTING=OFF \
33
		-DCMAKE_BUILD_TYPE=Release \
34
		-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS \
22
		-DCMAKE_INCLUDE_PATH="${LOCALBASE}/include" \
35
		-DCMAKE_INCLUDE_PATH="${LOCALBASE}/include" \
23
		-DCMAKE_LIBRARY_PATH="${LOCALBASE}/lib"
36
		-DCMAKE_LIBRARY_PATH="${LOCALBASE}/lib"
24
37
25
PLIST_FILES=	man/man8/postsrsd.8.gz \
38
PLIST_FILES=	\
26
		sbin/postsrsd
39
		sbin/postsrsd \
27
40
		${LOCALBASE}/etc/${PORTNAME}.secret
28
PORTDOCS=	README.md README_UPGRADE.md main.cf.ex
29
41
30
OPTIONS_DEFINE=	DOCS
42
PORTDOCS=	README.rst CHANGELOG.rst postsrsd.conf
31
32
DOCS_CMAKE_BOOL=	ENABLE_DOCS
33
43
34
.include <bsd.port.mk>
44
.include <bsd.port.mk>
(-)b/mail/postsrsd/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1488207086
1
TIMESTAMP = 1690572136
2
SHA256 (roehling-postsrsd-1.10_GH0.tar.gz) = 4880bf12f1a75791f10a995e46a7fce26ee760d1d6942b4602244d2026d4e64a
2
SHA256 (roehling-postsrsd-2.0.6_GH0.tar.gz) = 4f45695e208b349dfebd182f48a95b8646781cfe68ae81ecbbee889897a5ec80
3
SIZE (roehling-postsrsd-1.10_GH0.tar.gz) = 34844
3
SIZE (roehling-postsrsd-2.0.6_GH0.tar.gz) = 61894
(-)b/mail/postsrsd/files/patch-CMakeLists.txt (-76 / +68 lines)
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")
(-)a/mail/postsrsd/files/patch-postinstall.cmake.in (-69 lines)
Removed Link Here
1
--- postinstall.cmake.in.orig	2015-12-13 08:56:05 UTC
2
+++ postinstall.cmake.in
3
@@ -1,4 +1,3 @@
4
-set(GENERATE_SRS_SECRET "@GENERATE_SRS_SECRET@")
5
 set(SYSCONF_DIR "@SYSCONF_DIR@")
6
 set(SYSD_UNIT_DIR "@SYSD_UNIT_DIR@")
7
 set(CHROOT_DIR "@CHROOT_DIR@")
8
@@ -7,51 +6,13 @@ set(INIT_FLAVOR "@INIT_FLAVOR@")
9
 set(SECRET_FILE "@PROJECT_NAME@.secret")
10
 set(DD "@DD@")
11
 set(BASE64_ENCODE "@BASE64_ENCODE@")
12
-set(INSSERV "@INSSERV@")
13
-set(CHKCONFIG "@CHKCONFIG@")
14
 
15
 if(CHROOT_DIR AND NOT EXISTS "$ENV{DESTDIR}${CHROOT_DIR}")
16
 	message(STATUS "Chroot jail: $ENV{DESTDIR}${CHROOT_DIR}")
17
 	file(MAKE_DIRECTORY "$ENV{DESTDIR}${CHROOT_DIR}")
18
 endif()
19
 
20
-if(INIT_FLAVOR)
21
-	if (NOT EXISTS "$ENV{DESTDIR}${CONFIG_DIR}/@PROJECT_NAME@")
22
-		file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.default" DESTINATION "${CONFIG_DIR}" RENAME "@PROJECT_NAME@")
23
-	else()
24
-		file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.default" DESTINATION "${CONFIG_DIR}" RENAME "@PROJECT_NAME@.new")
25
-		message(STATUS "")
26
-		message(STATUS "*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*")
27
-		message(STATUS "*!* ${CONFIG_DIR}/@PROJECT_NAME@ will NOT be overwritten!")
28
-		message(STATUS "*!* Please note the changes from @PROJECT_NAME@.new in the same folder and")
29
-		message(STATUS "*!* update your configuration accordinly.")
30
-		message(STATUS "*!* See also README_UPGRADE.md for details")
31
-		message(STATUS "*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*")
32
-		message(STATUS "")
33
-	endif()
34
-endif()
35
-
36
-if(INIT_FLAVOR STREQUAL "sysv-lsb")
37
-	file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.sysv-lsb" TYPE PROGRAM DESTINATION "${SYSCONF_DIR}/init.d" RENAME "@PROJECT_NAME@")
38
-	if(INSSERV)
39
-		execute_process(
40
-			COMMAND ${INSSERV} -p "$ENV{DESTDIR}${SYSCONF_DIR}/init.d" @PROJECT_NAME@
41
-		)
42
-	endif()
43
-elseif(INIT_FLAVOR STREQUAL "sysv-redhat")
44
-	file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.sysv-redhat" TYPE PROGRAM DESTINATION "${SYSCONF_DIR}/init.d" RENAME "@PROJECT_NAME@")
45
-	if(CHKCONFIG AND NOT "$ENV{DESTDIR}")
46
-		execute_process(
47
-			COMMAND ${CHKCONFIG} --add @PROJECT_NAME@
48
-		)
49
-	endif()
50
-elseif(INIT_FLAVOR STREQUAL "upstart")
51
-	file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.upstart" DESTINATION "${SYSCONF_DIR}/init" RENAME "@PROJECT_NAME@.conf")
52
-elseif(INIT_FLAVOR STREQUAL "systemd")
53
-	file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.systemd" DESTINATION "${SYSD_UNIT_DIR}" RENAME "@PROJECT_NAME@.service")
54
-endif()
55
-
56
-if(GENERATE_SRS_SECRET AND DD AND BASE64_ENCODE AND EXISTS "/dev/urandom" AND NOT EXISTS "$ENV{DESTDIR}${SYSCONF_DIR}/${SECRET_FILE}")
57
+if(GENERATE_SRS_SECRET AND DD AND BASE64_ENCODE AND EXISTS "/dev/urandom")
58
 	message(STATUS "Generating secret key")
59
 	execute_process(
60
 		COMMAND ${DD} if=/dev/urandom bs=18 count=1
61
@@ -60,7 +21,7 @@ if(GENERATE_SRS_SECRET AND DD AND BASE64
62
 		ERROR_QUIET
63
 		OUTPUT_STRIP_TRAILING_WHITESPACE
64
 	)
65
-file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}" DESTINATION "${SYSCONF_DIR}" RENAME "${SECRET_FILE}" PERMISSIONS OWNER_READ OWNER_WRITE)
66
+file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}" DESTINATION "${CONFIG_DIR}" RENAME "${SECRET_FILE}" PERMISSIONS OWNER_READ OWNER_WRITE)
67
 file(REMOVE "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}")
68
 endif()
69
 
(-)b/mail/postsrsd/files/patch-src_config.c (+10 lines)
Added Link Here
1
--- src/config.c.orig	2023-07-15 18:53:41 UTC
2
+++ src/config.c
3
@@ -21,6 +21,7 @@
4
 #include "util.h"
5
 
6
 #include <errno.h>
7
+#include <getopt.h>
8
 #include <stdio.h>
9
 #include <stdlib.h>
10
 #include <string.h>
(-)b/mail/postsrsd/files/patch-src_milter.c (+10 lines)
Added Link Here
1
--- src/milter.c.orig	2023-07-15 18:53:41 UTC
2
+++ src/milter.c
3
@@ -33,6 +33,7 @@
4
 #        include <unistd.h>
5
 #    endif
6
 #    include <string.h>
7
+#    include <strings.h>
8
 
9
 static char* milter_uri = NULL;
10
 static char* milter_path = NULL;
(-)b/mail/postsrsd/files/patch-src_srs.c (+10 lines)
Added Link Here
1
--- src/srs.c.orig	2023-07-15 18:53:41 UTC
2
+++ src/srs.c
3
@@ -21,6 +21,7 @@
4
 
5
 #include <ctype.h>
6
 #include <string.h>
7
+#include <strings.h>
8
 
9
 char* postsrsd_forward(const char* addr, const char* domain, srs_t* srs,
10
                        database_t* db, domain_set_t* local_domains, bool* error,
(-)b/mail/postsrsd/files/patch-src_srs2.c (+10 lines)
Added Link Here
1
--- src/srs2.c.orig	2023-07-15 18:53:41 UTC
2
+++ src/srs2.c
3
@@ -21,6 +21,7 @@
4
 #include <postsrsd_build_config.h>
5
 #include <stdarg.h>
6
 #include <string.h> /* memcpy, strcpy, memset */
7
+#include <strings.h>
8
 #ifdef HAVE_ALLOCA_H
9
 #    include <alloca.h>
10
 #endif
(-)b/mail/postsrsd/files/patch-src_util.c (+10 lines)
Added Link Here
1
--- src/util.c.orig	2023-07-15 18:53:41 UTC
2
+++ src/util.c
3
@@ -23,6 +23,7 @@
4
 #include <stdio.h>
5
 #include <stdlib.h>
6
 #include <string.h>
7
+#include <strings.h>
8
 #ifdef HAVE_FCNTL_H
9
 #    include <fcntl.h>
10
 #endif

Return to bug 273002