Skip to content

Commit

Permalink
mail/postsrsd: revert update to 2.0.6
Browse files Browse the repository at this point in the history
This reverts commit 06c06ad.

Unfortunately the /usr/local/etc/rc.d/postsrsd script does not work with
postsrsd 2.x as several command line options were dropped in favor of a
config file.  Revert the update until a solution is found.

PR:		273002
Reported by:	Peter Putzer <freebsd@mnd.sc>
  • Loading branch information
clausecker committed Aug 13, 2023
1 parent bbbf8e3 commit ccf1c3f
Show file tree
Hide file tree
Showing 9 changed files with 160 additions and 142 deletions.
33 changes: 12 additions & 21 deletions 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 <bsd.port.mk>
6 changes: 3 additions & 3 deletions 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
144 changes: 76 additions & 68 deletions 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
- $<$<BOOL:${WITH_SQLITE}>:sqlite3::sqlite3>
+ $<$<BOOL:${WITH_SQLITE}>:sqlite3>
$<$<BOOL:${WITH_REDIS}>:${HIREDIS_TARGET}>
$<$<BOOL:${WITH_MILTER}>: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")
69 changes: 69 additions & 0 deletions 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()

10 changes: 0 additions & 10 deletions mail/postsrsd/files/patch-src_config.c

This file was deleted.

10 changes: 0 additions & 10 deletions mail/postsrsd/files/patch-src_milter.c

This file was deleted.

10 changes: 0 additions & 10 deletions mail/postsrsd/files/patch-src_srs.c

This file was deleted.

10 changes: 0 additions & 10 deletions mail/postsrsd/files/patch-src_srs2.c

This file was deleted.

10 changes: 0 additions & 10 deletions mail/postsrsd/files/patch-src_util.c

This file was deleted.

0 comments on commit ccf1c3f

Please sign in to comment.