summaryrefslogblamecommitdiff
path: root/mail/postfix20/pkg-install
blob: b2b0e42a033213ea906cd1e2cbaa9e6aabe2349c (plain) (tree)
1
2
3
4
5
6
7
         




                                    
 














                                                   
                                 

               
              
               
                                                
                           

                          




                                       
                                 





                                                                       
        




                                                      


                                                   
      
 

                                                                        
        




                                                       


                                                   
      
 

                                                                     
        







                                                          


                                                   


      
                                  

























                                                                          
      






























                                                                                                      
      
  
#!/bin/sh
#
#	$FreeBSD$
#

PKG_PREFIX=${PKG_PREFIX:=/usr/local}

ask() {
    local question default answer

    question=$1
    default=$2
    if [ -z "${PACKAGE_BUILDING}" ]; then
        read -p "${question} [${default}]? " answer
    fi
    if [ x${answer} = x ]; then
        answer=${default}
    fi
    echo ${answer}
}

yesno() {
    local question default answer

    question=$1
    default=$2
    while :; do
        answer=$(ask "${question}" "${default}")
        case "${answer}" in
        [Yy]*)	return 0;;
        [Nn]*)	return 1;;
        esac
        echo "Please answer yes or no."
    done
}

if [ x"$2" = xPRE-INSTALL ]; then
    USER=postfix
    GROUP=postfix
    GROUP2=maildrop

    if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
        echo "You already have a group \"${GROUP}\", so I will use it."
    else
        if /usr/sbin/pw groupadd ${GROUP} -h -
	then
	    echo "Added group \"${GROUP}\"."
	else
	    echo "Adding group \"${GROUP}\" failed..."
            echo "Please create it, and try again."
            exit 1
        fi
    fi

    if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
        echo "You already have a group \"${GROUP2}\", so I will use it."
    else
        if /usr/sbin/pw groupadd ${GROUP2} -h -
	then
	    echo "Added group \"${GROUP2}\"."
	else
	    echo "Adding group \"${GROUP2}\" failed..."
            echo "Please create it, and try again."
            exit 1
        fi
    fi

    if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
        echo "You already have a user \"${USER}\", so I will use it."
    else
        if /usr/sbin/pw useradd ${USER} -g ${GROUP} -h - \
           -d /var/spool/postfix \
           -s /sbin/nologin \
           -c "Postfix Mail System"
	then
	    echo "Added user \"${USER}\"."
	else
	    echo "Adding user \"${USER}\" failed..."
            echo "Please create it, and try again."
            exit 1
        fi
    fi
fi

if [ x"$2" = xPOST-INSTALL ]; then
	sh ${PKG_PREFIX}/etc/postfix/post-install tempdir=/tmp \
	 config_directory=${PKG_PREFIX}/etc/postfix \
	 daemon_directory=${PKG_PREFIX}/libexec/postfix \
	 command_directory=${PKG_PREFIX}/sbin \
	 queue_directory=/var/spool/postfix \
	 sendmail_path=${PKG_PREFIX}/sbin/sendmail \
	 newaliases_path=${PKG_PREFIX}/bin/newaliases \
	 mailq_path=${PKG_PREFIX}/bin/mailq \
	 mail_owner=postfix \
	 setgid_group=maildrop \
	 manpage_directory=${PKG_PREFIX}/man \
	 sample_directory=${PKG_PREFIX}/etc/postfix \
	 readme_directory=no \
	 upgrade-package
# readme_directory is "no" above since the package will have correct perms
# already, and we don't know if they had PORTDOCS.
fi

replace() {
    local orig repl
    
    orig=$1
    repl=$2
    if [ -e ${orig} ]; then
        mv -f ${orig} ${orig}.OFF
        chmod 0 ${orig}.OFF
    fi
    if [ -e ${repl} ]; then
        ln -s ${repl} ${orig}
    fi
}

if [ x"$2" = xPOST-INSTALL -a -z "${PACKAGE_BUILDING}" ]; then
    if [ -x /sbin/sysctl ]; then
        OSVERSION=`/sbin/sysctl -n kern.osreldate`
    else
        OSVERSION=`/usr/sbin/sysctl -n kern.osreldate`
    fi
    if [ ${OSVERSION} -ge 400014 ]; then
        if yesno "Would you like to activate Postfix in /etc/mail/mailer.conf" n; then
            mv -f /etc/mail/mailer.conf /etc/mail/mailer.conf.old
            echo "#"						>  /etc/mail/mailer.conf
            echo -n "# Execute the Postfix sendmail program"	>> /etc/mail/mailer.conf
            echo ", named ${PKG_PREFIX}/sbin/sendmail"		>> /etc/mail/mailer.conf
            echo "#"						>> /etc/mail/mailer.conf
            echo "sendmail	${PKG_PREFIX}/sbin/sendmail"	>> /etc/mail/mailer.conf
            echo "send-mail	${PKG_PREFIX}/sbin/sendmail"	>> /etc/mail/mailer.conf
            echo "mailq		${PKG_PREFIX}/sbin/sendmail"	>> /etc/mail/mailer.conf
            echo "newaliases	${PKG_PREFIX}/sbin/sendmail"	>> /etc/mail/mailer.conf
            echo "Done."
        fi
    else
        if yesno "Would you like to replace {sendmail,mailq,newaliases} with Postfix versions" n; then
            replace /usr/sbin/sendmail	${PKG_PREFIX}/sbin/sendmail
            replace /usr/bin/mailq	${PKG_PREFIX}/sbin/sendmail
            replace /usr/bin/newaliases	${PKG_PREFIX}/sbin/sendmail
            echo "Done."
        fi
    fi
fi