mod_php_install.sh: install pecl imap extension, if '/usr/local/imap/lib/libc-client.a' is present.

This commit is contained in:
2026-01-23 00:28:07 +01:00
parent fc1cf962bd
commit 72b07de2d9

View File

@@ -6951,11 +6951,10 @@ if ([[ "$PHP_MAJOR_VERSION" -eq 8 ]] && [[ "$PHP_MINOR_VERSION" -ge 4 ]]) \
|| [[ "$PHP_MAJOR_VERSION" -gt 8 ]] \ || [[ "$PHP_MAJOR_VERSION" -gt 8 ]] \
|| ([[ "$os_dist" = "debian" ]] && [[ "$os_version" -ge 13 ]]) ; then || ([[ "$os_dist" = "debian" ]] && [[ "$os_version" -ge 13 ]]) ; then
if ( dpkg -s libc-client-dev > /dev/null 2>&1 \ if dpkg -s libc-client-dev > /dev/null 2>&1 \
|| dpkg -s libc-client2007e-dev > /dev/null 2>&1 \ || dpkg -s libc-client2007e-dev > /dev/null 2>&1 \
|| dpkg -s libc-client2007f-dev > /dev/null 2>&1 \ || dpkg -s libc-client2007f-dev > /dev/null 2>&1 \
|| dpkg -s uw-imap-dev >/dev/null 2>&1; ) \ || dpkg -s uw-imap-dev >/dev/null 2>&1; then
|| [[ -f /usr/local/imap/lib/libc-client.a ]] ; then
printf "\n" | ${PREFIX_PHP}/bin/pecl install imap >> "${_logdir}/pecl_install.log" 2>&1 printf "\n" | ${PREFIX_PHP}/bin/pecl install imap >> "${_logdir}/pecl_install.log" 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
@@ -6985,6 +6984,277 @@ if ([[ "$PHP_MAJOR_VERSION" -eq 8 ]] && [[ "$PHP_MINOR_VERSION" -ge 4 ]]) \
echo "" echo ""
fi fi
elif [[ -f "/usr/local/imap/lib/libc-client.a" ]] ; then
_failed=false
echo_skipped
echo -e "\tTry to install imap from source.."
cd /tmp
rm -rf /tmp/imap-*
echo "" >> ${_logdir}/pecl_install.log
echo "# Try to install imap from source.." >> ${_logdir}/pecl_install.log
echo "cd /tmp" >> ${_logdir}/pecl_install.log
echo "rm -rf /tmp/imap-*" >> ${_logdir}/pecl_install.log
# Download imap archive
echononl "\t Download imap source (pecl download imap).."
echo "" >> ${_logdir}/pecl_install.log
echo "# Download imap source .." >> ${_logdir}/pecl_install.log
echo "pecl download imap" >> ${_logdir}/pecl_install.log
pecl download imap > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
# Unzip imap source archive
if ! ${_failed} ; then
echononl "\t Unzip imap source archive .."
echo "" >> ${_logdir}/pecl_install.log
echo "# Unzip imap source archiv .." >> ${_logdir}/pecl_install.log
echo "tar xzf imap-*.tgz " >> ${_logdir}/pecl_install.log
tar xzf imap-*.tgz >> ${_logdir}/pecl_install.log
if [[ $? -eq 0 ]]; then
echo_ok
echo " cd imap-*/" >> ${_logdir}/pecl_install.log
cd imap-*/ >> ${_logdir}/pecl_install.log
if [[ $? -gt 0 ]]; then
error "Error changing directory.."
echo ""
echo "command was: cd imap-*/"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
else
echo_failed
echo ""
echo "command was: tar xzf imap-*.tgz"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
fi
# phpize
if ! ${_failed} ; then
echononl "\t Prepare for building extension imap: phpize .."
echo "" >> ${_logdir}/pecl_install.log
echo "# Prepare for building extension imap: phpize .." >> ${_logdir}/pecl_install.log
echo "/usr/local/php-${VERSION}/bin/phpize " >> ${_logdir}/pecl_install.log
/usr/local/php-${VERSION}/bin/phpize >> ${_logdir}/pecl_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
echo ""
echo "command was: /usr/local/php-${VERSION}/bin/phpize"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
fi
# Configure..
if ! ${_failed} ; then
echononl "\t Configure imap extension.. .."
echo "" >> ${_logdir}/pecl_install.log
echo "# Configure imap extension .." >> ${_logdir}/pecl_install.log
cat <<EOF >> ${_logdir}/pecl_install.log
export CPPFLAGS="-I/usr/local/imap/include"
export LDFLAGS="-L/usr/local/imap/lib"
./configure \
--with-php-config=/usr/local/php-${VERSION}/bin/php-config \
--with-imap=/usr/local/imap \
--with-kerberos \
--with-imap-ssl
EOF
export CPPFLAGS="-I/usr/local/imap/include"
export LDFLAGS="-L/usr/local/imap/lib"
./configure \
--with-php-config=/usr/local/php-${VERSION}/bin/php-config \
--with-imap=/usr/local/imap \
--with-kerberos \
--with-imap-ssl >> ${_logdir}/pecl_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
echo ""
echo "command was: ./configure .."
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
fi
if ! ${_failed} ; then
echononl "\t make.."
echo "" >> ${_logdir}/pecl_install.log
echo "# make .." >> ${_logdir}/pecl_install.log
echo "make -j\"$(nproc)\"" >> ${_logdir}/pecl_install.log
make -j"$(nproc)" >> ${_logdir}/pecl_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
echo ""
echo "command was: make -j\"$(nproc)\""
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
fi
if ! ${_failed} ; then
echononl "\t make install.."
echo "" >> ${_logdir}/pecl_install.log
echo "# make install .." >> ${_logdir}/pecl_install.log
echo "make install" >> ${_logdir}/pecl_install.log
make install >> ${_logdir}/pecl_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
echo ""
echo "command was: make install"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/nno]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
echo ""
_failed=true
fi
fi
rm -rf /tmp/imap-*
if ! $_failed ; then
echononl "\tphp.ini: extension=propro .."
_extension="imap.so"
echo "" >> ${_logdir}/pecl_install.log
echo "# php.ini: extension=${_extension} .." >> ${_logdir}/pecl_install.log
echo "perl -i -n -p -e \"s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#\" $PHP_INI_FILE" >> ${_logdir}/pecl_install.log
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fi
echo ""
fi
else else
echo_skipped echo_skipped
@@ -7237,7 +7507,7 @@ else
_extension="propro.so" _extension="propro.so"
echo "" >> ${_logdir}/pecl_install.log echo "" >> ${_logdir}/pecl_install.log
echo "# php.ini: extension=memcsched .." >> ${_logdir}/pecl_install.log echo "# php.ini: extension=${_extension} .." >> ${_logdir}/pecl_install.log
echo "perl -i -n -p -e \"s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#\" $PHP_INI_FILE" >> ${_logdir}/pecl_install.log echo "perl -i -n -p -e \"s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#\" $PHP_INI_FILE" >> ${_logdir}/pecl_install.log
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE