summaryrefslogtreecommitdiff
path: root/rtkit.spec
blob: 73373fba53a40df4e34eeedc60e09e4cd359b768 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Summary:	Realtime Policy and Watchdog Daemon
Summary(pl.UTF-8):	Demon polityki i dozorujący dla szeregowania czasu rzeczywistego (RealTime)
Name:		rtkit
Version:	0.13
Release:	1
Group:		Base
# The daemon itself is GPLv3+, the reference implementation for the client BSD
License:	GPL v3+ (daemon), BSD (client library)
Source0:	https://github.com/heftig/rtkit/releases/download/v%{version}/%{name}-%{version}.tar.xz
# Source0-md5:	90939b9886d1998fa5b15f6109bfd1ae
URL:		https://github.com/heftig/rtkit
BuildRequires:	dbus-devel >= 1.2
BuildRequires:	libcap-devel
BuildRequires:	meson >= 0.49.0
BuildRequires:	ninja
BuildRequires:	polkit-devel
BuildRequires:	rpmbuild(macros) >= 1.736
BuildRequires:	systemd-devel
BuildRequires:	tar >= 1:1.22
BuildRequires:	xxd
BuildRequires:	xz
Requires(pre):	/bin/id
Requires(pre):	/usr/bin/getgid
Requires(pre):	/usr/sbin/groupadd
Requires(pre):	/usr/sbin/useradd
Requires(post):	systemd-units
Requires(preun):	systemd-units
Requires(postun):	/usr/sbin/groupdel
Requires(postun):	/usr/sbin/userdel
Requires(postun):	systemd-units
Requires:	dbus
Requires:	polkit
Requires:	systemd-units
Provides:	group(rtkit)
Provides:	user(rtkit)
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%description
RealtimeKit is a D-Bus system service that changes the scheduling
policy of user processes/threads to SCHED_RR (i.e. realtime scheduling
mode) on request. It is intended to be used as a secure mechanism to
allow real-time scheduling to be used by normal user processes.

%description -l pl.UTF-8
RealtimeKit to usługa systemowa D-Bus zmieniająca na żądanie politykę
szeregowania procesów/wątków użytkownika na SCHED_RR (tj. tryb
szeregowania czasu rzeczywistego). Jest zaprojektowana jako bezpieczny
mechanizm pozwalający na wykorzystywanie szeregowania czasu
rzeczywistego przez procesy zwykłych użytkowników.

%prep
%setup -q

%build
%meson build \
	-Dinstalled_tests=false
%ninja_build -C build

%install
rm -rf $RPM_BUILD_ROOT
%ninja_install -C build

%clean
rm -rf $RPM_BUILD_ROOT

%pre
%groupadd -r -g 278 rtkit
%useradd -r -u 278 -g rtkit -d /proc -s /sbin/nologin -c "RealtimeKit" rtkit

%post
if [ "$1" -eq 1 ]; then
	/bin/systemctl enable rtkit.service >/dev/null 2>&1 || :
fi
dbus-send --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig >/dev/null 2>&1 || :

%preun
if [ "$1" -eq 0 ]; then
	/bin/systemctl --no-reload disable rtkit-daemon.service >/dev/null 2>&1 || :
	/bin/systemctl stop rtkit-daemon.service >/dev/null 2>&1 || :
fi

%postun
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ "$1" = "0" ]; then
	%userremove rtkit
	%groupremove rtkit
fi

%files
%defattr(644,root,root,755)
%doc README LICENSE rtkit.c rtkit.h
%attr(755,root,root) %{_bindir}/rtkitctl
%attr(755,root,root) %{_libexecdir}/rtkit-daemon
%{_datadir}/dbus-1/interfaces/org.freedesktop.RealtimeKit1.xml
%{_datadir}/dbus-1/system-services/org.freedesktop.RealtimeKit1.service
%{_datadir}/polkit-1/actions/org.freedesktop.RealtimeKit1.policy
%{_datadir}/dbus-1/system.d/org.freedesktop.RealtimeKit1.conf
%{systemdunitdir}/rtkit-daemon.service
%{_mandir}/man8/rtkitctl.8*