diff --git a/mail/postsrsd/Makefile b/mail/postsrsd/Makefile index 85d67c8836728..18b7bee90abbf 100644 --- a/mail/postsrsd/Makefile +++ b/mail/postsrsd/Makefile @@ -1,44 +1,35 @@ PORTNAME= postsrsd -DISTVERSION= 2.0.6 +DISTVERSION= 1.10 +PORTEPOCH= 1 CATEGORIES= mail MAINTAINER= ports@bsdserwis.com COMMENT= Postfix Sender Rewriting Scheme daemon WWW= https://github.com/roehling/postsrsd -LICENSE= BSD3CLAUSE GPLv3+ -LICENSE_COMB= dual +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/LICENSE -LIB_DEPENDS= libconfuse.so:devel/libconfuse +BUILD_DEPENDS= help2man:misc/help2man USES= cmake cpe pkgconfig -USE_LDCONFIG= yes - CPE_VENDOR= ${PORTNAME}_project USE_GITHUB= yes GH_ACCOUNT= roehling USE_RC_SUBR= ${PORTNAME} -OPTIONS_DEFINE= DOCS REDIS - -DOCS_CMAKE_BOOL= ENABLE_DOCS - -REDIS_DESC= Store envelope senders in redis -REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis -REDIS_CMAKE_BOOL= WITH_REDIS - CMAKE_ARGS= --no-warn-unused-cli \ - -DBUILD_TESTING=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS \ -DCMAKE_INCLUDE_PATH="${LOCALBASE}/include" \ -DCMAKE_LIBRARY_PATH="${LOCALBASE}/lib" -PLIST_FILES= \ - sbin/postsrsd \ - ${LOCALBASE}/etc/${PORTNAME}.secret +PLIST_FILES= man/man8/postsrsd.8.gz \ + sbin/postsrsd + +PORTDOCS= README.md README_UPGRADE.md main.cf.ex -PORTDOCS= README.rst CHANGELOG.rst postsrsd.conf +OPTIONS_DEFINE= DOCS + +DOCS_CMAKE_BOOL= ENABLE_DOCS .include diff --git a/mail/postsrsd/distinfo b/mail/postsrsd/distinfo index 1bb8d40c1eb7a..9957be2425e4f 100644 --- a/mail/postsrsd/distinfo +++ b/mail/postsrsd/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1690572136 -SHA256 (roehling-postsrsd-2.0.6_GH0.tar.gz) = 4f45695e208b349dfebd182f48a95b8646781cfe68ae81ecbbee889897a5ec80 -SIZE (roehling-postsrsd-2.0.6_GH0.tar.gz) = 61894 +TIMESTAMP = 1488207086 +SHA256 (roehling-postsrsd-1.10_GH0.tar.gz) = 4880bf12f1a75791f10a995e46a7fce26ee760d1d6942b4602244d2026d4e64a +SIZE (roehling-postsrsd-1.10_GH0.tar.gz) = 34844 diff --git a/mail/postsrsd/files/patch-CMakeLists.txt b/mail/postsrsd/files/patch-CMakeLists.txt index 954083d1fa8e7..c4e43dfaf237f 100644 --- a/mail/postsrsd/files/patch-CMakeLists.txt +++ b/mail/postsrsd/files/patch-CMakeLists.txt @@ -1,80 +1,88 @@ ---- CMakeLists.txt.orig 2023-07-15 18:53:41 UTC +--- CMakeLists.txt.orig 2020-12-12 09:55:17 UTC +++ CMakeLists.txt -@@ -55,6 +55,7 @@ option(WITH_REDIS - ) - add_feature_info(WITH_REDIS WITH_REDIS "use Redis as database backend") +@@ -7,12 +7,15 @@ include(CTest) + option(GENERATE_SRS_SECRET "Generate a random SRS secret if none exists during install" ON) + option(USE_APPARMOR "Enable AppArmor profile" OFF) +option(MK_CHROOT_DIR "Chroot jail for daemon" OFF) - option(TESTS_WITH_ASAN "Run test suite with AddressSanitizer" ON) - option(GENERATE_SRS_SECRET "Generate and install a postsrsd.secret" ON) - add_feature_info( -@@ -71,15 +72,13 @@ set(POSTSRSD_DATADIR - "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/${PROJECT_NAME}" - CACHE PATH "The default directory where PostSRSd should put runtime data" - ) -+set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") + option(USE_SELINUX "Enable SELinux policy module" OFF) + +if(MK_CHROOT_DIR) - set(POSTSRSD_CHROOTDIR - "${POSTSRSD_DATADIR}" - CACHE PATH "The default chroot directory where PostSRSd should jail itself" - ) --find_systemd_unit_destination(DETECTED_SYSTEMD_UNITDIR) --set(SYSTEMD_UNITDIR -- "${DETECTED_SYSTEMD_UNITDIR}" -- CACHE PATH "Install destination for systemd service unit" --) + set(CHROOT_DIR "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}" CACHE PATH "Chroot jail for daemon") +endif() + set(SYSCONF_DIR "/etc" CACHE PATH "Global system configuration folder") + set(SYSD_UNIT_DIR "${SYSCONF_DIR}/systemd/system" CACHE PATH "Systemd unit file folder") +-set(CONFIG_DIR "${SYSCONF_DIR}/default" CACHE PATH "Location of startup configuration file") ++set(CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "Location of startup configuration file") + set(DOC_DIR "share/doc/${PROJECT_NAME}" CACHE PATH "Path for documentation files") + mark_as_advanced(CHROOT_DIR SYSCONF_DIR SYSD_UNIT_DIR CONFIG_DIR DOC_DIR) - if(POSTSRSD_CHROOTDIR) - file(RELATIVE_PATH CHROOTABLE_DATADIR "${POSTSRSD_CHROOTDIR}" -@@ -105,7 +104,6 @@ mark_as_advanced( - POSTSRSD_USER - POSTSRSD_DATADIR - POSTSRSD_CHROOTDIR -- SYSTEMD_UNITDIR - ) +@@ -20,8 +23,6 @@ find_program(HELP2MAN help2man DOC "path to help2man e + find_program(DD dd DOC "path to dd executable") + find_program(BASE64 base64 DOC "path to base64 executable") + find_program(OPENSSL openssl DOC "path to OpenSSL executable") +-find_program(INSSERV insserv DOC "path to insserv executable") +-find_program(CHKCONFIG chkconfig DOC "path to chkconfig executable") + find_program(SYSTEMCTL systemctl DOC "path to systemctl executable") + + if(CMAKE_SYSTEM_NAME MATCHES "SunOS") +@@ -69,23 +70,6 @@ endif() + check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG) + add_definitions(-DSIZEOF_UNSIGNED_LONG=${SIZEOF_UNSIGNED_LONG}) - FetchContent_Declare( -@@ -181,11 +179,7 @@ endif() - set(THREADS_PREFER_PTHREAD_FLAG TRUE) - find_package(Threads QUIET) +-if(NOT DEFINED INIT_FLAVOR) +- if(SYSTEMCTL) +- message(STATUS "Detected init flavor: systemd") +- set(INIT_FLAVOR "systemd" CACHE STRING "Init daemon of this system") +- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "${SYSCONF_DIR}/init.d/functions") +- message(STATUS "Detected init flavor: sysv-redhat") +- set(INIT_FLAVOR "sysv-redhat" CACHE STRING "Init daemon of this system") +- elseif(IS_DIRECTORY "${SYSCONF_DIR}/init.d" AND EXISTS "/lib/lsb/init-functions") +- message(STATUS "Detected init flavor: sysv-lsb") +- set(INIT_FLAVOR "sysv-lsb" CACHE STRING "Init daemon of this system") +- else() +- message(STATUS "Detected init flavor: none") +- message(STATUS "System startup files will not be installed") +- set(INIT_FLAVOR "" CACHE STRING "Init daemon of this system") +- endif() +-endif() +- + add_definitions(-DPOSTSRSD_VERSION=\"${PROJECT_VERSION}\") + add_executable(${PROJECT_NAME} postsrsd.c sha1.c srs2.c) --add_autotools_dependency( -- Confuse -- LIBRARY_NAME confuse -- EXPORTED_TARGET Confuse::Confuse --) -+find_package(Confuse REQUIRED) +@@ -95,16 +79,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "SunOS") + endif() - if(WITH_REDIS) - set(DISABLE_TESTS -@@ -202,6 +196,7 @@ if(WITH_REDIS) - DIRECTORY "${hiredis_SOURCE_DIR}" PROPERTY EXCLUDE_FROM_ALL TRUE - ) - endif() -+ find_package(Hiredis REQUIRED) - if(TARGET hiredis::hiredis_static) - set(HIREDIS_TARGET hiredis::hiredis_static) - elseif(TARGET hiredis::hiredis) -@@ -315,7 +310,7 @@ target_compile_features(postsrsd PRIVATE c_std_99) - target_link_libraries( - postsrsd - PRIVATE Confuse::Confuse -- $<$:sqlite3::sqlite3> -+ $<$:sqlite3> - $<$:${HIREDIS_TARGET}> - $<$:LibMilter::LibMilter> - ${LIBSOCKET} -@@ -335,9 +330,9 @@ install(TARGETS postsrsd RUNTIME DESTINATION ${CMAKE_I - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.conf" - DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME}" + set(POSTSRSD "${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}") +-set(APPARMOR_PROFILE "${CMAKE_INSTALL_PREFIX}/sbin/${POSTSRSD}") +-string(REGEX REPLACE "^/+" "" APPARMOR_PROFILE "${APPARMOR_PROFILE}") +-string(REPLACE "/" "." APPARMOR_PROFILE "${APPARMOR_PROFILE}") + +-configure_file(init/${PROJECT_NAME}.sysv-lsb.in ${PROJECT_NAME}.sysv-lsb @ONLY) +-configure_file(init/${PROJECT_NAME}.sysv-redhat.in ${PROJECT_NAME}.sysv-redhat @ONLY) +-configure_file(init/${PROJECT_NAME}.apparmor.in ${PROJECT_NAME}.apparmor @ONLY) +-configure_file(init/${PROJECT_NAME}.systemd.in ${PROJECT_NAME}.systemd @ONLY) + configure_file(init/${PROJECT_NAME}.default.in ${PROJECT_NAME}.default @ONLY) +-configure_file(init/${PROJECT_NAME}-systemd-launcher.in ${PROJECT_NAME}-systemd-launcher @ONLY) + + configure_file(postinstall.cmake.in postinstall.cmake @ONLY) + +@@ -118,7 +94,7 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${HELP2MAN} ARGS -s8 -o${PROJECT_NAME}.8 -n "Postfix Sender Rewriting Scheme daemon" -N -h-h -v-v ${CMAKE_CURRENT_BINARY_DIR}/${POSTSRSD} + VERBATIM ) --install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.service" -- DESTINATION "${SYSTEMD_UNITDIR}" --) +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "share/man/man8") ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.8 DESTINATION "man/man8") + endif() + + if(USE_APPARMOR) +@@ -135,6 +111,8 @@ if(USE_SELINUX) + endif() + + install(TARGETS ${PROJECT_NAME} DESTINATION "sbin") +-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-systemd-launcher DESTINATION "share/${PROJECT_NAME}") +if(ENABLE_DOCS) -+ install(FILES README.rst CHANGELOG.rst doc/postsrsd.conf DESTINATION "${DOC_DIR}" ) ++ install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") +endif() - - if(GENERATE_SRS_SECRET) - find_program(DD dd DOC "path to dd executable") + install(FILES README.md README_UPGRADE.md main.cf.ex DESTINATION "${DOC_DIR}") + install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/postinstall.cmake") diff --git a/mail/postsrsd/files/patch-postinstall.cmake.in b/mail/postsrsd/files/patch-postinstall.cmake.in new file mode 100644 index 0000000000000..91b345d09cf8e --- /dev/null +++ b/mail/postsrsd/files/patch-postinstall.cmake.in @@ -0,0 +1,69 @@ +--- postinstall.cmake.in.orig 2015-12-13 08:56:05 UTC ++++ postinstall.cmake.in +@@ -1,4 +1,3 @@ +-set(GENERATE_SRS_SECRET "@GENERATE_SRS_SECRET@") + set(SYSCONF_DIR "@SYSCONF_DIR@") + set(SYSD_UNIT_DIR "@SYSD_UNIT_DIR@") + set(CHROOT_DIR "@CHROOT_DIR@") +@@ -7,51 +6,13 @@ set(INIT_FLAVOR "@INIT_FLAVOR@") + set(SECRET_FILE "@PROJECT_NAME@.secret") + set(DD "@DD@") + set(BASE64_ENCODE "@BASE64_ENCODE@") +-set(INSSERV "@INSSERV@") +-set(CHKCONFIG "@CHKCONFIG@") + + if(CHROOT_DIR AND NOT EXISTS "$ENV{DESTDIR}${CHROOT_DIR}") + message(STATUS "Chroot jail: $ENV{DESTDIR}${CHROOT_DIR}") + file(MAKE_DIRECTORY "$ENV{DESTDIR}${CHROOT_DIR}") + endif() + +-if(INIT_FLAVOR) +- if (NOT EXISTS "$ENV{DESTDIR}${CONFIG_DIR}/@PROJECT_NAME@") +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.default" DESTINATION "${CONFIG_DIR}" RENAME "@PROJECT_NAME@") +- else() +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.default" DESTINATION "${CONFIG_DIR}" RENAME "@PROJECT_NAME@.new") +- message(STATUS "") +- message(STATUS "*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*") +- message(STATUS "*!* ${CONFIG_DIR}/@PROJECT_NAME@ will NOT be overwritten!") +- message(STATUS "*!* Please note the changes from @PROJECT_NAME@.new in the same folder and") +- message(STATUS "*!* update your configuration accordinly.") +- message(STATUS "*!* See also README_UPGRADE.md for details") +- message(STATUS "*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*") +- message(STATUS "") +- endif() +-endif() +- +-if(INIT_FLAVOR STREQUAL "sysv-lsb") +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.sysv-lsb" TYPE PROGRAM DESTINATION "${SYSCONF_DIR}/init.d" RENAME "@PROJECT_NAME@") +- if(INSSERV) +- execute_process( +- COMMAND ${INSSERV} -p "$ENV{DESTDIR}${SYSCONF_DIR}/init.d" @PROJECT_NAME@ +- ) +- endif() +-elseif(INIT_FLAVOR STREQUAL "sysv-redhat") +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.sysv-redhat" TYPE PROGRAM DESTINATION "${SYSCONF_DIR}/init.d" RENAME "@PROJECT_NAME@") +- if(CHKCONFIG AND NOT "$ENV{DESTDIR}") +- execute_process( +- COMMAND ${CHKCONFIG} --add @PROJECT_NAME@ +- ) +- endif() +-elseif(INIT_FLAVOR STREQUAL "upstart") +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.upstart" DESTINATION "${SYSCONF_DIR}/init" RENAME "@PROJECT_NAME@.conf") +-elseif(INIT_FLAVOR STREQUAL "systemd") +- file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/@PROJECT_NAME@.systemd" DESTINATION "${SYSD_UNIT_DIR}" RENAME "@PROJECT_NAME@.service") +-endif() +- +-if(GENERATE_SRS_SECRET AND DD AND BASE64_ENCODE AND EXISTS "/dev/urandom" AND NOT EXISTS "$ENV{DESTDIR}${SYSCONF_DIR}/${SECRET_FILE}") ++if(GENERATE_SRS_SECRET AND DD AND BASE64_ENCODE AND EXISTS "/dev/urandom") + message(STATUS "Generating secret key") + execute_process( + COMMAND ${DD} if=/dev/urandom bs=18 count=1 +@@ -60,7 +21,7 @@ if(GENERATE_SRS_SECRET AND DD AND BASE64 + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +-file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}" DESTINATION "${SYSCONF_DIR}" RENAME "${SECRET_FILE}" PERMISSIONS OWNER_READ OWNER_WRITE) ++file(INSTALL FILES "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}" DESTINATION "${CONFIG_DIR}" RENAME "${SECRET_FILE}" PERMISSIONS OWNER_READ OWNER_WRITE) + file(REMOVE "@CMAKE_CURRENT_BINARY_DIR@/${SECRET_FILE}") + endif() + diff --git a/mail/postsrsd/files/patch-src_config.c b/mail/postsrsd/files/patch-src_config.c deleted file mode 100644 index 9373b010cad38..0000000000000 --- a/mail/postsrsd/files/patch-src_config.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/config.c.orig 2023-07-15 18:53:41 UTC -+++ src/config.c -@@ -21,6 +21,7 @@ - #include "util.h" - - #include -+#include - #include - #include - #include diff --git a/mail/postsrsd/files/patch-src_milter.c b/mail/postsrsd/files/patch-src_milter.c deleted file mode 100644 index e62eebab4b69c..0000000000000 --- a/mail/postsrsd/files/patch-src_milter.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/milter.c.orig 2023-07-15 18:53:41 UTC -+++ src/milter.c -@@ -33,6 +33,7 @@ - # include - # endif - # include -+# include - - static char* milter_uri = NULL; - static char* milter_path = NULL; diff --git a/mail/postsrsd/files/patch-src_srs.c b/mail/postsrsd/files/patch-src_srs.c deleted file mode 100644 index 9472800e6613b..0000000000000 --- a/mail/postsrsd/files/patch-src_srs.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/srs.c.orig 2023-07-15 18:53:41 UTC -+++ src/srs.c -@@ -21,6 +21,7 @@ - - #include - #include -+#include - - char* postsrsd_forward(const char* addr, const char* domain, srs_t* srs, - database_t* db, domain_set_t* local_domains, bool* error, diff --git a/mail/postsrsd/files/patch-src_srs2.c b/mail/postsrsd/files/patch-src_srs2.c deleted file mode 100644 index c2998fab85fbc..0000000000000 --- a/mail/postsrsd/files/patch-src_srs2.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/srs2.c.orig 2023-07-15 18:53:41 UTC -+++ src/srs2.c -@@ -21,6 +21,7 @@ - #include - #include - #include /* memcpy, strcpy, memset */ -+#include - #ifdef HAVE_ALLOCA_H - # include - #endif diff --git a/mail/postsrsd/files/patch-src_util.c b/mail/postsrsd/files/patch-src_util.c deleted file mode 100644 index f4fd936dfda07..0000000000000 --- a/mail/postsrsd/files/patch-src_util.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/util.c.orig 2023-07-15 18:53:41 UTC -+++ src/util.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #ifdef HAVE_FCNTL_H - # include - #endif