-Amélioré fonctions de download des packages
[hvlinux.git] / stage5 / pkg / sendmail
index 3009964..808be79 100644 (file)
@@ -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<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"
 
@@ -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
+}