X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage5%2Fpkg%2Fsendmail;h=808be7941510f266ce44b4baff7dcd5ca620738c;hb=f3c8db3027d5dc530e1f30c88e0235975211582e;hp=30099649f66dfc39c43a67fb4cfa25545ba1e765;hpb=0fb786eca497edb316e1dfaa4a4ccec2d6b3f694;p=hvlinux.git diff --git a/stage5/pkg/sendmail b/stage5/pkg/sendmail index 3009964..808be79 100644 --- a/stage5/pkg/sendmail +++ b/stage5/pkg/sendmail @@ -1,25 +1,16 @@ -#!/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') @@ -27,38 +18,38 @@ define(`confUBINGRP',`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') @@ -80,102 +71,103 @@ dnl "noreceipts": To disable sending DSN receipts. 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 /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 /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 # 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" @@ -197,16 +189,16 @@ fi 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. @@ -242,14 +234,13 @@ rm -f ${LOGFILE} 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}/misc/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 +}