NEWS: Fix misindented bullet point
[libvirt.git] / libvirt.spec.in
blob4381dbe30c7791eeceb66358000f4aba58cfd020
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 # Force QEMU to run as non-root
209 %define qemu_user qemu
210 %define qemu_group qemu
212 # Locations for QEMU data
213 %define qemu_moddir %{_libdir}/qemu
214 %define qemu_datadir %{_datadir}/qemu
216 # Native / MinGW builds
217 %define with_native 0%{!?_without_native:1}
219 %define with_mingw32 0
220 %define with_mingw64 0
222 %if 0%{?fedora}
223 %if 0%{!?_without_mingw:1}
224 %define with_mingw32 0%{!?_without_mingw32:1}
225 %define with_mingw64 0%{!?_without_mingw64:1}
226 %endif
228 # These tell the other mingw macros whether to perform or
229 # skip the 32-bit and 64-bit specific steps respectively
230 %define mingw_build_win32 %{with_mingw32}
231 %define mingw_build_win64 %{with_mingw64}
232 %endif
234 %if !%{with_native}
235 # Building the debugsource package apparently only works if the
236 # native build is enabled. debuginfo packages don't have this
237 # problem and setting this doesn't disable them
238 %global debug_package %{nil}
239 %endif
241 # RHEL releases provide stable tool chains and so it is safe to turn
242 # compiler warning into errors without being worried about frequent
243 # changes in reported warnings
244 %if 0%{?rhel}
245 %define enable_werror -Dwerror=true
246 %else
247 %define enable_werror -Dwerror=false -Dgit_werror=disabled
248 %endif
250 # Fedora and RHEL-9 are new enough to support /dev/userfaultfd, which
251 # does not require enabling vm.unprivileged_userfaultfd sysctl.
252 %if 0%{?fedora} || 0%{?rhel} >= 9
253 %define with_userfaultfd_sysctl 0
254 %endif
256 %define tls_priority "@LIBVIRT,SYSTEM"
258 # libvirt 8.1.0 stops distributing any sysconfig files.
259 # If the user has customized their sysconfig file,
260 # the RPM upgrade path will rename it to .rpmsave
261 # because the file is no longer managed by RPM.
262 # To prevent a regression we rename it back after the
263 # transaction to preserve the user's modifications
264 %define libvirt_sysconfig_pre() \
265 for sc in %{?*} ; do \
266 test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
267 mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \
268 done \
269 %{nil}
270 %define libvirt_sysconfig_posttrans() \
271 for sc in %{?*} ; do \
272 test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
273 mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \
274 done \
275 %{nil}
277 Summary: Library providing a simple virtualization API
278 Name: libvirt
279 Version: @VERSION@
280 Release: 1%{?dist}
281 License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
282 URL: https://libvirt.org/
284 %if %(echo %{version} | grep "\.0$" >/dev/null; echo $?) == 1
285 %define mainturl stable_updates/
286 %endif
287 Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
289 Requires: libvirt-daemon = %{version}-%{release}
290 Requires: libvirt-daemon-config-network = %{version}-%{release}
291 Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
292 %if %{with_libxl}
293 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
294 %endif
295 %if %{with_lxc}
296 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
297 %endif
298 %if %{with_qemu}
299 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
300 Requires: libvirt-client-qemu = %{version}-%{release}
301 %endif
302 # We had UML driver, but we've removed it.
303 Obsoletes: libvirt-daemon-driver-uml <= 5.0.0
304 Obsoletes: libvirt-daemon-uml <= 5.0.0
305 %if %{with_vbox}
306 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
307 %endif
308 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
309 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
310 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
311 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
312 Requires: libvirt-daemon-driver-network = %{version}-%{release}
313 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
314 Requires: libvirt-client = %{version}-%{release}
315 Requires: libvirt-libs = %{version}-%{release}
317 # All build-time requirements. Run-time requirements are
318 # listed against each sub-RPM
319 BuildRequires: python3-docutils
320 BuildRequires: meson >= 0.56.0
321 BuildRequires: ninja-build
322 BuildRequires: git
323 BuildRequires: perl-interpreter
324 BuildRequires: python3
325 BuildRequires: python3-pytest
326 # For xmllint
327 BuildRequires: libxml2
328 # For xsltproc
329 BuildRequires: libxslt
330 BuildRequires: gettext
331 BuildRequires: systemd-rpm-macros
332 # Fedora build root suckage
333 BuildRequires: gawk
334 %if %{with_native}
335 BuildRequires: gcc
336 %if %{with_libxl}
337 BuildRequires: xen-devel
338 %endif
339 BuildRequires: glib2-devel >= 2.58
340 BuildRequires: libxml2-devel
341 BuildRequires: readline-devel
342 BuildRequires: pkgconfig(bash-completion) >= 2.0
343 BuildRequires: libtasn1-devel
344 BuildRequires: gnutls-devel
345 BuildRequires: libattr-devel
346 # For pool-build probing for existing pools
347 BuildRequires: libblkid-devel >= 2.17
348 # for augparse, optionally used in testing
349 BuildRequires: augeas
350 BuildRequires: systemd-devel >= 185
351 BuildRequires: libpciaccess-devel >= 0.10.9
352 BuildRequires: yajl-devel
353 %if %{with_sanlock}
354 BuildRequires: sanlock-devel >= 2.4
355 %endif
356 BuildRequires: libpcap-devel >= 1.5.0
357 BuildRequires: libnl3-devel
358 BuildRequires: libselinux-devel
359 # For modprobe
360 BuildRequires: kmod
361 BuildRequires: cyrus-sasl-devel
362 BuildRequires: polkit >= 0.112
363 # For mount/umount in FS driver
364 BuildRequires: util-linux
365 %if %{with_qemu}
366 # For managing ACLs
367 BuildRequires: libacl-devel
368 # From QEMU RPMs, used by virstoragetest
369 BuildRequires: /usr/bin/qemu-img
370 %endif
371 # nbdkit support requires libnbd
372 %if %{with_nbdkit}
373 BuildRequires: libnbd-devel
374 %endif
375 # For LVM drivers
376 BuildRequires: lvm2
377 # For pool type=iscsi
378 BuildRequires: iscsi-initiator-utils
379 %if %{with_storage_iscsi_direct}
380 # For pool type=iscsi-direct
381 BuildRequires: libiscsi-devel
382 %endif
383 # For disk driver
384 BuildRequires: parted-devel
385 # For Multipath support
386 BuildRequires: device-mapper-devel
387 %if %{with_storage_rbd}
388 BuildRequires: librados-devel
389 BuildRequires: librbd-devel
390 %endif
391 %if %{with_storage_gluster}
392 BuildRequires: glusterfs-api-devel >= 3.4.1
393 BuildRequires: glusterfs-devel >= 3.4.1
394 %endif
395 %if %{with_numactl}
396 # For QEMU/LXC numa info
397 BuildRequires: numactl-devel
398 %endif
399 BuildRequires: libcap-ng-devel >= 0.5.0
400 %if %{with_fuse}
401 BuildRequires: fuse-devel >= 2.8.6
402 %endif
403 %if %{with_libssh2}
404 BuildRequires: libssh2-devel >= 1.3.0
405 %endif
406 %if %{with_netcf}
407 BuildRequires: netcf-devel >= 0.2.2
408 %endif
409 %if %{with_esx}
410 BuildRequires: libcurl-devel
411 %endif
412 %if %{with_hyperv}
413 BuildRequires: libwsman-devel >= 2.6.3
414 %endif
415 BuildRequires: audit-libs-devel
416 # we need /usr/sbin/dtrace
417 BuildRequires: systemtap-sdt-devel
418 # For mount/umount in FS driver
419 BuildRequires: util-linux
420 # For showmount in FS driver (netfs discovery)
421 BuildRequires: nfs-utils
422 %if %{with_numad}
423 BuildRequires: numad
424 %endif
425 %if %{with_wireshark}
426 BuildRequires: wireshark-devel
427 %endif
428 %if %{with_libssh}
429 BuildRequires: libssh-devel >= 0.8.1
430 %endif
431 BuildRequires: libtirpc-devel
432 %if %{with_firewalld_zone}
433 # Needed for the firewalld_reload macro
434 BuildRequires: firewalld-filesystem
435 %endif
436 %endif
438 %if %{with_mingw32}
439 BuildRequires: mingw32-filesystem
440 BuildRequires: mingw32-gcc
441 BuildRequires: mingw32-binutils
442 BuildRequires: mingw32-glib2 >= 2.48
443 BuildRequires: mingw32-gnutls
444 BuildRequires: mingw32-gettext
445 BuildRequires: mingw32-libxml2
446 BuildRequires: mingw32-portablexdr
447 BuildRequires: mingw32-dlfcn
448 BuildRequires: mingw32-libssh2
449 BuildRequires: mingw32-curl
450 %endif
451 %if %{with_mingw64}
452 BuildRequires: mingw64-filesystem
453 BuildRequires: mingw64-gcc
454 BuildRequires: mingw64-binutils
455 BuildRequires: mingw64-glib2 >= 2.48
456 BuildRequires: mingw64-gnutls
457 BuildRequires: mingw64-gettext
458 BuildRequires: mingw64-libxml2
459 BuildRequires: mingw64-portablexdr
460 BuildRequires: mingw64-dlfcn
461 BuildRequires: mingw64-libssh2
462 BuildRequires: mingw64-curl
463 %endif
465 %description
466 Libvirt is a C toolkit to interact with the virtualization capabilities
467 of recent versions of Linux (and other OSes). The main package includes
468 the libvirtd server exporting the virtualization support.
470 %if %{with_native}
471 %package docs
472 Summary: API reference and website documentation
474 %description docs
475 Includes the API reference for the libvirt C library, and a complete
476 copy of the libvirt.org website documentation.
478 %package daemon
479 Summary: Server side daemon and supporting files for libvirt library
481 # All runtime requirements for the libvirt package (runtime requrements
482 # for subpackages are listed later in those subpackages)
484 # The client side, i.e. shared libs are in a subpackage
485 Requires: libvirt-libs = %{version}-%{release}
486 Requires: libvirt-daemon-common = %{version}-%{release}
487 Requires: libvirt-daemon-lock = %{version}-%{release}
488 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
489 Requires: libvirt-daemon-log = %{version}-%{release}
490 Requires: libvirt-daemon-proxy = %{version}-%{release}
492 %description daemon
493 Server side daemon required to manage the virtualization capabilities
494 of recent versions of Linux. Requires a hypervisor specific sub-RPM
495 for specific drivers.
497 %package daemon-common
498 Summary: Files and utilities used by daemons
499 Requires: libvirt-libs = %{version}-%{release}
500 # The libvirt-guests.sh script requires virsh from libvirt-client subpackage,
501 # but not every deployment wants to use libvirt-guests service. Using
502 # Recommends here will install libvirt-client by default (if available), but
503 # RPM won't complain if the package is unavailable, masked, or removed later.
504 Recommends: libvirt-client = %{version}-%{release}
505 # for /sbin/ip
506 Requires: iproute
507 # for /sbin/tc
508 Requires: iproute-tc
509 Requires: polkit >= 0.112
510 %if %{with_dmidecode}
511 # For virConnectGetSysinfo
512 Requires: dmidecode
513 %endif
514 # For service management
515 Requires(posttrans): /usr/bin/systemctl
516 Requires(preun): /usr/bin/systemctl
517 # libvirtd depends on 'messagebus' service
518 Requires: dbus
519 # For uid creation during pre
520 Requires(pre): shadow-utils
521 # Needed by /usr/libexec/libvirt-guests.sh script.
522 %if 0%{?fedora}
523 Requires: gettext-runtime
524 %else
525 Requires: gettext
526 %endif
528 # Ensure smooth upgrades
529 Obsoletes: libvirt-admin < 7.3.0
530 Provides: libvirt-admin = %{version}-%{release}
531 Obsoletes: libvirt-bash-completion < 7.3.0
533 %description daemon-common
534 Miscellaneous files and utilities used by other libvirt daemons
536 %package daemon-lock
537 Summary: Server side daemon for managing locks
538 Requires: libvirt-libs = %{version}-%{release}
540 %description daemon-lock
541 Server side daemon used to manage locks held against virtual machine
542 resources
544 %package daemon-plugin-lockd
545 Summary: lockd client plugin for virtlockd
546 Requires: libvirt-libs = %{version}-%{release}
547 Requires: libvirt-daemon-lock = %{version}-%{release}
549 %description daemon-plugin-lockd
550 A client-side plugin that implements disk locking using POSIX fcntl advisory
551 locks via communication with the virtlockd daemon
553 %package daemon-log
554 Summary: Server side daemon for managing logs
555 Requires: libvirt-libs = %{version}-%{release}
557 %description daemon-log
558 Server side daemon used to manage logs from virtual machine consoles
560 %package daemon-proxy
561 Summary: Server side daemon providing libvirtd proxy
562 Requires: libvirt-libs = %{version}-%{release}
563 # netcat is needed on the server side so that clients that have
564 # libvirt < 6.9.0 can connect, but newer versions will prefer
565 # virt-ssh-helper. Making this a Recommends means that it gets
566 # installed by default, but can still be removed if compatibility
567 # with old clients is not required
568 Recommends: /usr/bin/nc
570 %description daemon-proxy
571 Server side daemon providing functionality previously provided by
572 the monolithic libvirtd
574 %package daemon-config-network
575 Summary: Default configuration files for the libvirtd daemon
577 Requires: libvirt-daemon-driver-network = %{version}-%{release}
579 %description daemon-config-network
580 Default configuration files for setting up NAT based networking
582 %package daemon-config-nwfilter
583 Summary: Network filter configuration files for the libvirtd daemon
585 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
587 %description daemon-config-nwfilter
588 Network filter configuration files for cleaning guest traffic
590 %package daemon-driver-network
591 Summary: Network driver plugin for the libvirtd daemon
592 Requires: libvirt-daemon-common = %{version}-%{release}
593 Requires: libvirt-libs = %{version}-%{release}
594 Requires: dnsmasq >= 2.41
595 %if 0%{?rhel} >= 10 || 0%{?fedora} >= 41
596 Requires: nftables
597 %else
598 Requires: iptables
599 %endif
601 %description daemon-driver-network
602 The network driver plugin for the libvirtd daemon, providing
603 an implementation of the virtual network APIs using the Linux
604 bridge capabilities.
606 %package daemon-driver-nwfilter
607 Summary: Nwfilter driver plugin for the libvirtd daemon
608 Requires: libvirt-daemon-common = %{version}-%{release}
609 Requires: libvirt-libs = %{version}-%{release}
610 Requires: iptables
611 Requires: ebtables
613 %description daemon-driver-nwfilter
614 The nwfilter driver plugin for the libvirtd daemon, providing
615 an implementation of the firewall APIs using the ebtables,
616 iptables and ip6tables capabilities
618 %package daemon-driver-nodedev
619 Summary: Nodedev driver plugin for the libvirtd daemon
620 Requires: libvirt-daemon-common = %{version}-%{release}
621 Requires: libvirt-libs = %{version}-%{release}
622 # needed for device enumeration
623 Requires: systemd >= 185
624 # For managing persistent mediated devices
625 # Note: for nodedev-update support at least mdevctl v1.3.0 is required
626 Requires: mdevctl
627 # for modprobe of pci devices
628 Requires: module-init-tools
630 %description daemon-driver-nodedev
631 The nodedev driver plugin for the libvirtd daemon, providing
632 an implementation of the node device APIs using the udev
633 capabilities.
635 %package daemon-driver-interface
636 Summary: Interface driver plugin for the libvirtd daemon
637 Requires: libvirt-daemon-common = %{version}-%{release}
638 Requires: libvirt-libs = %{version}-%{release}
639 %if %{with_netcf}
640 Requires: netcf-libs >= 0.2.2
641 %endif
643 %description daemon-driver-interface
644 The interface driver plugin for the libvirtd daemon, providing
645 an implementation of the host network interface APIs.
647 %package daemon-driver-secret
648 Summary: Secret driver plugin for the libvirtd daemon
649 Requires: libvirt-daemon-common = %{version}-%{release}
650 Requires: libvirt-libs = %{version}-%{release}
652 %description daemon-driver-secret
653 The secret driver plugin for the libvirtd daemon, providing
654 an implementation of the secret key APIs.
656 %package daemon-driver-storage-core
657 Summary: Storage driver plugin including base backends for the libvirtd daemon
658 Requires: libvirt-daemon-common = %{version}-%{release}
659 Requires: libvirt-libs = %{version}-%{release}
660 Requires: nfs-utils
661 # For mkfs
662 Requires: util-linux
663 # For storage wiping with different algorithms
664 Requires: scrub
665 %if %{with_qemu}
666 # From QEMU RPMs
667 Requires: /usr/bin/qemu-img
668 %endif
669 %if !%{with_storage_rbd}
670 Obsoletes: libvirt-daemon-driver-storage-rbd < 5.2.0
671 %endif
672 Obsoletes: libvirt-daemon-driver-storage-sheepdog < 8.8.0
674 %description daemon-driver-storage-core
675 The storage driver plugin for the libvirtd daemon, providing
676 an implementation of the storage APIs using files, local disks, LVM, SCSI,
677 iSCSI, and multipath storage.
679 %package daemon-driver-storage-logical
680 Summary: Storage driver plugin for lvm volumes
681 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
682 Requires: libvirt-libs = %{version}-%{release}
683 Requires: lvm2
685 %description daemon-driver-storage-logical
686 The storage driver backend adding implementation of the storage APIs for block
687 volumes using lvm.
689 %package daemon-driver-storage-disk
690 Summary: Storage driver plugin for disk
691 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
692 Requires: libvirt-libs = %{version}-%{release}
693 Requires: parted
694 Requires: device-mapper
696 %description daemon-driver-storage-disk
697 The storage driver backend adding implementation of the storage APIs for block
698 volumes using the host disks.
700 %package daemon-driver-storage-scsi
701 Summary: Storage driver plugin for local scsi devices
702 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
703 Requires: libvirt-libs = %{version}-%{release}
705 %description daemon-driver-storage-scsi
706 The storage driver backend adding implementation of the storage APIs for scsi
707 host devices.
709 %package daemon-driver-storage-iscsi
710 Summary: Storage driver plugin for iscsi
711 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
712 Requires: libvirt-libs = %{version}-%{release}
713 Requires: iscsi-initiator-utils
715 %description daemon-driver-storage-iscsi
716 The storage driver backend adding implementation of the storage APIs for iscsi
717 volumes using the host iscsi stack.
719 %if %{with_storage_iscsi_direct}
720 %package daemon-driver-storage-iscsi-direct
721 Summary: Storage driver plugin for iscsi-direct
722 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
723 Requires: libvirt-libs = %{version}-%{release}
725 %description daemon-driver-storage-iscsi-direct
726 The storage driver backend adding implementation of the storage APIs for iscsi
727 volumes using libiscsi direct connection.
728 %endif
730 %package daemon-driver-storage-mpath
731 Summary: Storage driver plugin for multipath volumes
732 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
733 Requires: libvirt-libs = %{version}-%{release}
734 Requires: device-mapper
736 %description daemon-driver-storage-mpath
737 The storage driver backend adding implementation of the storage APIs for
738 multipath storage using device mapper.
740 %if %{with_storage_gluster}
741 %package daemon-driver-storage-gluster
742 Summary: Storage driver plugin for gluster
743 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
744 Requires: libvirt-libs = %{version}-%{release}
745 %if 0%{?fedora}
746 Requires: glusterfs-client >= 2.0.1
747 %endif
748 %if 0%{?fedora} || 0%{?with_storage_gluster}
749 Requires: /usr/sbin/gluster
750 %endif
752 %description daemon-driver-storage-gluster
753 The storage driver backend adding implementation of the storage APIs for gluster
754 volumes using libgfapi.
755 %endif
757 %if %{with_storage_rbd}
758 %package daemon-driver-storage-rbd
759 Summary: Storage driver plugin for rbd
760 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
761 Requires: libvirt-libs = %{version}-%{release}
763 %description daemon-driver-storage-rbd
764 The storage driver backend adding implementation of the storage APIs for rbd
765 volumes using the ceph protocol.
766 %endif
768 %if %{with_storage_zfs}
769 %package daemon-driver-storage-zfs
770 Summary: Storage driver plugin for ZFS
771 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
772 Requires: libvirt-libs = %{version}-%{release}
773 # Support any conforming implementation of zfs
774 Requires: /sbin/zfs
775 Requires: /sbin/zpool
777 %description daemon-driver-storage-zfs
778 The storage driver backend adding implementation of the storage APIs for
779 ZFS volumes.
780 %endif
782 %package daemon-driver-storage
783 Summary: Storage driver plugin including all backends for the libvirtd daemon
784 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
785 Requires: libvirt-daemon-driver-storage-disk = %{version}-%{release}
786 Requires: libvirt-daemon-driver-storage-logical = %{version}-%{release}
787 Requires: libvirt-daemon-driver-storage-scsi = %{version}-%{release}
788 Requires: libvirt-daemon-driver-storage-iscsi = %{version}-%{release}
789 Requires: libvirt-daemon-driver-storage-mpath = %{version}-%{release}
790 %if %{with_storage_iscsi_direct}
791 Requires: libvirt-daemon-driver-storage-iscsi-direct = %{version}-%{release}
792 %endif
793 %if %{with_storage_gluster}
794 Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
795 %endif
796 %if %{with_storage_rbd}
797 Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
798 %endif
799 %if %{with_storage_zfs}
800 Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
801 %endif
803 %description daemon-driver-storage
804 The storage driver plugin for the libvirtd daemon, providing
805 an implementation of the storage APIs using LVM, iSCSI,
806 parted and more.
808 %if %{with_qemu}
809 %package daemon-driver-qemu
810 Summary: QEMU driver plugin for the libvirtd daemon
811 Requires: libvirt-daemon-common = %{version}-%{release}
812 Requires: libvirt-daemon-log = %{version}-%{release}
813 Requires: libvirt-libs = %{version}-%{release}
814 Requires: /usr/bin/qemu-img
815 # For image compression
816 Requires: gzip
817 Requires: bzip2
818 Requires: lzop
819 Requires: xz
820 Requires: zstd
821 Requires: systemd-container
822 Requires: swtpm-tools
823 %if %{with_numad}
824 Requires: numad
825 %endif
826 %if 0%{?fedora} || 0%{?rhel} >= 9
827 Recommends: passt
828 Recommends: passt-selinux
829 %endif
830 %if %{with_nbdkit}
831 Recommends: nbdkit
832 Recommends: nbdkit-curl-plugin
833 Recommends: nbdkit-ssh-plugin
834 %endif
836 %description daemon-driver-qemu
837 The qemu driver plugin for the libvirtd daemon, providing
838 an implementation of the hypervisor driver APIs using
839 QEMU
840 %endif
842 %if %{with_lxc}
843 %package daemon-driver-lxc
844 Summary: LXC driver plugin for the libvirtd daemon
845 Requires: libvirt-daemon-common = %{version}-%{release}
846 Requires: libvirt-libs = %{version}-%{release}
847 # There really is a hard cross-driver dependency here
848 Requires: libvirt-daemon-driver-network = %{version}-%{release}
849 Requires: systemd-container
850 # for modprobe of nbd driver
851 Requires: module-init-tools
852 %if %{with_numad}
853 Requires: numad
854 %endif
856 %description daemon-driver-lxc
857 The LXC driver plugin for the libvirtd daemon, providing
858 an implementation of the hypervisor driver APIs using
859 the Linux kernel
860 %endif
862 %if %{with_vbox}
863 %package daemon-driver-vbox
864 Summary: VirtualBox driver plugin for the libvirtd daemon
865 Requires: libvirt-daemon-common = %{version}-%{release}
866 Requires: libvirt-libs = %{version}-%{release}
868 %description daemon-driver-vbox
869 The vbox driver plugin for the libvirtd daemon, providing
870 an implementation of the hypervisor driver APIs using
871 VirtualBox
872 %endif
874 %if %{with_libxl}
875 %package daemon-driver-libxl
876 Summary: Libxl driver plugin for the libvirtd daemon
877 Requires: libvirt-daemon-common = %{version}-%{release}
878 Requires: libvirt-libs = %{version}-%{release}
879 Obsoletes: libvirt-daemon-driver-xen < 4.3.0
881 %description daemon-driver-libxl
882 The Libxl driver plugin for the libvirtd daemon, providing
883 an implementation of the hypervisor driver APIs using
884 Libxl
885 %endif
887 %if %{with_qemu_tcg}
888 %package daemon-qemu
889 Summary: Server side daemon & driver required to run QEMU guests
891 %if %{with_modular_daemons}
892 Requires: libvirt-daemon-common = %{version}-%{release}
893 Requires: libvirt-daemon-log = %{version}-%{release}
894 Requires: libvirt-daemon-lock = %{version}-%{release}
895 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
896 Requires: libvirt-daemon-proxy = %{version}-%{release}
897 Recommends: libvirt-daemon = %{version}-%{release}
898 %else
899 Requires: libvirt-daemon = %{version}-%{release}
900 %endif
901 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
902 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
903 Requires: libvirt-daemon-driver-network = %{version}-%{release}
904 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
905 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
906 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
907 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
908 Requires: libvirt-ssh-proxy = %{version}-%{release}
909 Requires: qemu
911 %description daemon-qemu
912 Server side daemon and driver required to manage the virtualization
913 capabilities of the QEMU TCG emulators
914 %endif
916 %if %{with_qemu_kvm}
917 %package daemon-kvm
918 Summary: Server side daemon & driver required to run KVM guests
920 %if %{with_modular_daemons}
921 Requires: libvirt-daemon-common = %{version}-%{release}
922 Requires: libvirt-daemon-log = %{version}-%{release}
923 Requires: libvirt-daemon-lock = %{version}-%{release}
924 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
925 Requires: libvirt-daemon-proxy = %{version}-%{release}
926 Recommends: libvirt-daemon = %{version}-%{release}
927 %else
928 Requires: libvirt-daemon = %{version}-%{release}
929 %endif
930 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
931 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
932 Requires: libvirt-daemon-driver-network = %{version}-%{release}
933 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
934 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
935 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
936 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
937 Requires: libvirt-ssh-proxy = %{version}-%{release}
938 Requires: qemu-kvm
940 %description daemon-kvm
941 Server side daemon and driver required to manage the virtualization
942 capabilities of the KVM hypervisor
943 %endif
945 %if %{with_lxc}
946 %package daemon-lxc
947 Summary: Server side daemon & driver required to run LXC guests
949 %if %{with_modular_daemons}
950 Requires: libvirt-daemon-common = %{version}-%{release}
951 Requires: libvirt-daemon-proxy = %{version}-%{release}
952 Recommends: libvirt-daemon = %{version}-%{release}
953 %else
954 Requires: libvirt-daemon = %{version}-%{release}
955 %endif
956 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
957 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
958 Requires: libvirt-daemon-driver-network = %{version}-%{release}
959 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
960 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
961 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
962 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
964 %description daemon-lxc
965 Server side daemon and driver required to manage the virtualization
966 capabilities of LXC
967 %endif
969 %if %{with_libxl}
970 %package daemon-xen
971 Summary: Server side daemon & driver required to run XEN guests
973 %if %{with_modular_daemons}
974 Requires: libvirt-daemon-common = %{version}-%{release}
975 Requires: libvirt-daemon-lock = %{version}-%{release}
976 Requires: libvirt-daemon-plugin-lockd = %{version}-%{release}
977 Requires: libvirt-daemon-proxy = %{version}-%{release}
978 Recommends: libvirt-daemon = %{version}-%{release}
979 %else
980 Requires: libvirt-daemon = %{version}-%{release}
981 %endif
982 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
983 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
984 Requires: libvirt-daemon-driver-network = %{version}-%{release}
985 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
986 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
987 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
988 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
989 Requires: xen
991 %description daemon-xen
992 Server side daemon and driver required to manage the virtualization
993 capabilities of XEN
994 %endif
996 %if %{with_vbox}
997 %package daemon-vbox
998 Summary: Server side daemon & driver required to run VirtualBox guests
1000 %if %{with_modular_daemons}
1001 Requires: libvirt-daemon-common = %{version}-%{release}
1002 Requires: libvirt-daemon-proxy = %{version}-%{release}
1003 Recommends: libvirt-daemon = %{version}-%{release}
1004 %else
1005 Requires: libvirt-daemon = %{version}-%{release}
1006 %endif
1007 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
1008 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
1009 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1010 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
1011 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
1012 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
1013 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
1015 %description daemon-vbox
1016 Server side daemon and driver required to manage the virtualization
1017 capabilities of VirtualBox
1018 %endif
1020 %package client
1021 Summary: Client side utilities of the libvirt library
1022 Requires: libvirt-libs = %{version}-%{release}
1023 # Needed by virt-pki-validate script.
1024 Requires: gnutls-utils
1026 # Ensure smooth upgrades
1027 Obsoletes: libvirt-bash-completion < 7.3.0
1029 %description client
1030 The client binaries needed to access the virtualization
1031 capabilities of recent versions of Linux (and other OSes).
1033 %package client-qemu
1034 Summary: Additional client side utilities for QEMU
1035 Requires: libvirt-libs = %{version}-%{release}
1036 Requires: python3-libvirt >= 3.7.0
1037 Requires: python3-cryptography
1038 Requires: python3-lxml
1040 %description client-qemu
1041 The additional client binaries are used to interact
1042 with some QEMU specific features of libvirt.
1044 %package libs
1045 Summary: Client side libraries
1046 # So remote clients can access libvirt over SSH tunnel
1047 Requires: cyrus-sasl
1048 # Needed by default sasl.conf - no onerous extra deps, since
1049 # 100's of other things on a system already pull in krb5-libs
1050 Requires: cyrus-sasl-gssapi
1052 %description libs
1053 Shared libraries for accessing the libvirt daemon.
1055 %if %{with_wireshark}
1056 %package wireshark
1057 Summary: Wireshark dissector plugin for libvirt RPC transactions
1058 Requires: wireshark
1059 Requires: libvirt-libs = %{version}-%{release}
1061 %description wireshark
1062 Wireshark dissector plugin for better analysis of libvirt RPC traffic.
1063 %endif
1065 %if %{with_lxc}
1066 %package login-shell
1067 Summary: Login shell for connecting users to an LXC container
1068 Requires: libvirt-libs = %{version}-%{release}
1070 %description login-shell
1071 Provides the set-uid virt-login-shell binary that is used to
1072 connect a user to an LXC container when they login, by switching
1073 namespaces.
1074 %endif
1076 %package devel
1077 Summary: Libraries, includes, etc. to compile with the libvirt library
1078 Requires: libvirt-libs = %{version}-%{release}
1079 Requires: pkgconfig
1081 %description devel
1082 Include header files & development libraries for the libvirt C library.
1084 %if %{with_sanlock}
1085 %package daemon-plugin-sanlock
1086 Summary: Sanlock lock manager plugin for QEMU driver
1087 Requires: sanlock >= 2.4
1088 #for virt-sanlock-cleanup require augeas
1089 Requires: augeas
1090 Requires: libvirt-libs = %{version}-%{release}
1091 Obsoletes: libvirt-lock-sanlock < 9.1.0
1092 Provides: libvirt-lock-sanlock = %{version}-%{release}
1094 %description daemon-plugin-sanlock
1095 Includes the Sanlock lock manager plugin for the QEMU
1096 driver
1097 %endif
1099 %package nss
1100 Summary: Libvirt plugin for Name Service Switch
1101 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1103 %description nss
1104 Libvirt plugin for NSS for translating domain names into IP addresses.
1105 %endif
1107 %package ssh-proxy
1108 Summary: Libvirt SSH proxy
1109 Requires: libvirt-libs = %{version}-%{release}
1111 %description ssh-proxy
1112 Allows SSH into domains via VSOCK without need for network.
1114 %if %{with_mingw32}
1115 %package -n mingw32-libvirt
1116 Summary: %{summary}
1117 Obsoletes: mingw32-libvirt-static < 7.0.0
1118 BuildArch: noarch
1120 %description -n mingw32-libvirt
1121 MinGW Windows libvirt virtualization library.
1123 %{?mingw32_debug_package}
1124 %endif
1126 %if %{with_mingw64}
1127 %package -n mingw64-libvirt
1128 Summary: %{summary}
1129 Obsoletes: mingw64-libvirt-static < 7.0.0
1130 BuildArch: noarch
1132 %description -n mingw64-libvirt
1133 MinGW Windows libvirt virtualization library.
1135 %{?mingw64_debug_package}
1136 %endif
1138 %prep
1139 %autosetup -S git_am
1141 %build
1142 %if 0%{?fedora} >= %{min_fedora} || 0%{?rhel} >= %{min_rhel}
1143 %define supported_platform 1
1144 %else
1145 %define supported_platform 0
1146 %endif
1148 %if ! %{supported_platform}
1149 echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}"
1150 exit 1
1151 %endif
1153 %if %{with_qemu}
1154 %define arg_qemu -Ddriver_qemu=enabled
1155 %else
1156 %define arg_qemu -Ddriver_qemu=disabled
1157 %endif
1159 %if %{with_openvz}
1160 %define arg_openvz -Ddriver_openvz=enabled
1161 %else
1162 %define arg_openvz -Ddriver_openvz=disabled
1163 %endif
1165 %if %{with_lxc}
1166 %define arg_lxc -Ddriver_lxc=enabled
1167 %define arg_login_shell -Dlogin_shell=enabled
1168 %else
1169 %define arg_lxc -Ddriver_lxc=disabled
1170 %define arg_login_shell -Dlogin_shell=disabled
1171 %endif
1173 %if %{with_vbox}
1174 %define arg_vbox -Ddriver_vbox=enabled
1175 %else
1176 %define arg_vbox -Ddriver_vbox=disabled
1177 %endif
1179 %if %{with_libxl}
1180 %define arg_libxl -Ddriver_libxl=enabled
1181 %else
1182 %define arg_libxl -Ddriver_libxl=disabled
1183 %endif
1185 %if %{with_esx}
1186 %define arg_esx -Ddriver_esx=enabled -Dcurl=enabled
1187 %else
1188 %define arg_esx -Ddriver_esx=disabled -Dcurl=disabled
1189 %endif
1191 %if %{with_hyperv}
1192 %define arg_hyperv -Ddriver_hyperv=enabled -Dopenwsman=enabled
1193 %else
1194 %define arg_hyperv -Ddriver_hyperv=disabled -Dopenwsman=disabled
1195 %endif
1197 %if %{with_vmware}
1198 %define arg_vmware -Ddriver_vmware=enabled
1199 %else
1200 %define arg_vmware -Ddriver_vmware=disabled
1201 %endif
1203 %if %{with_storage_rbd}
1204 %define arg_storage_rbd -Dstorage_rbd=enabled
1205 %else
1206 %define arg_storage_rbd -Dstorage_rbd=disabled
1207 %endif
1209 %if %{with_storage_gluster}
1210 %define arg_storage_gluster -Dstorage_gluster=enabled -Dglusterfs=enabled
1211 %else
1212 %define arg_storage_gluster -Dstorage_gluster=disabled -Dglusterfs=disabled
1213 %endif
1215 %if %{with_storage_zfs}
1216 %define arg_storage_zfs -Dstorage_zfs=enabled
1217 %else
1218 %define arg_storage_zfs -Dstorage_zfs=disabled
1219 %endif
1221 %if %{with_numactl}
1222 %define arg_numactl -Dnumactl=enabled
1223 %else
1224 %define arg_numactl -Dnumactl=disabled
1225 %endif
1227 %if %{with_numad}
1228 %define arg_numad -Dnumad=enabled
1229 %else
1230 %define arg_numad -Dnumad=disabled
1231 %endif
1233 %if %{with_nbdkit}
1234 %define arg_nbdkit -Dnbdkit=enabled
1235 %else
1236 %define arg_nbdkit -Dnbdkit=disabled
1237 %endif
1239 %if %{with_nbdkit_config_default}
1240 %define arg_nbdkit_config_default -Dnbdkit_config_default=enabled
1241 %else
1242 %define arg_nbdkit_config_default -Dnbdkit_config_default=disabled
1243 %endif
1245 %if %{with_fuse}
1246 %define arg_fuse -Dfuse=enabled
1247 %else
1248 %define arg_fuse -Dfuse=disabled
1249 %endif
1251 %if %{with_sanlock}
1252 %define arg_sanlock -Dsanlock=enabled
1253 %else
1254 %define arg_sanlock -Dsanlock=disabled
1255 %endif
1257 %if %{with_firewalld_zone}
1258 %define arg_firewalld_zone -Dfirewalld_zone=enabled
1259 %else
1260 %define arg_firewalld_zone -Dfirewalld_zone=disabled
1261 %endif
1263 %if %{with_netcf}
1264 %define arg_netcf -Dnetcf=enabled
1265 %else
1266 %define arg_netcf -Dnetcf=disabled
1267 %endif
1269 %if %{with_wireshark}
1270 %define arg_wireshark -Dwireshark_dissector=enabled
1271 %else
1272 %define arg_wireshark -Dwireshark_dissector=disabled
1273 %endif
1275 %if %{with_storage_iscsi_direct}
1276 %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=enabled -Dlibiscsi=enabled
1277 %else
1278 %define arg_storage_iscsi_direct -Dstorage_iscsi_direct=disabled -Dlibiscsi=disabled
1279 %endif
1281 %if %{with_libssh}
1282 %define arg_libssh -Dlibssh=enabled
1283 %else
1284 %define arg_libssh -Dlibssh=disabled
1285 %endif
1287 %if %{with_libssh2}
1288 %define arg_libssh2 -Dlibssh2=enabled
1289 %else
1290 %define arg_libssh2 -Dlibssh2=disabled
1291 %endif
1293 %if %{with_modular_daemons}
1294 %define arg_remote_mode -Dremote_default_mode=direct
1295 %else
1296 %define arg_remote_mode -Dremote_default_mode=legacy
1297 %endif
1299 %if %{with_userfaultfd_sysctl}
1300 %define arg_userfaultfd_sysctl -Duserfaultfd_sysctl=enabled
1301 %else
1302 %define arg_userfaultfd_sysctl -Duserfaultfd_sysctl=disabled
1303 %endif
1305 %define when %(date +"%%F-%%T")
1306 %define where %(hostname)
1307 %define who %{?packager}%{!?packager:Unknown}
1308 %define arg_packager -Dpackager="%{who}, %{when}, %{where}"
1309 %define arg_packager_version -Dpackager_version="%{release}"
1310 %define arg_selinux_mount -Dselinux_mount="/sys/fs/selinux"
1312 # place macros above and build commands below this comment
1314 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
1316 %if %{with_native}
1317 %meson \
1318 -Drunstatedir=%{_rundir} \
1319 -Dinitconfdir=%{_sysconfdir}/sysconfig \
1320 %{?arg_qemu} \
1321 %{?arg_openvz} \
1322 %{?arg_lxc} \
1323 %{?arg_vbox} \
1324 %{?arg_libxl} \
1325 -Dsasl=enabled \
1326 -Dpolkit=enabled \
1327 -Ddriver_libvirtd=enabled \
1328 -Ddriver_remote=enabled \
1329 -Ddriver_test=enabled \
1330 %{?arg_esx} \
1331 %{?arg_hyperv} \
1332 %{?arg_vmware} \
1333 -Ddriver_vz=disabled \
1334 -Ddriver_bhyve=disabled \
1335 -Ddriver_ch=disabled \
1336 %{?arg_remote_mode} \
1337 -Ddriver_interface=enabled \
1338 -Ddriver_network=enabled \
1339 -Dstorage_fs=enabled \
1340 -Dstorage_lvm=enabled \
1341 -Dstorage_iscsi=enabled \
1342 %{?arg_storage_iscsi_direct} \
1343 -Dstorage_scsi=enabled \
1344 -Dstorage_disk=enabled \
1345 -Dstorage_mpath=enabled \
1346 %{?arg_storage_rbd} \
1347 %{?arg_storage_gluster} \
1348 %{?arg_storage_zfs} \
1349 -Dstorage_vstorage=disabled \
1350 %{?arg_numactl} \
1351 %{?arg_numad} \
1352 -Dcapng=enabled \
1353 %{?arg_fuse} \
1354 %{?arg_netcf} \
1355 -Dnls=enabled \
1356 -Dselinux=enabled \
1357 %{?arg_selinux_mount} \
1358 -Dapparmor=disabled \
1359 -Dapparmor_profiles=disabled \
1360 -Dsecdriver_apparmor=disabled \
1361 -Dudev=enabled \
1362 -Dyajl=enabled \
1363 %{?arg_sanlock} \
1364 -Dlibpcap=enabled \
1365 %{?arg_nbdkit} \
1366 %{?arg_nbdkit_config_default} \
1367 -Dlibnl=enabled \
1368 -Daudit=enabled \
1369 -Ddtrace=enabled \
1370 -Dfirewalld=enabled \
1371 %{?arg_firewalld_zone} \
1372 %{?arg_wireshark} \
1373 %{?arg_libssh} \
1374 %{?arg_libssh2} \
1375 -Dpm_utils=disabled \
1376 -Dnss=enabled \
1377 %{arg_packager} \
1378 %{arg_packager_version} \
1379 -Dqemu_user=%{qemu_user} \
1380 -Dqemu_group=%{qemu_group} \
1381 -Dqemu_moddir=%{qemu_moddir} \
1382 -Dqemu_datadir=%{qemu_datadir} \
1383 -Dtls_priority=%{tls_priority} \
1384 -Dsysctl_config=enabled \
1385 %{?arg_userfaultfd_sysctl} \
1386 -Dssh_proxy=enabled \
1387 %{?enable_werror} \
1388 -Dexpensive_tests=enabled \
1389 -Dinit_script=systemd \
1390 -Dfirewall_backend_priority=nftables,iptables \
1391 -Ddocs=enabled \
1392 -Dtests=enabled \
1393 -Drpath=disabled \
1394 %{?arg_login_shell}
1396 %meson_build
1397 %endif
1399 %if %{with_mingw32} || %{with_mingw64}
1400 %mingw_meson \
1401 --auto-features=enabled \
1402 -Ddriver_remote=enabled \
1403 -Ddriver_test=enabled \
1404 -Ddriver_esx=enabled \
1405 -Dcurl=enabled \
1406 -Ddocs=enabled \
1407 -Dapparmor=disabled \
1408 -Dapparmor_profiles=disabled \
1409 -Dattr=disabled \
1410 -Daudit=disabled \
1411 -Dbash_completion=disabled \
1412 -Dblkid=disabled \
1413 -Dcapng=disabled \
1414 -Ddriver_bhyve=disabled \
1415 -Ddriver_hyperv=disabled \
1416 -Ddriver_interface=disabled \
1417 -Ddriver_libvirtd=disabled \
1418 -Ddriver_libxl=disabled \
1419 -Ddriver_lxc=disabled \
1420 -Ddriver_network=disabled \
1421 -Ddriver_openvz=disabled \
1422 -Ddriver_qemu=disabled \
1423 -Ddriver_secrets=disabled \
1424 -Ddriver_vbox=disabled \
1425 -Ddriver_vmware=disabled \
1426 -Ddriver_vz=disabled \
1427 -Ddtrace=disabled \
1428 -Dexpensive_tests=disabled \
1429 -Dfirewalld=disabled \
1430 -Dfirewalld_zone=disabled \
1431 -Dfuse=disabled \
1432 -Dglusterfs=disabled \
1433 -Dhost_validate=disabled \
1434 -Dlibiscsi=disabled \
1435 -Dnbdkit=disabled \
1436 -Dnbdkit_config_default=disabled \
1437 -Dlibnl=disabled \
1438 -Dlibpcap=disabled \
1439 -Dlibssh2=disabled \
1440 -Dlibssh=disabled \
1441 -Dlogin_shell=disabled \
1442 -Dnetcf=disabled \
1443 -Dnls=enabled \
1444 -Dnss=disabled \
1445 -Dnumactl=disabled \
1446 -Dnumad=disabled \
1447 -Dopenwsman=disabled \
1448 -Dpciaccess=disabled \
1449 -Dpm_utils=disabled \
1450 -Dpolkit=disabled \
1451 -Dreadline=disabled \
1452 -Drpath=disabled \
1453 -Dsanlock=disabled \
1454 -Dsasl=disabled \
1455 -Dsecdriver_apparmor=disabled \
1456 -Dsecdriver_selinux=disabled \
1457 -Dselinux=disabled \
1458 -Dstorage_dir=disabled \
1459 -Dstorage_disk=disabled \
1460 -Dstorage_fs=disabled \
1461 -Dstorage_gluster=disabled \
1462 -Dstorage_iscsi_direct=disabled \
1463 -Dstorage_iscsi=disabled \
1464 -Dstorage_lvm=disabled \
1465 -Dstorage_mpath=disabled \
1466 -Dstorage_rbd=disabled \
1467 -Dstorage_scsi=disabled \
1468 -Dstorage_vstorage=disabled \
1469 -Dstorage_zfs=disabled \
1470 -Dsysctl_config=disabled \
1471 -Duserfaultfd_sysctl=disabled \
1472 -Dssh_proxy=disabled \
1473 -Dtests=disabled \
1474 -Dudev=disabled \
1475 -Dwireshark_dissector=disabled \
1476 -Dyajl=disabled
1477 %mingw_ninja
1478 %endif
1480 %install
1481 rm -fr %{buildroot}
1483 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
1485 %if %{with_native}
1486 %meson_install
1488 # We don't want to install /etc/libvirt/qemu/networks in the main %%files list
1489 # because if the admin wants to delete the default network completely, we don't
1490 # want to end up re-incarnating it on every RPM upgrade.
1491 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
1492 cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
1493 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1494 # libvirt saves this file with mode 0600
1495 chmod 0600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1497 # nwfilter files are installed in /usr/share/libvirt and copied to /etc in %%post
1498 # to avoid verification errors on changed files in /etc
1499 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1500 cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \
1501 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1502 # libvirt saves these files with mode 600
1503 chmod 600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml
1505 %if ! %{with_qemu}
1506 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
1507 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1508 rm -f $RPM_BUILD_ROOT%{_sysusersdir}/libvirt-qemu.conf
1509 %endif
1510 %find_lang %{name}
1512 %if ! %{with_sanlock}
1513 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
1514 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1515 %endif
1517 %if ! %{with_lxc}
1518 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
1519 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1520 %endif
1522 %if ! %{with_qemu}
1523 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1524 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1525 %endif
1526 %if ! %{with_lxc}
1527 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1528 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1529 %endif
1530 %if ! %{with_libxl}
1531 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
1532 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
1533 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
1534 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1535 %endif
1537 # Copied into libvirt-docs subpackage eventually
1538 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs
1540 %ifarch %{arches_systemtap_64bit}
1541 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
1542 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
1544 %if %{with_qemu}
1545 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
1546 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
1547 %endif
1548 %endif
1549 %endif
1551 %if %{with_mingw32} || %{with_mingw64}
1552 %mingw_ninja_install
1553 %endif
1555 %if %{with_mingw32}
1556 rm -rf $RPM_BUILD_ROOT%{mingw32_sysconfdir}/libvirt/nwfilter
1557 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/doc/*
1558 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc/*
1559 rm -rf $RPM_BUILD_ROOT%{mingw32_libexecdir}/libvirt_iohelper.exe
1560 rm -rf $RPM_BUILD_ROOT%{mingw32_libexecdir}/libvirt-guests.sh
1561 %endif
1563 %if %{with_mingw64}
1564 rm -rf $RPM_BUILD_ROOT%{mingw64_sysconfdir}/libvirt/nwfilter
1565 rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/doc/*
1566 rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc/*
1567 rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt_iohelper.exe
1568 rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
1569 %endif
1571 %if %{with_mingw32} || %{with_mingw64}
1572 %mingw_debug_install_post
1574 %mingw_find_lang %{name}
1576 %endif
1578 %check
1580 %if %{with_native}
1581 # Building on slow archs, like emulated s390x in Fedora copr, requires
1582 # raising the test timeout
1583 VIR_TEST_DEBUG=1 %meson_test --no-suite syntax-check --timeout-multiplier 10
1584 %endif
1586 %define libvirt_rpmstatedir %{_localstatedir}/lib/rpm-state/libvirt
1588 # Mark units such that presets will later be applied to them. Meant
1589 # to be called during %pre. Units that already exist on the system
1590 # will not be marked, with the assumption that presets have already
1591 # been applied at some point in the past. This makes it safe to call
1592 # this macro for all units each time %pre runs.
1593 %define libvirt_systemd_schedule_preset() \
1594 mkdir -p %{libvirt_rpmstatedir} || : \
1595 for unit in %{?*}; do \
1596 if ! test -e %{_unitdir}/$unit; then \
1597 touch %{libvirt_rpmstatedir}/preset-$unit || : \
1598 fi \
1599 done \
1600 %{nil}
1602 # Apply presets for units that have previously been marked. Meant to
1603 # be called during %posttrans. Note that foo.service must be passed
1604 # as the first argument, before all the various foo*.socket
1605 # associated with it, for things to work correctly. This is necessary
1606 # because Also=foo.socket is usually present in foo.service's
1607 # [Install] section, and we want that configuration to take
1608 # precedence over foo.socket's own presets.
1609 %define libvirt_systemd_perform_preset() \
1610 %{?7:%{error:Too many arguments}} \
1611 for unit in %{?2} %{?3} %{?4} %{?5} %{?6} %1; do \
1612 if test -e %{libvirt_rpmstatedir}/preset-$unit; then \
1613 /usr/bin/systemctl --no-reload preset $unit || : \
1614 fi \
1615 rm -f %{libvirt_rpmstatedir}/preset-$unit \
1616 done \
1617 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1618 %{nil}
1620 # Mark a single unit for restart. Meant to be called during %pre.
1621 %define libvirt_systemd_schedule_restart() \
1622 mkdir -p %{libvirt_rpmstatedir} || : \
1623 touch %{libvirt_rpmstatedir}/restart-%1 || : \
1624 %{nil}
1626 # Restart a unit that was previously marked. Meant to be called
1627 # during %posttrans. If systemd is not running, no action will be
1628 # performed.
1629 %define libvirt_systemd_perform_restart() \
1630 if test -d /run/systemd/system && \
1631 test -e %{libvirt_rpmstatedir}/restart-%1; then \
1632 /usr/bin/systemctl try-restart %1 >/dev/null 2>&1 || : \
1633 fi \
1634 rm -f %{libvirt_rpmstatedir}/restart-%1 \
1635 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1636 %{nil}
1638 # Mark a single unit for reload. Meant to be called during %pre.
1639 %define libvirt_systemd_schedule_reload() \
1640 mkdir -p %{libvirt_rpmstatedir} || : \
1641 touch %{libvirt_rpmstatedir}/reload-%1 || : \
1642 %{nil}
1644 # Reload a unit that was previously marked. Meant to be called during
1645 # %posttrans. If systemd is not running, no action will be performed.
1646 %define libvirt_systemd_perform_reload() \
1647 if test -d /run/systemd/system && \
1648 test -e %{libvirt_rpmstatedir}/reload-%1; then \
1649 /usr/bin/systemctl try-reload-or-restart %1 >/dev/null 2>&1 || : \
1650 fi \
1651 rm -f %{libvirt_rpmstatedir}/reload-%1 \
1652 rmdir %{libvirt_rpmstatedir} 2>/dev/null || : \
1653 %{nil}
1655 # Disable a single unit, optionally stopping it if systemd is
1656 # running. Meant to be called during %preun.
1657 %define libvirt_systemd_disable() \
1658 if test -d /run/systemd/system; then \
1659 /usr/bin/systemctl --no-reload disable --now %{?*} || : \
1660 else \
1661 /usr/bin/systemctl --no-reload disable %{?*} || : \
1662 fi \
1663 %{nil}
1665 # %pre implementation for services that should be restarted on
1666 # upgrade. Note that foo.service must be passed as the first
1667 # argument, before all the various foo*.socket associated with it.
1668 %define libvirt_systemd_restart_pre() \
1669 %libvirt_systemd_schedule_preset %{?*} \
1670 %libvirt_systemd_schedule_restart %1 \
1671 %{nil}
1673 # %pre implementation for services that should be reloaded on
1674 # upgrade. Note that foo.service must be passed as the first
1675 # argument, before all the various foo*.socket associated with it.
1676 %define libvirt_systemd_reload_pre() \
1677 %libvirt_systemd_schedule_preset %{?*} \
1678 %libvirt_systemd_schedule_reload %1 \
1679 %{nil}
1681 # %pre implementation for services that should be neither restarted
1682 # nor reloaded on upgrade.
1683 %define libvirt_systemd_noaction_pre() \
1684 %libvirt_systemd_schedule_preset %{?*} \
1685 %{nil}
1687 # %posttrans implementation for all services. We can use a single
1688 # macro to cover all scenarios, because each operation will only be
1689 # performed if it had previously been scheduled. Note that
1690 # foo.service must be passed as the first argument, before all the
1691 # various foo*.socket associated with it.
1692 %define libvirt_systemd_posttrans() \
1693 %libvirt_systemd_perform_preset %{?*} \
1694 %libvirt_systemd_perform_reload %1 \
1695 %libvirt_systemd_perform_restart %1 \
1696 %{nil}
1698 # %preun implementation for all services.
1699 %define libvirt_systemd_preun() \
1700 if [ $1 -lt 1 ]; then \
1701 %libvirt_systemd_disable %{?*} \
1702 fi \
1703 %{nil}
1705 # For daemons with only UNIX sockets
1707 %define libvirt_systemd_unix_pre() %libvirt_systemd_restart_pre %1.service %1.socket %1-ro.socket %1-admin.socket
1708 %define libvirt_systemd_unix_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-ro.socket %1-admin.socket
1709 %define libvirt_systemd_unix_preun() %libvirt_systemd_preun %1.service %1.socket %1-ro.socket %1-admin.socket
1711 # For daemons with UNIX and INET sockets
1712 %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
1713 %define libvirt_systemd_inet_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket
1714 %define libvirt_systemd_inet_preun() %libvirt_systemd_preun %1.service %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket
1716 # For daemons with only UNIX sockets and no unprivileged read-only access
1717 %define libvirt_systemd_privileged_pre() %libvirt_systemd_reload_pre %1.service %1.socket %1-admin.socket
1718 %define libvirt_systemd_privileged_posttrans() %libvirt_systemd_posttrans %1.service %1.socket %1-admin.socket
1719 %define libvirt_systemd_privileged_preun() %libvirt_systemd_preun %1.service %1.socket %1-admin.socket
1721 # For one-shot daemons that have no associated sockets and should never be restarted
1722 %define libvirt_systemd_oneshot_pre() %libvirt_systemd_noaction_pre %1.service
1723 %define libvirt_systemd_oneshot_posttrans() %libvirt_systemd_posttrans %1.service
1724 %define libvirt_systemd_oneshot_preun() %libvirt_systemd_preun %1.service
1726 # For packages that install configuration for other daemons
1727 %define libvirt_systemd_config_pre() %libvirt_systemd_schedule_restart %1.service
1728 %define libvirt_systemd_config_posttrans() %libvirt_systemd_perform_restart %1.service
1730 %if %{with_native}
1731 %pre daemon
1732 %libvirt_sysconfig_pre libvirtd
1733 %libvirt_systemd_inet_pre libvirtd
1735 %posttrans daemon
1736 %libvirt_sysconfig_posttrans libvirtd
1737 %libvirt_systemd_inet_posttrans libvirtd
1739 %preun daemon
1740 %libvirt_systemd_inet_preun libvirtd
1742 %pre daemon-common
1743 %libvirt_sysconfig_pre libvirt-guests
1744 %libvirt_systemd_oneshot_pre libvirt-guests
1745 # 'libvirt' group is just to allow password-less polkit access to libvirt
1746 # daemons. The uid number is irrelevant, so we use dynamic allocation.
1747 getent group libvirt >/dev/null || groupadd -r libvirt
1748 exit 0
1750 %posttrans daemon-common
1751 %libvirt_sysconfig_posttrans libvirt-guests
1752 %libvirt_systemd_oneshot_posttrans libvirt-guests
1754 %preun daemon-common
1755 %libvirt_systemd_oneshot_preun libvirt-guests
1757 %pre daemon-lock
1758 %libvirt_sysconfig_pre virtlockd
1759 %libvirt_systemd_privileged_pre virtlockd
1761 %posttrans daemon-lock
1762 %libvirt_sysconfig_posttrans virtlockd
1763 %libvirt_systemd_privileged_posttrans virtlockd
1765 %preun daemon-lock
1766 %libvirt_systemd_privileged_preun virtlockd
1768 %pre daemon-log
1769 %libvirt_sysconfig_pre virtlogd
1770 %libvirt_systemd_privileged_pre virtlogd
1772 %posttrans daemon-log
1773 %libvirt_sysconfig_posttrans virtlogd
1774 %libvirt_systemd_privileged_posttrans virtlogd
1776 %preun daemon-log
1777 %libvirt_systemd_privileged_preun virtlogd
1779 %pre daemon-proxy
1780 %libvirt_sysconfig_pre virtproxyd
1781 %libvirt_systemd_inet_pre virtproxyd
1783 %posttrans daemon-proxy
1784 %libvirt_sysconfig_posttrans virtproxyd
1785 %libvirt_systemd_inet_posttrans virtproxyd
1787 %preun daemon-proxy
1788 %libvirt_systemd_inet_preun virtproxyd
1790 %pre daemon-driver-network
1791 %libvirt_sysconfig_pre virtnetworkd
1792 %libvirt_systemd_unix_pre virtnetworkd
1794 %post daemon-driver-network
1795 %if %{with_firewalld_zone}
1796 %firewalld_reload
1797 %endif
1799 %posttrans daemon-driver-network
1800 %libvirt_sysconfig_posttrans virtnetworkd
1801 %libvirt_systemd_unix_posttrans virtnetworkd
1803 %preun daemon-driver-network
1804 %libvirt_systemd_unix_preun virtnetworkd
1806 %postun daemon-driver-network
1807 %if %{with_firewalld_zone}
1808 %firewalld_reload
1809 %endif
1811 %pre daemon-driver-nwfilter
1812 %libvirt_sysconfig_pre virtnwfilterd
1813 %libvirt_systemd_unix_pre virtnwfilterd
1815 %posttrans daemon-driver-nwfilter
1816 %libvirt_sysconfig_posttrans virtnwfilterd
1817 %libvirt_systemd_unix_posttrans virtnwfilterd
1819 %preun daemon-driver-nwfilter
1820 %libvirt_systemd_unix_preun virtnwfilterd
1822 %pre daemon-driver-nodedev
1823 %libvirt_sysconfig_pre virtnodedevd
1824 %libvirt_systemd_unix_pre virtnodedevd
1826 %posttrans daemon-driver-nodedev
1827 %libvirt_sysconfig_posttrans virtnodedevd
1828 %libvirt_systemd_unix_posttrans virtnodedevd
1830 %preun daemon-driver-nodedev
1831 %libvirt_systemd_unix_preun virtnodedevd
1833 %pre daemon-driver-interface
1834 %libvirt_sysconfig_pre virtinterfaced
1835 %libvirt_systemd_unix_pre virtinterfaced
1837 %posttrans daemon-driver-interface
1838 %libvirt_sysconfig_posttrans virtinterfaced
1839 %libvirt_systemd_unix_posttrans virtinterfaced
1841 %preun daemon-driver-interface
1842 %libvirt_systemd_unix_preun virtinterfaced
1844 %pre daemon-driver-secret
1845 %libvirt_sysconfig_pre virtsecretd
1846 %libvirt_systemd_unix_pre virtsecretd
1848 %posttrans daemon-driver-secret
1849 %libvirt_sysconfig_posttrans virtsecretd
1850 %libvirt_systemd_unix_posttrans virtsecretd
1852 %preun daemon-driver-secret
1853 %libvirt_systemd_unix_preun virtsecretd
1855 %pre daemon-driver-storage-core
1856 %libvirt_sysconfig_pre virtstoraged
1857 %libvirt_systemd_unix_pre virtstoraged
1859 %posttrans daemon-driver-storage-core
1860 %libvirt_sysconfig_posttrans virtstoraged
1861 %libvirt_systemd_unix_posttrans virtstoraged
1863 %preun daemon-driver-storage-core
1864 %libvirt_systemd_unix_preun virtstoraged
1866 %if %{with_qemu}
1867 %pre daemon-driver-qemu
1868 %libvirt_sysconfig_pre virtqemud
1869 %libvirt_systemd_unix_pre virtqemud
1871 # We want soft static allocation of well-known ids, as disk images
1872 # are commonly shared across NFS mounts by id rather than name.
1873 # See https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
1874 # We can not use the sysusers_create_compat macro here as we want to keep the
1875 # specfile standalone and not relying on additionnal files.
1876 getent group 'kvm' >/dev/null || groupadd -f -g '36' -r 'kvm' || :
1877 getent group 'qemu' >/dev/null || groupadd -f -g '107' -r 'qemu' || :
1878 if ! getent passwd 'qemu' >/dev/null; then
1879 if ! getent passwd '107' >/dev/null; then
1880 useradd -r -u '107' -g 'qemu' -G 'kvm' -d '/' -s '/sbin/nologin' -c 'qemu user' 'qemu' || :
1881 else
1882 useradd -r -g 'qemu' -G 'kvm' -d '/' -s '/sbin/nologin' -c 'qemu user' 'qemu' || :
1885 exit 0
1887 %posttrans daemon-driver-qemu
1888 %libvirt_sysconfig_posttrans virtqemud
1889 %libvirt_systemd_unix_posttrans virtqemud
1891 %preun daemon-driver-qemu
1892 %libvirt_systemd_unix_preun virtqemud
1893 %endif
1895 %if %{with_lxc}
1896 %pre daemon-driver-lxc
1897 %libvirt_sysconfig_pre virtlxcd
1898 %libvirt_systemd_unix_pre virtlxcd
1900 %posttrans daemon-driver-lxc
1901 %libvirt_sysconfig_posttrans virtlxcd
1902 %libvirt_systemd_unix_posttrans virtlxcd
1904 %preun daemon-driver-lxc
1905 %libvirt_systemd_unix_preun virtlxcd
1906 %endif
1908 %if %{with_vbox}
1909 %pre daemon-driver-vbox
1910 %libvirt_sysconfig_pre virtvboxd
1911 %libvirt_systemd_unix_pre virtvboxd
1913 %posttrans daemon-driver-vbox
1914 %libvirt_sysconfig_posttrans virtvboxd
1915 %libvirt_systemd_unix_posttrans virtvboxd
1917 %preun daemon-driver-vbox
1918 %libvirt_systemd_unix_preun virtvboxd
1919 %endif
1921 %if %{with_libxl}
1922 %pre daemon-driver-libxl
1923 %libvirt_sysconfig_pre virtxend
1924 %libvirt_systemd_unix_pre virtxend
1926 %posttrans daemon-driver-libxl
1927 %libvirt_sysconfig_posttrans virtxend
1928 %libvirt_systemd_unix_posttrans virtxend
1930 %preun daemon-driver-libxl
1931 %libvirt_systemd_unix_preun virtxend
1932 %endif
1934 %pre daemon-config-network
1935 %libvirt_systemd_config_pre libvirtd
1936 %libvirt_systemd_config_pre virtnetworkd
1938 %post daemon-config-network
1939 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1940 # see if the network used by default network creates a conflict,
1941 # and try to resolve it
1942 # NB: 192.168.122.0/24 is used in the default.xml template file;
1943 # do not modify any of those values here without also modifying
1944 # them in the template.
1945 orig_sub=122
1946 sub=${orig_sub}
1947 nl='
1949 routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1950 case ${routes} in
1951 *"${nl}192.168.${orig_sub}.0/24${nl}"*)
1952 # there was a match, so we need to look for an unused subnet
1953 for new_sub in $(seq 124 254); do
1954 case ${routes} in
1955 *"${nl}192.168.${new_sub}.0/24${nl}"*)
1958 sub=$new_sub
1959 break;
1961 esac
1962 done
1966 esac
1968 sed -e "s/${orig_sub}/${sub}/g" \
1969 < %{_datadir}/libvirt/networks/default.xml \
1970 > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1971 ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1972 # libvirt saves this file with mode 0600
1973 chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
1976 %posttrans daemon-config-network
1977 %libvirt_systemd_config_posttrans libvirtd
1978 %libvirt_systemd_config_posttrans virtnetworkd
1980 %pre daemon-config-nwfilter
1981 %libvirt_systemd_config_pre libvirtd
1982 %libvirt_systemd_config_pre virtnwfilterd
1984 %post daemon-config-nwfilter
1985 for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
1986 sysconfdir_file=%{_sysconfdir}/libvirt/nwfilter/$(basename "$datadir_file")
1987 if [ ! -f "$sysconfdir_file" ]; then
1988 # libvirt saves these files with mode 600
1989 install -m 0600 "$datadir_file" "$sysconfdir_file"
1991 done
1993 %posttrans daemon-config-nwfilter
1994 %libvirt_systemd_config_posttrans libvirtd
1995 %libvirt_systemd_config_posttrans virtnwfilterd
1997 %if %{with_lxc}
1998 %pre login-shell
1999 getent group virtlogin >/dev/null || groupadd -r virtlogin
2000 exit 0
2001 %endif
2002 %endif
2004 %if %{with_native}
2005 %files
2007 %files docs
2008 %doc AUTHORS.rst NEWS.rst README.rst
2009 %doc libvirt-docs/*
2011 %files daemon
2012 %{_unitdir}/libvirtd.service
2013 %{_unitdir}/libvirtd.socket
2014 %{_unitdir}/libvirtd-ro.socket
2015 %{_unitdir}/libvirtd-admin.socket
2016 %{_unitdir}/libvirtd-tcp.socket
2017 %{_unitdir}/libvirtd-tls.socket
2018 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
2019 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
2020 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
2021 %{_datadir}/augeas/lenses/libvirtd.aug
2022 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
2023 %attr(0755, root, root) %{_sbindir}/libvirtd
2024 %{_mandir}/man8/libvirtd.8*
2026 %files daemon-common
2027 %{_unitdir}/virt-guest-shutdown.target
2028 %{_unitdir}/libvirt-guests.service
2029 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
2030 %dir %{_datadir}/libvirt/
2031 %ghost %dir %{_rundir}/libvirt/
2032 %ghost %dir %{_rundir}/libvirt/common/
2033 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
2034 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
2035 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
2036 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
2037 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
2038 %dir %attr(0755, root, root) %{_libdir}/libvirt/
2039 %dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
2040 %dir %attr(0755, root, root) %{_libdir}/libvirt/storage-backend/
2041 %dir %attr(0755, root, root) %{_libdir}/libvirt/storage-file/
2042 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
2043 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
2044 %{_datadir}/polkit-1/rules.d/50-libvirt.rules
2045 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
2046 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
2047 %attr(0755, root, root) %{_bindir}/virt-ssh-helper
2048 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
2049 %{_mandir}/man1/virt-admin.1*
2050 %{_mandir}/man1/virt-host-validate.1*
2051 %{_mandir}/man8/virt-ssh-helper.8*
2052 %{_mandir}/man8/libvirt-guests.8*
2053 %{_bindir}/virt-host-validate
2054 %{_bindir}/virt-admin
2055 %{_datadir}/bash-completion/completions/virt-admin
2057 %files daemon-lock
2058 %{_unitdir}/virtlockd.service
2059 %{_unitdir}/virtlockd.socket
2060 %{_unitdir}/virtlockd-admin.socket
2061 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
2062 %{_datadir}/augeas/lenses/virtlockd.aug
2063 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
2064 %{_datadir}/augeas/lenses/libvirt_lockd.aug
2065 %if %{with_qemu}
2066 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
2067 %endif
2068 %attr(0755, root, root) %{_sbindir}/virtlockd
2069 %{_mandir}/man8/virtlockd.8*
2071 %files daemon-plugin-lockd
2072 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/
2073 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
2075 %files daemon-log
2076 %{_unitdir}/virtlogd.service
2077 %{_unitdir}/virtlogd.socket
2078 %{_unitdir}/virtlogd-admin.socket
2079 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
2080 %{_datadir}/augeas/lenses/virtlogd.aug
2081 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
2082 %attr(0755, root, root) %{_sbindir}/virtlogd
2083 %{_mandir}/man8/virtlogd.8*
2085 %files daemon-proxy
2086 %{_unitdir}/virtproxyd.service
2087 %{_unitdir}/virtproxyd.socket
2088 %{_unitdir}/virtproxyd-ro.socket
2089 %{_unitdir}/virtproxyd-admin.socket
2090 %{_unitdir}/virtproxyd-tcp.socket
2091 %{_unitdir}/virtproxyd-tls.socket
2092 %config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf
2093 %{_datadir}/augeas/lenses/virtproxyd.aug
2094 %{_datadir}/augeas/lenses/tests/test_virtproxyd.aug
2095 %attr(0755, root, root) %{_sbindir}/virtproxyd
2096 %{_mandir}/man8/virtproxyd.8*
2098 %files daemon-config-network
2099 %dir %{_datadir}/libvirt/networks/
2100 %{_datadir}/libvirt/networks/default.xml
2101 %ghost %{_sysconfdir}/libvirt/qemu/networks/default.xml
2102 %ghost %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
2104 %files daemon-config-nwfilter
2105 %dir %{_datadir}/libvirt/nwfilter/
2106 %{_datadir}/libvirt/nwfilter/*.xml
2107 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
2109 %files daemon-driver-interface
2110 %config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
2111 %{_datadir}/augeas/lenses/virtinterfaced.aug
2112 %{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
2113 %{_unitdir}/virtinterfaced.service
2114 %{_unitdir}/virtinterfaced.socket
2115 %{_unitdir}/virtinterfaced-ro.socket
2116 %{_unitdir}/virtinterfaced-admin.socket
2117 %attr(0755, root, root) %{_sbindir}/virtinterfaced
2118 %ghost %dir %{_rundir}/libvirt/interface/
2119 %{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so
2120 %{_mandir}/man8/virtinterfaced.8*
2122 %files daemon-driver-network
2123 %config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf
2124 %{_datadir}/augeas/lenses/virtnetworkd.aug
2125 %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
2126 %config(noreplace) %{_sysconfdir}/libvirt/network.conf
2127 %{_datadir}/augeas/lenses/libvirtd_network.aug
2128 %{_datadir}/augeas/lenses/tests/test_libvirtd_network.aug
2129 %{_unitdir}/virtnetworkd.service
2130 %{_unitdir}/virtnetworkd.socket
2131 %{_unitdir}/virtnetworkd-ro.socket
2132 %{_unitdir}/virtnetworkd-admin.socket
2133 %attr(0755, root, root) %{_sbindir}/virtnetworkd
2134 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
2135 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
2136 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
2137 %ghost %dir %{_rundir}/libvirt/network/
2138 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
2139 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
2140 %attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
2141 %{_libdir}/libvirt/connection-driver/libvirt_driver_network.so
2142 %{_mandir}/man8/virtnetworkd.8*
2143 %if %{with_firewalld_zone}
2144 %{_prefix}/lib/firewalld/zones/libvirt.xml
2145 %{_prefix}/lib/firewalld/zones/libvirt-routed.xml
2146 %{_prefix}/lib/firewalld/policies/libvirt-routed-in.xml
2147 %{_prefix}/lib/firewalld/policies/libvirt-routed-out.xml
2148 %{_prefix}/lib/firewalld/policies/libvirt-to-host.xml
2149 %endif
2151 %files daemon-driver-nodedev
2152 %config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf
2153 %{_datadir}/augeas/lenses/virtnodedevd.aug
2154 %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
2155 %{_unitdir}/virtnodedevd.service
2156 %{_unitdir}/virtnodedevd.socket
2157 %{_unitdir}/virtnodedevd-ro.socket
2158 %{_unitdir}/virtnodedevd-admin.socket
2159 %attr(0755, root, root) %{_sbindir}/virtnodedevd
2160 %ghost %dir %{_rundir}/libvirt/nodedev/
2161 %{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so
2162 %{_mandir}/man8/virtnodedevd.8*
2164 %files daemon-driver-nwfilter
2165 %config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf
2166 %{_datadir}/augeas/lenses/virtnwfilterd.aug
2167 %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
2168 %{_unitdir}/virtnwfilterd.service
2169 %{_unitdir}/virtnwfilterd.socket
2170 %{_unitdir}/virtnwfilterd-ro.socket
2171 %{_unitdir}/virtnwfilterd-admin.socket
2172 %attr(0755, root, root) %{_sbindir}/virtnwfilterd
2173 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
2174 %ghost %dir %{_rundir}/libvirt/network/
2175 %ghost %dir %{_rundir}/libvirt/nwfilter-binding/
2176 %ghost %dir %{_rundir}/libvirt/nwfilter/
2177 %{_libdir}/libvirt/connection-driver/libvirt_driver_nwfilter.so
2178 %{_mandir}/man8/virtnwfilterd.8*
2180 %files daemon-driver-secret
2181 %config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf
2182 %{_datadir}/augeas/lenses/virtsecretd.aug
2183 %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
2184 %{_unitdir}/virtsecretd.service
2185 %{_unitdir}/virtsecretd.socket
2186 %{_unitdir}/virtsecretd-ro.socket
2187 %{_unitdir}/virtsecretd-admin.socket
2188 %attr(0755, root, root) %{_sbindir}/virtsecretd
2189 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/secrets/
2190 %ghost %dir %{_rundir}/libvirt/secrets/
2191 %{_libdir}/libvirt/connection-driver/libvirt_driver_secret.so
2192 %{_mandir}/man8/virtsecretd.8*
2194 %files daemon-driver-storage
2196 %files daemon-driver-storage-core
2197 %config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf
2198 %{_datadir}/augeas/lenses/virtstoraged.aug
2199 %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
2200 %{_unitdir}/virtstoraged.service
2201 %{_unitdir}/virtstoraged.socket
2202 %{_unitdir}/virtstoraged-ro.socket
2203 %{_unitdir}/virtstoraged-admin.socket
2204 %attr(0755, root, root) %{_sbindir}/virtstoraged
2205 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
2206 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/
2207 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/storage/autostart/
2208 %ghost %dir %{_rundir}/libvirt/storage/
2209 %{_libdir}/libvirt/connection-driver/libvirt_driver_storage.so
2210 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_fs.so
2211 %{_libdir}/libvirt/storage-file/libvirt_storage_file_fs.so
2212 %{_mandir}/man8/virtstoraged.8*
2214 %files daemon-driver-storage-disk
2215 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_disk.so
2217 %files daemon-driver-storage-logical
2218 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_logical.so
2220 %files daemon-driver-storage-scsi
2221 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_scsi.so
2223 %files daemon-driver-storage-iscsi
2224 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi.so
2226 %if %{with_storage_iscsi_direct}
2227 %files daemon-driver-storage-iscsi-direct
2228 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so
2229 %endif
2231 %files daemon-driver-storage-mpath
2232 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_mpath.so
2234 %if %{with_storage_gluster}
2235 %files daemon-driver-storage-gluster
2236 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_gluster.so
2237 %{_libdir}/libvirt/storage-file/libvirt_storage_file_gluster.so
2238 %endif
2240 %if %{with_storage_rbd}
2241 %files daemon-driver-storage-rbd
2242 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_rbd.so
2243 %endif
2245 %if %{with_storage_zfs}
2246 %files daemon-driver-storage-zfs
2247 %{_libdir}/libvirt/storage-backend/libvirt_storage_backend_zfs.so
2248 %endif
2250 %if %{with_qemu}
2251 %files daemon-driver-qemu
2252 %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf
2253 %if %{with_userfaultfd_sysctl}
2254 %config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf
2255 %endif
2256 %{_datadir}/augeas/lenses/virtqemud.aug
2257 %{_datadir}/augeas/lenses/tests/test_virtqemud.aug
2258 %{_unitdir}/virtqemud.service
2259 %{_unitdir}/virtqemud.socket
2260 %{_unitdir}/virtqemud-ro.socket
2261 %{_unitdir}/virtqemud-admin.socket
2262 %attr(0755, root, root) %{_sbindir}/virtqemud
2263 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
2264 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/autostart/
2265 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
2266 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
2267 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
2268 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
2269 %ghost %dir %{_rundir}/libvirt/qemu/
2270 %ghost %dir %{_rundir}/libvirt/qemu/dbus/
2271 %ghost %dir %{_rundir}/libvirt/qemu/passt/
2272 %ghost %dir %{_rundir}/libvirt/qemu/slirp/
2273 %ghost %dir %{_rundir}/libvirt/qemu/swtpm/
2274 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
2275 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/checkpoint/
2276 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/dump/
2277 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/nvram/
2278 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ram/
2279 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/save/
2280 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/snapshot/
2281 %dir %attr(0750, root, root) %{_localstatedir}/cache/libvirt/qemu/
2282 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
2283 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
2284 %{_libdir}/libvirt/connection-driver/libvirt_driver_qemu.so
2285 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/swtpm/
2286 %dir %attr(0730, tss, tss) %{_localstatedir}/log/swtpm/libvirt/qemu/
2287 %{_bindir}/virt-qemu-run
2288 %{_mandir}/man1/virt-qemu-run.1*
2289 %{_mandir}/man8/virtqemud.8*
2290 %{_sysusersdir}/libvirt-qemu.conf
2291 %endif
2293 %if %{with_lxc}
2294 %files daemon-driver-lxc
2295 %config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf
2296 %{_datadir}/augeas/lenses/virtlxcd.aug
2297 %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
2298 %{_unitdir}/virtlxcd.service
2299 %{_unitdir}/virtlxcd.socket
2300 %{_unitdir}/virtlxcd-ro.socket
2301 %{_unitdir}/virtlxcd-admin.socket
2302 %attr(0755, root, root) %{_sbindir}/virtlxcd
2303 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
2304 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/
2305 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/lxc/autostart/
2306 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
2307 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
2308 %ghost %dir %{_rundir}/libvirt/lxc/
2309 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
2310 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
2311 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
2312 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
2313 %{_libdir}/libvirt/connection-driver/libvirt_driver_lxc.so
2314 %{_mandir}/man8/virtlxcd.8*
2315 %endif
2317 %if %{with_libxl}
2318 %files daemon-driver-libxl
2319 %config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf
2320 %{_datadir}/augeas/lenses/virtxend.aug
2321 %{_datadir}/augeas/lenses/tests/test_virtxend.aug
2322 %{_unitdir}/virtxend.service
2323 %{_unitdir}/virtxend.socket
2324 %{_unitdir}/virtxend-ro.socket
2325 %{_unitdir}/virtxend-admin.socket
2326 %attr(0755, root, root) %{_sbindir}/virtxend
2327 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
2328 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
2329 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
2330 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/
2331 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/libxl/autostart/
2332 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
2333 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
2334 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
2335 %ghost %dir %{_rundir}/libvirt/libxl/
2336 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
2337 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/
2338 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/channel/target/
2339 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/dump/
2340 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/save/
2341 %{_libdir}/libvirt/connection-driver/libvirt_driver_libxl.so
2342 %{_mandir}/man8/virtxend.8*
2343 %endif
2345 %if %{with_vbox}
2346 %files daemon-driver-vbox
2347 %config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf
2348 %{_datadir}/augeas/lenses/virtvboxd.aug
2349 %{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
2350 %{_unitdir}/virtvboxd.service
2351 %{_unitdir}/virtvboxd.socket
2352 %{_unitdir}/virtvboxd-ro.socket
2353 %{_unitdir}/virtvboxd-admin.socket
2354 %attr(0755, root, root) %{_sbindir}/virtvboxd
2355 %{_libdir}/libvirt/connection-driver/libvirt_driver_vbox.so
2356 %{_mandir}/man8/virtvboxd.8*
2357 %endif
2359 %if %{with_qemu_tcg}
2360 %files daemon-qemu
2361 %endif
2363 %if %{with_qemu_kvm}
2364 %files daemon-kvm
2365 %endif
2367 %if %{with_lxc}
2368 %files daemon-lxc
2369 %endif
2371 %if %{with_libxl}
2372 %files daemon-xen
2373 %endif
2375 %if %{with_vbox}
2376 %files daemon-vbox
2377 %endif
2379 %if %{with_sanlock}
2380 %files daemon-plugin-sanlock
2381 %if %{with_qemu}
2382 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
2383 %endif
2384 %if %{with_libxl}
2385 %config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
2386 %endif
2387 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/
2388 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
2389 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
2390 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
2391 %dir %attr(0770, root, sanlock) %{_localstatedir}/lib/libvirt/sanlock
2392 %{_sbindir}/virt-sanlock-cleanup
2393 %{_mandir}/man8/virt-sanlock-cleanup.8*
2394 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
2395 %endif
2397 %files client
2398 %{_mandir}/man1/virsh.1*
2399 %{_mandir}/man1/virt-xml-validate.1*
2400 %{_mandir}/man1/virt-pki-query-dn.1*
2401 %{_mandir}/man1/virt-pki-validate.1*
2402 %{_mandir}/man7/virkey*.7*
2403 %{_bindir}/virsh
2404 %{_bindir}/virt-xml-validate
2405 %{_bindir}/virt-pki-query-dn
2406 %{_bindir}/virt-pki-validate
2407 %{_datadir}/bash-completion/completions/virsh
2409 %if %{with_qemu}
2410 %files client-qemu
2411 %{_mandir}/man1/virt-qemu-qmp-proxy.1*
2412 %{_mandir}/man1/virt-qemu-sev-validate.1*
2413 %{_bindir}/virt-qemu-qmp-proxy
2414 %{_bindir}/virt-qemu-sev-validate
2415 %endif
2417 %files libs -f %{name}.lang
2418 %license COPYING COPYING.LESSER
2419 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
2420 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
2421 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
2422 %{_libdir}/libvirt.so.*
2423 %{_libdir}/libvirt-qemu.so.*
2424 %{_libdir}/libvirt-lxc.so.*
2425 %{_libdir}/libvirt-admin.so.*
2426 %dir %{_datadir}/libvirt/
2427 %dir %{_datadir}/libvirt/schemas/
2428 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
2429 %{_datadir}/systemtap/tapset/libvirt_functions.stp
2430 %if %{with_qemu}
2431 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
2432 %endif
2433 %{_datadir}/libvirt/schemas/*.rng
2434 %{_datadir}/libvirt/cpu_map/*.xml
2435 %{_datadir}/libvirt/test-screenshot.png
2437 %if %{with_wireshark}
2438 %files wireshark
2439 %{wireshark_plugindir}/libvirt.so
2440 %endif
2442 %files nss
2443 %{_libdir}/libnss_libvirt.so.2
2444 %{_libdir}/libnss_libvirt_guest.so.2
2446 %files ssh-proxy
2447 %config(noreplace) %{_sysconfdir}/ssh/ssh_config.d/30-libvirt-ssh-proxy.conf
2448 %{_libexecdir}/libvirt-ssh-proxy
2450 %if %{with_lxc}
2451 %files login-shell
2452 %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
2453 %{_libexecdir}/virt-login-shell-helper
2454 %config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
2455 %{_mandir}/man1/virt-login-shell.1*
2456 %endif
2458 %files devel
2459 %{_libdir}/libvirt.so
2460 %{_libdir}/libvirt-admin.so
2461 %{_libdir}/libvirt-qemu.so
2462 %{_libdir}/libvirt-lxc.so
2463 %dir %{_includedir}/libvirt
2464 %{_includedir}/libvirt/virterror.h
2465 %{_includedir}/libvirt/libvirt.h
2466 %{_includedir}/libvirt/libvirt-admin.h
2467 %{_includedir}/libvirt/libvirt-common.h
2468 %{_includedir}/libvirt/libvirt-domain.h
2469 %{_includedir}/libvirt/libvirt-domain-checkpoint.h
2470 %{_includedir}/libvirt/libvirt-domain-snapshot.h
2471 %{_includedir}/libvirt/libvirt-event.h
2472 %{_includedir}/libvirt/libvirt-host.h
2473 %{_includedir}/libvirt/libvirt-interface.h
2474 %{_includedir}/libvirt/libvirt-network.h
2475 %{_includedir}/libvirt/libvirt-nodedev.h
2476 %{_includedir}/libvirt/libvirt-nwfilter.h
2477 %{_includedir}/libvirt/libvirt-secret.h
2478 %{_includedir}/libvirt/libvirt-storage.h
2479 %{_includedir}/libvirt/libvirt-stream.h
2480 %{_includedir}/libvirt/libvirt-qemu.h
2481 %{_includedir}/libvirt/libvirt-lxc.h
2482 %{_libdir}/pkgconfig/libvirt.pc
2483 %{_libdir}/pkgconfig/libvirt-admin.pc
2484 %{_libdir}/pkgconfig/libvirt-qemu.pc
2485 %{_libdir}/pkgconfig/libvirt-lxc.pc
2486 %dir %{_datadir}/libvirt/api/
2487 %{_datadir}/libvirt/api/libvirt-api.xml
2488 %{_datadir}/libvirt/api/libvirt-admin-api.xml
2489 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
2490 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
2491 %endif
2493 %if %{with_mingw32}
2494 %files -n mingw32-libvirt -f mingw32-libvirt.lang
2495 %dir %{mingw32_sysconfdir}/libvirt/
2496 %config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt.conf
2497 %config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt-admin.conf
2498 %{mingw32_bindir}/libvirt-0.dll
2499 %{mingw32_bindir}/virsh.exe
2500 %{mingw32_bindir}/virt-admin.exe
2501 %{mingw32_bindir}/virt-xml-validate
2502 %{mingw32_bindir}/virt-pki-query-dn.exe
2503 %{mingw32_bindir}/virt-pki-validate
2504 %{mingw32_bindir}/libvirt-lxc-0.dll
2505 %{mingw32_bindir}/libvirt-qemu-0.dll
2506 %{mingw32_bindir}/libvirt-admin-0.dll
2507 %{mingw32_libdir}/libvirt.dll.a
2508 %{mingw32_libdir}/pkgconfig/libvirt.pc
2509 %{mingw32_libdir}/pkgconfig/libvirt-qemu.pc
2510 %{mingw32_libdir}/pkgconfig/libvirt-lxc.pc
2511 %{mingw32_libdir}/pkgconfig/libvirt-admin.pc
2512 %{mingw32_libdir}/libvirt-lxc.dll.a
2513 %{mingw32_libdir}/libvirt-qemu.dll.a
2514 %{mingw32_libdir}/libvirt-admin.dll.a
2515 %dir %{mingw32_datadir}/libvirt/
2516 %dir %{mingw32_datadir}/libvirt/schemas/
2517 %{mingw32_datadir}/libvirt/schemas/*.rng
2518 %dir %{mingw32_datadir}/libvirt/api/
2519 %{mingw32_datadir}/libvirt/api/libvirt-api.xml
2520 %{mingw32_datadir}/libvirt/api/libvirt-lxc-api.xml
2521 %{mingw32_datadir}/libvirt/api/libvirt-qemu-api.xml
2522 %{mingw32_datadir}/libvirt/api/libvirt-admin-api.xml
2523 %{mingw32_datadir}/libvirt/cpu_map/*.xml
2524 %{mingw32_datadir}/libvirt/test-screenshot.png
2525 %dir %{mingw32_includedir}/libvirt
2526 %{mingw32_includedir}/libvirt/libvirt.h
2527 %{mingw32_includedir}/libvirt/libvirt-common.h
2528 %{mingw32_includedir}/libvirt/libvirt-domain.h
2529 %{mingw32_includedir}/libvirt/libvirt-domain-checkpoint.h
2530 %{mingw32_includedir}/libvirt/libvirt-domain-snapshot.h
2531 %{mingw32_includedir}/libvirt/libvirt-event.h
2532 %{mingw32_includedir}/libvirt/libvirt-host.h
2533 %{mingw32_includedir}/libvirt/libvirt-interface.h
2534 %{mingw32_includedir}/libvirt/libvirt-network.h
2535 %{mingw32_includedir}/libvirt/libvirt-nodedev.h
2536 %{mingw32_includedir}/libvirt/libvirt-nwfilter.h
2537 %{mingw32_includedir}/libvirt/libvirt-secret.h
2538 %{mingw32_includedir}/libvirt/libvirt-storage.h
2539 %{mingw32_includedir}/libvirt/libvirt-stream.h
2540 %{mingw32_includedir}/libvirt/virterror.h
2541 %{mingw32_includedir}/libvirt/libvirt-lxc.h
2542 %{mingw32_includedir}/libvirt/libvirt-qemu.h
2543 %{mingw32_includedir}/libvirt/libvirt-admin.h
2544 %{mingw32_mandir}/man1/virsh.1*
2545 %{mingw32_mandir}/man1/virt-admin.1*
2546 %{mingw32_mandir}/man1/virt-xml-validate.1*
2547 %{mingw32_mandir}/man1/virt-pki-query-dn.1*
2548 %{mingw32_mandir}/man1/virt-pki-validate.1*
2549 %{mingw32_mandir}/man7/virkey*.7*
2550 %endif
2552 %if %{with_mingw64}
2553 %files -n mingw64-libvirt -f mingw64-libvirt.lang
2554 %dir %{mingw64_sysconfdir}/libvirt/
2555 %config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt.conf
2556 %config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt-admin.conf
2557 %{mingw64_bindir}/libvirt-0.dll
2558 %{mingw64_bindir}/virsh.exe
2559 %{mingw64_bindir}/virt-admin.exe
2560 %{mingw64_bindir}/virt-xml-validate
2561 %{mingw64_bindir}/virt-pki-query-dn.exe
2562 %{mingw64_bindir}/virt-pki-validate
2563 %{mingw64_bindir}/libvirt-lxc-0.dll
2564 %{mingw64_bindir}/libvirt-qemu-0.dll
2565 %{mingw64_bindir}/libvirt-admin-0.dll
2566 %{mingw64_libdir}/libvirt.dll.a
2567 %{mingw64_libdir}/pkgconfig/libvirt.pc
2568 %{mingw64_libdir}/pkgconfig/libvirt-qemu.pc
2569 %{mingw64_libdir}/pkgconfig/libvirt-lxc.pc
2570 %{mingw64_libdir}/pkgconfig/libvirt-admin.pc
2571 %{mingw64_libdir}/libvirt-lxc.dll.a
2572 %{mingw64_libdir}/libvirt-qemu.dll.a
2573 %{mingw64_libdir}/libvirt-admin.dll.a
2574 %dir %{mingw64_datadir}/libvirt/
2575 %dir %{mingw64_datadir}/libvirt/schemas/
2576 %{mingw64_datadir}/libvirt/schemas/*.rng
2577 %dir %{mingw64_datadir}/libvirt/api/
2578 %{mingw64_datadir}/libvirt/api/libvirt-api.xml
2579 %{mingw64_datadir}/libvirt/api/libvirt-lxc-api.xml
2580 %{mingw64_datadir}/libvirt/api/libvirt-qemu-api.xml
2581 %{mingw64_datadir}/libvirt/api/libvirt-admin-api.xml
2582 %{mingw64_datadir}/libvirt/cpu_map/*.xml
2583 %{mingw64_datadir}/libvirt/test-screenshot.png
2584 %dir %{mingw64_includedir}/libvirt
2585 %{mingw64_includedir}/libvirt/libvirt.h
2586 %{mingw64_includedir}/libvirt/libvirt-common.h
2587 %{mingw64_includedir}/libvirt/libvirt-domain.h
2588 %{mingw64_includedir}/libvirt/libvirt-domain-checkpoint.h
2589 %{mingw64_includedir}/libvirt/libvirt-domain-snapshot.h
2590 %{mingw64_includedir}/libvirt/libvirt-event.h
2591 %{mingw64_includedir}/libvirt/libvirt-host.h
2592 %{mingw64_includedir}/libvirt/libvirt-interface.h
2593 %{mingw64_includedir}/libvirt/libvirt-network.h
2594 %{mingw64_includedir}/libvirt/libvirt-nodedev.h
2595 %{mingw64_includedir}/libvirt/libvirt-nwfilter.h
2596 %{mingw64_includedir}/libvirt/libvirt-secret.h
2597 %{mingw64_includedir}/libvirt/libvirt-storage.h
2598 %{mingw64_includedir}/libvirt/libvirt-stream.h
2599 %{mingw64_includedir}/libvirt/virterror.h
2600 %{mingw64_includedir}/libvirt/libvirt-lxc.h
2601 %{mingw64_includedir}/libvirt/libvirt-qemu.h
2602 %{mingw64_includedir}/libvirt/libvirt-admin.h
2603 %{mingw64_mandir}/man1/virsh.1*
2604 %{mingw64_mandir}/man1/virt-admin.1*
2605 %{mingw64_mandir}/man1/virt-xml-validate.1*
2606 %{mingw64_mandir}/man1/virt-pki-query-dn.1*
2607 %{mingw64_mandir}/man1/virt-pki-validate.1*
2608 %{mingw64_mandir}/man7/virkey*.7*
2609 %endif
2611 %changelog