Compare commits

..

7 Commits

View File

@@ -19,7 +19,7 @@ _HTTPD_USER=www-data
_srcdir=$(dirname $(realpath $0)) _srcdir=$(dirname $(realpath $0))
_pwd=`pwd` CUR_PWD="$(pwd)"
cert_URL_php_net="https://curl.haxx.se/ca/cacert.pem" cert_URL_php_net="https://curl.haxx.se/ca/cacert.pem"
_default_cert_file="" _default_cert_file=""
@@ -259,59 +259,106 @@ _required_base_packages=""
_required_compiler_packages="" _required_compiler_packages=""
_required_extension_packages="" _required_extension_packages=""
# - PHP Extension imagick, geoip, memcached # - PHP Extension imagick, geoip, memcached, imap
# - # -
_required_extension_packages="$_required_extension_packages _required_extension_packages="$_required_extension_packages
libmagickwand-dev libmagickcore-dev geoip-bin
libgeoip1 libgeoip-dev geoip-bin libgeoip1
libgeoip-dev
libmagickcore-dev
libmagickwand-dev
libmemcached-dev" libmemcached-dev"
# - Compile stuff # - Compile stuff
# - # -
_required_compiler_packages="$_required_compiler_packages _required_compiler_packages="$_required_compiler_packages
g++ g++-multilib gcc gcc-multilib cpp autoconf
make automake autoconf libtool flex bison automake
gettext pkg-config gnu-standards bison
libssl-dev libreadline-dev libncurses-dev" cpp
flex
g++
g++-multilib
gcc
gcc-multilib
gettext
gnu-standards
libc6-dev
libcrypt-dev
libncurses-dev
libpam0g-dev
libreadline-dev
libssl-dev
libtool
make
pkg-config"
# - Needed to build apache webserver with php/ruby support # - Needed to build apache webserver with php/ruby support
# - # -
_required_base_packages="$_required_base_packages _required_base_packages="$_required_base_packages
libxml2 libxml2-dev curl
curl libcurl4-openssl-dev exif libexiv2-dev
libqdbm-dev libgdbm-dev libpspell-dev graphicsmagick
libjpeg-dev libxpm-dev libfreetype6-dev imagemagick
libwmf-dev libtiff-dev libpaper-dev libapr1-dev
libaprutil1-dev
libatm-dev
libcrypto++-dev
libcurl4-openssl-dev
libdjvulibre-dev
libexpat-dev
libfreetype6-dev
libgdbm-dev
libgmp-dev
libgpm-dev
libgraphicsmagick++1-dev
libgraphicsmagick1-dev
libgraphics-magick-perl
libgraphviz-dev
libgsf-1-dev
libharfbuzz-dev
libicu-dev
libilmbase-dev
libjpeg-dev
libkpathsea-dev
libkrb5-dev
libldap-dev
liblua5.1-0
liblua5.1-0-dev
libmagic-dev libmagic-dev
libmagick-dev libgraphics-magick-perl libmagick-dev
libgraphicsmagick++1-dev libgraphicsmagick1-dev libmcrypt-dev
libgraphviz-dev libgsf-1-dev libilmbase-dev libmhash-dev
libvpx-dev vpx-tools libmm-dev
libgpm-dev libkpathsea-dev libopenexr-dev librsvg2-dev libdjvulibre-dev libncurses-dev
libatm-dev libexpat-dev libnetpbm-dev
imagemagick graphicsmagick libopenexr-dev
libpaper-dev
libpq-dev
libpspell-dev
libqdbm-dev
libreadline-dev
librsvg2-dev
libsctp-dev
libsodium-dev
libtidy-dev
libtiff-dev
libvpx-dev
libwebp-dev
libwmf-dev
libxml2
libxml2-dev
libxmlrpc-epi-dev
libxpm-dev
libxslt1-dev
libzip-dev
mcrypt
netpbm
postgresql-client
re2c re2c
sqlite3 sqlite3
exif libexiv2-dev vpx-tools"
netpbm
libnetpbm-dev
libmcrypt-dev mcrypt
libwebp-dev
libpq-dev postgresql-client
libreadline-dev libncurses-dev
libxslt1-dev
libicu-dev
libtidy-dev
libmm-dev libgmp-dev libkrb5-dev libldap-dev
libmhash-dev
libapr1-dev libaprutil1-dev
liblua5.1-0 liblua5.1-0-dev
libsctp-dev
libcrypto++-dev
libzip-dev
libharfbuzz-dev
libsodium-dev
libxmlrpc-epi-dev"
# libcroco3-dev # libcroco3-dev
@@ -6949,33 +6996,320 @@ echononl "\tInstall 'imap' via pecl.."
if ([[ "$PHP_MAJOR_VERSION" -eq 8 ]] && [[ "$PHP_MINOR_VERSION" -ge 4 ]]) \ 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
printf "\n" | ${PREFIX_PHP}/bin/pecl install imap >> "${_logdir}/pecl_install.log" 2>&1
if [ "$?" = "0" ]; then if dpkg -s libc-client-dev > /dev/null 2>&1 \
echo_ok || dpkg -s libc-client2007e-dev > /dev/null 2>&1 \
|| dpkg -s libc-client2007f-dev > /dev/null 2>&1 \
|| dpkg -s uw-imap-dev >/dev/null 2>&1; then
export CPPFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib"
printf "no\nyes\n" | pecl install imap >> "${_logdir}/pecl_install.log" 2>&1
echononl "\tphp.ini: extension=imap .."
_extension="imap.so"
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
echononl "\tphp.ini: extension=imap .."
_extension="imap.so"
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
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 ""
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 else
echo_failed 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 fi
else else
echo_failed
echo "" echo_skipped
echononl "continue anyway [yes/no]: " warn "The imap plugin cannot be installed - no imap library was found. "
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 ""
fi fi
else else
@@ -7223,7 +7557,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
@@ -7534,6 +7868,54 @@ echo ""
> ${_logdir}/pear_install.log > ${_logdir}/pear_install.log
echo "" >> ${_logdir}/pear_install.log
echo "# - Change into TMP dir '/tmp'" >> ${_logdir}/pear_install.log
echo "# -" >> ${_logdir}/pear_install.log
echo "cd /tmp" >> ${_logdir}/pear_install.log
echononl "\tChange into TMP dir '/tmp'.."
cd /tmp >> ${_logdir}/pear_install.log 2>&1
if [[ $? -gt 0 ]] ; then
echo_failed
error "Changinginto TMP dir '/tmp' failed! \n\t See logfile '${_logdir}/pear_install.log'"
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/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
else
echo_ok
fi
echo "" >> ${_logdir}/pear_install.log
echo "# - Update channel 'pear.php.net'.." >> ${_logdir}/pear_install.log
echo "# -" >> ${_logdir}/pear_install.log
echo "${PREFIX_PHP}/bin/pear channel-update pear.php.net" >> ${_logdir}/pear_install.log
echononl "\tUpdate channel 'pear.php.net'.."
${PREFIX_PHP}/bin/pear channel-update pear.php.net >> ${_logdir}/pear_install.log 2>&1
if [[ $? -gt 0 ]] ; then
echo_failed
error "Updating channel 'pear.php.net' failed! \n\t See logfile '${_logdir}/pear_install.log'"
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/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
else
echo_ok
fi
PEAR_EXT="Net_Socket" PEAR_EXT="Net_Socket"
echo "" >> ${_logdir}/pear_install.log echo "" >> ${_logdir}/pear_install.log
echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log echo "# - Install ${PEAR_EXT} via pear.." >> ${_logdir}/pear_install.log
@@ -8479,7 +8861,7 @@ if [[ -d "/usr/local/mysql" ]]; then
fi fi
cd $pwd cd ${CUR_PWD}
cat<<EOF cat<<EOF