On Fri, Dec 20, 2024 at 03:08:02PM -0600, Praveen K Paladugu wrote: > Enabling building and packaging ch driver in the spec file. > > Signed-off-by: Praveen K Paladugu <praveenkpaladugu@xxxxxxxxx> > --- > libvirt.spec.in | 51 ++++++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 48 insertions(+), 3 deletions(-) > > diff --git a/libvirt.spec.in b/libvirt.spec.in > index 3d5164b534..303d7cb34a 100644 > --- a/libvirt.spec.in > +++ b/libvirt.spec.in > @@ -35,6 +35,7 @@ > %define with_lxc 0%{!?_without_lxc:1} > %define with_libxl 0%{!?_without_libxl:1} > %define with_vbox 0%{!?_without_vbox:1} > +%define with_ch 0%{!?_without_ch:1} > > %ifarch %{arches_qemu_kvm} > %define with_qemu_kvm %{with_qemu} > @@ -1026,6 +1027,20 @@ Server side daemon and driver required to manage the virtualization > capabilities of VirtualBox > %endif Higher up against the main libvirt package you'll need %if %{with_ch} Requires: libvirt-daemon-driver-ch = %{version}-%{release} %endif just look for the place we do this for libvirt-daemon-driver-qemu TL;DR: 'libvirt' is supposed to depend on all enabled drivers. > > + %if %{with_ch} > +%package daemon-driver-ch > +Summary: Cloud-Hypervisor driver plugin for libvirtd daemon > +Requires: libvirt-daemon-common = %{version}-%{release} > +Requires: libvirt-daemon-log = %{version}-%{release} > +Requires: libvirt-libs = %{version}-%{release} > + > +%description daemon-driver-ch > +The ch driver plugin for the libvirtd daemon, providing > +an implementation of the hypervisor driver APIs by > +Cloud-Hypervisor > + %endif > + > + > %package client > Summary: Client side utilities of the libvirt library > Requires: libvirt-libs = %{version}-%{release} > @@ -1188,9 +1203,15 @@ exit 1 > %endif > > %if %{with_esx} > - %define arg_esx -Ddriver_esx=enabled -Dcurl=enabled > + %define arg_esx -Ddriver_esx=enabled > +%else > + %define arg_esx -Ddriver_esx=disabled > +%endif > + > +%if %{with_esx} || %{with_ch} > + %define arg_curl -Dcurl=enabled > %else > - %define arg_esx -Ddriver_esx=disabled -Dcurl=disabled > + %define arg_curl -Dcurl=disabled > %endif > > %if %{with_hyperv} > @@ -1205,6 +1226,12 @@ exit 1 > %define arg_vmware -Ddriver_vmware=disabled > %endif > > +%if %{with_ch} > + %define arg_ch -Ddriver_ch=enabled > +%else > + %define arg_ch -Ddriver_ch=disabled > +%endif > + > %if %{with_storage_rbd} > %define arg_storage_rbd -Dstorage_rbd=enabled > %else > @@ -1335,11 +1362,12 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec) > -Ddriver_remote=enabled \ > -Ddriver_test=enabled \ > %{?arg_esx} \ > + %{?arg_curl} \ > %{?arg_hyperv} \ > %{?arg_vmware} \ > + %{?arg_ch} \ > -Ddriver_vz=disabled \ > -Ddriver_bhyve=disabled \ > - -Ddriver_ch=disabled \ > %{?arg_remote_mode} \ > -Ddriver_interface=enabled \ > -Ddriver_network=enabled \ > @@ -1541,6 +1569,10 @@ rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl > rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug > rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug > %endif > + %if ! %{with_ch} > +rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_ch.aug > +rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_ch.aug > + %endif > > # Copied into libvirt-docs subpackage eventually > mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs > @@ -2405,6 +2437,19 @@ exit 0 > %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper > %endif IN this gap you'll need %pre daemon-driver-ch ... %posttrans daemon-driver-ch ... %preun daemon-driver-ch ... to handle setup for the unit files for the CH driver. Again you can largely just copy what's done with the QEMU driver systemd rules > > + %if %{with_ch} > +%files daemon-driver-ch > +%attr(0755, root, root) %{_sbindir}/virtchd > +%config(noreplace) %{_sysconfdir}/libvirt/virtchd.conf > +%{_datadir}/augeas/lenses/virtchd.aug > +%{_datadir}/augeas/lenses/tests/test_virtchd.aug > +%{_unitdir}/virtchd-admin.socket > +%{_unitdir}/virtchd-ro.socket > +%{_unitdir}/virtchd.service > +%{_unitdir}/virtchd.socket > +%{_libdir}/libvirt/connection-driver/libvirt_driver_ch.so > + %endif > + > %files client > %{_mandir}/man1/virsh.1* > %{_mandir}/man1/virt-xml-validate.1* > -- > 2.47.0 > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|