AlaK4X
Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64



Your IP : 3.17.174.204


Current Path : /var/lib/dpkg/info/
Upload File :
Current File : //var/lib/dpkg/info/postfix.preinst

#!/bin/sh

set -e

# Debian Postfix preinst
# LaMont Jones <lamont@debian.org>
# Modified to use debconf by Colin Walters <levanti@verbum.org>

# do we have debconf?
if [ -f /usr/share/debconf/confmodule ]; then
    . /usr/share/debconf/confmodule
    DEBCONF=true
else
    DEBCONF=
fi

MASTER=/etc/postfix/master.cf

compat_conversion_warning() {
    if [ -n "$DEBCONF" ]; then
	db_input medium postfix/compat_conversion_warning || true
	db_go || true
	db_get postfix/compat_conversion_warning
	if [ "$RET" = "false" ]; then
	    echo "aborting postfix install"
	    exit 1
	fi
    else
    	cat << EOF
This upgrade of postfix changes some default values in the configuration. As
part of this upgrade, the following will be changed: (1) chrooted components
will be changed from '-' to 'y' in master.cf, and (2) myhostname will be set
to a fully-qualified domain name if it is not already such.  The install will
be aborted if you do not allow the change.
EOF
	echo -n "Shall I make the change? "
	read line
	case ${line} in
	    [nN]*)	echo "aborting postfix install"
			exit 1;;
	    *)		;;
	esac
    fi
}

main_cf_conversion_warning() {
    if [ -n "$DEBCONF" ]; then
	db_input medium postfix/main_cf_conversion_warning || true
	db_go || true
	db_get postfix/main_cf_conversion_warning
	if [ "$RET" = "false" ]; then
	    echo "aborting postfix install"
	    exit 1
	fi
    else
    	cat << EOF
This upgrade of postfix changes where daemons are located, and your postfix
configuration explicitly specifies the old location.  The install will be
aborted if you do not allow the change.
EOF
	echo -n "Shall I make the change? "
	read line
	case ${line} in
	    [nN]*)	echo "aborting postfix install"
			exit 1;;
	    *)		;;
	esac
    fi
}

dynamicmaps_conversion_warning() {
    if [ -n "$DEBCONF" ]; then
	db_input medium postfix/dynamicmaps_conversion_warning || true
	db_go || true
	db_get postfix/dynamicmaps_conversion_warning
	if [ "$RET" != "false" ]; then
	    touch /var/spool/postfix/dynamicmaps_3.0_transition
	fi
    else
    	cat << EOF
Postfix version 3.0 changes how dynamic maps are delivered, and your
dynamicmaps.cf does not reflect that.  Accept this option to convert
dynamicmaps.cf to the version required for 3.0.
EOF
	echo -n "Shall I make the change? "
	read line
	case ${line} in
	    [nN]*)	;;
	    *)		touch /var/spool/postfix/dynamicmaps_3.0_transition;;
	esac
    fi
}

(umask 022; mkdir -p /var/spool/postfix)

