Features/MinimalServices

= Minimal Services =

Summary
Many services are not needed to be enabled by default on all desktop installations, and several are dependant on having hardware present in the system, so systems without that hardware should have the services disabled.

Owner

 * Name: StewartAdam

Current status

 * Targeted release:  Fedora ?
 * Last updated: (2008-07-09)
 * Percentage of completion: 0%

Detailed Description
Several services which are enabled on all installs by default are not used by the majority of users. These should be disabled to provide a faster bootup, a reduced the memory footprint as well as preventing possible security vulnerabilities.

Other services are hardware-specific and run if the required hardware isn't present.

Services to be disabled

 * netfs: A lot of stuff is managed through the DEs now, not fstab
 * atd: cron is already running for task automation and AFAIK more used than at
 * sendmail: I'd imagine 99% of users don't need a mail server installed by default
 * rpmsvcgssd: AFAIK not needed for NFSv4 functionality
 * rpcgssd: AFAIK not needed for NFSv4 functionality

Services to be started conditionally based on hardware

 * bluetooth
 * irda

Benefit to Fedora
Bonus points for finally getting sendmail off default installs? ;)

Scope
Requires modifying a few init scripts changes or adding an additional script to the post-installation configuration procedure in anaconda to autodetect hardware. As well, changing the chkconfig defaults on new installations will be required.

Test Plan
1. Determine which services aren't needed by most users

2. Disable the unpopular services

3. Modify anaconda or the initscripts depending on which option is decided

User Experience
1. Users will notice a (small) decrease in boot time

2. Users will notice a lower memory footprint

3. Users won't have to worry about security vulnerabilities on daemon they don't need to have running

Dependencies

 * A hardware database for bluetooth and infra-red devices (must investigate into HAL and/or hwdata)

Contingency Plan

 * Reset the service defaults to their previous configuration
 * Undo modifications to anaconda's post-installation configuration procedure or the initscripts

Documentation

 * http://fedoranews.org/mediawiki/index.php/Which_Services_Can_I_Disable%3F
 * http://www.hscripts.com/tutorials/linux-services/

Release Notes
The services which have been disabled by default should be noted in the release notes to prevent confusion from users who do use the services.

Extra notes

 * I may be wrong about some services, this is more if a prototype for now - I haven't done much research.
 * These services I originally thought we could disable, but they are needed
 * rpcidmapd and rpcbind: Needed for NFSv4 mounts
 * It would be interesting to only start these when a NFSv4 mount was attempted.
 * isdn: Needed for ISDN connection type
 * Maybe isdn could be configured to only start when a isdn connection has been configured? This would get tricky to do with NM though.