From de1c1464953c52821aa8473914b5a363e4d3bf27 Mon Sep 17 00:00:00 2001 From: Christoph Date: Mon, 5 Jan 2026 00:36:33 +0100 Subject: [PATCH] install_sympa.sh: add support for debian 13 (trixie). --- conf/install_sympa.conf.sample | 27 ++++++++++ install_sympa.sh | 95 +++++++++++++++++++++++----------- 2 files changed, 91 insertions(+), 31 deletions(-) diff --git a/conf/install_sympa.conf.sample b/conf/install_sympa.conf.sample index 6621294..3926f98 100644 --- a/conf/install_sympa.conf.sample +++ b/conf/install_sympa.conf.sample @@ -29,6 +29,33 @@ #SYMPA_MAIN_CONF_DIR="/etc/sympa" +# - SYMPA_SPOOL_DIR +# - +# - Sympas spool directory +# - +# - Defaults to: "/var/spool/sympa" +# - +# - Notice!! +# - +# - Since Debian 13 (Trixie), the default installation of Postfix, specifically +# - the systemd service configuration, prevents the writability of the +# - '/usr/local' folder, including subfolders. There are two options for the Sympa +# - installation: +# - +# - 1.) We move the spool directory to /var/spool/sympa +# - +# - +# - 2.) We allow writing to the directories /usr/local/sympa, including subfolders. +# - To do this, we change/add to the systemd service configuration of postfix: +# - +# - cat <<'EOF' > /etc/systemd/system/postfix.service.d 2>> $_log_file +# - [Service] +# - ReadWritePaths=/usr/local/sympa +# - EOF +# - +#SYMPA_MAIN_CONF_DIR=""/var/spool/sympa + + # - SYMPA_LIST_DATA_ROOT_DIR # - # - Root Path containing Sympa's list data directories diff --git a/install_sympa.sh b/install_sympa.sh index 792a92e..c0fa6e7 100755 --- a/install_sympa.sh +++ b/install_sympa.sh @@ -133,6 +133,7 @@ _required_debian_packages=" libdbd-sybase-perl libdbi-perl libdbi-test-perl + libdigest-sha-perl libfcgi-perl libfile-copy-recursive-perl libfile-nfslock-perl @@ -142,6 +143,8 @@ _required_debian_packages=" libintl-perl libio-socket-ssl-perl libio-stringy-perl + liblz-dev + liblzo2-dev libmail-dkim-perl libmail-sendmail-perl libmailtools-perl @@ -274,6 +277,7 @@ DEFAULT_SYMPA_USER="sympa" DEFAULT_SYMPA_MAIN_CONF_DIR="/etc/sympa" DEFAULT_SYMPA_LIST_DATA_ROOT_DIR="/data" +DEFAULT_SYMPA_SPOOL_DIR="/var/spool/sympa" DEFAULT_START_AT_BOOTTIME="yes" @@ -313,6 +317,7 @@ DEFAULT_SYMPA_WEB_URL="https://$SYMPA_DOMAIN/wws" [[ -n "$SYMPA_USER" ]] && DEFAULT_SYMPA_USER="$SYMPA_USER" [[ -n "$SYMPA_MAIN_CONF_DIR" ]] && DEFAULT_SYMPA_MAIN_CONF_DIR="$SYMPA_MAIN_CONF_DIR" +[[ -n "$SYMPA_SPOOL_DIR" ]] && DEFAULT_SYMPA_SPOOL_DIR="$SYMPA_SPOOL_DIR" [[ -n "$SYMPA_LISTMASTER" ]] && DEFAULT_SYMPA_LISTMASTER="$SYMPA_LISTMASTER" [[ -n "$SYMPA_LIST_DATA_ROOT_DIR" ]] && DEFAULT_SYMPA_LIST_DATA_ROOT_DIR="$SYMPA_LIST_DATA_ROOT_DIR" [[ -n "$START_AT_BOOTTIME" ]] && DEFAULT_START_AT_BOOTTIME="$START_AT_BOOTTIME" @@ -506,43 +511,57 @@ echo echo echo +echo +echononl "\tDetermin OS related parameters (distribution, version, codename) .." +detect_os_1 +echo_ok -DISTRIBUTION= -echo "" -echo -e "\033[32m--\033[m" -echo "" -echo "Which (linux) distribution is installed?" -echo "" -echo "[1] Debian" -echo "[2] andere" -echo "" -echononl "Eingabe: " - -while [ "$DISTRIBUTION" != "Debian" -a "$DISTRIBUTION" != "other" ];do - read OPTION - case $OPTION in - 1) DISTRIBUTION="Debian" - ;; - 2) DISTRIBUTION="other" - ;; - *) echo "" - echo -e "\tFalsche Eingabe ! [ 1 = Debian ; 2 = andere ]" - echo "" - echononl "Eingabe:" - ;; - esac -done -if [ "$DISTRIBUTION" == "other" ]; then +if [[ "${os_dist,,}" == "debian" ]] ; then + DISTRIBUTION="Debian" + SYMPA_INIT_DIR=/etc/init.d +else info "Distributions other than Debian are not supported by that script." echo -e "\n\t \033[31m\033[1mInstallation is canceled\033[m\033[m .." echo "" clean_up 2 -elif [ "$DISTRIBUTION" == "Debian" ]; then - SYMPA_INIT_DIR=/etc/init.d -else - SYMPA_INIT_DIR=/etc/rc.d/init.d fi +#DISTRIBUTION= +#echo "" +#echo -e "\033[32m--\033[m" +#echo "" +#echo "Which (linux) distribution is installed?" +#echo "" +#echo "[1] Debian" +#echo "[2] andere" +#echo "" +#echononl "Eingabe: " +# +#while [ "$DISTRIBUTION" != "Debian" -a "$DISTRIBUTION" != "other" ];do +# read OPTION +# case $OPTION in +# 1) DISTRIBUTION="Debian" +# ;; +# 2) DISTRIBUTION="other" +# ;; +# *) echo "" +# echo -e "\tFalsche Eingabe ! [ 1 = Debian ; 2 = andere ]" +# echo "" +# echononl "Eingabe:" +# ;; +# esac +#done +#if [ "$DISTRIBUTION" == "other" ]; then +# info "Distributions other than Debian are not supported by that script." +# echo -e "\n\t \033[31m\033[1mInstallation is canceled\033[m\033[m .." +# echo "" +# clean_up 2 +#elif [ "$DISTRIBUTION" == "Debian" ]; then +# SYMPA_INIT_DIR=/etc/init.d +#else +# SYMPA_INIT_DIR=/etc/rc.d/init.d +#fi + _UPDATE_SYMPA="" echo "" echo -e "\033[32m--\033[m" @@ -764,6 +783,18 @@ if [ "X$SYMPA_MAIN_CONF_DIR" = "X" ]; then SYMPA_MAIN_CONF_DIR=$DEFAULT_SYMPA_MAIN_CONF_DIR fi +echo "" +echo "--" +echo "" +echo "Specify Sympa's spool directory." +echo "" +SYMPA_SPOOL_DIR= +echononl "Sympa main configuration directory [${DEFAULT_SYMPA_SPOOL_DIR}]: " +read SYMPA_SPOOL_DIR +if [ "X$SYMPA_SPOOL_DIR" = "X" ]; then + SYMPA_SPOOL_DIR=$DEFAULT_SYMPA_SPOOL_DIR +fi + if $UPDATE_SYMPA ; then if [ ! -f "${SYMPA_MAIN_CONF_DIR}/sympa.conf" ]; then fatal "You are in update mode, but i can't find existing main configuration at $SYMPA_MAIN_CONF_DIR" @@ -1379,6 +1410,7 @@ echo "Sympa's libexec directory...........: $SYMPA_LIBEXEC_DIR" echo "Sympa's static directory............: $SYMPA_STATIC_DIR" echo "Sympa's manpages directory..........: $SYMPA_MANPATH" echo "Sympa's main conf directory.........: $SYMPA_MAIN_CONF_DIR" +echo "Sympa's spool directory.............: $SYMPA_SPOOL_DIR" echo "" echo "Sympa's Data directory..............: $SYMPA_LIST_DATA_DIR" echo "Sympa's Data base path..............: $SYMPA_LIST_DATA_BASE_PATH" @@ -2751,7 +2783,8 @@ echononl "\tConfiguring sympa-${SYMPA_VERSION} .." config_params=" --enable-fhs=$ENABLE_FHS - --prefix=$SYMPA_INSTALL_DIR" + --prefix=$SYMPA_INSTALL_DIR + --with-spooldir=${SYMPA_SPOOL_DIR}" if $SYSTEMD_SUPPORTED ; then config_params="$config_params