From Fedora Project Wiki

< Changes

Revision as of 21:08, 31 December 2019 by Zbyszek (talk | contribs) (Created page with "<!-- Self Contained or System Wide Change Proposal? Use this guide to determine to which category your proposed change belongs to. Self Contained Changes are: * changes to is...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Systemd presets for user units


System units are managed through presets since F18 and by policy, presets are carried by the fedora-release package. This policy is now extended to user units.


Current status

  • Targeted release: Fedora 32
  • Last updated: 2019-12-31
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The preset mechanism for user units was already in place, but we were missing the actual preset files, and the default was "enable *" instead of "disable *" as for system services.

Systemd will now provide a /usr/lib/systemd/user-preset/99-default-disable.preset that marks user services as disabled by default. Any user services which should be enabled will be to get an appropriate preset in /usr/lib/systemd/user-preset/90-default-user.preset or a spin-specific file. Most packages already call into the preset mechanism, but those which don't will be adjusted to do that.

This is essentially a fix for There is no good reason to treat user services different than system services in this regard. On the systemd side this change is very simple, but all packages that provide user units need to be reviewed to check if they are enabled after the change if appropriate.

Benefit to Fedora

User and system services are handled in the same way.

Local configuration may be used to override which services should be enabled after upgrade. In particular, "local" in this context may mean "per-spin" or "per-user".


  • Proposal owners:
    • review all packages that provide user services in Fedora and submit PRs when changes are needed
    • add a new presets file to the fedora-release package for user units
    • submit a proposal to FPC to update the guidelines (essentially to say "... and the same for user services.").
  • Other developers:
    • FPC: review (and accept ;)) the guidelines changes
    • other maintainers: verify that units in their packages are enabled or not as appropriate after package installation
  • Release engineering: n/a
  • Policies and guidelines: a pull request will be submitted
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Should not be user visible. Some units which are are currently enabled by mistake will not be enabled anymore on new installations.

How To Test

Install a new system (or uninstall and reinstall some packages). Verify that the appropriate units are enabled for the user session.

User Experience




Contingency Plan

  • Contingency mechanism: Revert the changes.
  • Contingency deadline: beta freeze
  • Blocks release? No
  • Blocks product? No


A pull request for the packaging guidelines will be submitted.

Release Notes

Not needed.