No MTA
Summary
Don't ship a MTA by default for the desktop.
Owner
- Name: Adam Miller
- email: maxamillion [AT] gmail.com
Current status
- Targeted release: Fedora 13
- Last updated: 23 March 2010
- Percentage of completion: 90%
Working:
- Everything as designed (Aside from messages that would normally be sent via a MTA)
Done:
- Write a patch for cronie that will redirect messages that would be sent to a MTA to syslog in the event a MTA is not present. Submit patch to cronie upstream.
- Patches written and submitted; see RHBZ #548843
- Patch applied to cronie-1.4.4, currently in F13.
TODO:
- Modify default crond config to use syslog instead of sendmail
- set
CRONDARGS="-s -m off"
in/etc/sysconfig/crond
- set
- Patch the default configuration for logwatch to not send mail, but to send messages to stdout and then verify the patch to cronie is reporting logwatch messages to syslog accordingly.
- Verify there are no other packages that will require a patch to function without a MTA
Detailed Description
The shipping of a default MTA has long been the de facto standard, but for the vast majority of users this is simply wasted resources and wasted disk space for the packages installed. Without an MTA the utilities that would have previously delivered local mail will just simply silently not deliver mail. Instead we can redirect the output to a log and those users who need a MTA are free to install any one they so choose.
Benefit to Fedora
Less used disk space for default install, less used resources, stopping of the MTA madness.
Scope
MTAs are not a necessary daemon on a desktop system, so we need not include one by default.
cronie
is the only package in a default Fedora install that requests the use of an MTA. If /usr/sbin/sendmail
is not present, it will simply stop sending mail. Therefore, if we modify cronie
to send job output to a log file, we can remove the requirement for an MTA with no loss of functionality.
The cron
syslog facility exists for this purpose, and our current cron
setup already uses it[1] to log some messages[2] to /var/log/cron
.
Required changes:
- Modify
cronie
to send job output to thecron
syslog facility ifsendmail
is missing- In
/etc/sysconfig/crond
setCRONDARGS="-s -m off"
- In
- Remove
Requires: /usr/sbin/sendmail
fromcronie
's spec file - Add comments to default/example
crontab
that sendmail must be installed andCRONDARGS
changed for mail sending to work
Packages that may require changes:
How To Test
Uninstall sendmail on your current machine and enjoy the "no warning messages, no crashing, just blissful MTA-free silence" - wwoods
User Experience
Transparent to majority of users, will add a 'yum install <insert-MTA-here>' step to advanced users who have an actual use case for a MTA on their machines.
Dependencies
none
Contingency Plan
Do Nothing.
Documentation
- None
Release Notes
- None
References
- ↑
/usr/bin/run-parts
runs all the cron jobs in/etc/cron.{hourly,daily,weekly,monthly}
- see/etc/cron.d/0hourly
(which runs the jobs in/etc/cron.hourly
) and/etc/anacrontab
(which launches the daily/weekly/monthly jobs.) - ↑ In fact, our current setup does not log the output of cron jobs to
/var/log/cron
- this feature would fix that.
Comments and Discussion