From 5eebd200f4345460558d50a131dfada058eefcfa Mon Sep 17 00:00:00 2001 From: Christoph Date: Sat, 12 Jul 2025 11:07:57 +0200 Subject: [PATCH] install_update_dovecot.sh: some minor changes. --- install_update_dovecot.sh | 163 ++++++++++++++++++++++++++++++-------- 1 file changed, 131 insertions(+), 32 deletions(-) diff --git a/install_update_dovecot.sh b/install_update_dovecot.sh index d99a404..7d5ac25 100755 --- a/install_update_dovecot.sh +++ b/install_update_dovecot.sh @@ -287,14 +287,19 @@ dovecot_main_version="$(echo $_version | cut -d '.' -f1,2)" dovecot_major_version="$(echo $_version | cut -d '.' -f1)" dovecot_minor_version="$(echo $_version | cut -d '.' -f2)" dovecot_patch_level="$(echo $_version | cut -d '.' -f3)" +dovecot_minor_patch_level="$(echo $_version | cut -d '.' -f4)" #echo "" -#echo "_version: $_version" -#echo "dovecot_main_version $dovecot_main_version" -#echo "dovecot_major_version $dovecot_major_version" -#echo "dovecot_minor_version $dovecot_minor_version" -#echo "dovecot_patch_level $dovecot_patch_level" +#echo "_version: $_version" +#echo "dovecot_main_version $dovecot_main_version" +#echo "dovecot_major_version $dovecot_major_version" +#echo "dovecot_minor_version $dovecot_minor_version" +#echo "dovecot_patch_level $dovecot_patch_level" +#echo "dovecot_minor_patch_level $dovecot_minor_patch_level" #echo "" +# +#clean_up 0 + # 'expire plugin'was rRemoved in version 2.3.14: This plugin is not needed. # Use mailbox { autoexpunge } Mailbox settings instead. @@ -710,32 +715,124 @@ fi ## - Download Pigeonhole for Dovecot v2.2 ## - -echononl "\tDownload dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz.." -if [ ! -f "${_src_base_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" ]; then - wget --no-check-certificate https://pigeonhole.dovecot.org/releases/${dovecot_main_version}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 - if [ "$?" = 0 ]; then - echo -e "$rc_done" +if [[ ${dovecot_major_version} -eq 2 ]] && [[ ${dovecot_minor_version} -lt 4 ]] ; then + + echononl "\tDownload dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz.." + if [ ! -f "${_src_base_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" ]; then + wget --no-check-certificate https://pigeonhole.dovecot.org/releases/${dovecot_main_version}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 + if [ "$?" = 0 ]; then + echo -e "$rc_done" + else + echo -e "$rc_failed" + error "Direct download of 'dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz' failed + + Download \033[1mdovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz\033[m manually + and proceed instllation." + + echononl "\tProceed instllation [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/no]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + + fi else - echo -e "$rc_failed" - error "Direct download of 'dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz' failed - - Download \033[1mdovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz\033[m manually - and proceed instllation." - - echononl "\tProceed instllation [yes/no]: " - read OK - OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" - while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do - echononl "Wrong entry! - repeat [yes/no]: " - read OK - done - [[ $OK = "yes" ]] || fatal "Abbruch durch User" - + echo -e "$rc_skipped" fi + + dovecot_pigeonhole_archiv="dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" + else - echo -e "$rc_skipped" + + echononl "\tDownload dovecot-pigeonhole-${_pigeonhole}.tar.gz.." + if [ ! -f "${_src_base_dir}/dovecot-pigeonhole-${_pigeonhole}.tar.gz" ]; then + wget --no-check-certificate https://pigeonhole.dovecot.org/releases/${dovecot_main_version}/dovecot-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 + if [ "$?" = 0 ]; then + echo -e "$rc_done" + dovecot_pigeonhole_archiv="dovecot-pigeonhole-${_pigeonhole}.tar.gz" + else + echo -e "$rc_failed" + + error "Direct download of 'Pigeonhole Sieve and ManageSieve' source archiv failed + + Download Pigeonhole Sieve and ManageSieve manually and name it to + + \033[1mdovecot-pigeonhole-${_pigeonhole}.tar.gz\033[m\n" + + + echononl "\tProceed instllation [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/no]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + fi + else + echo -e "$rc_skipped" + fi + + dovecot_pigeonhole_archiv="dovecot-pigeonhole-${_pigeonhole}.tar.gz" fi +dovecot_pigeonhole_archiv_prefix="${dovecot_pigeonhole_archiv%.tar.gz}" +dovecot_pigeonhole_archiv_dir="${dovecot_pigeonhole_archiv%.tar.gz}" + +clear 0 + + +#echononl "\tDownload dovecot-pigeonhole-${_pigeonhole}.tar.gz.." +#if [ ! -f "${_src_base_dir}/dovecot-pigeonhole-${_pigeonhole}.tar.gz" ]; then +# wget --no-check-certificate https://pigeonhole.dovecot.org/releases/${dovecot_main_version}/dovecot-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 +# if [ "$?" = 0 ]; then +# echo -e "$rc_done" +# dovecot_pigeonhole_archiv="dovecot-pigeonhole-${_pigeonhole}.tar.gz" +# else +# echo -e "$rc_failed" +# +# echononl "\tTry to Download dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz.." +# if [ ! -f "${_src_base_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" ]; then +# wget --no-check-certificate https://pigeonhole.dovecot.org/releases/${dovecot_main_version}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 +# if [ "$?" = 0 ]; then +# echo -e "$rc_done" +# dovecot_pigeonhole_archiv="dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" +# else +# echo -e "$rc_failed" +# +# error "Direct download of 'Pigeonhole Sieve and ManageSieve' source archiv failed +# +# Download Pigeonhole Sieve and ManageSieve manually and name it to +# +# \033[1mdovecot-pigeonhole-${_pigeonhole}.tar.gz\033[m\n" +# +# +# echononl "\tProceed instllation [yes/no]: " +# read OK +# OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" +# while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do +# echononl "Wrong entry! - repeat [yes/no]: " +# read OK +# done +# [[ $OK = "yes" ]] || fatal "Abbruch durch User" +# +# dovecot_pigeonhole_archiv="dovecot-pigeonhole-${_pigeonhole}.tar.gz" +# fi +# else +# echo -e "$rc_skipped" +# dovecot_pigeonhole_archiv="dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz" +# fi +# fi +#else +# echo -e "$rc_skipped" +# dovecot_pigeonhole_archiv="dovecot-pigeonhole-${_pigeonhole}.tar.gz" +#fi +#dovecot_pigeonhole_archiv_prefix="${dovecot_pigeonhole_archiv%.tar.gz}" +#dovecot_pigeonhole_archiv_dir="${dovecot_pigeonhole_archiv%.tar.gz}" + if $_new ; then @@ -901,6 +998,7 @@ config_params=" --prefix=/usr/local/dovecot-${_version} \ --with-${db_driver} \ --with-gssapi=yes + --with-ldap=yes --with-rundir=/run/dovecot" if $systemd_support ; then config_params="$config_params \ @@ -1055,20 +1153,20 @@ fi cd ${_src_base_dir} echo "" echononl "\tExtracting dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz.." -gunzip < dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz | tar -xf - +gunzip < ${_src_base_dir}/${dovecot_pigeonhole_archiv} | tar -C ${_src_base_dir} -xf - if [ "$?" = 0 ]; then echo -e "$rc_done" else echo -e "$rc_failed" - fatal Extracting dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz failed + fatal Extracting ${dovecot_pigeonhole_archiv} failed fi -cd dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole} +cd ${dovecot_pigeonhole_archiv_dir} echononl "\tConfigure Pigeonhole ManageSieve.." ./configure \ --prefix=/usr/local/dovecot-${_version} \ - --with-dovecot=/usr/local/dovecot-${_version}/lib/dovecot > ${_log_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}-configure.log 2<&1 + --with-dovecot=/usr/local/dovecot-${_version}/lib/dovecot > ${_log_dir}/${dovecot_pigeonhole_archiv_prefix}-configure.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -1077,7 +1175,7 @@ else fi echononl "\tCompile Pigeonhole ManageSieve.." -make > ${_log_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}-make.log 2<&1 +make > ${_log_dir}/${dovecot_pigeonhole_archiv_prefix}-make.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -1086,7 +1184,7 @@ else fi echononl "\tInstall Pigeonhole ManageSieve.." -make install > ${_log_dir}/dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}-install.log 2<&1 +make install > ${_log_dir}/${dovecot_pigeonhole_archiv_prefix}-install.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -1095,6 +1193,7 @@ else fi + ## ----------------- ## --- Configure dovecot services