1) %{pkgname}.service
должен быть помещен в %{_unitdir}
, который расширяется до /usr/lib/systemd/system/
2) При использовании макроса %systemd_post %{pkgname}.service
там нет необходимости:
if [ $1 -eq 1 ]; then
/usr/bin/systemctl daemon-reload
/usr/bin/systemctl start %{pkgname}.service
fi
if [ $1 -eq 2 ]; then
/usr/bin/systemctl daemon-reload
/usr/bin/systemctl start %{pkgname}.service
fi
Аналогично для %pre
и %preun
.