]> git.pld-linux.org Git - packages/rpm-build-macros.git/blob - macros.systemd
- add rpmrc for rpm.org and add rename TODO
[packages/rpm-build-macros.git] / macros.systemd
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() \
79 want_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.036974 seconds and 3 git commands to generate.