backup: Wire up qemu full pull backup commands over QMP
[libvirt/ericb.git] / libvirt.spec.in
blob010ce53d36d2718ef0bc00683935a350f9c3d6fd
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 7
7 %define min_fedora 29
9 %if (0%{?fedora} && 0%{?fedora} >= %{min_fedora}) || (0%{?rhel} && 0%{?rhel} >= %{min_rhel})
10 %define supported_platform 1
11 %else
12 %define supported_platform 0
13 %endif
15 # Default to skipping autoreconf. Distros can change just this one line
16 # (or provide a command-line override) if they backport any patches that
17 # touch configure.ac or Makefile.am.
18 %{!?enable_autotools:%global enable_autotools 0}
20 # The hypervisor drivers that run in libvirtd
21 %define with_qemu 0%{!?_without_qemu:1}
22 %define with_lxc 0%{!?_without_lxc:1}
23 %define with_libxl 0%{!?_without_libxl:1}
24 %define with_vbox 0%{!?_without_vbox:1}
26 %define with_qemu_tcg %{with_qemu}
28 %define qemu_kvm_arches %{ix86} x86_64
30 %if 0%{?fedora}
31 %define qemu_kvm_arches %{ix86} x86_64 %{power64} s390x %{arm} aarch64
32 %endif
34 %if 0%{?rhel}
35 %define with_qemu_tcg 0
36 %define qemu_kvm_arches x86_64 %{power64} aarch64 s390x
37 %endif
39 %ifarch %{qemu_kvm_arches}
40 %define with_qemu_kvm %{with_qemu}
41 %else
42 %define with_qemu_kvm 0
43 %endif
45 %if ! %{with_qemu_tcg} && ! %{with_qemu_kvm}
46 %define with_qemu 0
47 %endif
49 # Then the hypervisor drivers that run outside libvirtd, in libvirt.so
50 %define with_openvz 0%{!?_without_openvz:1}
51 %define with_vmware 0%{!?_without_vmware:1}
52 %define with_phyp 0%{!?_without_phyp:1}
53 %define with_esx 0%{!?_without_esx:1}
54 %define with_hyperv 0%{!?_without_hyperv:1}
56 # Then the secondary host drivers, which run inside libvirtd
57 %define with_storage_rbd 0%{!?_without_storage_rbd:1}
58 %if 0%{?fedora}
59 %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:1}
60 %else
61 %define with_storage_sheepdog 0
62 %endif
63 %define with_storage_gluster 0%{!?_without_storage_gluster:1}
64 %define with_numactl 0%{!?_without_numactl:1}
66 # F25+ has zfs-fuse
67 %if 0%{?fedora}
68 %define with_storage_zfs 0%{!?_without_storage_zfs:1}
69 %else
70 %define with_storage_zfs 0
71 %endif
73 # We need a recent enough libiscsi (>= 1.18.0)
74 %if 0%{?fedora} || 0%{?rhel} > 7
75 %define with_storage_iscsi_direct 0%{!?_without_storage_iscsi_direct:1}
76 %else
77 %define with_storage_iscsi_direct 0
78 %endif
80 # A few optional bits off by default, we enable later
81 %define with_fuse 0%{!?_without_fuse:0}
82 %define with_sanlock 0%{!?_without_sanlock:0}
83 %define with_numad 0%{!?_without_numad:0}
84 %define with_firewalld 0%{!?_without_firewalld:0}
85 %define with_firewalld_zone 0%{!?_without_firewalld_zone:0}
86 %define with_libssh2 0%{!?_without_libssh2:0}
87 %define with_wireshark 0%{!?_without_wireshark:0}
88 %define with_libssh 0%{!?_without_libssh:0}
89 %define with_bash_completion 0%{!?_without_bash_completion:0}
91 # Finally set the OS / architecture specific special cases
93 # Xen is available only on i386 x86_64 ia64
94 %ifnarch %{ix86} x86_64 ia64
95 %define with_libxl 0
96 %endif
98 # vbox is available only on i386 x86_64
99 %ifnarch %{ix86} x86_64
100 %define with_vbox 0
101 %endif
103 # Numactl is not available on many non-x86 archs
104 %ifarch s390 s390x %{arm} riscv64
105 %define with_numactl 0
106 %endif
108 # zfs-fuse is not available on some architectures
109 %ifarch s390 s390x aarch64 riscv64
110 %define with_storage_zfs 0
111 %endif
113 # Ceph dropping support for 32-bit hosts
114 %if 0%{?fedora} >= 30
115 %ifarch %{arm} %{ix86}
116 %define with_storage_rbd 0
117 %endif
118 %endif
120 # RHEL doesn't ship OpenVZ, VBox, PowerHypervisor,
121 # VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
122 # or HyperV.
123 %if 0%{?rhel}
124 %define with_openvz 0
125 %define with_vbox 0
126 %define with_phyp 0
127 %define with_vmware 0
128 %define with_xenapi 0
129 %define with_libxl 0
130 %define with_hyperv 0
131 %define with_vz 0
133 %if 0%{?rhel} > 7
134 %define with_lxc 0
135 %endif
136 %endif
138 %define with_firewalld 1
140 %if 0%{?fedora} >= 31 || 0%{?rhel} > 7
141 %define with_firewalld_zone 0%{!?_without_firewalld_zone:1}
142 %endif
145 # fuse is used to provide virtualized /proc for LXC
146 %if %{with_lxc}
147 %define with_fuse 0%{!?_without_fuse:1}
148 %endif
150 # Enable sanlock library for lock management with QEMU
151 # Sanlock is available only on arches where kvm is available for RHEL
152 %if 0%{?fedora}
153 %define with_sanlock 0%{!?_without_sanlock:1}
154 %endif
155 %if 0%{?rhel}
156 %ifarch %{qemu_kvm_arches}
157 %define with_sanlock 0%{!?_without_sanlock:1}
158 %endif
159 %endif
161 # Enable libssh2 transport for new enough distros
162 %if 0%{?fedora}
163 %define with_libssh2 0%{!?_without_libssh2:1}
164 %endif
166 # Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
167 %if 0%{?fedora}
168 %define with_wireshark 0%{!?_without_wireshark:1}
169 %define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
170 %endif
172 # Enable libssh transport for new enough distros
173 %if 0%{?fedora} || 0%{?rhel} > 7
174 %define with_libssh 0%{!?_without_libssh:1}
175 %endif
177 %define with_bash_completion 0%{!?_without_bash_completion:1}
179 # Use Python 3 when possible, Python 2 otherwise
180 %if 0%{?fedora} || 0%{?rhel} > 7
181 %define python python3
182 %else
183 %define python python2
184 %endif
187 %if %{with_qemu} || %{with_lxc}
188 # numad is used to manage the CPU and memory placement dynamically,
189 # it's not available on many non-x86 architectures.
190 %ifnarch s390 s390x %{arm} riscv64
191 %define with_numad 0%{!?_without_numad:1}
192 %endif
193 %endif
195 # Force QEMU to run as non-root
196 %define qemu_user qemu
197 %define qemu_group qemu
200 # RHEL releases provide stable tool chains and so it is safe to turn
201 # compiler warning into errors without being worried about frequent
202 # changes in reported warnings
203 %if 0%{?rhel}
204 %define enable_werror --enable-werror
205 %else
206 %define enable_werror --disable-werror
207 %endif
209 %if 0%{?rhel} == 7
210 %define tls_priority "NORMAL"
211 %else
212 %define tls_priority "@LIBVIRT,SYSTEM"
213 %endif
216 Summary: Library providing a simple virtualization API
217 Name: libvirt
218 Version: @VERSION@
219 Release: 1%{?dist}
220 License: LGPLv2+
221 URL: https://libvirt.org/
223 %if %(echo %{version} | grep -q "\.0$"; echo $?) == 1
224 %define mainturl stable_updates/
225 %endif
226 Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
228 Requires: libvirt-daemon = %{version}-%{release}
229 Requires: libvirt-daemon-config-network = %{version}-%{release}
230 Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
231 %if %{with_libxl}
232 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
233 %endif
234 %if %{with_lxc}
235 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
236 %endif
237 %if %{with_qemu}
238 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
239 %endif
240 # We had UML driver, but we've removed it.
241 Obsoletes: libvirt-daemon-driver-uml <= 5.0.0
242 Obsoletes: libvirt-daemon-uml <= 5.0.0
243 %if %{with_vbox}
244 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
245 %endif
246 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
248 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
249 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
250 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
251 Requires: libvirt-daemon-driver-network = %{version}-%{release}
252 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
253 Requires: libvirt-client = %{version}-%{release}
254 Requires: libvirt-libs = %{version}-%{release}
256 # All build-time requirements. Run-time requirements are
257 # listed against each sub-RPM
258 %if 0%{?enable_autotools}
259 BuildRequires: autoconf
260 BuildRequires: automake
261 BuildRequires: gettext-devel
262 BuildRequires: libtool
263 BuildRequires: /usr/bin/pod2man
264 %endif
265 BuildRequires: gcc
266 BuildRequires: git
267 %if 0%{?fedora} || 0%{?rhel} > 7
268 BuildRequires: perl-interpreter
269 %else
270 BuildRequires: perl
271 %endif
272 BuildRequires: %{python}
273 BuildRequires: systemd-units
274 %if %{with_libxl}
275 BuildRequires: xen-devel
276 %endif
277 BuildRequires: libxml2-devel
278 BuildRequires: libxslt
279 BuildRequires: readline-devel
280 %if %{with_bash_completion}
281 BuildRequires: bash-completion >= 2.0
282 %endif
283 BuildRequires: ncurses-devel
284 BuildRequires: gettext
285 BuildRequires: libtasn1-devel
286 BuildRequires: gnutls-devel
287 BuildRequires: libattr-devel
288 # For pool-build probing for existing pools
289 BuildRequires: libblkid-devel >= 2.17
290 # for augparse, optionally used in testing
291 BuildRequires: augeas
292 BuildRequires: systemd-devel >= 185
293 BuildRequires: libpciaccess-devel >= 0.10.9
294 BuildRequires: yajl-devel
295 %if %{with_sanlock}
296 BuildRequires: sanlock-devel >= 2.4
297 %endif
298 BuildRequires: libpcap-devel
299 BuildRequires: libnl3-devel
300 BuildRequires: libselinux-devel
301 BuildRequires: dnsmasq >= 2.41
302 BuildRequires: iptables
303 BuildRequires: radvd
304 BuildRequires: ebtables
305 BuildRequires: module-init-tools
306 BuildRequires: cyrus-sasl-devel
307 BuildRequires: polkit >= 0.112
308 # For mount/umount in FS driver
309 BuildRequires: util-linux
310 %if %{with_qemu}
311 # For managing ACLs
312 BuildRequires: libacl-devel
313 # From QEMU RPMs
314 BuildRequires: /usr/bin/qemu-img
315 %endif
316 # For LVM drivers
317 BuildRequires: lvm2
318 # For pool type=iscsi
319 BuildRequires: iscsi-initiator-utils
320 %if %{with_storage_iscsi_direct}
321 # For pool type=iscsi-direct
322 BuildRequires: libiscsi-devel
323 %endif
324 # For disk driver
325 BuildRequires: parted-devel
326 # For Multipath support
327 BuildRequires: device-mapper-devel
328 # For XFS reflink clone support
329 BuildRequires: xfsprogs-devel
330 %if %{with_storage_rbd}
331 BuildRequires: librados2-devel
332 BuildRequires: librbd1-devel
333 %endif
334 %if %{with_storage_gluster}
335 BuildRequires: glusterfs-api-devel >= 3.4.1
336 BuildRequires: glusterfs-devel >= 3.4.1
337 %endif
338 %if %{with_storage_sheepdog}
339 BuildRequires: sheepdog
340 %endif
341 %if %{with_storage_zfs}
342 # Support any conforming implementation of zfs. On stock Fedora
343 # this is zfs-fuse, but could be zfsonlinux upstream RPMs
344 BuildRequires: /sbin/zfs
345 BuildRequires: /sbin/zpool
346 %endif
347 %if %{with_numactl}
348 # For QEMU/LXC numa info
349 BuildRequires: numactl-devel
350 %endif
351 BuildRequires: libcap-ng-devel >= 0.5.0
352 %if %{with_fuse}
353 BuildRequires: fuse-devel >= 2.8.6
354 %endif
355 %if %{with_phyp} || %{with_libssh2}
356 BuildRequires: libssh2-devel >= 1.3.0
357 %endif
359 BuildRequires: netcf-devel >= 0.2.2
360 %if %{with_esx}
361 BuildRequires: libcurl-devel
362 %endif
363 %if %{with_hyperv}
364 BuildRequires: libwsman-devel >= 2.2.3
365 %endif
366 BuildRequires: audit-libs-devel
367 # we need /usr/sbin/dtrace
368 BuildRequires: systemtap-sdt-devel
370 # For mount/umount in FS driver
371 BuildRequires: util-linux
372 # For showmount in FS driver (netfs discovery)
373 BuildRequires: nfs-utils
375 # Communication with the firewall and polkit daemons use DBus
376 BuildRequires: dbus-devel
378 # Fedora build root suckage
379 BuildRequires: gawk
381 # For storage wiping with different algorithms
382 BuildRequires: scrub
384 %if %{with_numad}
385 BuildRequires: numad
386 %endif
388 %if %{with_wireshark}
389 BuildRequires: wireshark-devel >= 2.4.0
390 %endif
392 %if %{with_libssh}
393 BuildRequires: libssh-devel >= 0.7.0
394 %endif
396 %if 0%{?fedora} || 0%{?rhel} > 7
397 BuildRequires: rpcgen
398 BuildRequires: libtirpc-devel
399 %endif
401 %if %{with_firewalld_zone}
402 BuildRequires: firewalld-filesystem
403 %endif
405 Provides: bundled(gnulib)
407 %description
408 Libvirt is a C toolkit to interact with the virtualization capabilities
409 of recent versions of Linux (and other OSes). The main package includes
410 the libvirtd server exporting the virtualization support.
412 %package docs
413 Summary: API reference and website documentation
415 %description docs
416 Includes the API reference for the libvirt C library, and a complete
417 copy of the libvirt.org website documentation.
419 %package daemon
420 Summary: Server side daemon and supporting files for libvirt library
422 # All runtime requirements for the libvirt package (runtime requrements
423 # for subpackages are listed later in those subpackages)
425 # The client side, i.e. shared libs are in a subpackage
426 Requires: %{name}-libs = %{version}-%{release}
428 # for modprobe of pci devices
429 Requires: module-init-tools
431 # for /sbin/ip & /sbin/tc
432 Requires: iproute
433 # tc is provided by iproute-tc since at least Fedora 26
434 %if 0%{?fedora} || 0%{?rhel} > 7
435 Requires: iproute-tc
436 %endif
438 Requires: polkit >= 0.112
439 %ifarch %{ix86} x86_64 ia64
440 # For virConnectGetSysinfo
441 Requires: dmidecode
442 %endif
443 # For service management
444 Requires(post): systemd-units
445 Requires(post): systemd-sysv
446 Requires(preun): systemd-units
447 Requires(postun): systemd-units
448 %if %{with_numad}
449 Requires: numad
450 %endif
451 # libvirtd depends on 'messagebus' service
452 Requires: dbus
453 # For uid creation during pre
454 Requires(pre): shadow-utils
456 %description daemon
457 Server side daemon required to manage the virtualization capabilities
458 of recent versions of Linux. Requires a hypervisor specific sub-RPM
459 for specific drivers.
461 %package daemon-config-network
462 Summary: Default configuration files for the libvirtd daemon
464 Requires: libvirt-daemon = %{version}-%{release}
465 Requires: libvirt-daemon-driver-network = %{version}-%{release}
467 %description daemon-config-network
468 Default configuration files for setting up NAT based networking
470 %package daemon-config-nwfilter
471 Summary: Network filter configuration files for the libvirtd daemon
473 Requires: libvirt-daemon = %{version}-%{release}
474 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
476 %description daemon-config-nwfilter
477 Network filter configuration files for cleaning guest traffic
479 %package daemon-driver-network
480 Summary: Network driver plugin for the libvirtd daemon
481 Requires: libvirt-daemon = %{version}-%{release}
482 Requires: libvirt-libs = %{version}-%{release}
483 Requires: dnsmasq >= 2.41
484 Requires: radvd
485 Requires: iptables
487 %description daemon-driver-network
488 The network driver plugin for the libvirtd daemon, providing
489 an implementation of the virtual network APIs using the Linux
490 bridge capabilities.
493 %package daemon-driver-nwfilter
494 Summary: Nwfilter driver plugin for the libvirtd daemon
495 Requires: libvirt-daemon = %{version}-%{release}
496 Requires: libvirt-libs = %{version}-%{release}
497 Requires: iptables
498 Requires: ebtables
500 %description daemon-driver-nwfilter
501 The nwfilter driver plugin for the libvirtd daemon, providing
502 an implementation of the firewall APIs using the ebtables,
503 iptables and ip6tables capabilities
506 %package daemon-driver-nodedev
507 Summary: Nodedev driver plugin for the libvirtd daemon
508 Requires: libvirt-daemon = %{version}-%{release}
509 Requires: libvirt-libs = %{version}-%{release}
510 # needed for device enumeration
511 Requires: systemd >= 185
513 %description daemon-driver-nodedev
514 The nodedev driver plugin for the libvirtd daemon, providing
515 an implementation of the node device APIs using the udev
516 capabilities.
519 %package daemon-driver-interface
520 Summary: Interface driver plugin for the libvirtd daemon
521 Requires: libvirt-daemon = %{version}-%{release}
522 Requires: libvirt-libs = %{version}-%{release}
523 Requires: netcf-libs >= 0.2.2
525 %description daemon-driver-interface
526 The interface driver plugin for the libvirtd daemon, providing
527 an implementation of the network interface APIs using the
528 netcf library
531 %package daemon-driver-secret
532 Summary: Secret driver plugin for the libvirtd daemon
533 Requires: libvirt-daemon = %{version}-%{release}
534 Requires: libvirt-libs = %{version}-%{release}
536 %description daemon-driver-secret
537 The secret driver plugin for the libvirtd daemon, providing
538 an implementation of the secret key APIs.
540 %package daemon-driver-storage-core
541 Summary: Storage driver plugin including base backends for the libvirtd daemon
542 Requires: libvirt-daemon = %{version}-%{release}
543 Requires: libvirt-libs = %{version}-%{release}
544 Requires: nfs-utils
545 # For mkfs
546 Requires: util-linux
547 %if %{with_qemu}
548 # From QEMU RPMs
549 Requires: /usr/bin/qemu-img
550 %endif
551 %if !%{with_storage_rbd}
552 Obsoletes: libvirt-daemon-driver-storage-rbd < %{version}-%{release}
553 %endif
555 %description daemon-driver-storage-core
556 The storage driver plugin for the libvirtd daemon, providing
557 an implementation of the storage APIs using files, local disks, LVM, SCSI,
558 iSCSI, and multipath storage.
560 %package daemon-driver-storage-logical
561 Summary: Storage driver plugin for lvm volumes
562 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
563 Requires: libvirt-libs = %{version}-%{release}
564 Requires: lvm2
566 %description daemon-driver-storage-logical
567 The storage driver backend adding implementation of the storage APIs for block
568 volumes using lvm.
571 %package daemon-driver-storage-disk
572 Summary: Storage driver plugin for disk
573 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
574 Requires: libvirt-libs = %{version}-%{release}
575 Requires: parted
576 Requires: device-mapper
578 %description daemon-driver-storage-disk
579 The storage driver backend adding implementation of the storage APIs for block
580 volumes using the host disks.
583 %package daemon-driver-storage-scsi
584 Summary: Storage driver plugin for local scsi devices
585 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
586 Requires: libvirt-libs = %{version}-%{release}
588 %description daemon-driver-storage-scsi
589 The storage driver backend adding implementation of the storage APIs for scsi
590 host devices.
593 %package daemon-driver-storage-iscsi
594 Summary: Storage driver plugin for iscsi
595 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
596 Requires: libvirt-libs = %{version}-%{release}
597 Requires: iscsi-initiator-utils
599 %description daemon-driver-storage-iscsi
600 The storage driver backend adding implementation of the storage APIs for iscsi
601 volumes using the host iscsi stack.
604 %if %{with_storage_iscsi_direct}
605 %package daemon-driver-storage-iscsi-direct
606 Summary: Storage driver plugin for iscsi-direct
607 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
608 Requires: libvirt-libs = %{version}-%{release}
609 Requires: libiscsi
611 %description daemon-driver-storage-iscsi-direct
612 The storage driver backend adding implementation of the storage APIs for iscsi
613 volumes using libiscsi direct connection.
614 %endif
617 %package daemon-driver-storage-mpath
618 Summary: Storage driver plugin for multipath volumes
619 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
620 Requires: libvirt-libs = %{version}-%{release}
621 Requires: device-mapper
623 %description daemon-driver-storage-mpath
624 The storage driver backend adding implementation of the storage APIs for
625 multipath storage using device mapper.
628 %if %{with_storage_gluster}
629 %package daemon-driver-storage-gluster
630 Summary: Storage driver plugin for gluster
631 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
632 Requires: libvirt-libs = %{version}-%{release}
633 %if 0%{?fedora}
634 Requires: glusterfs-client >= 2.0.1
635 %endif
636 %if (0%{?fedora} || 0%{?with_storage_gluster})
637 Requires: /usr/sbin/gluster
638 %endif
640 %description daemon-driver-storage-gluster
641 The storage driver backend adding implementation of the storage APIs for gluster
642 volumes using libgfapi.
643 %endif
646 %if %{with_storage_rbd}
647 %package daemon-driver-storage-rbd
648 Summary: Storage driver plugin for rbd
649 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
650 Requires: libvirt-libs = %{version}-%{release}
652 %description daemon-driver-storage-rbd
653 The storage driver backend adding implementation of the storage APIs for rbd
654 volumes using the ceph protocol.
655 %endif
658 %if %{with_storage_sheepdog}
659 %package daemon-driver-storage-sheepdog
660 Summary: Storage driver plugin for sheepdog
661 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
662 Requires: libvirt-libs = %{version}-%{release}
663 Requires: sheepdog
665 %description daemon-driver-storage-sheepdog
666 The storage driver backend adding implementation of the storage APIs for
667 sheepdog volumes using.
668 %endif
671 %if %{with_storage_zfs}
672 %package daemon-driver-storage-zfs
673 Summary: Storage driver plugin for ZFS
674 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
675 Requires: libvirt-libs = %{version}-%{release}
676 # Support any conforming implementation of zfs
677 Requires: /sbin/zfs
678 Requires: /sbin/zpool
680 %description daemon-driver-storage-zfs
681 The storage driver backend adding implementation of the storage APIs for
682 ZFS volumes.
683 %endif
686 %package daemon-driver-storage
687 Summary: Storage driver plugin including all backends for the libvirtd daemon
688 Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
689 Requires: libvirt-daemon-driver-storage-disk = %{version}-%{release}
690 Requires: libvirt-daemon-driver-storage-logical = %{version}-%{release}
691 Requires: libvirt-daemon-driver-storage-scsi = %{version}-%{release}
692 Requires: libvirt-daemon-driver-storage-iscsi = %{version}-%{release}
693 Requires: libvirt-daemon-driver-storage-mpath = %{version}-%{release}
694 %if %{with_storage_iscsi_direct}
695 Requires: libvirt-daemon-driver-storage-iscsi-direct = %{version}-%{release}
696 %endif
697 %if %{with_storage_gluster}
698 Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
699 %endif
700 %if %{with_storage_rbd}
701 Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
702 %endif
703 %if %{with_storage_sheepdog}
704 Requires: libvirt-daemon-driver-storage-sheepdog = %{version}-%{release}
705 %endif
706 %if %{with_storage_zfs}
707 Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
708 %endif
710 %description daemon-driver-storage
711 The storage driver plugin for the libvirtd daemon, providing
712 an implementation of the storage APIs using LVM, iSCSI,
713 parted and more.
716 %if %{with_qemu}
717 %package daemon-driver-qemu
718 Summary: QEMU driver plugin for the libvirtd daemon
719 Requires: libvirt-daemon = %{version}-%{release}
720 Requires: libvirt-libs = %{version}-%{release}
721 Requires: /usr/bin/qemu-img
722 # For image compression
723 Requires: gzip
724 Requires: bzip2
725 Requires: lzop
726 Requires: xz
727 %if 0%{?fedora} || 0%{?rhel} > 7
728 Requires: systemd-container
729 %endif
731 %description daemon-driver-qemu
732 The qemu driver plugin for the libvirtd daemon, providing
733 an implementation of the hypervisor driver APIs using
734 QEMU
735 %endif
738 %if %{with_lxc}
739 %package daemon-driver-lxc
740 Summary: LXC driver plugin for the libvirtd daemon
741 Requires: libvirt-daemon = %{version}-%{release}
742 Requires: libvirt-libs = %{version}-%{release}
743 # There really is a hard cross-driver dependency here
744 Requires: libvirt-daemon-driver-network = %{version}-%{release}
745 %if 0%{?fedora} || 0%{?rhel} > 7
746 Requires: systemd-container
747 %endif
749 %description daemon-driver-lxc
750 The LXC driver plugin for the libvirtd daemon, providing
751 an implementation of the hypervisor driver APIs using
752 the Linux kernel
753 %endif
756 %if %{with_vbox}
757 %package daemon-driver-vbox
758 Summary: VirtualBox driver plugin for the libvirtd daemon
759 Requires: libvirt-daemon = %{version}-%{release}
760 Requires: libvirt-libs = %{version}-%{release}
762 %description daemon-driver-vbox
763 The vbox driver plugin for the libvirtd daemon, providing
764 an implementation of the hypervisor driver APIs using
765 VirtualBox
766 %endif
769 %if %{with_libxl}
770 %package daemon-driver-libxl
771 Summary: Libxl driver plugin for the libvirtd daemon
772 Requires: libvirt-daemon = %{version}-%{release}
773 Requires: libvirt-libs = %{version}-%{release}
774 Obsoletes: libvirt-daemon-driver-xen < 4.3.0
776 %description daemon-driver-libxl
777 The Libxl driver plugin for the libvirtd daemon, providing
778 an implementation of the hypervisor driver APIs using
779 Libxl
780 %endif
784 %if %{with_qemu_tcg}
785 %package daemon-qemu
786 Summary: Server side daemon & driver required to run QEMU guests
788 Requires: libvirt-daemon = %{version}-%{release}
789 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
790 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
791 Requires: libvirt-daemon-driver-network = %{version}-%{release}
792 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
793 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
794 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
795 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
796 Requires: qemu
798 %description daemon-qemu
799 Server side daemon and driver required to manage the virtualization
800 capabilities of the QEMU TCG emulators
801 %endif
804 %if %{with_qemu_kvm}
805 %package daemon-kvm
806 Summary: Server side daemon & driver required to run KVM guests
808 Requires: libvirt-daemon = %{version}-%{release}
809 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
810 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
811 Requires: libvirt-daemon-driver-network = %{version}-%{release}
812 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
813 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
814 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
815 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
816 Requires: qemu-kvm
818 %description daemon-kvm
819 Server side daemon and driver required to manage the virtualization
820 capabilities of the KVM hypervisor
821 %endif
824 %if %{with_lxc}
825 %package daemon-lxc
826 Summary: Server side daemon & driver required to run LXC guests
828 Requires: libvirt-daemon = %{version}-%{release}
829 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
830 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
831 Requires: libvirt-daemon-driver-network = %{version}-%{release}
832 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
833 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
834 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
835 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
837 %description daemon-lxc
838 Server side daemon and driver required to manage the virtualization
839 capabilities of LXC
840 %endif
843 %if %{with_libxl}
844 %package daemon-xen
845 Summary: Server side daemon & driver required to run XEN guests
847 Requires: libvirt-daemon = %{version}-%{release}
848 %if %{with_libxl}
849 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
850 %endif
851 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
852 Requires: libvirt-daemon-driver-network = %{version}-%{release}
853 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
854 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
855 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
856 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
857 Requires: xen
859 %description daemon-xen
860 Server side daemon and driver required to manage the virtualization
861 capabilities of XEN
862 %endif
864 %if %{with_vbox}
865 %package daemon-vbox
866 Summary: Server side daemon & driver required to run VirtualBox guests
868 Requires: libvirt-daemon = %{version}-%{release}
869 Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
870 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
871 Requires: libvirt-daemon-driver-network = %{version}-%{release}
872 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
873 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
874 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
875 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
877 %description daemon-vbox
878 Server side daemon and driver required to manage the virtualization
879 capabilities of VirtualBox
880 %endif
882 %package client
883 Summary: Client side utilities of the libvirt library
884 Requires: %{name}-libs = %{version}-%{release}
885 Requires: readline
886 Requires: ncurses
887 # Needed by /usr/libexec/libvirt-guests.sh script.
888 Requires: gettext
889 # Needed by virt-pki-validate script.
890 Requires: gnutls-utils
891 %if %{with_bash_completion}
892 Requires: %{name}-bash-completion = %{version}-%{release}
893 %endif
895 %description client
896 The client binaries needed to access the virtualization
897 capabilities of recent versions of Linux (and other OSes).
899 %package libs
900 Summary: Client side libraries
901 # So remote clients can access libvirt over SSH tunnel
902 # (client invokes 'nc' against the UNIX socket on the server)
903 Requires: nc
904 Requires: cyrus-sasl
905 # Needed by default sasl.conf - no onerous extra deps, since
906 # 100's of other things on a system already pull in krb5-libs
907 Requires: cyrus-sasl-gssapi
909 %description libs
910 Shared libraries for accessing the libvirt daemon.
912 %package admin
913 Summary: Set of tools to control libvirt daemon
914 Requires: %{name}-libs = %{version}-%{release}
915 Requires: readline
916 %if %{with_bash_completion}
917 Requires: %{name}-bash-completion = %{version}-%{release}
918 %endif
920 %description admin
921 The client side utilities to control the libvirt daemon.
923 %if %{with_bash_completion}
924 %package bash-completion
925 Summary: Bash completion script
927 %description bash-completion
928 Bash completion script stub.
929 %endif
931 %if %{with_wireshark}
932 %package wireshark
933 Summary: Wireshark dissector plugin for libvirt RPC transactions
934 Requires: wireshark >= 2.4.0
935 Requires: %{name}-libs = %{version}-%{release}
937 %description wireshark
938 Wireshark dissector plugin for better analysis of libvirt RPC traffic.
939 %endif
941 %if %{with_lxc}
942 %package login-shell
943 Summary: Login shell for connecting users to an LXC container
944 Requires: %{name}-libs = %{version}-%{release}
946 %description login-shell
947 Provides the set-uid virt-login-shell binary that is used to
948 connect a user to an LXC container when they login, by switching
949 namespaces.
950 %endif
952 %package devel
953 Summary: Libraries, includes, etc. to compile with the libvirt library
954 Requires: %{name}-libs = %{version}-%{release}
955 Requires: pkgconfig
957 %description devel
958 Include header files & development libraries for the libvirt C library.
960 %if %{with_sanlock}
961 %package lock-sanlock
962 Summary: Sanlock lock manager plugin for QEMU driver
963 Requires: sanlock >= 2.4
964 #for virt-sanlock-cleanup require augeas
965 Requires: augeas
966 Requires: %{name}-daemon = %{version}-%{release}
967 Requires: %{name}-libs = %{version}-%{release}
969 %description lock-sanlock
970 Includes the Sanlock lock manager plugin for the QEMU
971 driver
972 %endif
974 %package nss
975 Summary: Libvirt plugin for Name Service Switch
976 Requires: libvirt-daemon-driver-network = %{version}-%{release}
978 %description nss
979 Libvirt plugin for NSS for translating domain names into IP addresses.
982 %prep
984 %autosetup -S git_am
986 %build
987 %if ! %{supported_platform}
988 echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}"
989 exit 1
990 %endif
992 %if %{with_qemu}
993 %define arg_qemu --with-qemu
994 %else
995 %define arg_qemu --without-qemu
996 %endif
998 %if %{with_openvz}
999 %define arg_openvz --with-openvz
1000 %else
1001 %define arg_openvz --without-openvz
1002 %endif
1004 %if %{with_lxc}
1005 %define arg_lxc --with-lxc
1006 %define arg_login_shell --with-login-shell
1007 %else
1008 %define arg_lxc --without-lxc
1009 %define arg_login_shell --without-login-shell
1010 %endif
1012 %if %{with_vbox}
1013 %define arg_vbox --with-vbox
1014 %else
1015 %define arg_vbox --without-vbox
1016 %endif
1018 %if %{with_libxl}
1019 %define arg_libxl --with-libxl
1020 %else
1021 %define arg_libxl --without-libxl
1022 %endif
1024 %if %{with_phyp}
1025 %define arg_phyp --with-phyp
1026 %else
1027 %define arg_phyp --without-phyp
1028 %endif
1030 %if %{with_esx}
1031 %define arg_esx --with-esx
1032 %else
1033 %define arg_esx --without-esx
1034 %endif
1036 %if %{with_hyperv}
1037 %define arg_hyperv --with-hyperv
1038 %else
1039 %define arg_hyperv --without-hyperv
1040 %endif
1042 %if %{with_vmware}
1043 %define arg_vmware --with-vmware
1044 %else
1045 %define arg_vmware --without-vmware
1046 %endif
1048 %if %{with_storage_rbd}
1049 %define arg_storage_rbd --with-storage-rbd
1050 %else
1051 %define arg_storage_rbd --without-storage-rbd
1052 %endif
1054 %if %{with_storage_sheepdog}
1055 %define arg_storage_sheepdog --with-storage-sheepdog
1056 %else
1057 %define arg_storage_sheepdog --without-storage-sheepdog
1058 %endif
1060 %if %{with_storage_gluster}
1061 %define arg_storage_gluster --with-storage-gluster
1062 %else
1063 %define arg_storage_gluster --without-storage-gluster
1064 %endif
1066 %if %{with_storage_zfs}
1067 %define arg_storage_zfs --with-storage-zfs
1068 %else
1069 %define arg_storage_zfs --without-storage-zfs
1070 %endif
1072 %if %{with_numactl}
1073 %define arg_numactl --with-numactl
1074 %else
1075 %define arg_numactl --without-numactl
1076 %endif
1078 %if %{with_numad}
1079 %define arg_numad --with-numad
1080 %else
1081 %define arg_numad --without-numad
1082 %endif
1084 %if %{with_fuse}
1085 %define arg_fuse --with-fuse
1086 %else
1087 %define arg_fuse --without-fuse
1088 %endif
1090 %if %{with_sanlock}
1091 %define arg_sanlock --with-sanlock
1092 %else
1093 %define arg_sanlock --without-sanlock
1094 %endif
1096 %if %{with_firewalld}
1097 %define arg_firewalld --with-firewalld
1098 %else
1099 %define arg_firewalld --without-firewalld
1100 %endif
1102 %if %{with_firewalld_zone}
1103 %define arg_firewalld_zone --with-firewalld-zone
1104 %else
1105 %define arg_firewalld_zone --without-firewalld-zone
1106 %endif
1108 %if %{with_wireshark}
1109 %define arg_wireshark --with-wireshark-dissector
1110 %else
1111 %define arg_wireshark --without-wireshark-dissector
1112 %endif
1114 %if %{with_storage_iscsi_direct}
1115 %define arg_storage_iscsi_direct --with-storage-iscsi-direct
1116 %else
1117 %define arg_storage_iscsi_direct --without-storage-iscsi-direct
1118 %endif
1120 %define when %(date +"%%F-%%T")
1121 %define where %(hostname)
1122 %define who %{?packager}%{!?packager:Unknown}
1123 %define arg_packager --with-packager="%{who}, %{when}, %{where}"
1124 %define arg_packager_version --with-packager-version="%{release}"
1126 %define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux"
1128 %if 0%{?fedora}
1129 # Nightly edk2.git-ovmf-x64
1130 LOADERS="/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd"
1131 # Nightly edk2.git-ovmf-ia32
1132 LOADERS="$LOADERS:/usr/share/edk2.git/ovmf-ia32/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-ia32/OVMF_VARS-pure-efi.fd"
1133 # Nightly edk2.git-aarch64
1134 LOADERS="$LOADERS:/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw"
1135 # Nightly edk2.git-arm
1136 LOADERS="$LOADERS:/usr/share/edk2.git/arm/QEMU_EFI-pflash.raw:/usr/share/edk2.git/arm/vars-template-pflash.raw"
1138 # Fedora edk2-ovmf
1139 LOADERS="$LOADERS:/usr/share/edk2/ovmf/OVMF_CODE.fd:/usr/share/edk2/ovmf/OVMF_VARS.fd"
1140 # Fedora edk2-ovmf-ia32
1141 LOADERS="$LOADERS:/usr/share/edk2/ovmf-ia32/OVMF_CODE.fd:/usr/share/edk2/ovmf-ia32/OVMF_VARS.fd"
1142 # Fedora edk2-aarch64
1143 LOADERS="$LOADERS:/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw"
1144 # Fedora edk2-arm
1145 LOADERS="$LOADERS:/usr/share/edk2/arm/QEMU_EFI-pflash.raw:/usr/share/edk2/arm/vars-template-pflash.raw"
1146 %define arg_loader_nvram --with-loader-nvram="$LOADERS"
1147 %endif
1149 # place macros above and build commands below this comment
1151 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
1153 %if 0%{?enable_autotools}
1154 autoreconf -if
1155 %endif
1157 rm -f po/stamp-po
1158 %configure %{?arg_qemu} \
1159 %{?arg_openvz} \
1160 %{?arg_lxc} \
1161 %{?arg_vbox} \
1162 %{?arg_libxl} \
1163 --with-sasl \
1164 --with-polkit \
1165 --with-libvirtd \
1166 %{?arg_phyp} \
1167 %{?arg_esx} \
1168 %{?arg_hyperv} \
1169 %{?arg_vmware} \
1170 --without-xenapi \
1171 --without-vz \
1172 --without-bhyve \
1173 --with-remote-default-mode=legacy \
1174 --with-interface \
1175 --with-network \
1176 --with-storage-fs \
1177 --with-storage-lvm \
1178 --with-storage-iscsi \
1179 %{?arg_storage_iscsi_direct} \
1180 --with-storage-scsi \
1181 --with-storage-disk \
1182 --with-storage-mpath \
1183 %{?arg_storage_rbd} \
1184 %{?arg_storage_sheepdog} \
1185 %{?arg_storage_gluster} \
1186 %{?arg_storage_zfs} \
1187 --without-storage-vstorage \
1188 %{?arg_numactl} \
1189 %{?arg_numad} \
1190 --with-capng \
1191 %{?arg_fuse} \
1192 --with-netcf \
1193 --with-selinux \
1194 %{?arg_selinux_mount} \
1195 --without-apparmor \
1196 --without-hal \
1197 --with-udev \
1198 --with-yajl \
1199 %{?arg_sanlock} \
1200 --with-libpcap \
1201 --with-macvtap \
1202 --with-audit \
1203 --with-dtrace \
1204 --with-driver-modules \
1205 %{?arg_firewalld} \
1206 %{?arg_firewalld_zone} \
1207 %{?arg_wireshark} \
1208 --without-pm-utils \
1209 --with-nss-plugin \
1210 %{arg_packager} \
1211 %{arg_packager_version} \
1212 --with-qemu-user=%{qemu_user} \
1213 --with-qemu-group=%{qemu_group} \
1214 --with-tls-priority=%{tls_priority} \
1215 %{?arg_loader_nvram} \
1216 %{?enable_werror} \
1217 --enable-expensive-tests \
1218 --with-init-script=systemd \
1219 %{?arg_login_shell}
1220 make %{?_smp_mflags} V=1
1221 gzip -9 ChangeLog
1223 %install
1224 rm -fr %{buildroot}
1226 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
1228 %make_install %{?_smp_mflags} SYSTEMD_UNIT_DIR=%{_unitdir} V=1
1230 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
1231 rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
1232 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
1233 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
1234 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
1235 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
1236 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la
1237 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a
1238 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.la
1239 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.a
1240 %if %{with_wireshark}
1241 rm -f $RPM_BUILD_ROOT%{wireshark_plugindir}/libvirt.la
1242 %endif
1244 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
1245 # We don't want to install /etc/libvirt/qemu/networks in the main %files list
1246 # because if the admin wants to delete the default network completely, we don't
1247 # want to end up re-incarnating it on every RPM upgrade.
1248 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
1249 cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
1250 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1251 # libvirt saves this file with mode 0600
1252 chmod 0600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1254 # nwfilter files are installed in /usr/share/libvirt and copied to /etc in %post
1255 # to avoid verification errors on changed files in /etc
1256 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1257 cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \
1258 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1259 # libvirt saves these files with mode 600
1260 chmod 600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml
1262 # Strip auto-generated UUID - we need it generated per-install
1263 sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1264 %if ! %{with_qemu}
1265 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
1266 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1267 %endif
1268 %find_lang %{name}
1270 %if ! %{with_sanlock}
1271 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
1272 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1273 %endif
1275 %if ! %{with_lxc}
1276 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
1277 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1278 %endif
1280 %if ! %{with_qemu}
1281 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1282 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1283 %endif
1284 %if ! %{with_lxc}
1285 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1286 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1287 %endif
1288 %if ! %{with_libxl}
1289 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
1290 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
1291 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
1292 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1293 %endif
1295 # Copied into libvirt-docs subpackage eventually
1296 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs
1298 %ifarch %{power64} s390x x86_64 ia64 alpha sparc64
1299 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
1300 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
1302 %if %{with_qemu}
1303 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
1304 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
1305 %endif
1306 %endif
1308 %check
1309 cd tests
1310 # These tests don't current work in a mock build root
1311 for i in nodeinfotest seclabeltest
1313 rm -f $i
1314 printf 'int main(void) { return 0; }' > $i.c
1315 printf '#!/bin/sh\nexit 0\n' > $i
1316 chmod +x $i
1317 done
1318 if ! make %{?_smp_mflags} check VIR_TEST_DEBUG=1
1319 then
1320 cat test-suite.log || true
1321 exit 1
1324 %post libs
1325 %if 0%{?rhel} == 7
1326 /sbin/ldconfig
1327 %endif
1329 %postun libs
1330 %if 0%{?rhel} == 7
1331 /sbin/ldconfig
1332 %endif
1334 %pre daemon
1335 # 'libvirt' group is just to allow password-less polkit access to
1336 # libvirtd. The uid number is irrelevant, so we use dynamic allocation
1337 # described at the above link.
1338 getent group libvirt >/dev/null || groupadd -r libvirt
1340 exit 0
1342 %post daemon
1344 %systemd_post virtlockd.socket virtlockd-admin.socket
1345 %systemd_post virtlogd.socket virtlogd-admin.socket
1346 %systemd_post libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
1347 %systemd_post libvirtd-tcp.socket libvirtd-tls.socket
1348 %systemd_post libvirtd.service
1350 # request daemon restart in posttrans
1351 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1352 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1354 %preun daemon
1355 %systemd_preun libvirtd.service
1356 %systemd_preun libvirtd-tcp.socket libvirtd-tls.socket
1357 %systemd_preun libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
1358 %systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service
1359 %systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service
1361 %postun daemon
1362 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1363 if [ $1 -ge 1 ] ; then
1364 /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
1365 /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
1368 # In upgrade scenario we must explicitly enable virtlockd/virtlogd
1369 # sockets, if libvirtd is already enabled and start them if
1370 # libvirtd is running, otherwise you'll get failures to start
1371 # guests
1372 %triggerpostun daemon -- libvirt-daemon < 1.3.0
1373 if [ $1 -ge 1 ] ; then
1374 /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
1375 /bin/systemctl enable virtlogd.socket virtlogd-admin.socket || :
1376 /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
1377 /bin/systemctl start virtlogd.socket virtlogd-admin.socket || :
1380 %posttrans daemon
1381 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1382 # Old libvirtd owns the sockets and will delete them on
1383 # shutdown. Can't use a try-restart as libvirtd will simply
1384 # own the sockets again when it comes back up. Thus we must
1385 # do this particular ordering
1386 /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1
1387 if test $? = 0 ; then
1388 /bin/systemctl stop libvirtd.service >/dev/null 2>&1 || :
1390 /bin/systemctl try-restart libvirtd.socket >/dev/null 2>&1 || :
1391 /bin/systemctl try-restart libvirtd-ro.socket >/dev/null 2>&1 || :
1392 /bin/systemctl try-restart libvirtd-admin.socket >/dev/null 2>&1 || :
1394 /bin/systemctl start libvirtd.service >/dev/null 2>&1 || :
1397 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1399 %post daemon-driver-network
1400 %if %{with_firewalld_zone}
1401 %firewalld_reload
1402 %endif
1404 %postun daemon-driver-network
1405 %if %{with_firewalld_zone}
1406 %firewalld_reload
1407 %endif
1409 %post daemon-config-network
1410 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1411 # see if the network used by default network creates a conflict,
1412 # and try to resolve it
1413 # NB: 192.168.122.0/24 is used in the default.xml template file;
1414 # do not modify any of those values here without also modifying
1415 # them in the template.
1416 orig_sub=122
1417 sub=${orig_sub}
1418 nl='
1420 routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1421 case ${routes} in
1422 *"${nl}192.168.${orig_sub}.0/24${nl}"*)
1423 # there was a match, so we need to look for an unused subnet
1424 for new_sub in $(seq 124 254); do
1425 case ${routes} in
1426 *"${nl}192.168.${new_sub}.0/24${nl}"*)
1429 sub=$new_sub
1430 break;
1432 esac
1433 done
1437 esac
1439 UUID=`/usr/bin/uuidgen`
1440 sed -e "s/${orig_sub}/${sub}/g" \
1441 -e "s,</name>,</name>\n <uuid>$UUID</uuid>," \
1442 < %{_datadir}/libvirt/networks/default.xml \
1443 > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1444 ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1445 # libvirt saves this file with mode 0600
1446 chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
1448 # Make sure libvirt picks up the new network defininiton
1449 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1450 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1453 %posttrans daemon-config-network
1454 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1455 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1457 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1459 %post daemon-config-nwfilter
1460 cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/
1461 # libvirt saves these files with mode 600
1462 chmod 600 %{_sysconfdir}/libvirt/nwfilter/*.xml
1463 # Make sure libvirt picks up the new nwfilter defininitons
1464 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1465 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1467 %posttrans daemon-config-nwfilter
1468 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1469 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1471 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1474 %if %{with_qemu}
1475 %pre daemon-driver-qemu
1476 # We want soft static allocation of well-known ids, as disk images
1477 # are commonly shared across NFS mounts by id rather than name; see
1478 # https://fedoraproject.org/wiki/Packaging:UsersAndGroups
1479 getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
1480 getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
1481 if ! getent passwd qemu >/dev/null; then
1482 if ! getent passwd 107 >/dev/null; then
1483 useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1484 else
1485 useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1488 exit 0
1489 %endif
1491 %preun client
1493 %systemd_preun libvirt-guests.service
1495 %post client
1496 %systemd_post libvirt-guests.service
1498 %postun client
1499 %systemd_postun libvirt-guests.service
1501 %if %{with_lxc}
1502 %pre login-shell
1503 getent group virtlogin >/dev/null || groupadd -r virtlogin
1504 exit 0
1505 %endif
1507 %files
1509 %files docs
1510 %doc AUTHORS ChangeLog.gz NEWS README README.md
1511 %doc libvirt-docs/*
1513 # API docs
1514 %dir %{_datadir}/gtk-doc/html/libvirt/
1515 %doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
1516 %doc %{_datadir}/gtk-doc/html/libvirt/*.html
1517 %doc %{_datadir}/gtk-doc/html/libvirt/*.png
1518 %doc %{_datadir}/gtk-doc/html/libvirt/*.css
1521 %files daemon
1523 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1525 %{_unitdir}/libvirtd.service
1526 %{_unitdir}/libvirtd.socket
1527 %{_unitdir}/libvirtd-ro.socket
1528 %{_unitdir}/libvirtd-admin.socket
1529 %{_unitdir}/libvirtd-tcp.socket
1530 %{_unitdir}/libvirtd-tls.socket
1531 %{_unitdir}/virtproxyd.service
1532 %{_unitdir}/virtproxyd.socket
1533 %{_unitdir}/virtproxyd-ro.socket
1534 %{_unitdir}/virtproxyd-admin.socket
1535 %{_unitdir}/virtproxyd-tcp.socket
1536 %{_unitdir}/virtproxyd-tls.socket
1537 %{_unitdir}/virt-guest-shutdown.target
1538 %{_unitdir}/virtlogd.service
1539 %{_unitdir}/virtlogd.socket
1540 %{_unitdir}/virtlogd-admin.socket
1541 %{_unitdir}/virtlockd.service
1542 %{_unitdir}/virtlockd.socket
1543 %{_unitdir}/virtlockd-admin.socket
1544 %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1545 %config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
1546 %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1547 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1548 %config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf
1549 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
1550 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
1551 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
1552 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
1554 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1555 %dir %{_datadir}/libvirt/
1557 %ghost %dir %{_localstatedir}/run/libvirt/
1559 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1560 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1561 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1562 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1565 %dir %attr(0755, root, root) %{_libdir}/libvirt/
1566 %dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
1567 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1568 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1570 %{_datadir}/augeas/lenses/libvirtd.aug
1571 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1572 %{_datadir}/augeas/lenses/virtlogd.aug
1573 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
1574 %{_datadir}/augeas/lenses/virtlockd.aug
1575 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
1576 %{_datadir}/augeas/lenses/virtproxyd.aug
1577 %{_datadir}/augeas/lenses/tests/test_virtproxyd.aug
1578 %{_datadir}/augeas/lenses/libvirt_lockd.aug
1579 %if %{with_qemu}
1580 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1581 %endif
1583 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1584 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
1585 %{_datadir}/polkit-1/rules.d/50-libvirt.rules
1587 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
1589 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1591 %attr(0755, root, root) %{_sbindir}/libvirtd
1592 %attr(0755, root, root) %{_sbindir}/virtproxyd
1593 %attr(0755, root, root) %{_sbindir}/virtlogd
1594 %attr(0755, root, root) %{_sbindir}/virtlockd
1596 %{_mandir}/man8/libvirtd.8*
1597 %{_mandir}/man8/virtlogd.8*
1598 %{_mandir}/man8/virtlockd.8*
1599 %{_mandir}/man7/virkey*.7*
1601 %files daemon-config-network
1602 %dir %{_datadir}/libvirt/networks/
1603 %{_datadir}/libvirt/networks/default.xml
1604 %ghost %{_sysconfdir}/libvirt/qemu/networks/default.xml
1605 %ghost %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1607 %files daemon-config-nwfilter
1608 %dir %{_datadir}/libvirt/nwfilter/
1609 %{_datadir}/libvirt/nwfilter/*.xml
1610 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
1612 %files daemon-driver-interface
1613 %config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
1614 %{_datadir}/augeas/lenses/virtinterfaced.aug
1615 %{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
1616 %{_unitdir}/virtinterfaced.service
1617 %{_unitdir}/virtinterfaced.socket
1618 %{_unitdir}/virtinterfaced-ro.socket
1619 %{_unitdir}/virtinterfaced-admin.socket
1620 %attr(0755, root, root) %{_sbindir}/virtinterfaced
1621 %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
1623 %files daemon-driver-network
1624 %config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf
1625 %{_datadir}/augeas/lenses/virtnetworkd.aug
1626 %{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
1627 %{_unitdir}/virtnetworkd.service
1628 %{_unitdir}/virtnetworkd.socket
1629 %{_unitdir}/virtnetworkd-ro.socket
1630 %{_unitdir}/virtnetworkd-admin.socket
1631 %attr(0755, root, root) %{_sbindir}/virtnetworkd
1632 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1633 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
1634 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
1635 %ghost %dir %{_localstatedir}/run/libvirt/network/
1636 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
1637 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
1638 %attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1639 %{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
1641 %if %{with_firewalld_zone}
1642 %{_prefix}/lib/firewalld/zones/libvirt.xml
1643 %endif
1645 %files daemon-driver-nodedev
1646 %config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf
1647 %{_datadir}/augeas/lenses/virtnodedevd.aug
1648 %{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
1649 %{_unitdir}/virtnodedevd.service
1650 %{_unitdir}/virtnodedevd.socket
1651 %{_unitdir}/virtnodedevd-ro.socket
1652 %{_unitdir}/virtnodedevd-admin.socket
1653 %attr(0755, root, root) %{_sbindir}/virtnodedevd
1654 %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
1656 %files daemon-driver-nwfilter
1657 %config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf
1658 %{_datadir}/augeas/lenses/virtnwfilterd.aug
1659 %{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
1660 %{_unitdir}/virtnwfilterd.service
1661 %{_unitdir}/virtnwfilterd.socket
1662 %{_unitdir}/virtnwfilterd-ro.socket
1663 %{_unitdir}/virtnwfilterd-admin.socket
1664 %attr(0755, root, root) %{_sbindir}/virtnwfilterd
1665 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
1666 %ghost %dir %{_localstatedir}/run/libvirt/network/
1667 %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
1669 %files daemon-driver-secret
1670 %config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf
1671 %{_datadir}/augeas/lenses/virtsecretd.aug
1672 %{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
1673 %{_unitdir}/virtsecretd.service
1674 %{_unitdir}/virtsecretd.socket
1675 %{_unitdir}/virtsecretd-ro.socket
1676 %{_unitdir}/virtsecretd-admin.socket
1677 %attr(0755, root, root) %{_sbindir}/virtsecretd
1678 %{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
1680 %files daemon-driver-storage
1682 %files daemon-driver-storage-core
1683 %config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf
1684 %{_datadir}/augeas/lenses/virtstoraged.aug
1685 %{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
1686 %{_unitdir}/virtstoraged.service
1687 %{_unitdir}/virtstoraged.socket
1688 %{_unitdir}/virtstoraged-ro.socket
1689 %{_unitdir}/virtstoraged-admin.socket
1690 %attr(0755, root, root) %{_sbindir}/virtstoraged
1691 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1692 %{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1693 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
1694 %{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so
1696 %files daemon-driver-storage-disk
1697 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
1699 %files daemon-driver-storage-logical
1700 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so
1702 %files daemon-driver-storage-scsi
1703 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so
1705 %files daemon-driver-storage-iscsi
1706 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so
1708 %if %{with_storage_iscsi_direct}
1709 %files daemon-driver-storage-iscsi-direct
1710 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi-direct.so
1711 %endif
1713 %files daemon-driver-storage-mpath
1714 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_mpath.so
1716 %if %{with_storage_gluster}
1717 %files daemon-driver-storage-gluster
1718 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so
1719 %{_libdir}/%{name}/storage-file/libvirt_storage_file_gluster.so
1720 %endif
1722 %if %{with_storage_rbd}
1723 %files daemon-driver-storage-rbd
1724 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so
1725 %endif
1727 %if %{with_storage_sheepdog}
1728 %files daemon-driver-storage-sheepdog
1729 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so
1730 %endif
1732 %if %{with_storage_zfs}
1733 %files daemon-driver-storage-zfs
1734 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so
1735 %endif
1737 %if %{with_qemu}
1738 %files daemon-driver-qemu
1739 %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf
1740 %{_datadir}/augeas/lenses/virtqemud.aug
1741 %{_datadir}/augeas/lenses/tests/test_virtqemud.aug
1742 %{_unitdir}/virtqemud.service
1743 %{_unitdir}/virtqemud.socket
1744 %{_unitdir}/virtqemud-ro.socket
1745 %{_unitdir}/virtqemud-admin.socket
1746 %attr(0755, root, root) %{_sbindir}/virtqemud
1747 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1748 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
1749 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
1750 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
1751 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
1752 %ghost %dir %{_localstatedir}/run/libvirt/qemu/
1753 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1754 %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
1755 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
1756 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1757 %{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1758 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/swtpm/
1759 %dir %attr(0711, root, root) %{_localstatedir}/log/swtpm/libvirt/qemu/
1760 %endif
1762 %if %{with_lxc}
1763 %files daemon-driver-lxc
1764 %config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf
1765 %{_datadir}/augeas/lenses/virtlxcd.aug
1766 %{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
1767 %{_unitdir}/virtlxcd.service
1768 %{_unitdir}/virtlxcd.socket
1769 %{_unitdir}/virtlxcd-ro.socket
1770 %{_unitdir}/virtlxcd-admin.socket
1771 %attr(0755, root, root) %{_sbindir}/virtlxcd
1772 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
1773 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
1774 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
1775 %ghost %dir %{_localstatedir}/run/libvirt/lxc/
1776 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
1777 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
1778 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1779 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
1780 %{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1781 %endif
1783 %if %{with_libxl}
1784 %files daemon-driver-libxl
1785 %config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf
1786 %{_datadir}/augeas/lenses/virtxend.aug
1787 %{_datadir}/augeas/lenses/tests/test_virtxend.aug
1788 %{_unitdir}/virtxend.service
1789 %{_unitdir}/virtxend.socket
1790 %{_unitdir}/virtxend-ro.socket
1791 %{_unitdir}/virtxend-admin.socket
1792 %attr(0755, root, root) %{_sbindir}/virtxend
1793 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
1794 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
1795 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
1796 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
1797 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1798 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
1799 %ghost %dir %{_localstatedir}/run/libvirt/libxl/
1800 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1801 %{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1802 %endif
1804 %if %{with_vbox}
1805 %files daemon-driver-vbox
1806 %config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf
1807 %{_datadir}/augeas/lenses/virtvboxd.aug
1808 %{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
1809 %{_unitdir}/virtvboxd.service
1810 %{_unitdir}/virtvboxd.socket
1811 %{_unitdir}/virtvboxd-ro.socket
1812 %{_unitdir}/virtvboxd-admin.socket
1813 %attr(0755, root, root) %{_sbindir}/virtvboxd
1814 %{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
1815 %endif
1817 %if %{with_qemu_tcg}
1818 %files daemon-qemu
1819 %endif
1821 %if %{with_qemu_kvm}
1822 %files daemon-kvm
1823 %endif
1825 %if %{with_lxc}
1826 %files daemon-lxc
1827 %endif
1829 %if %{with_libxl}
1830 %files daemon-xen
1831 %endif
1833 %if %{with_vbox}
1834 %files daemon-vbox
1835 %endif
1837 %if %{with_sanlock}
1838 %files lock-sanlock
1839 %if %{with_qemu}
1840 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
1841 %endif
1842 %if %{with_libxl}
1843 %config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
1844 %endif
1845 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
1846 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
1847 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1848 %dir %attr(0770, root, sanlock) %{_localstatedir}/lib/libvirt/sanlock
1849 %{_sbindir}/virt-sanlock-cleanup
1850 %{_mandir}/man8/virt-sanlock-cleanup.8*
1851 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
1852 %endif
1854 %files client
1855 %{_mandir}/man1/virsh.1*
1856 %{_mandir}/man1/virt-xml-validate.1*
1857 %{_mandir}/man1/virt-pki-validate.1*
1858 %{_mandir}/man1/virt-host-validate.1*
1859 %{_bindir}/virsh
1860 %{_bindir}/virt-xml-validate
1861 %{_bindir}/virt-pki-validate
1862 %{_bindir}/virt-host-validate
1864 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
1865 %{_datadir}/systemtap/tapset/libvirt_functions.stp
1866 %if %{with_qemu}
1867 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
1868 %endif
1870 %if %{with_bash_completion}
1871 %{_datadir}/bash-completion/completions/virsh
1872 %endif
1875 %{_unitdir}/libvirt-guests.service
1876 %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
1877 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
1879 %files libs -f %{name}.lang
1880 %license COPYING COPYING.LESSER
1881 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
1882 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
1883 %{_libdir}/libvirt.so.*
1884 %{_libdir}/libvirt-qemu.so.*
1885 %{_libdir}/libvirt-lxc.so.*
1886 %{_libdir}/libvirt-admin.so.*
1887 %dir %{_datadir}/libvirt/
1888 %dir %{_datadir}/libvirt/schemas/
1889 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
1891 %{_datadir}/libvirt/schemas/basictypes.rng
1892 %{_datadir}/libvirt/schemas/capability.rng
1893 %{_datadir}/libvirt/schemas/cputypes.rng
1894 %{_datadir}/libvirt/schemas/domain.rng
1895 %{_datadir}/libvirt/schemas/domainbackup.rng
1896 %{_datadir}/libvirt/schemas/domaincaps.rng
1897 %{_datadir}/libvirt/schemas/domaincheckpoint.rng
1898 %{_datadir}/libvirt/schemas/domaincommon.rng
1899 %{_datadir}/libvirt/schemas/domainsnapshot.rng
1900 %{_datadir}/libvirt/schemas/interface.rng
1901 %{_datadir}/libvirt/schemas/network.rng
1902 %{_datadir}/libvirt/schemas/networkcommon.rng
1903 %{_datadir}/libvirt/schemas/networkport.rng
1904 %{_datadir}/libvirt/schemas/nodedev.rng
1905 %{_datadir}/libvirt/schemas/nwfilter.rng
1906 %{_datadir}/libvirt/schemas/nwfilter_params.rng
1907 %{_datadir}/libvirt/schemas/nwfilterbinding.rng
1908 %{_datadir}/libvirt/schemas/secret.rng
1909 %{_datadir}/libvirt/schemas/storagecommon.rng
1910 %{_datadir}/libvirt/schemas/storagepool.rng
1911 %{_datadir}/libvirt/schemas/storagepoolcaps.rng
1912 %{_datadir}/libvirt/schemas/storagevol.rng
1914 %{_datadir}/libvirt/cpu_map/*.xml
1916 %{_datadir}/libvirt/test-screenshot.png
1918 %files admin
1919 %{_mandir}/man1/virt-admin.1*
1920 %{_bindir}/virt-admin
1921 %if %{with_bash_completion}
1922 %{_datadir}/bash-completion/completions/virt-admin
1923 %endif
1925 %if %{with_bash_completion}
1926 %files bash-completion
1927 %{_datadir}/bash-completion/completions/vsh
1928 %endif
1930 %if %{with_wireshark}
1931 %files wireshark
1932 %{wireshark_plugindir}/libvirt.so
1933 %endif
1935 %files nss
1936 %{_libdir}/libnss_libvirt.so.2
1937 %{_libdir}/libnss_libvirt_guest.so.2
1939 %if %{with_lxc}
1940 %files login-shell
1941 %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
1942 %{_libexecdir}/virt-login-shell-helper
1943 %config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
1944 %{_mandir}/man1/virt-login-shell.1*
1945 %endif
1947 %files devel
1948 %{_libdir}/libvirt.so
1949 %{_libdir}/libvirt-admin.so
1950 %{_libdir}/libvirt-qemu.so
1951 %{_libdir}/libvirt-lxc.so
1952 %dir %{_includedir}/libvirt
1953 %{_includedir}/libvirt/virterror.h
1954 %{_includedir}/libvirt/libvirt.h
1955 %{_includedir}/libvirt/libvirt-admin.h
1956 %{_includedir}/libvirt/libvirt-common.h
1957 %{_includedir}/libvirt/libvirt-domain.h
1958 %{_includedir}/libvirt/libvirt-domain-checkpoint.h
1959 %{_includedir}/libvirt/libvirt-domain-snapshot.h
1960 %{_includedir}/libvirt/libvirt-event.h
1961 %{_includedir}/libvirt/libvirt-host.h
1962 %{_includedir}/libvirt/libvirt-interface.h
1963 %{_includedir}/libvirt/libvirt-network.h
1964 %{_includedir}/libvirt/libvirt-nodedev.h
1965 %{_includedir}/libvirt/libvirt-nwfilter.h
1966 %{_includedir}/libvirt/libvirt-secret.h
1967 %{_includedir}/libvirt/libvirt-storage.h
1968 %{_includedir}/libvirt/libvirt-stream.h
1969 %{_includedir}/libvirt/libvirt-qemu.h
1970 %{_includedir}/libvirt/libvirt-lxc.h
1971 %{_libdir}/pkgconfig/libvirt.pc
1972 %{_libdir}/pkgconfig/libvirt-admin.pc
1973 %{_libdir}/pkgconfig/libvirt-qemu.pc
1974 %{_libdir}/pkgconfig/libvirt-lxc.pc
1976 %dir %{_datadir}/libvirt/api/
1977 %{_datadir}/libvirt/api/libvirt-api.xml
1978 %{_datadir}/libvirt/api/libvirt-admin-api.xml
1979 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
1980 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
1983 %changelog