From Fedora Project Wiki

(BuildRequires: systemd-rpm-macros)
 
(4 intermediate revisions by 3 users not shown)
Line 5: Line 5:


There should be mentioned rule about files in /var/run and /var/lock. Regular files in /var/run and /var/lock directories should be packaged as %ghost. For directories use tmpfiles.d(5) mechanism without %ghost.  --plautrba
There should be mentioned rule about files in /var/run and /var/lock. Regular files in /var/run and /var/lock directories should be packaged as %ghost. For directories use tmpfiles.d(5) mechanism without %ghost.  --plautrba
"''Systemd unit .service files must not be marked as %config files.''" - I disagree, those are files commonly customized ('''.service''' ones for example nice/idle daemon priority). It does not mention '''.timer''' files, those also should be %config so that their modifications do not get lost.
The section on filesystem locations says the service files must got into '''%{_unitdir}''', but in reality they might need to go into '''%{_userunitdir}''' instead if they are targeted for user sessions. Using '''systemctl --user enable <service>''' doesn't work if it is in the system location ('''%{_unitdir}''').
Use '''BuildRequires: systemd-rpm-macros''' instead of '''BuildRequires: systemd''' if only systemd macros definitions are needed.

Latest revision as of 13:22, 30 September 2022

What I am missing is a explicit guideline on whether one should continue packaging init scripts and unit files or drop the init scripts in Rawhide

-- Rahul Sundaram


There should be mentioned rule about files in /var/run and /var/lock. Regular files in /var/run and /var/lock directories should be packaged as %ghost. For directories use tmpfiles.d(5) mechanism without %ghost. --plautrba


"Systemd unit .service files must not be marked as %config files." - I disagree, those are files commonly customized (.service ones for example nice/idle daemon priority). It does not mention .timer files, those also should be %config so that their modifications do not get lost.


The section on filesystem locations says the service files must got into %{_unitdir}, but in reality they might need to go into %{_userunitdir} instead if they are targeted for user sessions. Using systemctl --user enable <service> doesn't work if it is in the system location (%{_unitdir}).


Use BuildRequires: systemd-rpm-macros instead of BuildRequires: systemd if only systemd macros definitions are needed.