X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=8ae5cd17bd469d0674f9e89e43753dd163156f40;hb=0af202976ce472a92cf87a5ef1d09166d7e143ca;hp=50f920e9d8911b49119c20d27d5e148699b1418b;hpb=8b7d0a8afc09674d39084ef5c27015f9b8be1e0e;p=apache2-cn.git diff --git a/debian/postinst b/debian/postinst index 50f920e..8ae5cd1 100755 --- a/debian/postinst +++ b/debian/postinst @@ -288,7 +288,7 @@ backup_conf () { cp_echo "CN: Doing backup for all files in $dir" for file in ${dir}/*; do if [ -f "$file" ]; then - if [ -z "$(echo $file | egrep '^/.*~')" ]; then + if [ -z "$(echo "$file" | egrep '^/.*(~|(\.(old|staro|bkp|bak|swp|tmp|dpkg-.+|cn-.+)))$')" ]; then backup_dir="$BACKUPDIR/$(basename $(dirname "$file"))" cp_backup_conffile -d "$backup_dir" -p "$file" fi @@ -330,6 +330,7 @@ move_conf () { if [ -d "${dir}" ] && [ -n "$(ls -A ${dir}/)" ]; then mkdir -p "$newdir" for file in ${dir}/*; do + [ -z "$(echo "$file" | egrep '^/.*(~|(\.(old|staro|bkp|bak|swp|tmp|dpkg-.+|cn-.+)))$')" ] || continue newfile="${newdir}/$(basename "$file" .conf).conf" if [ ! -e "$newfile" ]; then cp_echo "CN: Preserving changes to $newfile (renamed from $file)." @@ -369,6 +370,8 @@ rename_conf () { if [ -d "${edir}" ] && [ -n "$(ls -A ${edir}/)" ]; then mkdir -p "$adir" for efile in ${edir}/*; do + [ -z "$(echo "$efile" | egrep '^/.*(~|(\.(old|staro|bkp|bak|swp|tmp|dpkg-.+|cn-.+)))$')" ] || continue + [ ! -e "${edir}/$(basename "$efile" .conf).conf" ] || continue afile="$(readlink -q -m "$efile")" @@ -392,6 +395,25 @@ rename_conf () { fi } +# listconffiles() +# +# Recursively walks /etc/apache2/apache2.conf for Include and +# IncludeOptional directives. +# Prints all configfiles so defined. +# +listconffiles () { + local i incs + local base_dir="`dirname $1`" + + incs=`awk 'tolower($1) ~ /include(optional)?/ { sub("/$","/*",$2); print $2; }' $1` + incs=`echo "$incs" | sed -r "s#^([^/])#${base_dir}/\1#"` + if [ -n "$incs" ]; then + for i in $incs; do + if [ -e "$i" ]; then echo "`readlink -m -q $i`"; listconffiles "$i"; fi + done + fi +} + # Set trap for deleting all temp files. # @@ -429,7 +451,7 @@ if [ -e "$CONF" ]; then a2enmod -m -q rewrite a2enmod -m -q userdir a2enmod -m -q suexec - a2enmod -m -q php5 +# a2enmod -m -q php5 a2enmod -m -q ssl fi @@ -477,6 +499,43 @@ if [ -e "$CONF" ]; then rm -f "$CONFTMP" fi +# Remove deprecated directives. Add default Mutex if not defined. +# +if [ -e "$CONF" ]; then + + ( listconffiles "$CONF"; echo "$CONF" ) | while read -r a2cfile; do + + a2cfiletmp=`mktemp $a2cfile.tmp.XXXXXX` + temp_files="${temp_files} ${a2cfiletmp}" + cp "$a2cfile" "$a2cfiletmp" + + if egrep -iq "^[[:space:]]*NameVirtualHost[[:space:]]+" "$a2cfiletmp"; then + cp_echo "CN: Removing deprecated NameVirtualHost from $a2cfile" + sed -r -i '/^[[:space:]]*NameVirtualHost[[:space:]]+/Id' \ + "$a2cfiletmp" + fi + + if egrep -iq "^[[:space:]]*SSLMutex[[:space:]]+" "$a2cfiletmp"; then + cp_echo "CN: Removing deprecated SSLMutex from $a2cfile" + sed -r -i '/^[[:space:]]*SSLMutex[[:space:]]+/Id' \ + "$a2cfiletmp" + fi + + if [ "$a2cfile" = "$CONF" ]; then + if ! egrep -iq "^[[:space:]]*Mutex[[:space:]]+" "$a2cfiletmp"; then + cp_echo "CN: Adding default Mutex to $a2cfile" + echo 'Mutex file:${APACHE_LOCK_DIR} default' >> "$a2cfiletmp" + fi + fi + + if ! cmp -s "$a2cfiletmp" "$a2cfile"; then + cp_mv "$a2cfiletmp" "$a2cfile" + need_restart=1 + fi + rm -f "$a2cfiletmp" + done +fi + # Install CARNet specific configuration file. #