-#!/bin/sh
-set -o errexit
-
-# First argument of this script is the package name
-
-# Reading system configuration informations, functions and package versions.
-source ../sysinfos
-source ../functions
-source ../packages-list
-
-# Applying patches (if any)
-apply_patches ${1}
-
-groupadd -f smmsp
-groupadd -f mail
-hv_useradd -g smmsp -G mail smmsp
-chmod 1777 /var/mail
-mkdir -p /var/spool/mqueue
-mkdir -p /etc/mail
-
-cd ${LFS_TMP}/${1}
-cat > devtools/Site/site.config.m4 << "EOF"
+#!/bin/bash
+
+hvbuild()
+{
+ groupadd -f smmsp
+ groupadd -f mail
+ hv_useradd -g smmsp -G mail smmsp
+ chmod 1777 /var/mail
+ mkdir -p /var/spool/mqueue
+ mkdir -p /etc/mail
+
+ cd ${LFS_TMP}/${PACKAGE}
+ cat > devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINOWN',`root')
EOF
-if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
- # Adding support for SASL2 and MILTER
- cat >> devtools/Site/site.config.m4 << "EOF"
+ if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
+ # Adding support for SASL2 and MILTER
+ cat >> devtools/Site/site.config.m4 << "EOF"
APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
EOF
-
- # Configuration file for SASL2
- echo "pwcheck_method: saslauthd" /usr/lib/sasl2/Sendmail.conf
-fi
-cd sendmail
-sh Build
-cd ../
+ # Configuration file for SASL2
+ echo "pwcheck_method: saslauthd" /usr/lib/sasl2/Sendmail.conf
+ fi
-if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
- cd libmilter
- sh Build install
+ cd sendmail
+ sh Build
cd ../
-fi
-cd cf/cf
-cp generic-linux.mc sendmail.mc
-sh Build sendmail.mc
-sh Build install-cf
-cd ../../
-sh Build install
+ if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
+ cd libmilter
+ sh Build install
+ cd ../
+ fi
+
+ cd cf/cf
+ cp generic-linux.mc sendmail.mc
+ sh Build sendmail.mc
+ sh Build install-cf
+ cd ../../
+ sh Build install
-if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
- # Configuration Information
- cat > /etc/mail/sendmail.mc << "EOF"
+ if [ "x${INST_TYPE}" = "xserver" -o "x${INST_TYPE}" = "xltsp-server" ]; then
+ # Configuration Information
+ cat > /etc/mail/sendmail.mc << "EOF"
dnl
include(`./m4/cf.m4')
VERSIONID(`sendmail.mc Hugo Villeneuve 2003/10/06')
dnl "goaway": Disable all SMTP status queries.
dnl "authwarnings": Adds x-authentication-warning.
dnl "restrictmailq": mqueue group can see queue.
-dnl "restrictqrun": mqueue owner to run queue.
-dnl "nobodyreturn": Does not return mail body
-define(`confPRIVACY_FLAGS', `goaway authwarnings restrictmailq restrictqrun nobodyreturn novrfy noexpn noreceipts')
+ dnl "restrictqrun": mqueue owner to run queue.
+ dnl "nobodyreturn": Does not return mail body
+ define(`confPRIVACY_FLAGS', `goaway authwarnings restrictmailq restrictqrun nobodyreturn novrfy noexpn noreceipts')
dnl
dnl ---------- Maximum message size (in bytes) ----------
-define(`confMAX_MESSAGE_SIZE',10000000)
-dnl
-define(`confMAX_DAEMON_CHILDREN',`30')
-define(`confCONNECTION_RATE_THROTTLE',`10')
-define(`confMAX_RCPTS_PER_MESSAGE',`50')
-dnl
-dnl ---------- MILTER support ----------
-define(`confINPUT_MAIL_FILTERS',`clmilter')
-dnl
-dnl ---------- SMTP Authorization options ----------
-define(`confAUTH_OPTIONS', `A')
-define(`confAUTH_MECHANISMS', `LOGIN PLAIN')
-TRUST_AUTH_MECH(`LOGIN PLAIN')
-dnl
-dnl ---------- Don't send the version number of sendmail ----------
-define(`confSMTP_LOGIN_MSG',`_HOSTNAME_')
-MASQUERADE_AS(_DOMAIN_)
-dnl Uncomment the following line to use a non-standard port
-dnl DAEMON_OPTIONS(`Port=_ALTERNATE_PORT_NUMBER_,Name=MTA')
-dnl
-dnl This is necessary for the local Sendmail to work, when using
-dnl an alternate port number:
-DAEMON_OPTIONS('Port=25','Name=MTA')
-dnl
-FEATURE(nouucp, nospecial)
-FEATURE(use_cw_file)
-FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')
-FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
-FEATURE(`local_procmail')
-FEATURE(`mailertable')
-MAILER(procmail)
-INPUT_MAIL_FILTER(`clmilter',`S=local:/var/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
-dnl INPUT_MAIL_FILTER(`smf-spf', `S=local:/var/run/smfs/smf-spf.sock, T=S:30s;R:1m')
-dnl INPUT_MAIL_FILTER(`greylist',`S=local:/var/run/milter-greylist/milter-greylist.sock')
-MAILER(smtp)
-EOF
-
- sed -i -e "s!_HOSTNAME_!${MACHINE_NAME}\.${DOMAIN}!g" /etc/mail/sendmail.mc
- sed -i -e "s!_DOMAIN_!${DOMAIN}!g" /etc/mail/sendmail.mc
-
- if [ -n "${SENDMAIL_INCOMING_PORT}" ]; then
+ define(`confMAX_MESSAGE_SIZE',10000000)
+ dnl
+ define(`confMAX_DAEMON_CHILDREN',`30')
+ define(`confCONNECTION_RATE_THROTTLE',`10')
+ define(`confMAX_RCPTS_PER_MESSAGE',`50')
+ dnl
+ dnl ---------- MILTER support ----------
+ define(`confINPUT_MAIL_FILTERS',`clmilter')
+ dnl
+ dnl ---------- SMTP Authorization options ----------
+ define(`confAUTH_OPTIONS', `A')
+ define(`confAUTH_MECHANISMS', `LOGIN PLAIN')
+ TRUST_AUTH_MECH(`LOGIN PLAIN')
+ dnl
+ dnl ---------- Don't send the version number of sendmail ----------
+ define(`confSMTP_LOGIN_MSG',`_HOSTNAME_')
+ MASQUERADE_AS(_DOMAIN_)
+ dnl Uncomment the following line to use a non-standard port
+ dnl DAEMON_OPTIONS(`Port=_ALTERNATE_PORT_NUMBER_,Name=MTA')
+ dnl
+ dnl This is necessary for the local Sendmail to work, when using
+ dnl an alternate port number:
+ DAEMON_OPTIONS('Port=25','Name=MTA')
+ dnl
+ FEATURE(nouucp, nospecial)
+ FEATURE(use_cw_file)
+ FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')
+ FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
+ FEATURE(`local_procmail')
+ FEATURE(`mailertable')
+ MAILER(procmail)
+ INPUT_MAIL_FILTER(`clmilter',`S=local:/var/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
+ dnl INPUT_MAIL_FILTER(`smf-spf', `S=local:/var/run/smfs/smf-spf.sock, T=S:30s;R:1m')
+ dnl INPUT_MAIL_FILTER(`greylist',`S=local:/var/run/milter-greylist/milter-greylist.sock')
+ MAILER(smtp)
+ EOF
+
+sed -i -e "s!_HOSTNAME_!${MACHINE_NAME}\.${DOMAIN}!g" /etc/mail/sendmail.mc
+sed -i -e "s!_DOMAIN_!${DOMAIN}!g" /etc/mail/sendmail.mc
+
+if [ -n "${SENDMAIL_INCOMING_PORT}" ]; then
# Uncommenting the alternate port line
- sed -i -e "s!\(dnl \)\(.*_ALTERNATE_PORT_NUMBER_.*\)!\2!g" /etc/mail/sendmail.mc
+ sed -i -e "s!\(dnl \)\(.*_ALTERNATE_PORT_NUMBER_.*\)!\2!g" /etc/mail/sendmail.mc
# Replacing the port number
- sed -i -e "s!_ALTERNATE_PORT_NUMBER_!${SENDMAIL_INCOMING_PORT}!g" /etc/mail/sendmail.mc
- fi
-
+ sed -i -e "s!_ALTERNATE_PORT_NUMBER_!${SENDMAIL_INCOMING_PORT}!g" /etc/mail/sendmail.mc
+fi
+
# We must put the domain name, and not the hostname in local-host-names
- echo "${DOMAIN}" > /etc/mail/local-host-names
-
- if [ -n "${MAIL_ADMIN}" ]; then
- echo "postmaster: ${MAIL_ADMIN}" > /etc/mail/aliases
- else
- exit 1
- fi
- cat >> /etc/mail/aliases << "EOF"
+echo "${DOMAIN}" > /etc/mail/local-host-names
+
+if [ -n "${MAIL_ADMIN}" ]; then
+ echo "postmaster: ${MAIL_ADMIN}" > /etc/mail/aliases
+else
+ exit 1
+fi
+cat >> /etc/mail/aliases << "EOF"
mailer-daemon: postmaster
abuse: postmaster
root: postmaster
EOF
- cat > /etc/mail/access << "EOF"
+ cat > /etc/mail/access << "EOF"
# This is absolutely needed for each 192.168.0.x computer to send mail...
Connect:192.168.0 RELAY
EOF
- cd /etc/mail
- cp -R ${LFS_TMP}/${1}/cf/* .
+ cd /etc/mail
+ cp -R ${LFS_TMP}/${PACKAGE}/cf/* .
- cat > /etc/mail/submit.mc << "EOF"
+ cat > /etc/mail/submit.mc << "EOF"
dnl
include(`./m4/cf.m4')dnl
-dnl
-EOF
- cat ${LFS_TMP}/${1}/cf/cf/submit.mc >> /etc/mail/submit.mc
+ dnl
+ EOF
+ cat ${LFS_TMP}/${PACKAGE}/cf/cf/submit.mc >> /etc/mail/submit.mc
sed -i "s!\(^FEATURE.*\)127.0.0.1\(.*\)!\1${MACHINE_NAME}\.${DOMAIN}\2!" /etc/mail/submit.mc
newaliases -v
-
+
cat > /etc/mail/virtusertable << "EOF"
# MAKE SURE ALL ENTRIES ARE SEPARATED WITH <TAB>
#
EOF
- if [ -n "${SENDMAIL_ALT_MAILER}" ]; then
- echo ". ${SENDMAIL_ALT_MAILER}" > /etc/mail/mailertable
- else
- echo "# Define alternate mailer in this file" > /etc/mail/mailertable
- fi
+ if [ -n "${SENDMAIL_ALT_MAILER}" ]; then
+ echo ". ${SENDMAIL_ALT_MAILER}" > /etc/mail/mailertable
+ else
+ echo "# Define alternate mailer in this file" \
+ > /etc/mail/mailertable
+ fi
- cat > /etc/mail/configure << "EOF"
-#!/bin/sh
+ cat > /etc/mail/configure << "EOF"
+#!/bin/bash
PID_FILE="/var/run/sendmail.pid"
exit $?
EOF
- chmod 740 /etc/mail/configure
+ chmod 740 /etc/mail/configure
- # Bootscript
- install -v -m740 ${SCRDIR}/bootscripts/sendmail /etc/rc.d/init.d
+ # Bootscript
+ install -v -m740 ${SCRDIR}/bootscripts/sendmail /etc/rc.d/init.d
- # script-name start stop
- bootscript_add_rc3 sendmail 65 25
+ # script-name start stop
+ bootscript_add_rc3 sendmail 65 25
- cat > /usr/local/bin/mail-if-fail << "EOF"
-#!/bin/sh
+ cat > /usr/local/bin/mail-if-fail << "EOF"
+#!/bin/bash
# This script is used to run a command. If the command failed,
# an email is sent to the address specified by MAILTO.
exit ${ERROR_CODE}
EOF
- sed -i -e "s!_DOMAIN_!${DOMAIN}!g" /usr/local/bin/mail-if-fail
- chmod 755 /usr/local/bin/mail-if-fail
+ sed -i -e "s!_DOMAIN_!${DOMAIN}!g" /usr/local/bin/mail-if-fail
+ chmod 755 /usr/local/bin/mail-if-fail
- cp ${SCRDIR}/resources/mail-files.sh /usr/local/bin
- chmod 755 /usr/local/bin/mail-files.sh
+ cp ${SCRDIR}/misc/mail-files.sh /usr/local/bin
+ chmod 755 /usr/local/bin/mail-files.sh
- # Executing configure script.
- /etc/mail/configure
-fi
-
-exit $?
+ # Executing configure script.
+ /etc/mail/configure
+ fi
+}