Scriptlets
The systemd package provides a set of helper macros to handle systemd scriptlet operations. These macros support systemd "presets", as documented in Features/PackagePresets. The %systemd_requires
macro is a shortcut for listing the per-scriptlet dependencies on systemd.
%{?systemd_requires} BuildRequires: systemd [...] %post %systemd_post apache-httpd.service %preun %systemd_preun apache-httpd.service %postun %systemd_postun_with_restart apache-httpd.service
Some services do not support being restarted (e.g. D-Bus and various storage daemons). If your service should not be restarted upon upgrade, then use the following %postun
scriptlet instead of the one shown above:
%postun %systemd_postun apache-httpd.service
If your package includes one or more systemd units that need to be enabled by default on package installation, they MUST be covered by the Fedora preset policy.
User units
There are additional macros for user units (those installed under %_userunitdir
) that should be used similarly to those for system units. These enable and disable user units according to presets, and are %systemd_user_post
(to be used in %post
) and %systemd_user_preun
(to be used in %preun
).
%{?systemd_requires} BuildRequires: systemd [...] %post %systemd_user_post %{name}.service %preun %systemd_user_preun %{name}.service
Macro details
For details on what these macros evaluate to, refer to the following sources:
https://github.com/systemd/systemd/blob/master/src/core/macros.systemd.in,
https://github.com/systemd/systemd/blob/master/src/core/triggers.systemd.in and
http://www.freedesktop.org/software/systemd/man/daemon.html.
Insert non-formatted text here