]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/core/macros.systemd.in
core: make manager_serialize() a bit easier to read by adding predicate function
[thirdparty/systemd.git] / src / core / macros.systemd.in
CommitLineData
873e4133 1# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
d9215cd8 2# SPDX-License-Identifier: LGPL-2.1+
590f18a2
LP
3#
4# This file is part of systemd.
590f18a2
LP
5
6# RPM macros for packages installing systemd unit files
7
8%_unitdir @systemunitdir@
ed8086d1 9%_userunitdir @userunitdir@
a1d41e17 10%_presetdir @systempresetdir@
c715e7a9 11%_userpresetdir @userpresetdir@
1b0fcd74
LP
12%_udevhwdbdir @udevhwdbdir@
13%_udevrulesdir @udevrulesdir@
14%_journalcatalogdir @catalogdir@
b532bdea 15%_binfmtdir @binfmtdir@
424e80b4
ZJS
16%_sysctldir @sysctldir@
17%_sysusersdir @sysusersdir@
18%_tmpfilesdir @tmpfilesdir@
6ea4cb97 19%_environmentdir @environmentdir@
424e80b4
ZJS
20%_modulesloaddir @modulesloaddir@
21%_modprobedir @modprobedir@
1071fd08
ZJS
22%_systemdgeneratordir @systemgeneratordir@
23%_systemdusergeneratordir @usergeneratordir@
64691d20
ZJS
24%_systemd_system_env_generator_dir @systemenvgeneratordir@
25%_systemd_user_env_generator_dir @userenvgeneratordir@
590f18a2 26
a6bb5504
NG
27# Because we had one release with a typo...
28# This is temporary (Remove after systemd 240 is released)
be9bf171 29%_environmnentdir %{warn:Use %%_environmentdir instead}%_environmentdir
a6bb5504 30
590f18a2
LP
31%systemd_requires \
32Requires(post): systemd \
33Requires(preun): systemd \
34Requires(postun): systemd \
35%{nil}
36
2424b6bd
HH
37%systemd_ordering \
38OrderWithRequires(post): systemd \
39OrderWithRequires(preun): systemd \
40OrderWithRequires(postun): systemd \
41%{nil}
42
590f18a2
LP
43%systemd_post() \
44if [ $1 -eq 1 ] ; then \
45 # Initial installation \
030caa65 46 systemctl --no-reload preset %{?*} &>/dev/null || : \
590f18a2
LP
47fi \
48%{nil}
49
28d36da6 50%systemd_user_post() %{expand:%systemd_post \\--global %%{?*}}
7c67f0f7 51
590f18a2
LP
52%systemd_preun() \
53if [ $1 -eq 0 ] ; then \
54 # Package removal, not upgrade \
030caa65 55 systemctl --no-reload disable --now %{?*} &>/dev/null || : \
590f18a2
LP
56fi \
57%{nil}
58
7c67f0f7
ZJS
59%systemd_user_preun() \
60if [ $1 -eq 0 ] ; then \
61 # Package removal, not upgrade \
030caa65 62 systemctl --global disable %{?*} &>/dev/null || : \
7c67f0f7
ZJS
63fi \
64%{nil}
65
873e4133 66%systemd_postun() %{nil}
590f18a2 67
7c67f0f7
ZJS
68%systemd_user_postun() %{nil}
69
590f18a2 70%systemd_postun_with_restart() \
590f18a2
LP
71if [ $1 -ge 1 ] ; then \
72 # Package upgrade, not uninstall \
030caa65 73 systemctl try-restart %{?*} &>/dev/null || : \
590f18a2
LP
74fi \
75%{nil}
1b0fcd74 76
7c67f0f7
ZJS
77%systemd_user_postun_with_restart() %{nil}
78
32a00a9c 79%udev_hwdb_update() %{nil}
1b0fcd74 80
32a00a9c 81%udev_rules_update() %{nil}
1b0fcd74 82
32a00a9c 83%journal_catalog_update() %{nil}
042e33ae 84
0f78fee8 85# Deprecated. Use %tmpfiles_create_package instead
042e33ae 86%tmpfiles_create() \
030caa65 87systemd-tmpfiles --create %{?*} &>/dev/null || : \
042e33ae 88%{nil}
b532bdea 89
07a7d4a0 90# Deprecated. Use %sysusers_create_package instead
b532bdea 91%sysusers_create() \
030caa65 92systemd-sysusers %{?*} &>/dev/null || : \
b532bdea
LP
93%{nil}
94
0e77023e 95%sysusers_create_inline() \
030caa65 96systemd-sysusers - <<SYSTEMD_INLINE_EOF &>/dev/null || : \
c2887d56 97%{?*} \
dd2490ae 98SYSTEMD_INLINE_EOF \
0e77023e
LP
99%{nil}
100
0f78fee8
ZJS
101# This should be used by package installation scripts which require users or
102# groups to be present before the files installed by the package are present on
103# disk (for example because some files are owned by those users or groups).
07a7d4a0
ZJS
104#
105# Example:
0f78fee8 106# Source1: %{name}-sysusers.conf
07a7d4a0
ZJS
107# ...
108# %install
0f78fee8 109# install -D %SOURCE1 %{buildroot}%{_sysusersdir}/%{name}.conf
07a7d4a0
ZJS
110# %pre
111# %sysusers_create_package %{name} %SOURCE1
112# %files
0f78fee8 113# %{_sysusersdir}/%{name}.conf
07a7d4a0 114%sysusers_create_package() \
030caa65 115systemd-sysusers --replace=%_sysusersdir/%1.conf - <<SYSTEMD_INLINE_EOF &>/dev/null || : \
dd2490ae
ZJS
116%(cat %2) \
117SYSTEMD_INLINE_EOF \
07a7d4a0
ZJS
118%{nil}
119
0f78fee8
ZJS
120# This may be used by package installation scripts to create files according to
121# their tmpfiles configuration from a package installation script, even before
122# the files of that package are installed on disk.
123#
124# Example:
125# Source1: %{name}-tmpfiles.conf
126# ...
127# %install
128# install -D %SOURCE1 %{buildroot}%{_tmpfilesdir}/%{name}.conf
129# %pre
130# %tmpfiles_create_package %{name} %SOURCE1
131# %files
132# %{_tmpfilesdir}/%{name}.conf
133%tmpfiles_create_package() \
030caa65 134systemd-tmpfiles --replace=%_tmpfilesdir/%1.conf --create - <<SYSTEMD_INLINE_EOF &>/dev/null || : \
dd2490ae
ZJS
135%(cat %2) \
136SYSTEMD_INLINE_EOF \
0f78fee8
ZJS
137%{nil}
138
b532bdea 139%sysctl_apply() \
030caa65 140@rootlibexecdir@/systemd-sysctl %{?*} &>/dev/null || : \
b532bdea
LP
141%{nil}
142
143%binfmt_apply() \
030caa65 144@rootlibexecdir@/systemd-binfmt %{?*} &>/dev/null || : \
b532bdea 145%{nil}