case "$1" in
    install)
	rm -f /var/spool/postfix/restart /var/spool/postfix/reload
	# workaround sendmail not unregistering itself...
	if [ -e /etc/suid.conf ] && [ -x /usr/sbin/suidunregister ]; then
	    if grep -q sendmail /etc/suid.conf; then
		/usr/sbin/suidunregister -s postfix /usr/sbin/sendmail
	    fi
	fi

	if [ -L /etc/postfix/postfix-script ]; then
		rm -f /etc/postfix/postfix-script
	fi

	;;

    upgrade)
	version=$2
	if [ -d /var/spool/postfix ] && [ -f /etc/postfix/main.cf ]; then
	    touch /var/spool/postfix/restart
	fi
	export LANG=C	# for the comparison of mail version...

	if [ -L /etc/postfix/postfix-script ]; then
		rm -f /etc/postfix/postfix-script
	fi

	# If user has not modified master/main.proto, move aside so new version
	# is installed (#991513)
        cmp -s /usr/share/postfix/main.cf.dist /etc/postfix/main.cf.proto && \
	    mv /etc/postfix/main.cf.proto /etc/postfix/main.cf.proto.old \
	    || echo "/etc/postfix/main.cf.proto modified, not updating."
        cmp -s /usr/share/postfix/master.cf.dist /etc/postfix/master.cf.proto && \
	    mv /etc/postfix/master.cf.proto /etc/postfix/master.cf.proto.old \
	    || echo "/etc/postfix/master.cf.proto modified, not updating."

	if grep -q '^tlsmgr[[:space:]]*fifo' $MASTER; then
	  tlsmgr_warning
	fi

	if dpkg --compare-versions $version lt 3.1.0-1; then
	    # check on compatibility warning issues and warn as appropriate.
	    # even default myhostname needs to be checked to make sure it has a '.'.
	    for dir in /etc/postfix $(postconf -hxn multi_instance_directories 2>/dev/null || true); do
		if [ ! -f "${dir}/main.cf" ] || dpkg --compare-versions $version lt 2.11; then
		    # Just assume that there are issues with the chroot status,
		    # since postconf -F didn't exist before 2.11
		    compat_conversion_warning
		    break
		fi
		SRV=$(postconf -c "$dir" -F '*/*/chroot'| sed -n '/ = -$/s/ =.*$//p')
		if [ -n "$SRV" ] || \
			postconf -c "$dir" -hx myhostname | grep -qv '\.'; then
		    compat_conversion_warning
		    break
		fi
	    done
	fi
	if [ -f /etc/postfix/main.cf ] && dpkg --compare-versions $version lt 3.0.4-5; then
	    # if daemon_directory is specifically set, and wrong, then we need
            # to fix it.
	    for dir in /etc/postfix $(postconf -hxn multi_instance_directories); do
		DD=$(postconf -c "$dir" -hxn daemon_directory)
		if [ "X${DD}" = X/usr/lib/postfix ]; then
		    main_cf_conversion_warning
		    break
		fi
	    done
	fi

	if dpkg --compare-versions $version lt 3.0.3-2; then
	    # If we still think that it's dict_tcp.so, then we need to convert.
	    DM=/etc/postfix/dynamicmaps.cf
	    if [ ! -f ${DM} ] || grep -q "/usr/lib/postfix/dict_tcp.so" ${DM}; then
		dynamicmaps_conversion_warning
	    fi
	fi

	if ! grep -q '^retry[[:space:]]' $MASTER; then
	  retry_warning
	fi
	invoke-rc.d --quiet postfix stop || true
	;;

    abort-upgrade)
	if [ -f /etc/postfix/main.cf.proto.old ]; then
	  mv /etc/postfix/main.cf.proto.old /etc/postfix/main.cf.proto
	  echo "Restoring old /etc/postfix/main.cf.proto on failed upgrade."
	fi
	if [ -f /etc/postfix/master.cf.proto.old ]; then
	  mv /etc/postfix/master.cf.proto.old /etc/postfix/master.cf.proto
	  echo "Restoring old /etc/postfix/master.cf.proto on failed upgrade."
	fi
	;;

    *)
	echo "preinst called with unknown argument \`$1'" >&2
	exit 1
	;;
esac

if [ install = "$1" ] || [ upgrade = "$1" ]; then
    # cleanup after past mistakes.
    rm -f /usr/sbin/postconf.postfix
    dpkg-divert --package postfix-tls --remove \
	 --divert /usr/sbin/postconf.postfix \
		  /usr/sbin/postconf >/dev/null 2>/dev/null
fi

# Automatically added by dh_installdeb/13.6ubuntu1
dpkg-maintscript-helper rm_conffile /etc/postfix/makedefs.out 3.3.2-4\~ postfix -- "$@"
# End automatically added section