etc/rc.d/sendmail: Actually execute sendmail_precmd().
authorSascha Wildner <saw@online.de>
Wed, 20 May 2009 20:03:35 +0000 (22:03 +0200)
committerSascha Wildner <saw@online.de>
Wed, 20 May 2009 20:04:14 +0000 (22:04 +0200)
This will cause the sendmail rc script to care about running
newaliases(1) itself if necessary (database doesn't exist or
/etc/mail/aliases is newer than /etc/mail/aliases.db).

Also add a new rc.conf variable 'sendmail_rebuild_aliases' to
turn off this behavior which is on by default.

This means we don't need to run newaliases(1) ourselves in a
couple of places (such as when building the LiveCD), so remove
those.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issue52>

etc/defaults/rc.conf
etc/rc.d/diskless
etc/rc.d/sendmail
nrelease/Makefile
share/man/man8/rc.sendmail.8

index 0f7895b..625ef42 100644 (file)
@@ -391,6 +391,7 @@ sendmail_outbound_flags="-L sm-queue -q30m" # Flags to sendmail (outbound only)
 sendmail_msp_queue_enable="YES"        # Dequeue stuck clientmqueue mail (YES/NO).
 sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m"
                                # Flags for sendmail_msp_queue daemon.
+sendmail_rebuild_aliases="YES" # Run newaliases if necessary (YES/NO).
 
 
 ##############################################################
index 9406e79..9ea8804 100644 (file)
@@ -107,11 +107,6 @@ fi
 echo "+++ create lastlog"
 /usr/bin/touch /var/log/lastlog
 
-# Make sure our aliases database is uptodate, the aliases may have
-# been overridden in /conf.
-#
-/usr/bin/newaliases
-
 # XXX make sure to create one dir for each printer as requested by lpd
 #
 # If we do not have a writable /tmp, create a memory
index 492e1f9..4f492ee 100644 (file)
@@ -18,6 +18,7 @@
 name="sendmail"
 rcvar=`set_rcvar`
 required_files="/etc/mail/${name}.cf"
+start_precmd="sendmail_precmd"
 command=${sendmail_program:-/usr/sbin/sendmail}
 pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
 load_rc_config $name
@@ -44,16 +45,18 @@ sendmail_precmd()
        fi
 
        # check modifications on /etc/mail/aliases
-       if [ -f "/etc/mail/aliases.db" ]; then
-               if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
-                       echo \
+       if checkyesno sendmail_rebuild_aliases; then
+               if [ -f "/etc/mail/aliases.db" ]; then
+                       if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
+                               echo \
            "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
-                       /usr/bin/newaliases
-               fi
-       else
-               echo \
+                               /usr/bin/newaliases
+                       fi
+               else
+                       echo \
            "${name}: /etc/mail/aliases.db not present, generating"
-                       /usr/bin/newaliases
+                               /usr/bin/newaliases
+               fi
        fi
 
        # check couple of common db files, too
index 60c673d..86641e4 100644 (file)
@@ -144,18 +144,18 @@ NRLOBJDIR?= /usr/obj
 #########################################################################
 
 release:       check clean buildworld1 buildkernel1 \
-               buildiso srcs customizeiso mkaliases mklocatedb \
+               buildiso srcs customizeiso mklocatedb \
                mkiso mkimg
 
 quickrel:      check clean buildworld2 buildkernel2 \
-               buildiso srcs customizeiso mkaliases mklocatedb \
+               buildiso srcs customizeiso mklocatedb \
                mkiso mkimg
 
-realquickrel:  check clean buildiso srcs customizeiso \
-               mkaliases mklocatedb \
+realquickrel:  check clean \
+               buildiso srcs customizeiso mklocatedb \
                mkiso mkimg
 
-restartpkgs:   check customizeiso mkaliases mklocatedb mkiso mkimg
+restartpkgs:   check customizeiso mklocatedb mkiso mkimg
 
 quick:         quickrel
 
@@ -374,11 +374,6 @@ customizeiso:
        makewhatis ${ISOROOT}/usr/local/man
        makewhatis ${ISOROOT}/usr/pkg/man
 
-# So a CD boot does not complain about a missing aliases database
-#
-mkaliases:
-       ${CHROOT_CMD} "newaliases"
-
 # So locate works
 #
 mklocatedb:
@@ -479,6 +474,6 @@ help all:
 .PHONY: quick realquick
 .PHONY: check buildworld1 buildworld2
 .PHONY: buildkernel1 buildkernel2 buildiso customizeiso mklocatedb mkiso mkimg
-.PHONY: clean realclean fetch help all mkaliases srcs
+.PHONY: clean realclean fetch help all srcs
 
 .include <bsd.prog.mk>
index 88a6ed4..f7e665a 100644 (file)
@@ -27,7 +27,7 @@
 .\" $FreeBSD: src/share/man/man8/rc.sendmail.8,v 1.1.2.2 2002/05/22 17:01:33 gshapiro Exp $
 .\" $DragonFly: src/share/man/man8/rc.sendmail.8,v 1.4 2008/05/02 02:05:06 swildner Exp $
 .\"
-.Dd March 30, 2002
+.Dd May 20, 2009
 .Dt RC.SENDMAIL 8
 .Os
 .Sh NAME
@@ -252,6 +252,19 @@ sendmail_submit_enable="NO"
 sendmail_outbound_enable="NO"
 sendmail_msp_queue_enable="NO"
 .Ed
+.Pp
+Additionally, the setting of the
+.Va sendmail_rebuild_aliases
+variable determines whether
+.Xr newaliases 1
+is run if necessary or not.
+If set to
+.Dq Li YES ,
+the
+.Pa /etc/mail/aliases.db
+file is automatically regenerated either if it is older than
+.Pa /etc/mail/aliases
+or non-existant.
 .Sh SEE ALSO
 .Xr rc.conf 5 ,
 .Xr rc 8 ,