From Fedora Project Wiki

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.