]> git.pld-linux.org Git - packages/rpm-build-macros.git/blame - macros.systemd
- split macros into language/feature specific files
[packages/rpm-build-macros.git] / macros.systemd
CommitLineData
cdc9189e
JR
1# pre/post script for packages supporting systemd units
2#
3# Authors: Bartlomiej Zimon <uzi18@o2.pl>
4# Jan Rękorajski <baggins@mimuw.edu.pl>
5#
6# Usage:
7# %systemd_reload
8# %systemd_service <unit command> service_name1.service service_name2.service
9# %systemd_service_enable service_name1.service service_name2.service
10# %systemd_service_disable service_name1.service service_name2.service
11# %systemd_service_start service_name1.service service_name2.service
12# %systemd_service_stop service_name1.service service_name2.service
13# %systemd_service_restart service_name1.service service_name2.service
14# %systemd_service_reload service_name1.service service_name2.service
15#
16# %systemd_post service_name1.service service_name2.service
17# %systemd_preun service_name1.service service_name2.service
18# %systemd_trigger service_name1.service service_name2.service
19#
20# Sample:
21# %post
22# %systemd_post %{name}.service
23#
24# %preun
25# %systemd_preun %{name}.service
26#
27# %postun
28# %systemd_reload
29#
30# %triggerpostun -- %{name} < first-version-with-systemd-units
31# %systemd_trigger %{name}.service
32#
33# Requirements:
34# BuildRequires: rpmbuild(macros) >= 1.671
35# Requires: systemd-units >= 38
36
37%systemd_reload /bin/systemd_booted && SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog /bin/systemctl daemon-reload || :
38
39%systemd_service_enable() \
40 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
41 /bin/systemctl preset --preset-mode=enable-only %{*} || : \
42 /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \
43%{nil}
44
45%systemd_service_disable() \
46 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
47 /bin/systemctl --quiet disable %{*} || : \
48%{nil}
49
50%systemd_service() \
51 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
52 /bin/systemd_booted && /bin/systemctl %{*} || : \
53%{nil}
54
55%systemd_service_start() \
56 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
57 /bin/systemd_booted && /bin/systemctl start %{*} || : \
58%{nil}
59
60%systemd_service_stop() \
61 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
62 /bin/systemd_booted && /bin/systemctl stop %{*} || : \
63%{nil}
64
65# NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using
66%systemd_service_restart() \
67 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
68 /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \
69%{nil}
70
71# NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using
72%systemd_service_reload() \
73 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
74 /bin/systemd_booted && /bin/systemctl reload %{*} || : \
75%{nil}
76
77# NOTE: this trigger disobeys systemd.preset in favour of RPM_ENABLE_SYSTEMD_SERVICE
78%systemd_trigger() \
79want_enable_service() { \
80 [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \
81 [ ${RPM_ENABLE_SYSTEMD_SERVICE:-yes} = no ] && return 1 \
82 [ "$(echo /etc/rc.d/rc[0-6].d/S[0-9][0-9]${1%.service})" = "/etc/rc.d/rc[0-6].d/S[0-9][0-9]${1%.service}" ] && return 1 \
83 return 0 \
84}\
85 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
86 for s in %{*}; do \
87 if want_enable_service $s; then \
88 /bin/systemctl enable $s || : \
89 fi \
90 done \
91%{nil}
92
93%systemd_post() \
94 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
95 /bin/systemd_booted && /bin/systemctl daemon-reload || : \
96 if [ $1 -eq 1 ]; then \
97 /bin/systemctl preset --preset-mode=enable-only %{*} >/dev/null || : \
98 /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \
99 elif [ -z "$NORESTART" ]; then \
100 /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \
101 else \
102 /bin/systemd_booted && echo 'Run "/bin/systemctl restart %{*}" to restart %{*}.' || : \
103 fi \
104%{nil}
105
106%systemd_preun() \
107 if [ $1 -eq 0 ]; then \
108 export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
109 /bin/systemd_booted && /bin/systemctl stop %{*} || : \
110 /bin/systemctl --quiet disable %{*} || : \
111 fi \
112%{nil}
113
114%systemdunitdir /lib/systemd/system
115%systemduserunitdir /usr/lib/systemd/user
116%systemdtmpfilesdir /usr/lib/tmpfiles.d
117
118# BuildRequires: rpmbuild(macros) >= 1.721
119%journal_catalog_update() [ ! -x /bin/journalctl ] || /bin/journalctl --update-catalog >/dev/null 2>&1 || :
This page took 0.039396 seconds and 4 git commands to generate.