
Hi, sorry, I didn't realize I have to modify upstream version. I added Requires stanza to libvirtd service file for cgconfig.service, so you should not need to call enable in spec file for it. I added %with_systemd_macros so it should now work in F17 with old scriptlets and in F18+/RHEL7+ with systemd macros I missed libvirt-guests.service because there is no systemctl call for it. So I only added systemd macros calls. Release and Changelog are untouched so you can modify it as you need. Regards Vaclav Eric Blake píše v St 24. 10. 2012 v 11:30 -0600:
On 10/24/2012 04:37 AM, Václav Pavlín wrote:
Hi,
I created patch for spec file to follow changes in guidelines with respect to new systemd macros (see https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd)
new-systemd-macros.patch
diff --git a/libvirt.spec b/libvirt.spec index b47ec0e..675290f 100644 --- a/libvirt.spec +++ b/libvirt.spec
Upstream, we would want to patch libvirt.spec.in (the parent of libvirt.spec).
@@ -316,7 +316,7 @@ Summary: Library providing a simple virtualization API Name: libvirt Version: 0.10.2 -Release: 3%{?dist}%{?extra_release} +Release: 4%{?dist}%{?extra_release}
This is a downstream-only change, since upstream libvirt.spec.in does not track downstream releases. Besides, downstream is more likely to use the upstream v0.10.2-maint branch and use 0.10.2.1-1 as the next build for Fedora 18.
%if %{with_systemd} -if [ $1 -eq 1 ] ; then - # Initial installation - /bin/systemctl enable libvirtd.service >/dev/null 2>&1 || : - /bin/systemctl enable cgconfig.service >/dev/null 2>&1 || : -fi +%systemd_post libvirtd.service cgconfig.service
Hmm - we may have a pre-existing issue: this is a case of enabling a service that we don't own, but where cgconfig.service is a prerequisite of libvirtd.service. Is this really the right order for enabling the two services, and is it really necessary for use to explicitly enable cgconfig.service, or should the contents of libvirtd.service be adequate for systemd to automatically figure out the dependency?
%changelog +* Fri Oct 19 2012 Václav Pavlín <vpavlin@redhat.com> - 0.10.2-4 +- Scriptlets replaced with new systemd macros (#850186)
Again, %changelog is something only needed for downstream builds. Also, your patch is missing a conversion for libvirt-guests.service, also in the spec file:
$ grep -C2 libvirt-guests.service libvirt.spec.in # If the package is allowed to autostart: /bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||:
# Run these because the SysV package being removed won't do them /sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || : /bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || : %endif
-- %{_sysconfdir}/rc.d/init.d/libvirt-guests %if %{with_systemd} %{_unitdir}/libvirt-guests.service %endif %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests