virt-host-validate: Move AMD SEV into a separate func
[libvirt.git] / libvirt.spec.in
blob29101e74fee32fd1c02f1fecae8767c3ddb8ed67
1 # -*- rpm-spec -*-
3 # This spec file assumes you are building on a Fedora or RHEL version
4 # that's still supported by the vendor. It may work on other distros
5 # or versions, but no effort will be made to ensure that going forward.
6 %define min_rhel 8
7 %define min_fedora 37
9 %define arches_qemu_kvm %{ix86} x86_64 %{power64} %{arm} aarch64 s390x
10 %if 0%{?rhel}
11 %if 0%{?rhel} > 8
12 %define arches_qemu_kvm x86_64 aarch64 s390x
13 %else
14 %define arches_qemu_kvm x86_64 %{power64} aarch64 s390x
15 %endif
16 %endif
18 %define arches_64bit x86_64 %{power64} aarch64 s390x riscv64
19 %define arches_x86 %{ix86} x86_64
21 %define arches_systemtap_64bit %{arches_64bit}
22 %define arches_dmidecode %{arches_x86}
23 %define arches_xen %{arches_x86} aarch64
24 %if 0%{?fedora}
25 %define arches_xen x86_64 aarch64
26 %endif
27 %define arches_vbox %{arches_x86}
28 %define arches_ceph %{arches_64bit}
29 %define arches_zfs %{arches_x86} %{power64} %{arm}
30 %define arches_numactl %{arches_x86} %{power64} aarch64 s390x
31 %define arches_numad %{arches_x86} %{power64} aarch64
33 # The hypervisor drivers that run in libvirtd
34 %define with_qemu 0%{!?_without_qemu:1}
35 %define with_lxc 0%{!?_without_lxc:1}
36 %define with_libxl 0%{!?_without_libxl:1}
37 %define with_vbox 0%{!?_without_vbox:1}
39 %ifarch %{arches_qemu_kvm}
40 %define with_qemu_kvm %{with_qemu}
41 %else
42 %define with_qemu_kvm 0
43 %endif
45 %define with_qemu_tcg %{with_qemu}
47 # RHEL disables TCG on all architectures
48 %if 0%{?rhel}
49 %define with_qemu_tcg 0
50 %endif
52 %if ! %{with_qemu_tcg} && ! %{with_qemu_kvm}
53 %define with_qemu 0
54 %endif
56 # Then the hypervisor drivers that run outside libvirtd, in libvirt.so
57 %define with_openvz 0%{!?_without_openvz:1}
58 %define with_vmware 0%{!?_without_vmware:1}
59 %define with_esx 0%{!?_without_esx:1}
60 %define with_hyperv 0%{!?_without_hyperv:1}
62 # Then the secondary host drivers, which run inside libvirtd
63 %define with_storage_rbd 0%{!?_without_storage_rbd:1}
65 %define with_storage_gluster 0%{!?_without_storage_gluster:1}
66 %if 0%{?rhel}
67 # Glusterfs has been dropped in RHEL-9, and before that
68 # was only enabled on arches where KVM exists
69 %if 0%{?rhel} > 8
70 %define with_storage_gluster 0
71 %else
72 %ifnarch %{arches_qemu_kvm}
73 %define with_storage_gluster 0
74 %endif
75 %endif
76 %endif
78 # Fedora has zfs-fuse
79 %if 0%{?fedora}
80 %define with_storage_zfs 0%{!?_without_storage_zfs:1}
81 %else
82 %define with_storage_zfs 0
83 %endif
85 %define with_storage_iscsi_direct 0%{!?_without_storage_iscsi_direct:1}
86 # libiscsi has been dropped in RHEL-9
87 %if 0%{?rhel} > 8
88 %define with_storage_iscsi_direct 0
89 %endif
91 # Other optional features
92 %define with_numactl 0%{!?_without_numactl:1}
93 %define with_userfaultfd_sysctl 0%{!?_without_userfaultfd_sysctl:1}
95 # A few optional bits off by default, we enable later
96 %define with_fuse 0
97 %define with_sanlock 0
98 %define with_numad 0
99 %define with_nbdkit 0
100 %define with_nbdkit_config_default 0
101 %define with_firewalld_zone 0
102 %define with_netcf 0
103 %define with_libssh2 0
104 %define with_wireshark 0
105 %define with_libssh 0
106 %define with_dmidecode 0
108 # Finally set the OS / architecture specific special cases
110 # Architecture-dependent features
111 %ifnarch %{arches_xen}
112 %define with_libxl 0
113 %endif
114 %ifnarch %{arches_vbox}
115 %define with_vbox 0
116 %endif
117 %ifnarch %{arches_numactl}
118 %define with_numactl 0
119 %endif
120 %ifnarch %{arches_zfs}
121 %define with_storage_zfs 0
122 %endif
123 %ifnarch %{arches_ceph}
124 %define with_storage_rbd 0
125 %endif
127 # RHEL doesn't ship many hypervisor drivers
128 %if 0%{?rhel}
129 %define with_openvz 0
130 %define with_vbox 0
131 %define with_vmware 0
132 %define with_libxl 0
133 %define with_hyperv 0
134 %define with_lxc 0
135 %endif
137 %define with_firewalld_zone 0%{!?_without_firewalld_zone:1}
139 %if 0%{?rhel} && 0%{?rhel} < 9
140 %define with_netcf 0%{!?_without_netcf:1}
141 %endif
143 # fuse is used to provide virtualized /proc for LXC
144 %if %{with_lxc}
145 %define with_fuse 0%{!?_without_fuse:1}
146 %endif
148 # Enable sanlock library for lock management with QEMU
149 # Sanlock is available only on arches where kvm is available for RHEL
150 %if 0%{?fedora}
151 %define with_sanlock 0%{!?_without_sanlock:1}
152 %endif
153 %if 0%{?rhel}
154 %ifarch %{arches_qemu_kvm}
155 %define with_sanlock 0%{!?_without_sanlock:1}
156 %endif
157 %endif
159 # Enable libssh2 transport for new enough distros
160 %if 0%{?fedora}
161 %define with_libssh2 0%{!?_without_libssh2:1}
162 %endif
164 # Enable wireshark plugins for all distros
165 %define with_wireshark 0%{!?_without_wireshark:1}
166 %define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
168 # Enable libssh transport for all distros
169 %define with_libssh 0%{!?_without_libssh:1}
171 %if %{with_qemu} || %{with_lxc}
172 # numad is used to manage the CPU and memory placement dynamically,
173 # it's not available on many non-x86 architectures.
174 %ifarch %{arches_numad}
175 %define with_numad 0%{!?_without_numad:1}
176 %endif
177 %endif
179 # We want to build with nbdkit support, but should only enable nbdkit by
180 # default if the OS ships a SELinux policy that allows libvirt to launch it.
181 # Right now that's not the case anywhere, but things should be fine by the time
182 # Fedora 40 is released.
183 %if %{with_qemu}
184 # rhel-8 lacks pidfd_open
185 %if 0%{?fedora} || 0%{?rhel} >= 9
186 %define with_nbdkit 0%{!?_without_nbdkit:1}
188 # setting 'with_nbdkit_config_default' must be done only when compiling
189 # in nbdkit support
191 # TODO: add RHEL 9 once a minor release that contains the necessary SELinux
192 # bits exists (we only support the most recent minor release)
193 %if 0%{?fedora} >= 40
194 %define with_nbdkit_config_default 0%{!?_without_nbdkit_config_default:1}
195 %endif
196 %endif
197 %endif
199 %ifarch %{arches_dmidecode}
200 %define with_dmidecode 0%{!?_without_dmidecode:1}
201 %endif
203 %define with_modular_daemons 0
204 %if 0%{?fedora} || 0%{?rhel} >= 9
205 %define with_modular_daemons 1
206 %endif
208 # Prefer nftables for future OS releases but keep using iptables
209 # for existing ones
210 %if 0%{?rhel} >= 10 || 0%{?fedora} >= 41
211 %define prefer_nftables 1
212 %define firewall_backend_priority nftables,iptables
213 %else
214 %define prefer_nftables 0
215 %define firewall_backend_priority iptables,nftables
216 %endif
220 # Force QEMU to run as non-root
221 %define qemu_user qemu
222 %define qemu_group qemu
224 # Locations for QEMU data
225 %define qemu_moddir %{_libdir}/qemu
226 %define qemu_datadir %{_datadir}/qemu
228 # Native / MinGW builds
229 %define with_native 0%{!?_without_native:1}
231 %define with_mingw32 0
232 %define with_mingw64 0
234 %if 0%{?fedora}
235 %if 0%{!?_without_mingw:1}
236 %define with_mingw32 0%{!?_without_mingw32:1}
237 %define with_mingw64 0%{!?_without_mingw64:1}
238 %endif
240 # These tell the other mingw macros whether to perform or
241 # skip the 32-bit and 64-bit specific steps respectively
242 %define mingw_build_win32 %{with_mingw32}
243 %define mingw_build_win64 %{with_mingw64}
244 %endif
246 %if !%{with_native}
247 # Building the debugsource package apparently only works if the
248 # native build is enabled. debuginfo packages don't have this
249 # problem and setting this doesn't disable them
250 %global debug_package %{nil}
251 %endif
253 # RHEL releases provide stable tool chains and so it is safe to turn
254 # compiler warning into errors without being worried about frequent
255 # changes in reported warnings
256 %if 0%{?rhel}
257 %define enable_werror -Dwerror=true
258 %else
259 %define enable_werror -Dwerror=false -Dgit_werror=disabled
260 %endif
262 # Fedora and RHEL-9 are new enough to support /dev/userfaultfd, which
263 # does not require enabling vm.unprivileged_userfaultfd sysctl.
264 %if 0%{?fedora} || 0%{?rhel} >= 9
265 %define with_userfaultfd_sysctl 0
266 %endif
268 %define tls_priority "@LIBVIRT,SYSTEM"
270 # libvirt 8.1.0 stops distributing any sysconfig files.
271 # If the user has customized their sysconfig file,
272 # the RPM upgrade path will rename it to .rpmsave
273 # because the file is no longer managed by RPM.
274 # To prevent a regression we rename it back after the
275 # transaction to preserve the user's modifications
276 %define libvirt_sysconfig_pre() \
277 for sc in %{?*} ; do \
278 test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
279 mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \
280 done \
281 %{nil}
282 %define libvirt_sysconfig_posttrans() \
283 for sc in %{?*} ; do \
284 test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
285 mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \
286 done \
287 %{nil}
289 Summary: Library providing a simple virtualization API
290 Name: libvirt
291 Version: @VERSION@
292 Release: 1%{?dist}
293 License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
294 URL: https://libvirt.org/
296 %if %(echo %{version} | grep "\.0$" >/dev/null; echo $?) == 1
297 %define mainturl stable_updates/
298 %endif
299 Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
301 Requires: libvirt-daemon = %{version}-%{release}
302 Requires: libvirt-daemon-config-network = %{version}-%{release}
303 Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
304 %if %{with_libxl}
305 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
306 %endif
307 %if %{with_lxc}
308 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
309 %endif
310 %if %{with_qemu}
311 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
312 Requires: libvirt-client-qemu = %{version}-%{release}
313 %endif
314 # We had UML driver, but we've removed it.
315 Obsoletes: libvirt-daemon-driver-uml <= 5.0.0
316 Obsoletes: libvirt-daemon-uml <= 5.0.0
317 %if %{with_vbox}
318 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
319 %endif
320 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
321 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
322 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
323 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
324 Requires: libvirt-daemon-driver-network = %{version}-%{release}
325 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
326 Requires: libvirt-client = %{version}-%{release}
327 Requires: libvirt-libs = %{version}-%{release}
329 # All build-time requirements. Run-time requirements are
330 # listed against each sub-RPM
331 BuildRequires: python3-docutils
332 BuildRequires: meson >= 0.56.0
333 BuildRequires: ninja-build
334 BuildRequires: git
335 BuildRequires: perl-interpreter
336 BuildRequires: python3
337 BuildRequires: python3-pytest
338 # For xmllint
339 BuildRequires: libxml2
340 # For xsltproc
341 BuildRequires: libxslt
342 BuildRequires: gettext
343 BuildRequires: systemd-rpm-macros
344 # Fedora build root suckage
345 BuildRequires: gawk
346 %if %{with_native}
347 BuildRequires: gcc
348 %if %{with_libxl}
349 BuildRequires: xen-devel
350 %endif
351 BuildRequires: glib2-devel >= 2.58
352 BuildRequires: libxml2-devel
353 BuildRequires: readline-devel
354 BuildRequires: pkgconfig(bash-completion) >= 2.0
355 BuildRequires: libtasn1-devel
356 BuildRequires: gnutls-devel
357 BuildRequires: libattr-devel
358 # For pool-build probing for existing pools
359 BuildRequires: libblkid-devel >= 2.17
360 # for augparse, optionally used in testing
361 BuildRequires: augeas
362 BuildRequires: systemd-devel >= 185
363 BuildRequires: libpciaccess-devel >= 0.10.9
364 BuildRequires: yajl-devel
365 %if %{with_sanlock}
366 BuildRequires: sanlock-devel >= 2.4
367 %endif
368 BuildRequires: libpcap-devel >= 1.5.0
369 BuildRequires: libnl3-devel
370 BuildRequires: libselinux-devel
371 # For modprobe
372 BuildRequires: kmod
373 BuildRequires: cyrus-sasl-devel
374 BuildRequires: polkit >= 0.112
375 # For mount/umount in FS driver
376 BuildRequires: util-linux
377 %if %{with_qemu}
378 # For managing ACLs
379 BuildRequires: libacl-devel
380 # From QEMU RPMs, used by virstoragetest
381 BuildRequires: /usr/bin/qemu-img
382 %endif
383 # nbdkit support requires libnbd
384 %if %{with_nbdkit}
385 BuildRequires: libnbd-devel
386 %endif
387 # For LVM drivers
388 BuildRequires: lvm2
389 # For pool type=iscsi
390 BuildRequires: iscsi-initiator-utils
391 %if %{with_storage_iscsi_direct}
392 # For pool type=iscsi-direct
393 BuildRequires: libiscsi-devel
394 %endif
395 # For disk driver
396 BuildRequires: parted-devel
397 # For Multipath support
398 BuildRequires: device-mapper-devel
399 %if %{with_storage_rbd}
400 BuildRequires: librados-devel
401 BuildRequires: librbd-devel
402 %endif
403 %if %{with_storage_gluster}
404 BuildRequires: glusterfs-api-devel >= 3.4.1
405 BuildRequires: glusterfs-devel >= 3.4.1
406 %endif
407 %if %{with_numactl}
408 # For QEMU/LXC numa info
409 BuildRequires: numactl-devel
410 %endif
411 BuildRequires: libcap-ng-devel >= 0.5.0
412 %if %{with_fuse}
413 BuildRequires: fuse-devel >= 2.8.6
414 %endif
415 %if %{with_libssh2}
416 BuildRequires: libssh2-devel >= 1.3.0
417 %endif
418 %if %{with_netcf}
419 BuildRequires: netcf-devel >= 0.2.2
420 %endif
421 %if %{with_esx}
422 BuildRequires: libcurl-devel
423 %endif
424 %if %{with_hyperv}
425 BuildRequires: libwsman-devel >= 2.6.3
426 %endif
427 BuildRequires: audit-libs-devel
428 # we need /usr/sbin/dtrace
429 BuildRequires: systemtap-sdt-devel
430 # For mount/umount in FS driver
431 BuildRequires: util-linux
432 # For showmount in FS driver (netfs discovery)
433 BuildRequires: nfs-utils
434 %if %{with_numad}
435 BuildRequires: numad
436 %endif
437 %if %{with_wireshark}
438 BuildRequires: wireshark-devel
439 %endif
440 %if %{with_libssh}
441 BuildRequires: libssh-devel >= 0.8.1
442 %endif
443 BuildRequires: libtirpc-devel
444 %if %{with_firewalld_zone}
445 # Needed for the firewalld_reload macro
446 BuildRequires: firewalld-filesystem
447 %endif
448 %endif
450 %if %{with_mingw32}
451 BuildRequires: mingw32-filesystem
452 BuildRequires: mingw32-gcc
453 BuildRequires: mingw32-binutils
454 BuildRequires: mingw32-glib2 >= 2.48
455 BuildRequires: mingw32-gnutls
456 BuildRequires: mingw32-gettext
457 BuildRequires: mingw32-libxml2
458 BuildRequires: mingw32-portablexdr
459 BuildRequires: mingw32-dlfcn
460 BuildRequires: mingw32-libssh2
461 BuildRequires: mingw32-curl
462 %endif
463 %if %{with_mingw64}
464 BuildRequires: mingw64-filesystem
465 BuildRequires: mingw64-gcc
466 BuildRequires: mingw64-binutils
467 BuildRequires: mingw64-glib2 >= 2.48
468 BuildRequires: mingw64-gnutls
469 BuildRequires: mingw64-gettext
470 BuildRequires: mingw64-libxml2
471 BuildRequires: mingw64-portablexdr
472 BuildRequires: mingw64-dlfcn
473 BuildRequires: mingw64-libssh2
474 BuildRequires: mingw64-curl
475 %endif
477 %description
478 Libvirt is a C toolkit to interact with the virtualization capabilities
479 of recent versions of Linux (and other OSes). The main package includes
480 the libvirtd server exporting the virtualization support.
482 %if %{with_native}
483 %package docs
484 Summary: API reference and website documentation
486 %description docs
487 Includes the API reference for the libvirt C library, and a complete
488 copy of the libvirt.org website documentation.
490 %package daemon
491 Summary: Server side daemon and supporting files for libvirt library
493 # All runtime requirements for the libvirt package (runtime requrements
494 # for subpackages are listed later in those subpackages)
496 # The client side, i.e. shared libs are in a subpackage
497 Requires: libvirt-libs = %{version}-%{release}
498 Requires: libvirt-daemon-common = %{version}-%{release}
499 Requires: libvirt-daemon-lock = %{version}-%{release}
500 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
501 Requires: libvirt-daemon-log = %{version}-%{release}
502 Requires: libvirt-daemon-proxy = %{version}-%{release}
504 %description daemon
505 Server side daemon required to manage the virtualization capabilities
506 of recent versions of Linux. Requires a hypervisor specific sub-RPM
507 for specific drivers.
509 %package daemon-common
510 Summary: Files and utilities used by daemons
511 Requires: libvirt-libs = %{version}-%{release}
512 # The libvirt-guests.sh script requires virsh from libvirt-client subpackage,
513 # but not every deployment wants to use libvirt-guests service. Using
514 # Recommends here will install libvirt-client by default (if available), but
515 # RPM won't complain if the package is unavailable, masked, or removed later.
516 Recommends: libvirt-client = %{version}-%{release}
517 # for /sbin/ip
518 Requires: iproute
519 # for /sbin/tc
520 Requires: iproute-tc
521 Requires: polkit >= 0.112
522 %if %{with_dmidecode}
523 # For virConnectGetSysinfo
524 Requires: dmidecode
525 %endif
526 # For service management
527 Requires(posttrans): /usr/bin/systemctl
528 Requires(preun): /usr/bin/systemctl
529 # libvirtd depends on 'messagebus' service
530 Requires: dbus
531 # For uid creation during pre
532 Requires(pre): shadow-utils
533 # Needed by /usr/libexec/libvirt-guests.sh script.
534 %if 0%{?fedora}
535 Requires: gettext-runtime
536 %else
537 Requires: gettext
538 %endif
540 # Ensure smooth upgrades
541 Obsoletes: libvirt-admin < 7.3.0
542 Provides: libvirt-admin = %{version}-%{release}
543 Obsoletes: libvirt-bash-completion < 7.3.0
545 %description daemon-common
546 Miscellaneous files and utilities used by other libvirt daemons
548 %package daemon-lock
549 Summary: Server side daemon for managing locks
550 Requires: libvirt-libs = %{version}-%{release}
552 %description daemon-lock
553 Server side daemon used to manage locks held against virtual machine
554 resources
556 %package daemon-plugin-lockd
557 Summary: lockd client plugin for virtlockd
558 Requires: libvirt-libs = %{version}-%{release}
559 Requires: libvirt-daemon-lock = %{version}-%{release}
561 %description daemon-plugin-lockd
562 A client-side plugin that implements disk locking using POSIX fcntl advisory
563 locks via communication with the virtlockd daemon
565 %package daemon-log
566 Summary: Server side daemon for managing logs
567 Requires: libvirt-libs = %{version}-%{release}
569 %description daemon-log
570 Server side daemon used to manage logs from virtual machine consoles
572 %package daemon-proxy
573 Summary: Server side daemon providing libvirtd proxy
574 Requires: libvirt-libs = %{version}-%{release}
575 # netcat is needed on the server side so that clients that have
576 # libvirt < 6.9.0 can connect, but newer versions will prefer
577 # virt-ssh-helper. Making this a Recommends means that it gets
578 # installed by default, but can still be removed if compatibility
579 # with old clients is not required
580 Recommends: /usr/bin/nc
582 %description daemon-proxy
583 Server side daemon providing functionality previously provided by
584 the monolithic libvirtd
586 %package daemon-config-network
587 Summary: Default configuration files for the libvirtd daemon
589 Requires: libvirt-daemon-driver-network = %{version}-%{release}
591 %description daemon-config-network
592 Default configuration files for setting up NAT based networking
594 %package daemon-config-nwfilter
595 Summary: Network filter configuration files for the libvirtd daemon
597 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
599 %description daemon-config-nwfilter
600 Network filter configuration files for cleaning guest traffic
602 %package daemon-driver-network
603 Summary: Network driver plugin for the libvirtd daemon
604 Requires: libvirt-daemon-common = %{version}-%{release}
605 Requires: libvirt-libs = %{version}-%{release}
606 Requires: dnsmasq >= 2.41
607 %if %{prefer_nftables}
608 Requires: nftables
609 %else
610 Requires: iptables
611 %endif
613 %description daemon-driver-network
614 The network driver plugin for the libvirtd daemon, providing
615 an implementation of the virtual network APIs using the Linux
616 bridge capabilities.
618 %package daemon-driver-nwfilter
619 Summary: Nwfilter driver plugin for the libvirtd daemon
620 Requires: libvirt-daemon-common = %{version}-%{release}
621 Requires: libvirt-libs = %{version}-%{release}
622 Requires: iptables
623 Requires: ebtables
625 %description daemon-driver-nwfilter
626 The nwfilter driver plugin for the libvirtd daemon, providing
627 an implementation of the firewall APIs using the ebtables,
628 iptables and ip6tables capabilities
630 %package daemon-driver-nodedev
631 Summary: Nodedev driver plugin for the libvirtd daemon
632 Requires: libvirt-daemon-common = %{version}-%{release}
633 Requires: libvirt-libs = %{version}-%{release}
634 # needed for device enumeration
635 Requires: systemd >= 185
636 # For managing persistent mediated devices
637 # Note: for nodedev-update support at least mdevctl v1.3.0 is required
638 Requires: mdevctl
639 # for modprobe of pci devices
640 Requires: module-init-tools
642 %description daemon-driver-nodedev
643 The nodedev driver plugin for the libvirtd daemon, providing
644 an implementation of the node device APIs using the udev
645 capabilities.
647 %package daemon-driver-interface
648 Summary: Interface driver plugin for the libvirtd daemon
649 Requires: libvirt-daemon-common = %{version}-%{release}
650 Requires: libvirt-libs = %{version}-%{release}
651 %if %{with_netcf}
652 Requires: netcf-libs >= 0.2.2
653 %endif
655 %description daemon-driver-interface
656 The interface driver plugin for the libvirtd daemon, providing
657 an implementation of the host network interface APIs.
659 %package daemon-driver-secret
660 Summary: Secret driver plugin for the libvirtd daemon
661 Requires: libvirt-daemon-common = %{version}-%{release}
662 Requires: libvirt-libs = %{version}-%{release}
664 %description daemon-driver-secret
665 The secret driver plugin for the libvirtd daemon, providing
666 an implementation of the secret key APIs.
668 %package daemon-driver-storage-core
669 Summary: Storage driver plugin including base backends for the libvirtd daemon
670 Requires: libvirt-daemon-common = %{version}-%{release}
671 Requires: libvirt-libs = %{version}-%{release}
672 Requires: nfs-utils
673 # For mkfs
674 Requires: util-linux
675 # For storage wiping with different algorithms
676 Requires: scrub
677 %if %{with_qemu}
678 # From QEMU RPMs
679 Requires: /usr/bin/qemu-img
680 %endif
681 %if !%{with_storage_rbd}
682 Obsoletes: libvirt-daemon-driver-storage-rbd < 5.2.0
683 %endif
684 Obsoletes: libvirt-daemon-driver-storage-sheepdog < 8.8.0
686 %description daemon-driver-storage-core
687 The storage driver plugin for the libvirtd daemon, providing
688 an implementation of the storage APIs using files, local disks, LVM, SCSI,
689 iSCSI, and multipath storage.
691 %package daemon-driver-storage-logical
692 Summary: Storage driver plugin for lvm volumes
693 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
694 Requires: libvirt-libs = %{version}-%{release}
695 Requires: lvm2
697 %description daemon-driver-storage-logical
698 The storage driver backend adding implementation of the storage APIs for block
699 volumes using lvm.
701 %package daemon-driver-storage-disk
702 Summary: Storage driver plugin for disk
703 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
704 Requires: libvirt-libs = %{version}-%{release}
705 Requires: parted
706 Requires: device-mapper
708 %description daemon-driver-storage-disk
709 The storage driver backend adding implementation of the storage APIs for block
710 volumes using the host disks.
712 %package daemon-driver-storage-scsi
713 Summary: Storage driver plugin for local scsi devices
714 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
715 Requires: libvirt-libs = %{version}-%{release}
717 %description daemon-driver-storage-scsi
718 The storage driver backend adding implementation of the storage APIs for scsi
719 host devices.
721 %package daemon-driver-storage-iscsi
722 Summary: Storage driver plugin for iscsi
723 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
724 Requires: libvirt-libs = %{version}-%{release}
725 Requires: iscsi-initiator-utils
727 %description daemon-driver-storage-iscsi
728 The storage driver backend adding implementation of the storage APIs for iscsi
729 volumes using the host iscsi stack.
731 %if %{with_storage_iscsi_direct}
732 %package daemon-driver-storage-iscsi-direct
733 Summary: Storage driver plugin for iscsi-direct
734 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
735 Requires: libvirt-libs = %{version}-%{release}
737 %description daemon-driver-storage-iscsi-direct
738 The storage driver backend adding implementation of the storage APIs for iscsi
739 volumes using libiscsi direct connection.
740 %endif
742 %package daemon-driver-storage-mpath
743 Summary: Storage driver plugin for multipath volumes
744 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
745 Requires: libvirt-libs = %{version}-%{release}
746 Requires: device-mapper
748 %description daemon-driver-storage-mpath
749 The storage driver backend adding implementation of the storage APIs for
750 multipath storage using device mapper.
752 %if %{with_storage_gluster}
753 %package daemon-driver-storage-gluster
754 Summary: Storage driver plugin for gluster
755 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
756 Requires: libvirt-libs = %{version}-%{release}
757 %if 0%{?fedora}
758 Requires: glusterfs-client >= 2.0.1
759 %endif
760 %if 0%{?fedora} || 0%{?with_storage_gluster}
761 Requires: /usr/sbin/gluster
762 %endif
764 %description daemon-driver-storage-gluster
765 The storage driver backend adding implementation of the storage APIs for gluster
766 volumes using libgfapi.
767 %endif
769 %if %{with_storage_rbd}
770 %package daemon-driver-storage-rbd
771 Summary: Storage driver plugin for rbd
772 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
773 Requires: libvirt-libs = %{version}-%{release}
775 %description daemon-driver-storage-rbd
776 The storage driver backend adding implementation of the storage APIs for rbd
777 volumes using the ceph protocol.
778 %endif
780 %if %{with_storage_zfs}
781 %package daemon-driver-storage-zfs
782 Summary: Storage driver plugin for ZFS
783 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
784 Requires: libvirt-libs = %{version}-%{release}
785 # Support any conforming implementation of zfs
786 Requires: /sbin/zfs
787 Requires: /sbin/zpool
789 %description daemon-driver-storage-zfs
790 The storage driver backend adding implementation of the storage APIs for
791 ZFS volumes.
792 %endif
794 %package daemon-driver-storage
795 Summary: Storage driver plugin including all backends for the libvirtd daemon
796 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
797 Requires: libvirt-daemon-driver-storage-disk = %{version}-%{release}
798 Requires: libvirt-daemon-driver-storage-logical = %{version}-%{release}
799 Requires: libvirt-daemon-driver-storage-scsi = %{version}-%{release}
800 Requires: libvirt-daemon-driver-storage-iscsi = %{version}-%{release}
801 Requires: libvirt-daemon-driver-storage-mpath = %{version}-%{release}
802 %if %{with_storage_iscsi_direct}
803 Requires: libvirt-daemon-driver-storage-iscsi-direct = %{version}-%{release}
804 %endif
805 %if %{with_storage_gluster}
806 Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
807 %endif
808 %if %{with_storage_rbd}
809 Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
810 %endif
811 %if %{with_storage_zfs}
812 Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
813 %endif
815 %description daemon-driver-storage
816 The storage driver plugin for the libvirtd daemon, providing
817 an implementation of the storage APIs using LVM, iSCSI,
818 parted and more.
820 %if %{with_qemu}
821 %package daemon-driver-qemu
822 Summary: QEMU driver plugin for the libvirtd daemon
823 Requires: libvirt-daemon-common = %{version}-%{release}
824 Requires: libvirt-daemon-log = %{version}-%{release}
825 Requires: libvirt-libs = %{version}-%{release}
826 Requires: /usr/bin/qemu-img
827 # For image compression
828 Requires: gzip
829 Requires: bzip2
830 Requires: lzop
831 Requires: xz
832 Requires: zstd
833 Requires: systemd-container
834 Requires: swtpm-tools
835 %if %{with_numad}
836 Requires: numad
837 %endif
838 %if 0%{?fedora} || 0%{?rhel} >= 9
839 Recommends: passt
840 Recommends: passt-selinux
841 %endif
842 %if %{with_nbdkit}
843 Recommends: nbdkit
844 Recommends: nbdkit-curl-plugin
845 Recommends: nbdkit-ssh-plugin
846 %endif
848 %description daemon-driver-qemu
849 The qemu driver plugin for the libvirtd daemon, providing
850 an implementation of the hypervisor driver APIs using
851 QEMU
852 %endif
854 %if %{with_lxc}
855 %package daemon-driver-lxc
856 Summary: LXC driver plugin for the libvirtd daemon
857 Requires: libvirt-daemon-common = %{version}-%{release}
858 Requires: libvirt-libs = %{version}-%{release}
859 # There really is a hard cross-driver dependency here
860 Requires: libvirt-daemon-driver-network = %{version}-%{release}
861 Requires: systemd-container
862 # for modprobe of nbd driver
863 Requires: module-init-tools
864 %if %{with_numad}
865 Requires: numad
866 %endif
868 %description daemon-driver-lxc
869 The LXC driver plugin for the libvirtd daemon, providing
870 an implementation of the hypervisor driver APIs using
871 the Linux kernel
872 %endif
874 %if %{with_vbox}
875 %package daemon-driver-vbox
876 Summary: VirtualBox driver plugin for the libvirtd daemon
877 Requires: libvirt-daemon-common = %{version}-%{release}
878 Requires: libvirt-libs = %{version}-%{release}
880 %description daemon-driver-vbox
881 The vbox driver plugin for the libvirtd daemon, providing
882 an implementation of the hypervisor driver APIs using
883 VirtualBox
884 %endif
886 %if %{with_libxl}
887 %package daemon-driver-libxl
888 Summary: Libxl driver plugin for the libvirtd daemon
889 Requires: libvirt-daemon-common = %{version}-%{release}
890 Requires: libvirt-libs = %{version}-%{release}
891 Obsoletes: libvirt-daemon-driver-xen < 4.3.0
893 %description daemon-driver-libxl
894 The Libxl driver plugin for the libvirtd daemon, providing
895 an implementation of the hypervisor driver APIs using
896 Libxl
897 %endif
899 %if %{with_qemu_tcg}
900 %package daemon-qemu
901 Summary: Server side daemon & driver required to run QEMU guests
903 %if %{with_modular_daemons}
904 Requires: libvirt-daemon-common = %{version}-%{release}
905 Requires: libvirt-daemon-log = %{version}-%{release}
906 Requires: libvirt-daemon-lock = %{version}-%{release}
907 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
908 Requires: libvirt-daemon-proxy = %{version}-%{release}
909 Recommends: libvirt-daemon = %{version}-%{release}
910 %else
911 Requires: libvirt-daemon = %{version}-%{release}
912 %endif
913 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
914 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
915 Requires: libvirt-daemon-driver-network = %{version}-%{release}
916 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
917 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
918 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
919 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
920 Requires: libvirt-ssh-proxy = %{version}-%{release}
921 Requires: qemu
923 %description daemon-qemu
924 Server side daemon and driver required to manage the virtualization
925 capabilities of the QEMU TCG emulators
926 %endif
928 %if %{with_qemu_kvm}
929 %package daemon-kvm
930 Summary: Server side daemon & driver required to run KVM guests
932 %if %{with_modular_daemons}
933 Requires: libvirt-daemon-common = %{version}-%{release}
934 Requires: libvirt-daemon-log = %{version}-%{release}
935 Requires: libvirt-daemon-lock = %{version}-%{release}
936 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
937 Requires: libvirt-daemon-proxy = %{version}-%{release}
938 Recommends: libvirt-daemon = %{version}-%{release}
939 %else
940 Requires: libvirt-daemon = %{version}-%{release}
941 %endif
942 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
943 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
944 Requires: libvirt-daemon-driver-network = %{version}-%{release}
945 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
946 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
947 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
948 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
949 Requires: libvirt-ssh-proxy = %{version}-%{release}
950 Requires: qemu-kvm
952 %description daemon-kvm
953 Server side daemon and driver required to manage the virtualization
954 capabilities of the KVM hypervisor
955 %endif
957 %if %{with_lxc}
958 %package daemon-lxc
959 Summary: Server side daemon & driver required to run LXC guests
961 %if %{with_modular_daemons}
962 Requires: libvirt-daemon-common = %{version}-%{release}
963 Requires: libvirt-daemon-proxy = %{version}-%{release}
964 Recommends: libvirt-daemon = %{version}-%{release}
965 %else
966 Requires: libvirt-daemon = %{version}-%{release}
967 %endif
968 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
969 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
970 Requires: libvirt-daemon-driver-network = %{version}-%{release}
971 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
972 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
973 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
974 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
976 %description daemon-lxc
977 Server side daemon and driver required to manage the virtualization
978 capabilities of LXC
979 %endif
981 %if %{with_libxl}
982 %package daemon-xen
983 Summary: Server side daemon & driver required to run XEN guests
985 %if %{with_modular_daemons}
986 Requires: libvirt-daemon-common = %{version}-%{release}
987 Requires: libvirt-daemon-lock = %{version}-%{release}
988 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
989 Requires: libvirt-daemon-proxy = %{version}-%{release}
990 Recommends: libvirt-daemon = %{version}-%{release}
991 %else
992 Requires: libvirt-daemon = %{version}-%{release}
993 %endif
994 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
995 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
996 Requires: libvirt-daemon-driver-network = %{version}-%{release}
997 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
998 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
999 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
1000 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
1001 Requires: xen
1003 %description daemon-xen
1004 Server side daemon and driver required to manage the virtualization
1005 capabilities of XEN
1006 %endif
1008 %if %{with_vbox}
1009 %package daemon-vbox
1010 Summary: Server side daemon & driver required to run VirtualBox guests
1012 %if %{with_modular_daemons}
1013 Requires: libvirt-daemon-common = %{version}-%{release}
1014 Requires: libvirt-daemon-proxy = %{version}-%{release}
1015 Recommends: libvirt-daemon = %{version}-%{release}
1016 %else
1017 Requires: libvirt-daemon = %{version}-%{release}
1018 %endif
1019 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
1020 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
1021 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1022 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
1023 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
1024 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
1025 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
1027 %description daemon-vbox
1028 Server side daemon and driver required to manage the virtualization
1029 capabilities of VirtualBox
1030 %endif
1032 %package client
1033 Summary: Client side utilities of the libvirt library
1034 Requires: libvirt-libs = %{version}-%{release}
1036 # Ensure smooth upgrades
1037 Obsoletes: libvirt-bash-completion < 7.3.0
1039 %description client
1040 The client binaries needed to access the virtualization
1041 capabilities of recent versions of Linux (and other OSes).
1043 %package client-qemu
1044 Summary: Additional client side utilities for QEMU
1045 Requires: libvirt-libs = %{version}-%{release}
1046 Requires: python3-libvirt >= 3.7.0
1047 Requires: python3-cryptography
1048 Requires: python3-lxml
1050 %description client-qemu
1051 The additional client binaries are used to interact
1052 with some QEMU specific features of libvirt.
1054 %package libs
1055 Summary: Client side libraries
1056 # Needed by default sasl.conf - no onerous extra deps, since
1057 # 100's of other things on a system already pull in krb5-libs
1058 Requires: cyrus-sasl-gssapi
1060 %description libs
1061 Shared libraries for accessing the libvirt daemon.
1063 %if %{with_wireshark}
1064 %package wireshark
1065 Summary: Wireshark dissector plugin for libvirt RPC transactions
1066 Requires: wireshark
1067 Requires: libvirt-libs = %{version}-%{release}
1069 %description wireshark
1070 Wireshark dissector plugin for better analysis of libvirt RPC traffic.
1071 %endif
1073 %if %{with_lxc}
1074 %package login-shell
1075 Summary: Login shell for connecting users to an LXC container
1076 Requires: libvirt-libs = %{version}-%{release}
1078 %description login-shell
1079 Provides the set-uid virt-login-shell binary that is used to
1080 connect a user to an LXC container when they login, by switching
1081 namespaces.
1082 %endif
1084 %package devel
1085 Summary: Libraries, includes, etc. to compile with the libvirt library
1086 Requires: libvirt-libs = %{version}-%{release}
1087 Requires: pkgconfig
1089 %description devel
1090 Include header files & development libraries for the libvirt C library.
1092 %if %{with_sanlock}
1093 %package daemon-plugin-sanlock
1094 Summary: Sanlock lock manager plugin for QEMU driver
1095 Requires: sanlock >= 2.4
1096 #for virt-sanlock-cleanup require augeas
1097 Requires: augeas
1098 Requires: libvirt-libs = %{version}-%{release}
1099 Obsoletes: libvirt-lock-sanlock < 9.1.0
1100 Provides: libvirt-lock-sanlock = %{version}-%{release}
1102 %description daemon-plugin-sanlock
1103 Includes the Sanlock lock manager plugin for the QEMU
1104 driver
1105 %endif
1107 %package nss
1108 Summary: Libvirt plugin for Name Service Switch
1109 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1111 %description nss
1112 Libvirt plugin for NSS for translating domain names into IP addresses.
1113 %endif
1115 %package ssh-proxy
1116 Summary: Libvirt SSH proxy
1117 Requires: libvirt-libs = %{version}-%{release}
1119 %description ssh-proxy
1120 Allows SSH into domains via VSOCK without need for network.
1122 %if %{with_mingw32}
1123 %package -n mingw32-libvirt
1124 Summary: %{summary}
1125 Obsoletes: mingw32-libvirt-static < 7.0.0
1126 BuildArch: noarch
1128 %description -n mingw32-libvirt
1129 MinGW Windows libvirt virtualization library.
1131 %{?mingw32_debug_package}
1132 %endif
1134 %if %{with_mingw64}
1135 %package -n mingw64-libvirt
1136 Summary: %{summary}
1137 Obsoletes: mingw64-libvirt-static < 7.0.0
1138 BuildArch: noarch
1140 %description -n mingw64-libvirt
1141 MinGW Windows libvirt virtualization library.
1143 %{?mingw64_debug_package}
1144 %endif
1146 %prep
1147 %autosetup -S git_am
1149 %build
1150 %if 0%{?fedora} >= %{min_fedora} || 0%{?rhel} >= %{min_rhel}
1151 %define supported_platform 1
1152 %else
1153 %define supported_platform 0
1154 %endif
1156 %if ! %{supported_platform}
1157 echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}"
1158 exit 1
1159 %endif
1161 %if %{with_qemu}
1162 %define arg_qemu -Ddriver_qemu=enabled
1163 %else
1164 %define arg_qemu -Ddriver_qemu=disabled
1165 %endif
1167 %if %{with_openvz}
1168 %define arg_openvz -Ddriver_openvz=enabled
1169 %else
1170 %define arg_openvz -Ddriver_openvz=disabled
1171 %endif
1173 %if %{with_lxc}
1174 %define arg_lxc -Ddriver_lxc=enabled
1175 %define arg_login_shell -Dlogin_shell=enabled
1176 %else
1177 %define arg_lxc -Ddriver_lxc=disabled
1178 %define arg_login_shell -Dlogin_shell=disabled
1179 %endif
1181 %if %{with_vbox}
1182 %define arg_vbox -Ddriver_vbox=enabled
1183 %else
1184 %define arg_vbox -Ddriver_vbox=disabled
1185 %endif
1187 %if %{with_libxl}
1188 %define arg_libxl -Ddriver_libxl=enabled
1189 %else
1190 %define arg_libxl -Ddriver_libxl=disabled
1191 %endif
1193 %if %{with_esx}
1194 %define arg_esx -Ddriver_esx=enabled -Dcurl=enabled
1195 %else
1196 %define arg_esx -Ddriver_esx=disabled -Dcurl=disabled
1197 %endif
1199 %if %{with_hyperv}
1200 %define arg_hyperv -Ddriver_hyperv=enabled -Dopenwsman=enabled
1201 %else
1202 %define arg_hyperv -Ddriver_hyperv=disabled -Dopenwsman=disabled
1203 %endif
1205 %if %{with_vmware}
1206 %define arg_vmware -Ddriver_vmware=enabled
1207 %else
1208 %define arg_vmware -Ddriver_vmware=disabled
1209 %endif
1211 %if %{with_storage_rbd}
1212 %define arg_storage_rbd -Dstorage_rbd=enabled
1213 %else
1214 %define arg_storage_rbd -Dstorage_rbd=disabled
1215 %endif
1217 %if %{with_storage_gluster}
1218 %define arg_storage_gluster -Dstorage_gluster=enabled -Dglusterfs=enabled
1219 %else
1220 %define arg_storage_gluster -Dstorage_gluster=disabled -Dglusterfs=disabled
1221 %endif
1223 %if %{with_storage_zfs}
1224 %define arg_storage_zfs -Dstorage_zfs=enabled
1225 %else
1226 %define arg_storage_zfs -Dstorage_zfs=disabled
1227 %endif
1229 %if %{with_numactl}
1230 %define arg_numactl -Dnumactl=enabled
1231 %else
1232 %define arg_numactl -Dnumactl=disabled
1233 %endif
1235 %if %{with_numad}
1236 %define arg_numad -Dnumad=enabled
1237 %else
1238 %define arg_numad -Dnumad=disabled
1239 %endif
1241 %if %{with_nbdkit}
1242 %define arg_nbdkit -Dnbdkit=enabled
1243 %else
1244 %define arg_nbdkit -Dnbdkit=disabled
1245 %endif
1247 %if %{with_nbdkit_config_default}
1248 %define arg_nbdkit_config_default -Dnbdkit_config_default=enabled
1249 %else
1250 %define arg_nbdkit_config_default -Dnbdkit_config_default=disabled
1251 %endif
1253 %if %{with_fuse}
1254 %define arg_fuse -Dfuse=enabled
1255 %else
1256 %define arg_fuse -Dfuse=disabled
1257 %endif
1259 %if %{with_sanlock}
1260 %define arg_sanlock -Dsanlock=enabled
1261 %else
1262 %define arg_sanlock -Dsanlock=disabled
1263 %endif
1265 %if %{with_firewalld_zone}
1266 %define arg_firewalld_zone -Dfirewalld_zone=enabled
1267 %else
1268 %define arg_firewalld_zone -Dfirewalld_zone=disabled
1269 %endif
1271 %if %{with_netcf}
1272 %define arg_netcf -Dnetcf=enabled
1273 %else
1274 %define arg_netcf -Dnetcf=disabled
1275 %endif
1277 %if %{with_wireshark}
1278 %define arg_wireshark -Dwireshark_dissector=enabled
1279 %else
1280 %define arg_wireshark -Dwireshark_dissector=disabled
1281 %endif
1283 %if %{with_storage_iscsi_direct}
1284 %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=enabled -Dlibiscsi=enabled
1285 %else
1286 %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=disabled -Dlibiscsi=disabled
1287 %endif
1289 %if %{with_libssh}
1290 %define arg_libssh -Dlibssh=enabled
1291 %else
1292 %define arg_libssh -Dlibssh=disabled
1293 %endif
1295 %if %{with_libssh2}
1296 %define arg_libssh2 -Dlibssh2=enabled
1297 %else
1298 %define arg_libssh2 -Dlibssh2=disabled
1299 %endif
1301 %if %{with_modular_daemons}
1302 %define arg_remote_mode -Dremote_default_mode=direct
1303 %else
1304 %define arg_remote_mode -Dremote_default_mode=legacy
1305 %endif
1307 %if %{with_userfaultfd_sysctl}
1308 %define arg_userfaultfd_sysctl -Duserfaultfd_sysctl=enabled
1309 %else
1310 %define arg_userfaultfd_sysctl -Duserfaultfd_sysctl=disabled
1311 %endif
1313 %define when %(date +"%%F-%%T")
1314 %define where %(hostname)
1315 %define who %{?packager}%{!?packager:Unknown}
1316 %define arg_packager -Dpackager="%{who}, %{when}, %{where}"
1317 %define arg_packager_version -Dpackager_version="%{release}"
1318 %define arg_selinux_mount -Dselinux_mount="/sys/fs/selinux"
1320 # place macros above and build commands below this comment
1322 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
1324 %if %{with_native}
1325 %meson \
1326 -Drunstatedir=%{_rundir} \
1327 -Dinitconfdir=%{_sysconfdir}/sysconfig \
1328 -Dunitdir=%{_unitdir} \
1329 -Dsysusersdir=%{_sysusersdir} \
1330 %{?arg_qemu} \
1331 %{?arg_openvz} \
1332 %{?arg_lxc} \
1333 %{?arg_vbox} \
1334 %{?arg_libxl} \
1335 -Dsasl=enabled \
1336 -Dpolkit=enabled \
1337 -Ddriver_libvirtd=enabled \
1338 -Ddriver_remote=enabled \
1339 -Ddriver_test=enabled \
1340 %{?arg_esx} \
1341 %{?arg_hyperv} \
1342 %{?arg_vmware} \
1343 -Ddriver_vz=disabled \
1344 -Ddriver_bhyve=disabled \
1345 -Ddriver_ch=disabled \
1346 %{?arg_remote_mode} \
1347 -Ddriver_interface=enabled \
1348 -Ddriver_network=enabled \
1349 -Dstorage_fs=enabled \
1350 -Dstorage_lvm=enabled \
1351 -Dstorage_iscsi=enabled \
1352 %{?arg_storage_iscsi_direct} \
1353 -Dstorage_scsi=enabled \
1354 -Dstorage_disk=enabled \
1355 -Dstorage_mpath=enabled \
1356 %{?arg_storage_rbd} \
1357 %{?arg_storage_gluster} \
1358 %{?arg_storage_zfs} \
1359 -Dstorage_vstorage=disabled \
1360 %{?arg_numactl} \
1361 %{?arg_numad} \
1362 -Dcapng=enabled \
1363 %{?arg_fuse} \
1364 %{?arg_netcf} \
1365 -Dnls=enabled \
1366 -Dselinux=enabled \
1367 %{?arg_selinux_mount} \
1368 -Dapparmor=disabled \
1369 -Dapparmor_profiles=disabled \
1370 -Dsecdriver_apparmor=disabled \
1371 -Dudev=enabled \
1372 -Dyajl=enabled \
1373 %{?arg_sanlock} \
1374 -Dlibpcap=enabled \
1375 %{?arg_nbdkit} \
1376 %{?arg_nbdkit_config_default} \
1377 -Dlibnl=enabled \
1378 -Daudit=enabled \
1379 -Ddtrace=enabled \
1380 -Dfirewalld=enabled \
1381 %{?arg_firewalld_zone} \
1382 %{?arg_wireshark} \
1383 %{?arg_libssh} \
1384 %{?arg_libssh2} \
1385 -Dpm_utils=disabled \
1386 -Dnss=enabled \
1387 %{arg_packager} \
1388 %{arg_packager_version} \
1389 -Dqemu_user=%{qemu_user} \
1390 -Dqemu_group=%{qemu_group} \
1391 -Dqemu_moddir=%{qemu_moddir} \
1392 -Dqemu_datadir=%{qemu_datadir} \
1393 -Dtls_priority=%{tls_priority} \
1394 -Dsysctl_config=enabled \
1395 %{?arg_userfaultfd_sysctl} \
1396 -Dssh_proxy=enabled \
1397 %{?enable_werror} \
1398 -Dexpensive_tests=enabled \
1399 -Dinit_script=systemd \
1400 -Dfirewall_backend_priority=%{firewall_backend_priority} \
1401 -Ddocs=enabled \
1402 -Dtests=enabled \
1403 -Drpath=disabled \
1404 %{?arg_login_shell}
1406 %meson_build
1407 %endif
1409 %if %{with_mingw32} || %{with_mingw64}
1410 %mingw_meson \
1411 --auto-features=enabled \
1412 -Ddriver_remote=enabled \
1413 -Ddriver_test=enabled \
1414 -Ddriver_esx=enabled \
1415 -Dcurl=enabled \
1416 -Ddocs=enabled \
1417 -Dapparmor=disabled \
1418 -Dapparmor_profiles=disabled \
1419 -Dattr=disabled \
1420 -Daudit=disabled \
1421 -Dbash_completion=disabled \
1422 -Dblkid=disabled \
1423 -Dcapng=disabled \
1424 -Ddriver_bhyve=disabled \
1425 -Ddriver_hyperv=disabled \
1426 -Ddriver_interface=disabled \
1427 -Ddriver_libvirtd=disabled \
1428 -Ddriver_libxl=disabled \
1429 -Ddriver_lxc=disabled \
1430 -Ddriver_network=disabled \
1431 -Ddriver_openvz=disabled \
1432 -Ddriver_qemu=disabled \
1433 -Ddriver_secrets=disabled \
1434 -Ddriver_vbox=disabled \
1435 -Ddriver_vmware=disabled \
1436 -Ddriver_vz=disabled \
1437 -Ddtrace=disabled \
1438 -Dexpensive_tests=disabled \
1439 -Dfirewalld=disabled \
1440 -Dfirewalld_zone=disabled \
1441 -Dfuse=disabled \
1442 -Dglusterfs=disabled \
1443 -Dhost_validate=disabled \
1444 -Dlibiscsi=disabled \
1445 -Dnbdkit=disabled \
1446 -Dnbdkit_config_default=disabled \
1447 -Dlibnl=disabled \
1448 -Dlibpcap=disabled \
1449 -Dlibssh2=disabled \
1450 -Dlibssh=disabled \
1451 -Dlogin_shell=disabled \
1452 -Dnetcf=disabled \
1453 -Dnls=enabled \
1454 -Dnss=disabled \
1455 -Dnumactl=disabled \
1456 -Dnumad=disabled \
1457 -Dopenwsman=disabled \
1458 -Dpciaccess=disabled \
1459 -Dpm_utils=disabled \
1460 -Dpolkit=disabled \
1461 -Dreadline=disabled \
1462 -Drpath=disabled \
1463 -Dsanlock=disabled \
1464 -Dsasl=disabled \
1465 -Dsecdriver_apparmor=disabled \
1466 -Dsecdriver_selinux=disabled \
1467 -Dselinux=disabled \
1468 -Dstorage_dir=disabled \
1469 -Dstorage_disk=disabled \
1470 -Dstorage_fs=disabled \
1471 -Dstorage_gluster=disabled \
1472 -Dstorage_iscsi_direct=disabled \
1473 -Dstorage_iscsi=disabled \
1474 -Dstorage_lvm=disabled \
1475 -Dstorage_mpath=disabled \
1476 -Dstorage_rbd=disabled \
1477 -Dstorage_scsi=disabled \
1478 -Dstorage_vstorage=disabled \
1479 -Dstorage_zfs=disabled \
1480 -Dsysctl_config=disabled \
1481 -Duserfaultfd_sysctl=disabled \
1482 -Dssh_proxy=disabled \
1483 -Dtests=disabled \
1484 -Dudev=disabled \
1485 -Dwireshark_dissector=disabled \
1486 -Dyajl=disabled \
1487 %{?enable_werror}
1488 %mingw_ninja
1489 %endif
1491 %install
1492 rm -fr %{buildroot}
1494 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
1496 %if %{with_native}
1497 %meson_install
1499 # We don't want to install /etc/libvirt/qemu/networks in the main %%files list
1500 # because if the admin wants to delete the default network completely, we don't
1501 # want to end up re-incarnating it on every RPM upgrade.
1502 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
1503 cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
1504 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1505 # libvirt saves this file with mode 0600
1506 chmod 0600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1508 # nwfilter files are installed in /usr/share/libvirt and copied to /etc in %%post
1509 # to avoid verification errors on changed files in /etc
1510 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1511 cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \
1512 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1513 # libvirt saves these files with mode 600
1514 chmod 600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml
1516 %if ! %{with_qemu}
1517 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
1518 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1519 rm -f $RPM_BUILD_ROOT%{_sysusersdir}/libvirt-qemu.conf
1520 %endif
1521 %find_lang %{name}
1523 %if ! %{with_sanlock}
1524 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
1525 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1526 %endif
1528 %if ! %{with_lxc}
1529 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
1530 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1531 %endif
1533 %if ! %{with_qemu}
1534 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1535 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1536 %endif
1537 %if ! %{with_lxc}
1538 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1539 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1540 %endif
1541 %if ! %{with_libxl}
1542 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
1543 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
1544 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
1545 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1546 %endif
1548 # Copied into libvirt-docs subpackage eventually
1549 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs
1551 %ifarch %{arches_systemtap_64bit}
1552 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
1553 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
1555 %if %{with_qemu}
1556 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
1557 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
1558 %endif
1559 %endif
1560 %endif
1562 %if %{with_mingw32} || %{with_mingw64}
1563 %mingw_ninja_install
1564 %endif
1566 %if %{with_mingw32}
1567 rm -rf $RPM_BUILD_ROOT%{mingw32_sysconfdir}/libvirt/nwfilter
1568 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/doc/*
1569 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc/*
1570 rm -rf $RPM_BUILD_ROOT%{mingw32_libexecdir}/libvirt_iohelper.exe
1571 rm -rf $RPM_BUILD_ROOT%{mingw32_libexecdir}/libvirt-guests.sh
1572 %endif
1574 %if %{with_mingw64}
1575 rm -rf $RPM_BUILD_ROOT%{mingw64_sysconfdir}/libvirt/nwfilter
1576 rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/doc/*
1577 rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc/*
1578 rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt_iohelper.exe
1579 rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
1580 %endif
1582 %if %{with_mingw32} || %{with_mingw64}
1583 %mingw_debug_install_post
1585 %mingw_find_lang %{name}
1587 %endif
1589 %check
1591 %if %{with_native}
1592 # Building on slow archs, like emulated s390x in Fedora copr, requires
1593 # raising the test timeout
1594 export VIR_TEST_DEBUG=1
1595 %meson_test --no-suite syntax-check --timeout-multiplier 10
1596 %endif
1598 %define libvirt_rpmstatedir %{_localstatedir}/lib/rpm-state/libvirt
1600 # Mark units such that presets will later be applied to them. Meant
1601 # to be called during %pre. Units that already exist on the system
1602 # will not be marked, with the assumption that presets have already
1603 # been applied at some point in the past. This makes it safe to call
1604 # this macro for all units each time %pre runs.
1605 %define libvirt_systemd_schedule_preset() \
1606 mkdir -p %{libvirt_rpmstatedir} || : \
1607 for unit in %{?*}; do \
1608 if ! test -e %{_unitdir}/$unit; then \
1609 touch %{libvirt_rpmstatedir}/preset-$unit || : \
1610 fi \
1611 done \
1612 %{nil}
1614 # Apply presets for units that have previously been marked. Meant to
1615 # be called during %posttrans. Note that foo.service must be passed
1616 # as the first argument, before all the various foo*.socket
1617 # associated with it, for things to work correctly. This is necessary
1618 # because Also=foo.socket is usually present in foo.service's
1619 # [Install] section, and we want that configuration to take
1620 # precedence over foo.socket's own presets.
1621 %define libvirt_systemd_perform_preset() \
1622 %{?7:%{error:Too many arguments}} \
1623 for unit in %{?2} %{?3} %{?4} %{?5} %{?6} %1; do \
1624 if test -e %{libvirt_rpmstatedir}/preset-$unit; then \
1625 /usr/bin/systemctl --no-reload preset $unit || : \
1626 fi \
1627 rm -f %{libvirt_rpmstatedir}/preset-$unit \
1628 done \
1629 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1630 %{nil}
1632 # Mark a single unit for restart. Meant to be called during %pre.
1633 %define libvirt_systemd_schedule_restart() \
1634 mkdir -p %{libvirt_rpmstatedir} || : \
1635 touch %{libvirt_rpmstatedir}/restart-%1 || : \
1636 %{nil}
1638 # Restart a unit that was previously marked. Meant to be called
1639 # during %posttrans. If systemd is not running, no action will be
1640 # performed.
1641 %define libvirt_systemd_perform_restart() \
1642 if test -d /run/systemd/system && \
1643 test -e %{libvirt_rpmstatedir}/restart-%1; then \
1644 /usr/bin/systemctl try-restart %1 >/dev/null 2>&1 || : \
1645 fi \
1646 rm -f %{libvirt_rpmstatedir}/restart-%1 \
1647 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1648 %{nil}
1650 # Mark a single unit for reload. Meant to be called during %pre.
1651 %define libvirt_systemd_schedule_reload() \
1652 mkdir -p %{libvirt_rpmstatedir} || : \
1653 touch %{libvirt_rpmstatedir}/reload-%1 || : \
1654 %{nil}
1656 # Reload a unit that was previously marked. Meant to be called during
1657 # %posttrans. If systemd is not running, no action will be performed.
1658 %define libvirt_systemd_perform_reload() \
1659 if test -d /run/systemd/system && \
1660 test -e %{libvirt_rpmstatedir}/reload-%1; then \
1661 /usr/bin/systemctl try-reload-or-restart %1 >/dev/null 2>&1 || : \
1662 fi \
1663 rm -f %{libvirt_rpmstatedir}/reload-%1 \
1664 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1665 %{nil}
1667 # Disable a single unit, optionally stopping it if systemd is
1668 # running. Meant to be called during %preun.
1669 %define libvirt_systemd_disable() \
1670 if test -d /run/systemd/system; then \
1671 /usr/bin/systemctl --no-reload disable --now %{?*} || : \
1672 else \
1673 /usr/bin/systemctl --no-reload disable %{?*} || : \
1674 fi \
1675 %{nil}
1677 # %pre implementation for services that should be restarted on
1678 # upgrade. Note that foo.service must be passed as the first
1679 # argument, before all the various foo*.socket associated with it.
1680 %define libvirt_systemd_restart_pre() \
1681 %libvirt_systemd_schedule_preset %{?*} \
1682 %libvirt_systemd_schedule_restart %1 \
1683 %{nil}
1685 # %pre implementation for services that should be reloaded on
1686 # upgrade. Note that foo.service must be passed as the first
1687 # argument, before all the various foo*.socket associated with it.
1688 %define libvirt_systemd_reload_pre() \
1689 %libvirt_systemd_schedule_preset %{?*} \
1690 %libvirt_systemd_schedule_reload %1 \
1691 %{nil}
1693 # %pre implementation for services that should be neither restarted
1694 # nor reloaded on upgrade.
1695 %define libvirt_systemd_noaction_pre() \
1696 %libvirt_systemd_schedule_preset %{?*} \
1697 %{nil}
1699 # %posttrans implementation for all services. We can use a single
1700 # macro to cover all scenarios, because each operation will only be
1701 # performed if it had previously been scheduled. Note that
1702 # foo.service must be passed as the first argument, before all the
1703 # various foo*.socket associated with it.
1704 %define libvirt_systemd_posttrans() \
1705 %libvirt_systemd_perform_preset %{?*} \
1706 %libvirt_systemd_perform_reload %1 \
1707 %libvirt_systemd_perform_restart %1 \
1708 %{nil}
1710 # %preun implementation for all services.
1711 %define libvirt_systemd_preun() \
1712 if [ $1 -lt 1 ]; then \
1713 %libvirt_systemd_disable %{?*} \
1714 fi \
1715 %{nil}
1717 # For daemons with only UNIX sockets
1719 %define libvirt_systemd_unix_pre() %libvirt_systemd_restart_pre %1.service %1.socket %1-ro.socket %1-admin.socket
1720 %define libvirt_systemd_unix_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-ro.socket %1-admin.socket
1721 %define libvirt_systemd_unix_preun() %libvirt_systemd_preun %1.service %1.socket %1-ro.socket %1-admin.socket
1723 # For daemons with UNIX and INET sockets
1724 %define libvirt_systemd_inet_pre() %libvirt_systemd_restart_pre %1.service %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket
1725 %define libvirt_systemd_inet_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket
1726 %define libvirt_systemd_inet_preun() %libvirt_systemd_preun %1.service %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket
1728 # For daemons with only UNIX sockets and no unprivileged read-only access
1729 %define libvirt_systemd_privileged_pre() %libvirt_systemd_reload_pre %1.service %1.socket %1-admin.socket
1730 %define libvirt_systemd_privileged_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-admin.socket
1731 %define libvirt_systemd_privileged_preun() %libvirt_systemd_preun %1.service %1.socket %1-admin.socket
1733 # For one-shot daemons that have no associated sockets and should never be restarted
1734 %define libvirt_systemd_oneshot_pre() %libvirt_systemd_noaction_pre %1.service
1735 %define libvirt_systemd_oneshot_posttrans() %libvirt_systemd_posttrans %1.service
1736 %define libvirt_systemd_oneshot_preun() %libvirt_systemd_preun %1.service
1738 # For packages that install configuration for other daemons
1739 %define libvirt_systemd_config_pre() %libvirt_systemd_schedule_restart %1.service
1740 %define libvirt_systemd_config_posttrans() %libvirt_systemd_perform_restart %1.service
1742 %if %{with_native}
1743 %pre daemon
1744 %libvirt_sysconfig_pre libvirtd
1745 %libvirt_systemd_inet_pre libvirtd
1747 %posttrans daemon
1748 %libvirt_sysconfig_posttrans libvirtd
1749 %libvirt_systemd_inet_posttrans libvirtd
1751 %preun daemon
1752 %libvirt_systemd_inet_preun libvirtd
1754 %pre daemon-common
1755 %libvirt_sysconfig_pre libvirt-guests
1756 %libvirt_systemd_oneshot_pre libvirt-guests
1757 # 'libvirt' group is just to allow password-less polkit access to libvirt
1758 # daemons. The uid number is irrelevant, so we use dynamic allocation.
1759 getent group libvirt >/dev/null || groupadd -r libvirt
1760 exit 0
1762 %posttrans daemon-common
1763 %libvirt_sysconfig_posttrans libvirt-guests
1764 %libvirt_systemd_oneshot_posttrans libvirt-guests
1766 %preun daemon-common
1767 %libvirt_systemd_oneshot_preun libvirt-guests
1769 %pre daemon-lock
1770 %libvirt_sysconfig_pre virtlockd
1771 %libvirt_systemd_privileged_pre virtlockd
1773 %posttrans daemon-lock
1774 %libvirt_sysconfig_posttrans virtlockd
1775 %libvirt_systemd_privileged_posttrans virtlockd
1777 %preun daemon-lock
1778 %libvirt_systemd_privileged_preun virtlockd
1780 %pre daemon-log
1781 %libvirt_sysconfig_pre virtlogd
1782 %libvirt_systemd_privileged_pre virtlogd
1784 %posttrans daemon-log
1785 %libvirt_sysconfig_posttrans virtlogd
1786 %libvirt_systemd_privileged_posttrans virtlogd
1788 %preun daemon-log
1789 %libvirt_systemd_privileged_preun virtlogd
1791 %pre daemon-proxy
1792 %libvirt_sysconfig_pre virtproxyd
1793 %libvirt_systemd_inet_pre virtproxyd
1795 %posttrans daemon-proxy
1796 %libvirt_sysconfig_posttrans virtproxyd
1797 %libvirt_systemd_inet_posttrans virtproxyd
1799 %preun daemon-proxy
1800 %libvirt_systemd_inet_preun virtproxyd
1802 %pre daemon-driver-network
1803 %libvirt_sysconfig_pre virtnetworkd
1804 %libvirt_systemd_unix_pre virtnetworkd
1806 %post daemon-driver-network
1807 %if %{with_firewalld_zone}
1808 %firewalld_reload
1809 %endif
1811 %posttrans daemon-driver-network
1812 %libvirt_sysconfig_posttrans virtnetworkd
1813 %libvirt_systemd_unix_posttrans virtnetworkd
1815 %preun daemon-driver-network
1816 %libvirt_systemd_unix_preun virtnetworkd
1818 %postun daemon-driver-network
1819 %if %{with_firewalld_zone}
1820 %firewalld_reload
1821 %endif
1823 %pre daemon-driver-nwfilter
1824 %libvirt_sysconfig_pre virtnwfilterd
1825 %libvirt_systemd_unix_pre virtnwfilterd
1827 %posttrans daemon-driver-nwfilter
1828 %libvirt_sysconfig_posttrans virtnwfilterd
1829 %libvirt_systemd_unix_posttrans virtnwfilterd
1831 %preun daemon-driver-nwfilter
1832 %libvirt_systemd_unix_preun virtnwfilterd
1834 %pre daemon-driver-nodedev
1835 %libvirt_sysconfig_pre virtnodedevd
1836 %libvirt_systemd_unix_pre virtnodedevd
1838 %posttrans daemon-driver-nodedev
1839 %libvirt_sysconfig_posttrans virtnodedevd
1840 %libvirt_systemd_unix_posttrans virtnodedevd
1842 %preun daemon-driver-nodedev
1843 %libvirt_systemd_unix_preun virtnodedevd
1845 %pre daemon-driver-interface
1846 %libvirt_sysconfig_pre virtinterfaced
1847 %libvirt_systemd_unix_pre virtinterfaced
1849 %posttrans daemon-driver-interface
1850 %libvirt_sysconfig_posttrans virtinterfaced
1851 %libvirt_systemd_unix_posttrans virtinterfaced
1853 %preun daemon-driver-interface
1854 %libvirt_systemd_unix_preun virtinterfaced
1856 %pre daemon-driver-secret
1857 %libvirt_sysconfig_pre virtsecretd
1858 %libvirt_systemd_unix_pre virtsecretd
1860 %posttrans daemon-driver-secret
1861 %libvirt_sysconfig_posttrans virtsecretd
1862 %libvirt_systemd_unix_posttrans virtsecretd
1864 %preun daemon-driver-secret
1865 %libvirt_systemd_unix_preun virtsecretd
1867 %pre daemon-driver-storage-core
1868 %libvirt_sysconfig_pre virtstoraged
1869 %libvirt_systemd_unix_pre virtstoraged
1871 %posttrans daemon-driver-storage-core
1872 %libvirt_sysconfig_posttrans virtstoraged
1873 %libvirt_systemd_unix_posttrans virtstoraged
1875 %preun daemon-driver-storage-core
1876 %libvirt_systemd_unix_preun virtstoraged
1878 %if %{with_qemu}
1879 %pre daemon-driver-qemu
1880 %libvirt_sysconfig_pre virtqemud
1881 %libvirt_systemd_unix_pre virtqemud
1883 # We want soft static allocation of well-known ids, as disk images
1884 # are commonly shared across NFS mounts by id rather than name.
1885 # See https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
1886 # We can not use the sysusers_create_compat macro here as we want to keep the
1887 # specfile standalone and not relying on additionnal files.
1888 getent group 'kvm' >/dev/null || groupadd -f -g '36' -r 'kvm' || :
1889 getent group 'qemu' >/dev/null || groupadd -f -g '107' -r 'qemu' || :
1890 if ! getent passwd 'qemu' >/dev/null; then
1891 if ! getent passwd '107' >/dev/null; then
1892 useradd -r -u '107' -g 'qemu' -G 'kvm' -d '/' -s '/sbin/nologin' -c 'qemu user' 'qemu' || :
1893 else
1894 useradd -r -g 'qemu' -G 'kvm' -d '/' -s '/sbin/nologin' -c 'qemu user' 'qemu' || :
1897 exit 0
1899 %posttrans daemon-driver-qemu
1900 %libvirt_sysconfig_posttrans virtqemud
1901 %libvirt_systemd_unix_posttrans virtqemud
1903 %preun daemon-driver-qemu
1904 %libvirt_systemd_unix_preun virtqemud
1905 %endif
1907 %if %{with_lxc}
1908 %pre daemon-driver-lxc
1909 %libvirt_sysconfig_pre virtlxcd
1910 %libvirt_systemd_unix_pre virtlxcd
1912 %posttrans daemon-driver-lxc
1913 %libvirt_sysconfig_posttrans virtlxcd
1914 %libvirt_systemd_unix_posttrans virtlxcd
1916 %preun daemon-driver-lxc
1917 %libvirt_systemd_unix_preun virtlxcd
1918 %endif
1920 %if %{with_vbox}
1921 %pre daemon-driver-vbox
1922 %libvirt_sysconfig_pre virtvboxd
1923 %libvirt_systemd_unix_pre virtvboxd
1925 %posttrans daemon-driver-vbox
1926 %libvirt_sysconfig_posttrans virtvboxd
1927 %libvirt_systemd_unix_posttrans virtvboxd
1929 %preun daemon-driver-vbox
1930 %libvirt_systemd_unix_preun virtvboxd
1931 %endif
1933 %if %{with_libxl}
1934 %pre daemon-driver-libxl
1935 %libvirt_sysconfig_pre virtxend
1936 %libvirt_systemd_unix_pre virtxend
1938 %posttrans daemon-driver-libxl
1939 %libvirt_sysconfig_posttrans virtxend
1940 %libvirt_systemd_unix_posttrans virtxend
1942 %preun daemon-driver-libxl
1943 %libvirt_systemd_unix_preun virtxend
1944 %endif
1946 %pre daemon-config-network
1947 %libvirt_systemd_config_pre libvirtd
1948 %libvirt_systemd_config_pre virtnetworkd
1950 %post daemon-config-network
1951 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1952 # see if the network used by default network creates a conflict,
1953 # and try to resolve it
1954 # NB: 192.168.122.0/24 is used in the default.xml template file;
1955 # do not modify any of those values here without also modifying
1956 # them in the template.
1957 orig_sub=122
1958 sub=${orig_sub}
1959 nl='
1961 routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1962 case ${routes} in
1963 *"${nl}192.168.${orig_sub}.0/24${nl}"*)
1964 # there was a match, so we need to look for an unused subnet
1965 for new_sub in $(seq 124 254); do
1966 case ${routes} in
1967 *"${nl}192.168.${new_sub}.0/24${nl}"*)
1970 sub=$new_sub
1971 break;
1973 esac
1974 done
1978 esac
1980 sed -e "s/${orig_sub}/${sub}/g" \
1981 < %{_datadir}/libvirt/networks/default.xml \
1982 > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1983 ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1984 # libvirt saves this file with mode 0600
1985 chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
1988 %posttrans daemon-config-network
1989 %libvirt_systemd_config_posttrans libvirtd
1990 %libvirt_systemd_config_posttrans virtnetworkd
1992 %pre daemon-config-nwfilter
1993 %libvirt_systemd_config_pre libvirtd
1994 %libvirt_systemd_config_pre virtnwfilterd
1996 %post daemon-config-nwfilter
1997 for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
1998 sysconfdir_file=%{_sysconfdir}/libvirt/nwfilter/$(basename "$datadir_file")
1999 if [ ! -f "$sysconfdir_file" ]; then
2000 # libvirt saves these files with mode 600
2001 install -m 0600 "$datadir_file" "$sysconfdir_file"
2003 done
2005 %posttrans daemon-config-nwfilter
2006 %libvirt_systemd_config_posttrans libvirtd
2007 %libvirt_systemd_config_posttrans virtnwfilterd
2009 %if %{with_lxc}
2010 %pre login-shell
2011 getent group virtlogin >/dev/null || groupadd -r virtlogin
2012 exit 0
2013 %endif
2014 %endif
2016 %if %{with_native}
2017 %files
2019 %files docs
2020 %doc AUTHORS.rst NEWS.rst README.rst
2021 %doc libvirt-docs/*
2023 %files daemon
2024 %{_unitdir}/libvirtd.service
2025 %{_unitdir}/libvirtd.socket
2026 %{_unitdir}/libvirtd-ro.socket
2027 %{_unitdir}/libvirtd-admin.socket
2028 %{_unitdir}/libvirtd-tcp.socket
2029 %{_unitdir}/libvirtd-tls.socket
2030 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
2031 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
2032 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
2033 %{_datadir}/augeas/lenses/libvirtd.aug
2034 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
2035 %attr(0755, root, root) %{_sbindir}/libvirtd
2036 %{_mandir}/man8/libvirtd.8*
2038 %files daemon-common
2039 %{_unitdir}/virt-guest-shutdown.target
2040 %{_unitdir}/libvirt-guests.service
2041 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
2042 %dir %{_datadir}/libvirt/
2043 %ghost %dir %{_rundir}/libvirt/
2044 %ghost %dir %{_rundir}/libvirt/common/
2045 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
2046 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
2047 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
2048 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
2049 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
2050 %dir %attr(0755, root, root) %{_libdir}/libvirt/
2051 %dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
2052 %dir %attr(0755, root, root) %{_libdir}/libvirt/storage-backend/
2053 %dir %attr(0755, root, root) %{_libdir}/libvirt/storage-file/
2054 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
2055 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
2056 %{_datadir}/polkit-1/rules.d/50-libvirt.rules
2057 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
2058 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
2059 %attr(0755, root, root) %{_bindir}/virt-ssh-helper
2060 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
2061 %{_mandir}/man1/virt-admin.1*
2062 %{_mandir}/man1/virt-host-validate.1*
2063 %{_mandir}/man8/virt-ssh-helper.8*
2064 %{_mandir}/man8/libvirt-guests.8*
2065 %{_bindir}/virt-host-validate
2066 %{_bindir}/virt-admin
2067 %{_datadir}/bash-completion/completions/virt-admin
2069 %files daemon-lock
2070 %{_unitdir}/virtlockd.service
2071 %{_unitdir}/virtlockd.socket
2072 %{_unitdir}/virtlockd-admin.socket
2073 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
2074 %{_datadir}/augeas/lenses/virtlockd.aug
2075 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
2076 %{_datadir}/augeas/lenses/libvirt_lockd.aug
2077 %if %{with_qemu}
2078 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
2079 %endif
2080 %attr(0755, root, root) %{_sbindir}/virtlockd
2081 %{_mandir}/man8/virtlockd.8*
2083 %files daemon-plugin-lockd
2084 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/
2085 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
2087 %files daemon-log
2088 %{_unitdir}/virtlogd.service
2089 %{_unitdir}/virtlogd.socket
2090 %{_unitdir}/virtlogd-admin.socket
2091 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
2092 %{_datadir}/augeas/lenses/virtlogd.aug
2093 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
2094 %attr(0755, root, root) %{_sbindir}/virtlogd
2095 %{_mandir}/man8/virtlogd.8*
2097 %files daemon-proxy
2098 %{_unitdir}/virtproxyd.service
2099 %{_unitdir}/virtproxyd.socket
2100 %{_unitdir}/virtproxyd-ro.socket
2101 %{_unitdir}/virtproxyd-admin.socket
2102 %{_unitdir}/virtproxyd-tcp.socket
2103 %{_unitdir}/virtproxyd-tls.socket
2104 %config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf
2105 %{_datadir}/augeas/lenses/virtproxyd.aug
2106 %{_datadir}/augeas/lenses/tests/test_virtproxyd.aug
2107 %attr(0755, root, root) %{_sbindir}/virtproxyd
2108 %{_mandir}/man8/virtproxyd.8*
2110 %files daemon-config-network
2111 %dir %{_datadir}/libvirt/networks/
2112 %{_datadir}/libvirt/networks/default.xml
2113 %ghost %{_sysconfdir}/libvirt/qemu/networks/default.xml
2114 %ghost %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
2116 %files daemon-config-nwfilter
2117 %dir %{_datadir}/libvirt/nwfilter/
2118 %{_datadir}/libvirt/nwfilter/*.xml
2119 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
2121 %files daemon-driver-interface
2122 %config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
2123 %{_datadir}/augeas/lenses/virtinterfaced.aug
2124 %{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
2125 %{_unitdir}/virtinterfaced.service
2126 %{_unitdir}/virtinterfaced.socket
2127 %{_unitdir}/virtinterfaced-ro.socket
2128 %{_unitdir}/virtinterfaced-admin.socket
2129 %attr(0755, root, root) %{_sbindir}/virtinterfaced
2130 %ghost %dir %{_rundir}/libvirt/interface/
2131 %{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so
2132 %{_mandir}/man8/virtinterfaced.8*
2134 %files daemon-driver-network
2135 %config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf
2136 %{_datadir}/augeas/lenses/virtnetworkd.aug
2137 %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
2138 %config(noreplace) %{_sysconfdir}/libvirt/network.conf
2139 %{_datadir}/augeas/lenses/libvirtd_network.aug
2140 %{_datadir}/augeas/lenses/tests/test_libvirtd_network.aug
2141 %{_unitdir}/virtnetworkd.service
2142 %{_unitdir}/virtnetworkd.socket
2143 %{_unitdir}/virtnetworkd-ro.socket
2144 %{_unitdir}/virtnetworkd-admin.socket
2145 %attr(0755, root, root) %{_sbindir}/virtnetworkd
2146 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
2147 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
2148 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
2149 %ghost %dir %{_rundir}/libvirt/network/
2150 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
2151 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
2152 %attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
2153 %{_libdir}/libvirt/connection-driver/libvirt_driver_network.so
2154 %{_mandir}/man8/virtnetworkd.8*
2155 %if %{with_firewalld_zone}
2156 %{_prefix}/lib/firewalld/zones/libvirt.xml
2157 %{_prefix}/lib/firewalld/zones/libvirt-routed.xml
2158 %{_prefix}/lib/firewalld/policies/libvirt-routed-in.xml
2159 %{_prefix}/lib/firewalld/policies/libvirt-routed-out.xml
2160 %{_prefix}/lib/firewalld/policies/libvirt-to-host.xml
2161 %endif
2163 %files daemon-driver-nodedev
2164 %config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf
2165 %{_datadir}/augeas/lenses/virtnodedevd.aug
2166 %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
2167 %{_unitdir}/virtnodedevd.service
2168 %{_unitdir}/virtnodedevd.socket
2169 %{_unitdir}/virtnodedevd-ro.socket
2170 %{_unitdir}/virtnodedevd-admin.socket
2171 %attr(0755, root, root) %{_sbindir}/virtnodedevd
2172 %ghost %dir %{_rundir}/libvirt/nodedev/
2173 %{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so
2174 %{_mandir}/man8/virtnodedevd.8*
2176 %files daemon-driver-nwfilter
2177 %config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf
2178 %{_datadir}/augeas/lenses/virtnwfilterd.aug
2179 %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
2180 %{_unitdir}/virtnwfilterd.service
2181 %{_unitdir}/virtnwfilterd.socket
2182 %{_unitdir}/virtnwfilterd-ro.socket
2183 %{_unitdir}/virtnwfilterd-admin.socket
2184 %attr(0755, root, root) %{_sbindir}/virtnwfilterd
2185 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
2186 %ghost %dir %{_rundir}/libvirt/network/
2187 %ghost %dir %{_rundir}/libvirt/nwfilter-binding/
2188 %ghost %dir %{_rundir}/libvirt/nwfilter/
2189 %{_libdir}/libvirt/connection-driver/libvirt_driver_nwfilter.so
2190 %{_mandir}/man8/virtnwfilterd.8*
2192 %files daemon-driver-secret
2193 %config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf
2194 %{_datadir}/augeas/lenses/virtsecretd.aug
2195 %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
2196 %{_unitdir}/virtsecretd.service
2197 %{_unitdir}/virtsecretd.socket
2198 %{_unitdir}/virtsecretd-ro.socket
2199 %{_unitdir}/virtsecretd-admin.socket
2200 %attr(0755, root, root) %{_sbindir}/virtsecretd
2201 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/secrets/
2202 %ghost %dir %{_rundir}/libvirt/secrets/
2203 %{_libdir}/libvirt/connection-driver/libvirt_driver_secret.so
2204 %{_mandir}/man8/virtsecretd.8*
2206 %files daemon-driver-storage
2208 %files daemon-driver-storage-core
2209 %config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf
2210 %{_datadir}/augeas/lenses/virtstoraged.aug
2211 %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
2212 %{_unitdir}/virtstoraged.service
2213 %{_unitdir}/virtstoraged.socket
2214 %{_unitdir}/virtstoraged-ro.socket
2215 %{_unitdir}/virtstoraged-admin.socket
2216 %attr(0755, root, root) %{_sbindir}/virtstoraged
2217 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
2218 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/
2219 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/autostart/
2220 %ghost %dir %{_rundir}/libvirt/storage/
2221 %{_libdir}/libvirt/connection-driver/libvirt_driver_storage.so
2222 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_fs.so
2223 %{_libdir}/libvirt/storage-file/libvirt_storage_file_fs.so
2224 %{_mandir}/man8/virtstoraged.8*
2226 %files daemon-driver-storage-disk
2227 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_disk.so
2229 %files daemon-driver-storage-logical
2230 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_logical.so
2232 %files daemon-driver-storage-scsi
2233 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_scsi.so
2235 %files daemon-driver-storage-iscsi
2236 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi.so
2238 %if %{with_storage_iscsi_direct}
2239 %files daemon-driver-storage-iscsi-direct
2240 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so
2241 %endif
2243 %files daemon-driver-storage-mpath
2244 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_mpath.so
2246 %if %{with_storage_gluster}
2247 %files daemon-driver-storage-gluster
2248 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_gluster.so
2249 %{_libdir}/libvirt/storage-file/libvirt_storage_file_gluster.so
2250 %endif
2252 %if %{with_storage_rbd}
2253 %files daemon-driver-storage-rbd
2254 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_rbd.so
2255 %endif
2257 %if %{with_storage_zfs}
2258 %files daemon-driver-storage-zfs
2259 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_zfs.so
2260 %endif
2262 %if %{with_qemu}
2263 %files daemon-driver-qemu
2264 %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf
2265 %if %{with_userfaultfd_sysctl}
2266 %config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf
2267 %endif
2268 %{_datadir}/augeas/lenses/virtqemud.aug
2269 %{_datadir}/augeas/lenses/tests/test_virtqemud.aug
2270 %{_unitdir}/virtqemud.service
2271 %{_unitdir}/virtqemud.socket
2272 %{_unitdir}/virtqemud-ro.socket
2273 %{_unitdir}/virtqemud-admin.socket
2274 %attr(0755, root, root) %{_sbindir}/virtqemud
2275 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
2276 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/autostart/
2277 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
2278 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
2279 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
2280 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
2281 %ghost %dir %{_rundir}/libvirt/qemu/
2282 %ghost %dir %{_rundir}/libvirt/qemu/dbus/
2283 %ghost %dir %{_rundir}/libvirt/qemu/passt/
2284 %ghost %dir %{_rundir}/libvirt/qemu/slirp/
2285 %ghost %dir %{_rundir}/libvirt/qemu/swtpm/
2286 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
2287 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/checkpoint/
2288 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/dump/
2289 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/nvram/
2290 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ram/
2291 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/save/
2292 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/snapshot/
2293 %dir %attr(0750, root, root) %{_localstatedir}/cache/libvirt/qemu/
2294 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
2295 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
2296 %{_libdir}/libvirt/connection-driver/libvirt_driver_qemu.so
2297 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/swtpm/
2298 %dir %attr(0730, tss, tss) %{_localstatedir}/log/swtpm/libvirt/qemu/
2299 %{_bindir}/virt-qemu-run
2300 %{_mandir}/man1/virt-qemu-run.1*
2301 %{_mandir}/man8/virtqemud.8*
2302 %{_sysusersdir}/libvirt-qemu.conf
2303 %endif
2305 %if %{with_lxc}
2306 %files daemon-driver-lxc
2307 %config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf
2308 %{_datadir}/augeas/lenses/virtlxcd.aug
2309 %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
2310 %{_unitdir}/virtlxcd.service
2311 %{_unitdir}/virtlxcd.socket
2312 %{_unitdir}/virtlxcd-ro.socket
2313 %{_unitdir}/virtlxcd-admin.socket
2314 %attr(0755, root, root) %{_sbindir}/virtlxcd
2315 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
2316 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/
2317 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/autostart/
2318 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
2319 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
2320 %ghost %dir %{_rundir}/libvirt/lxc/
2321 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
2322 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
2323 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
2324 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
2325 %{_libdir}/libvirt/connection-driver/libvirt_driver_lxc.so
2326 %{_mandir}/man8/virtlxcd.8*
2327 %endif
2329 %if %{with_libxl}
2330 %files daemon-driver-libxl
2331 %config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf
2332 %{_datadir}/augeas/lenses/virtxend.aug
2333 %{_datadir}/augeas/lenses/tests/test_virtxend.aug
2334 %{_unitdir}/virtxend.service
2335 %{_unitdir}/virtxend.socket
2336 %{_unitdir}/virtxend-ro.socket
2337 %{_unitdir}/virtxend-admin.socket
2338 %attr(0755, root, root) %{_sbindir}/virtxend
2339 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
2340 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
2341 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
2342 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/
2343 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/autostart/
2344 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
2345 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
2346 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
2347 %ghost %dir %{_rundir}/libvirt/libxl/
2348 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
2349 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/
2350 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/target/
2351 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/dump/
2352 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/save/
2353 %{_libdir}/libvirt/connection-driver/libvirt_driver_libxl.so
2354 %{_mandir}/man8/virtxend.8*
2355 %endif
2357 %if %{with_vbox}
2358 %files daemon-driver-vbox
2359 %config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf
2360 %{_datadir}/augeas/lenses/virtvboxd.aug
2361 %{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
2362 %{_unitdir}/virtvboxd.service
2363 %{_unitdir}/virtvboxd.socket
2364 %{_unitdir}/virtvboxd-ro.socket
2365 %{_unitdir}/virtvboxd-admin.socket
2366 %attr(0755, root, root) %{_sbindir}/virtvboxd
2367 %{_libdir}/libvirt/connection-driver/libvirt_driver_vbox.so
2368 %{_mandir}/man8/virtvboxd.8*
2369 %endif
2371 %if %{with_qemu_tcg}
2372 %files daemon-qemu
2373 %endif
2375 %if %{with_qemu_kvm}
2376 %files daemon-kvm
2377 %endif
2379 %if %{with_lxc}
2380 %files daemon-lxc
2381 %endif
2383 %if %{with_libxl}
2384 %files daemon-xen
2385 %endif
2387 %if %{with_vbox}
2388 %files daemon-vbox
2389 %endif
2391 %if %{with_sanlock}
2392 %files daemon-plugin-sanlock
2393 %if %{with_qemu}
2394 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
2395 %endif
2396 %if %{with_libxl}
2397 %config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
2398 %endif
2399 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/
2400 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
2401 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
2402 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
2403 %dir %attr(0770, root, sanlock) %{_localstatedir}/lib/libvirt/sanlock
2404 %{_sbindir}/virt-sanlock-cleanup
2405 %{_mandir}/man8/virt-sanlock-cleanup.8*
2406 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
2407 %endif
2409 %files client
2410 %{_mandir}/man1/virsh.1*
2411 %{_mandir}/man1/virt-xml-validate.1*
2412 %{_mandir}/man1/virt-pki-query-dn.1*
2413 %{_mandir}/man1/virt-pki-validate.1*
2414 %{_mandir}/man7/virkey*.7*
2415 %{_bindir}/virsh
2416 %{_bindir}/virt-xml-validate
2417 %{_bindir}/virt-pki-query-dn
2418 %{_bindir}/virt-pki-validate
2419 %{_datadir}/bash-completion/completions/virsh
2421 %if %{with_qemu}
2422 %files client-qemu
2423 %{_mandir}/man1/virt-qemu-qmp-proxy.1*
2424 %{_mandir}/man1/virt-qemu-sev-validate.1*
2425 %{_bindir}/virt-qemu-qmp-proxy
2426 %{_bindir}/virt-qemu-sev-validate
2427 %endif
2429 %files libs -f %{name}.lang
2430 %license COPYING COPYING.LESSER
2431 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
2432 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
2433 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
2434 %{_libdir}/libvirt.so.*
2435 %{_libdir}/libvirt-qemu.so.*
2436 %{_libdir}/libvirt-lxc.so.*
2437 %{_libdir}/libvirt-admin.so.*
2438 %dir %{_datadir}/libvirt/
2439 %dir %{_datadir}/libvirt/schemas/
2440 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
2441 %{_datadir}/systemtap/tapset/libvirt_functions.stp
2442 %if %{with_qemu}
2443 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
2444 %endif
2445 %{_datadir}/libvirt/schemas/*.rng
2446 %{_datadir}/libvirt/cpu_map/*.xml
2447 %{_datadir}/libvirt/test-screenshot.png
2449 %if %{with_wireshark}
2450 %files wireshark
2451 %{wireshark_plugindir}/libvirt.so
2452 %endif
2454 %files nss
2455 %{_libdir}/libnss_libvirt.so.2
2456 %{_libdir}/libnss_libvirt_guest.so.2
2458 %files ssh-proxy
2459 %config(noreplace) %{_sysconfdir}/ssh/ssh_config.d/30-libvirt-ssh-proxy.conf
2460 %{_libexecdir}/libvirt-ssh-proxy
2462 %if %{with_lxc}
2463 %files login-shell
2464 %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
2465 %{_libexecdir}/virt-login-shell-helper
2466 %config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
2467 %{_mandir}/man1/virt-login-shell.1*
2468 %endif
2470 %files devel
2471 %{_libdir}/libvirt.so
2472 %{_libdir}/libvirt-admin.so
2473 %{_libdir}/libvirt-qemu.so
2474 %{_libdir}/libvirt-lxc.so
2475 %dir %{_includedir}/libvirt
2476 %{_includedir}/libvirt/virterror.h
2477 %{_includedir}/libvirt/libvirt.h
2478 %{_includedir}/libvirt/libvirt-admin.h
2479 %{_includedir}/libvirt/libvirt-common.h
2480 %{_includedir}/libvirt/libvirt-domain.h
2481 %{_includedir}/libvirt/libvirt-domain-checkpoint.h
2482 %{_includedir}/libvirt/libvirt-domain-snapshot.h
2483 %{_includedir}/libvirt/libvirt-event.h
2484 %{_includedir}/libvirt/libvirt-host.h
2485 %{_includedir}/libvirt/libvirt-interface.h
2486 %{_includedir}/libvirt/libvirt-network.h
2487 %{_includedir}/libvirt/libvirt-nodedev.h
2488 %{_includedir}/libvirt/libvirt-nwfilter.h
2489 %{_includedir}/libvirt/libvirt-secret.h
2490 %{_includedir}/libvirt/libvirt-storage.h
2491 %{_includedir}/libvirt/libvirt-stream.h
2492 %{_includedir}/libvirt/libvirt-qemu.h
2493 %{_includedir}/libvirt/libvirt-lxc.h
2494 %{_libdir}/pkgconfig/libvirt.pc
2495 %{_libdir}/pkgconfig/libvirt-admin.pc
2496 %{_libdir}/pkgconfig/libvirt-qemu.pc
2497 %{_libdir}/pkgconfig/libvirt-lxc.pc
2498 %dir %{_datadir}/libvirt/api/
2499 %{_datadir}/libvirt/api/libvirt-api.xml
2500 %{_datadir}/libvirt/api/libvirt-admin-api.xml
2501 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
2502 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
2503 %endif
2505 %if %{with_mingw32}
2506 %files -n mingw32-libvirt -f mingw32-libvirt.lang
2507 %dir %{mingw32_sysconfdir}/libvirt/
2508 %config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt.conf
2509 %config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt-admin.conf
2510 %{mingw32_bindir}/libvirt-0.dll
2511 %{mingw32_bindir}/virsh.exe
2512 %{mingw32_bindir}/virt-admin.exe
2513 %{mingw32_bindir}/virt-xml-validate
2514 %{mingw32_bindir}/virt-pki-query-dn.exe
2515 %{mingw32_bindir}/virt-pki-validate.exe
2516 %{mingw32_bindir}/libvirt-lxc-0.dll
2517 %{mingw32_bindir}/libvirt-qemu-0.dll
2518 %{mingw32_bindir}/libvirt-admin-0.dll
2519 %{mingw32_libdir}/libvirt.dll.a
2520 %{mingw32_libdir}/pkgconfig/libvirt.pc
2521 %{mingw32_libdir}/pkgconfig/libvirt-qemu.pc
2522 %{mingw32_libdir}/pkgconfig/libvirt-lxc.pc
2523 %{mingw32_libdir}/pkgconfig/libvirt-admin.pc
2524 %{mingw32_libdir}/libvirt-lxc.dll.a
2525 %{mingw32_libdir}/libvirt-qemu.dll.a
2526 %{mingw32_libdir}/libvirt-admin.dll.a
2527 %dir %{mingw32_datadir}/libvirt/
2528 %dir %{mingw32_datadir}/libvirt/schemas/
2529 %{mingw32_datadir}/libvirt/schemas/*.rng
2530 %dir %{mingw32_datadir}/libvirt/api/
2531 %{mingw32_datadir}/libvirt/api/libvirt-api.xml
2532 %{mingw32_datadir}/libvirt/api/libvirt-lxc-api.xml
2533 %{mingw32_datadir}/libvirt/api/libvirt-qemu-api.xml
2534 %{mingw32_datadir}/libvirt/api/libvirt-admin-api.xml
2535 %{mingw32_datadir}/libvirt/cpu_map/*.xml
2536 %{mingw32_datadir}/libvirt/test-screenshot.png
2537 %dir %{mingw32_includedir}/libvirt
2538 %{mingw32_includedir}/libvirt/libvirt.h
2539 %{mingw32_includedir}/libvirt/libvirt-common.h
2540 %{mingw32_includedir}/libvirt/libvirt-domain.h
2541 %{mingw32_includedir}/libvirt/libvirt-domain-checkpoint.h
2542 %{mingw32_includedir}/libvirt/libvirt-domain-snapshot.h
2543 %{mingw32_includedir}/libvirt/libvirt-event.h
2544 %{mingw32_includedir}/libvirt/libvirt-host.h
2545 %{mingw32_includedir}/libvirt/libvirt-interface.h
2546 %{mingw32_includedir}/libvirt/libvirt-network.h
2547 %{mingw32_includedir}/libvirt/libvirt-nodedev.h
2548 %{mingw32_includedir}/libvirt/libvirt-nwfilter.h
2549 %{mingw32_includedir}/libvirt/libvirt-secret.h
2550 %{mingw32_includedir}/libvirt/libvirt-storage.h
2551 %{mingw32_includedir}/libvirt/libvirt-stream.h
2552 %{mingw32_includedir}/libvirt/virterror.h
2553 %{mingw32_includedir}/libvirt/libvirt-lxc.h
2554 %{mingw32_includedir}/libvirt/libvirt-qemu.h
2555 %{mingw32_includedir}/libvirt/libvirt-admin.h
2556 %{mingw32_mandir}/man1/virsh.1*
2557 %{mingw32_mandir}/man1/virt-admin.1*
2558 %{mingw32_mandir}/man1/virt-xml-validate.1*
2559 %{mingw32_mandir}/man1/virt-pki-query-dn.1*
2560 %{mingw32_mandir}/man1/virt-pki-validate.1*
2561 %{mingw32_mandir}/man7/virkey*.7*
2562 %endif
2564 %if %{with_mingw64}
2565 %files -n mingw64-libvirt -f mingw64-libvirt.lang
2566 %dir %{mingw64_sysconfdir}/libvirt/
2567 %config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt.conf
2568 %config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt-admin.conf
2569 %{mingw64_bindir}/libvirt-0.dll
2570 %{mingw64_bindir}/virsh.exe
2571 %{mingw64_bindir}/virt-admin.exe
2572 %{mingw64_bindir}/virt-xml-validate
2573 %{mingw64_bindir}/virt-pki-query-dn.exe
2574 %{mingw64_bindir}/virt-pki-validate.exe
2575 %{mingw64_bindir}/libvirt-lxc-0.dll
2576 %{mingw64_bindir}/libvirt-qemu-0.dll
2577 %{mingw64_bindir}/libvirt-admin-0.dll
2578 %{mingw64_libdir}/libvirt.dll.a
2579 %{mingw64_libdir}/pkgconfig/libvirt.pc
2580 %{mingw64_libdir}/pkgconfig/libvirt-qemu.pc
2581 %{mingw64_libdir}/pkgconfig/libvirt-lxc.pc
2582 %{mingw64_libdir}/pkgconfig/libvirt-admin.pc
2583 %{mingw64_libdir}/libvirt-lxc.dll.a
2584 %{mingw64_libdir}/libvirt-qemu.dll.a
2585 %{mingw64_libdir}/libvirt-admin.dll.a
2586 %dir %{mingw64_datadir}/libvirt/
2587 %dir %{mingw64_datadir}/libvirt/schemas/
2588 %{mingw64_datadir}/libvirt/schemas/*.rng
2589 %dir %{mingw64_datadir}/libvirt/api/
2590 %{mingw64_datadir}/libvirt/api/libvirt-api.xml
2591 %{mingw64_datadir}/libvirt/api/libvirt-lxc-api.xml
2592 %{mingw64_datadir}/libvirt/api/libvirt-qemu-api.xml
2593 %{mingw64_datadir}/libvirt/api/libvirt-admin-api.xml
2594 %{mingw64_datadir}/libvirt/cpu_map/*.xml
2595 %{mingw64_datadir}/libvirt/test-screenshot.png
2596 %dir %{mingw64_includedir}/libvirt
2597 %{mingw64_includedir}/libvirt/libvirt.h
2598 %{mingw64_includedir}/libvirt/libvirt-common.h
2599 %{mingw64_includedir}/libvirt/libvirt-domain.h
2600 %{mingw64_includedir}/libvirt/libvirt-domain-checkpoint.h
2601 %{mingw64_includedir}/libvirt/libvirt-domain-snapshot.h
2602 %{mingw64_includedir}/libvirt/libvirt-event.h
2603 %{mingw64_includedir}/libvirt/libvirt-host.h
2604 %{mingw64_includedir}/libvirt/libvirt-interface.h
2605 %{mingw64_includedir}/libvirt/libvirt-network.h
2606 %{mingw64_includedir}/libvirt/libvirt-nodedev.h
2607 %{mingw64_includedir}/libvirt/libvirt-nwfilter.h
2608 %{mingw64_includedir}/libvirt/libvirt-secret.h
2609 %{mingw64_includedir}/libvirt/libvirt-storage.h
2610 %{mingw64_includedir}/libvirt/libvirt-stream.h
2611 %{mingw64_includedir}/libvirt/virterror.h
2612 %{mingw64_includedir}/libvirt/libvirt-lxc.h
2613 %{mingw64_includedir}/libvirt/libvirt-qemu.h
2614 %{mingw64_includedir}/libvirt/libvirt-admin.h
2615 %{mingw64_mandir}/man1/virsh.1*
2616 %{mingw64_mandir}/man1/virt-admin.1*
2617 %{mingw64_mandir}/man1/virt-xml-validate.1*
2618 %{mingw64_mandir}/man1/virt-pki-query-dn.1*
2619 %{mingw64_mandir}/man1/virt-pki-validate.1*
2620 %{mingw64_mandir}/man7/virkey*.7*
2621 %endif
2623 %changelog