gitdm: Add some more companies
[libvirt/ericb.git] / libvirt.spec.in
blob045c0fed1a6046617f56e1445306f3278903c7f8
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-interface \
1174 --with-network \
1175 --with-storage-fs \
1176 --with-storage-lvm \
1177 --with-storage-iscsi \
1178 %{?arg_storage_iscsi_direct} \
1179 --with-storage-scsi \
1180 --with-storage-disk \
1181 --with-storage-mpath \
1182 %{?arg_storage_rbd} \
1183 %{?arg_storage_sheepdog} \
1184 %{?arg_storage_gluster} \
1185 %{?arg_storage_zfs} \
1186 --without-storage-vstorage \
1187 %{?arg_numactl} \
1188 %{?arg_numad} \
1189 --with-capng \
1190 %{?arg_fuse} \
1191 --with-netcf \
1192 --with-selinux \
1193 %{?arg_selinux_mount} \
1194 --without-apparmor \
1195 --without-hal \
1196 --with-udev \
1197 --with-yajl \
1198 %{?arg_sanlock} \
1199 --with-libpcap \
1200 --with-macvtap \
1201 --with-audit \
1202 --with-dtrace \
1203 --with-driver-modules \
1204 %{?arg_firewalld} \
1205 %{?arg_firewalld_zone} \
1206 %{?arg_wireshark} \
1207 --without-pm-utils \
1208 --with-nss-plugin \
1209 %{arg_packager} \
1210 %{arg_packager_version} \
1211 --with-qemu-user=%{qemu_user} \
1212 --with-qemu-group=%{qemu_group} \
1213 --with-tls-priority=%{tls_priority} \
1214 %{?arg_loader_nvram} \
1215 %{?enable_werror} \
1216 --enable-expensive-tests \
1217 --with-init-script=systemd \
1218 %{?arg_login_shell}
1219 make %{?_smp_mflags} V=1
1220 gzip -9 ChangeLog
1222 %install
1223 rm -fr %{buildroot}
1225 export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
1227 %make_install %{?_smp_mflags} SYSTEMD_UNIT_DIR=%{_unitdir} V=1
1229 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
1230 rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
1231 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
1232 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
1233 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
1234 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
1235 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la
1236 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a
1237 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.la
1238 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-file/*.a
1239 %if %{with_wireshark}
1240 rm -f $RPM_BUILD_ROOT%{wireshark_plugindir}/libvirt.la
1241 %endif
1243 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
1244 # We don't want to install /etc/libvirt/qemu/networks in the main %files list
1245 # because if the admin wants to delete the default network completely, we don't
1246 # want to end up re-incarnating it on every RPM upgrade.
1247 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
1248 cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
1249 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1250 # libvirt saves this file with mode 0600
1251 chmod 0600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1253 # nwfilter files are installed in /usr/share/libvirt and copied to /etc in %post
1254 # to avoid verification errors on changed files in /etc
1255 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1256 cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \
1257 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
1258 # libvirt saves these files with mode 600
1259 chmod 600 $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml
1261 # Strip auto-generated UUID - we need it generated per-install
1262 sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1263 %if ! %{with_qemu}
1264 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
1265 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1266 %endif
1267 %find_lang %{name}
1269 %if ! %{with_sanlock}
1270 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
1271 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1272 %endif
1274 %if ! %{with_lxc}
1275 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
1276 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1277 %endif
1279 %if ! %{with_qemu}
1280 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1281 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1282 %endif
1283 %if ! %{with_lxc}
1284 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1285 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1286 %endif
1287 %if ! %{with_libxl}
1288 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
1289 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
1290 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
1291 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1292 %endif
1294 # Copied into libvirt-docs subpackage eventually
1295 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt libvirt-docs
1297 %ifarch %{power64} s390x x86_64 ia64 alpha sparc64
1298 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
1299 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
1301 %if %{with_qemu}
1302 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
1303 $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
1304 %endif
1305 %endif
1307 %check
1308 cd tests
1309 # These tests don't current work in a mock build root
1310 for i in nodeinfotest seclabeltest
1312 rm -f $i
1313 printf 'int main(void) { return 0; }' > $i.c
1314 printf '#!/bin/sh\nexit 0\n' > $i
1315 chmod +x $i
1316 done
1317 if ! make %{?_smp_mflags} check VIR_TEST_DEBUG=1
1318 then
1319 cat test-suite.log || true
1320 exit 1
1323 %post libs
1324 %if 0%{?rhel} == 7
1325 /sbin/ldconfig
1326 %endif
1328 %postun libs
1329 %if 0%{?rhel} == 7
1330 /sbin/ldconfig
1331 %endif
1333 %pre daemon
1334 # 'libvirt' group is just to allow password-less polkit access to
1335 # libvirtd. The uid number is irrelevant, so we use dynamic allocation
1336 # described at the above link.
1337 getent group libvirt >/dev/null || groupadd -r libvirt
1339 exit 0
1341 %post daemon
1343 %systemd_post virtlockd.socket virtlockd-admin.socket
1344 %systemd_post virtlogd.socket virtlogd-admin.socket
1345 %systemd_post libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
1346 %systemd_post libvirtd-tcp.socket libvirtd-tls.socket
1347 %systemd_post libvirtd.service
1349 # request daemon restart in posttrans
1350 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1351 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1353 %preun daemon
1354 %systemd_preun libvirtd.service
1355 %systemd_preun libvirtd-tcp.socket libvirtd-tls.socket
1356 %systemd_preun libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
1357 %systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service
1358 %systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service
1360 %postun daemon
1361 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1362 if [ $1 -ge 1 ] ; then
1363 /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
1364 /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
1367 # In upgrade scenario we must explicitly enable virtlockd/virtlogd
1368 # sockets, if libvirtd is already enabled and start them if
1369 # libvirtd is running, otherwise you'll get failures to start
1370 # guests
1371 %triggerpostun daemon -- libvirt-daemon < 1.3.0
1372 if [ $1 -ge 1 ] ; then
1373 /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
1374 /bin/systemctl enable virtlogd.socket virtlogd-admin.socket || :
1375 /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
1376 /bin/systemctl start virtlogd.socket virtlogd-admin.socket || :
1379 %posttrans daemon
1380 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1381 # Old libvirtd owns the sockets and will delete them on
1382 # shutdown. Can't use a try-restart as libvirtd will simply
1383 # own the sockets again when it comes back up. Thus we must
1384 # do this particular ordering
1385 /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1
1386 if test $? = 0 ; then
1387 /bin/systemctl stop libvirtd.service >/dev/null 2>&1 || :
1389 /bin/systemctl try-restart libvirtd.socket >/dev/null 2>&1 || :
1390 /bin/systemctl try-restart libvirtd-ro.socket >/dev/null 2>&1 || :
1391 /bin/systemctl try-restart libvirtd-admin.socket >/dev/null 2>&1 || :
1393 /bin/systemctl start libvirtd.service >/dev/null 2>&1 || :
1396 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1398 %post daemon-driver-network
1399 %if %{with_firewalld_zone}
1400 %firewalld_reload
1401 %endif
1403 %postun daemon-driver-network
1404 %if %{with_firewalld_zone}
1405 %firewalld_reload
1406 %endif
1408 %post daemon-config-network
1409 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1410 # see if the network used by default network creates a conflict,
1411 # and try to resolve it
1412 # NB: 192.168.122.0/24 is used in the default.xml template file;
1413 # do not modify any of those values here without also modifying
1414 # them in the template.
1415 orig_sub=122
1416 sub=${orig_sub}
1417 nl='
1419 routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1420 case ${routes} in
1421 *"${nl}192.168.${orig_sub}.0/24${nl}"*)
1422 # there was a match, so we need to look for an unused subnet
1423 for new_sub in $(seq 124 254); do
1424 case ${routes} in
1425 *"${nl}192.168.${new_sub}.0/24${nl}"*)
1428 sub=$new_sub
1429 break;
1431 esac
1432 done
1436 esac
1438 UUID=`/usr/bin/uuidgen`
1439 sed -e "s/${orig_sub}/${sub}/g" \
1440 -e "s,</name>,</name>\n <uuid>$UUID</uuid>," \
1441 < %{_datadir}/libvirt/networks/default.xml \
1442 > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1443 ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1444 # libvirt saves this file with mode 0600
1445 chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
1447 # Make sure libvirt picks up the new network defininiton
1448 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1449 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1452 %posttrans daemon-config-network
1453 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1454 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1456 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1458 %post daemon-config-nwfilter
1459 cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/
1460 # libvirt saves these files with mode 600
1461 chmod 600 %{_sysconfdir}/libvirt/nwfilter/*.xml
1462 # Make sure libvirt picks up the new nwfilter defininitons
1463 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1464 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1466 %posttrans daemon-config-nwfilter
1467 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1468 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1470 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1473 %if %{with_qemu}
1474 %pre daemon-driver-qemu
1475 # We want soft static allocation of well-known ids, as disk images
1476 # are commonly shared across NFS mounts by id rather than name; see
1477 # https://fedoraproject.org/wiki/Packaging:UsersAndGroups
1478 getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
1479 getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
1480 if ! getent passwd qemu >/dev/null; then
1481 if ! getent passwd 107 >/dev/null; then
1482 useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1483 else
1484 useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1487 exit 0
1488 %endif
1490 %preun client
1492 %systemd_preun libvirt-guests.service
1494 %post client
1495 %systemd_post libvirt-guests.service
1497 %postun client
1498 %systemd_postun libvirt-guests.service
1500 %if %{with_lxc}
1501 %pre login-shell
1502 getent group virtlogin >/dev/null || groupadd -r virtlogin
1503 exit 0
1504 %endif
1506 %files
1508 %files docs
1509 %doc AUTHORS ChangeLog.gz NEWS README README.md
1510 %doc libvirt-docs/*
1512 # API docs
1513 %dir %{_datadir}/gtk-doc/html/libvirt/
1514 %doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
1515 %doc %{_datadir}/gtk-doc/html/libvirt/*.html
1516 %doc %{_datadir}/gtk-doc/html/libvirt/*.png
1517 %doc %{_datadir}/gtk-doc/html/libvirt/*.css
1520 %files daemon
1522 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1524 %{_unitdir}/libvirtd.service
1525 %{_unitdir}/libvirtd.socket
1526 %{_unitdir}/libvirtd-ro.socket
1527 %{_unitdir}/libvirtd-admin.socket
1528 %{_unitdir}/libvirtd-tcp.socket
1529 %{_unitdir}/libvirtd-tls.socket
1530 %{_unitdir}/virt-guest-shutdown.target
1531 %{_unitdir}/virtlogd.service
1532 %{_unitdir}/virtlogd.socket
1533 %{_unitdir}/virtlogd-admin.socket
1534 %{_unitdir}/virtlockd.service
1535 %{_unitdir}/virtlockd.socket
1536 %{_unitdir}/virtlockd-admin.socket
1537 %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1538 %config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
1539 %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1540 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1541 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
1542 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
1543 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
1544 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
1546 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1547 %dir %{_datadir}/libvirt/
1549 %ghost %dir %{_localstatedir}/run/libvirt/
1551 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1552 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1553 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1554 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1557 %dir %attr(0755, root, root) %{_libdir}/libvirt/
1558 %dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
1559 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1560 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1562 %{_datadir}/augeas/lenses/libvirtd.aug
1563 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1564 %{_datadir}/augeas/lenses/virtlogd.aug
1565 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
1566 %{_datadir}/augeas/lenses/virtlockd.aug
1567 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
1568 %{_datadir}/augeas/lenses/libvirt_lockd.aug
1569 %if %{with_qemu}
1570 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1571 %endif
1573 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1574 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
1575 %{_datadir}/polkit-1/rules.d/50-libvirt.rules
1577 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
1579 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1581 %attr(0755, root, root) %{_sbindir}/libvirtd
1582 %attr(0755, root, root) %{_sbindir}/virtlogd
1583 %attr(0755, root, root) %{_sbindir}/virtlockd
1585 %{_mandir}/man8/libvirtd.8*
1586 %{_mandir}/man8/virtlogd.8*
1587 %{_mandir}/man8/virtlockd.8*
1588 %{_mandir}/man7/virkey*.7*
1590 %files daemon-config-network
1591 %dir %{_datadir}/libvirt/networks/
1592 %{_datadir}/libvirt/networks/default.xml
1593 %ghost %{_sysconfdir}/libvirt/qemu/networks/default.xml
1594 %ghost %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1596 %files daemon-config-nwfilter
1597 %dir %{_datadir}/libvirt/nwfilter/
1598 %{_datadir}/libvirt/nwfilter/*.xml
1599 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
1601 %files daemon-driver-interface
1602 %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
1604 %files daemon-driver-network
1605 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1606 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
1607 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
1608 %ghost %dir %{_localstatedir}/run/libvirt/network/
1609 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
1610 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
1611 %attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1612 %{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
1614 %if %{with_firewalld_zone}
1615 %{_prefix}/lib/firewalld/zones/libvirt.xml
1616 %endif
1618 %files daemon-driver-nodedev
1619 %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
1621 %files daemon-driver-nwfilter
1622 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
1623 %ghost %dir %{_localstatedir}/run/libvirt/network/
1624 %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
1626 %files daemon-driver-secret
1627 %{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
1629 %files daemon-driver-storage
1631 %files daemon-driver-storage-core
1632 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1633 %{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1634 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
1635 %{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so
1637 %files daemon-driver-storage-disk
1638 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
1640 %files daemon-driver-storage-logical
1641 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so
1643 %files daemon-driver-storage-scsi
1644 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so
1646 %files daemon-driver-storage-iscsi
1647 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so
1649 %if %{with_storage_iscsi_direct}
1650 %files daemon-driver-storage-iscsi-direct
1651 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi-direct.so
1652 %endif
1654 %files daemon-driver-storage-mpath
1655 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_mpath.so
1657 %if %{with_storage_gluster}
1658 %files daemon-driver-storage-gluster
1659 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so
1660 %{_libdir}/%{name}/storage-file/libvirt_storage_file_gluster.so
1661 %endif
1663 %if %{with_storage_rbd}
1664 %files daemon-driver-storage-rbd
1665 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so
1666 %endif
1668 %if %{with_storage_sheepdog}
1669 %files daemon-driver-storage-sheepdog
1670 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so
1671 %endif
1673 %if %{with_storage_zfs}
1674 %files daemon-driver-storage-zfs
1675 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so
1676 %endif
1678 %if %{with_qemu}
1679 %files daemon-driver-qemu
1680 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1681 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
1682 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
1683 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
1684 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
1685 %ghost %dir %{_localstatedir}/run/libvirt/qemu/
1686 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1687 %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
1688 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
1689 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1690 %{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1691 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/swtpm/
1692 %dir %attr(0711, root, root) %{_localstatedir}/log/swtpm/libvirt/qemu/
1693 %endif
1695 %if %{with_lxc}
1696 %files daemon-driver-lxc
1697 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
1698 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
1699 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
1700 %ghost %dir %{_localstatedir}/run/libvirt/lxc/
1701 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
1702 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
1703 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1704 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
1705 %{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1706 %endif
1708 %if %{with_libxl}
1709 %files daemon-driver-libxl
1710 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
1711 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
1712 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
1713 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
1714 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1715 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
1716 %ghost %dir %{_localstatedir}/run/libvirt/libxl/
1717 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1718 %{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1719 %endif
1721 %if %{with_vbox}
1722 %files daemon-driver-vbox
1723 %{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
1724 %endif
1726 %if %{with_qemu_tcg}
1727 %files daemon-qemu
1728 %endif
1730 %if %{with_qemu_kvm}
1731 %files daemon-kvm
1732 %endif
1734 %if %{with_lxc}
1735 %files daemon-lxc
1736 %endif
1738 %if %{with_libxl}
1739 %files daemon-xen
1740 %endif
1742 %if %{with_vbox}
1743 %files daemon-vbox
1744 %endif
1746 %if %{with_sanlock}
1747 %files lock-sanlock
1748 %if %{with_qemu}
1749 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
1750 %endif
1751 %if %{with_libxl}
1752 %config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
1753 %endif
1754 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
1755 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
1756 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1757 %dir %attr(0770, root, sanlock) %{_localstatedir}/lib/libvirt/sanlock
1758 %{_sbindir}/virt-sanlock-cleanup
1759 %{_mandir}/man8/virt-sanlock-cleanup.8*
1760 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
1761 %endif
1763 %files client
1764 %{_mandir}/man1/virsh.1*
1765 %{_mandir}/man1/virt-xml-validate.1*
1766 %{_mandir}/man1/virt-pki-validate.1*
1767 %{_mandir}/man1/virt-host-validate.1*
1768 %{_bindir}/virsh
1769 %{_bindir}/virt-xml-validate
1770 %{_bindir}/virt-pki-validate
1771 %{_bindir}/virt-host-validate
1773 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
1774 %{_datadir}/systemtap/tapset/libvirt_functions.stp
1775 %if %{with_qemu}
1776 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
1777 %endif
1779 %if %{with_bash_completion}
1780 %{_datadir}/bash-completion/completions/virsh
1781 %endif
1784 %{_unitdir}/libvirt-guests.service
1785 %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
1786 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
1788 %files libs -f %{name}.lang
1789 %license COPYING COPYING.LESSER
1790 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
1791 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
1792 %{_libdir}/libvirt.so.*
1793 %{_libdir}/libvirt-qemu.so.*
1794 %{_libdir}/libvirt-lxc.so.*
1795 %{_libdir}/libvirt-admin.so.*
1796 %dir %{_datadir}/libvirt/
1797 %dir %{_datadir}/libvirt/schemas/
1798 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
1800 %{_datadir}/libvirt/schemas/basictypes.rng
1801 %{_datadir}/libvirt/schemas/capability.rng
1802 %{_datadir}/libvirt/schemas/cputypes.rng
1803 %{_datadir}/libvirt/schemas/domain.rng
1804 %{_datadir}/libvirt/schemas/domaincaps.rng
1805 %{_datadir}/libvirt/schemas/domaincheckpoint.rng
1806 %{_datadir}/libvirt/schemas/domaincommon.rng
1807 %{_datadir}/libvirt/schemas/domainsnapshot.rng
1808 %{_datadir}/libvirt/schemas/interface.rng
1809 %{_datadir}/libvirt/schemas/network.rng
1810 %{_datadir}/libvirt/schemas/networkcommon.rng
1811 %{_datadir}/libvirt/schemas/networkport.rng
1812 %{_datadir}/libvirt/schemas/nodedev.rng
1813 %{_datadir}/libvirt/schemas/nwfilter.rng
1814 %{_datadir}/libvirt/schemas/nwfilter_params.rng
1815 %{_datadir}/libvirt/schemas/nwfilterbinding.rng
1816 %{_datadir}/libvirt/schemas/secret.rng
1817 %{_datadir}/libvirt/schemas/storagecommon.rng
1818 %{_datadir}/libvirt/schemas/storagepool.rng
1819 %{_datadir}/libvirt/schemas/storagepoolcaps.rng
1820 %{_datadir}/libvirt/schemas/storagevol.rng
1822 %{_datadir}/libvirt/cpu_map/*.xml
1824 %{_datadir}/libvirt/test-screenshot.png
1826 %files admin
1827 %{_mandir}/man1/virt-admin.1*
1828 %{_bindir}/virt-admin
1829 %if %{with_bash_completion}
1830 %{_datadir}/bash-completion/completions/virt-admin
1831 %endif
1833 %if %{with_bash_completion}
1834 %files bash-completion
1835 %{_datadir}/bash-completion/completions/vsh
1836 %endif
1838 %if %{with_wireshark}
1839 %files wireshark
1840 %{wireshark_plugindir}/libvirt.so
1841 %endif
1843 %files nss
1844 %{_libdir}/libnss_libvirt.so.2
1845 %{_libdir}/libnss_libvirt_guest.so.2
1847 %if %{with_lxc}
1848 %files login-shell
1849 %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
1850 %config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
1851 %{_mandir}/man1/virt-login-shell.1*
1852 %endif
1854 %files devel
1855 %{_libdir}/libvirt.so
1856 %{_libdir}/libvirt-admin.so
1857 %{_libdir}/libvirt-qemu.so
1858 %{_libdir}/libvirt-lxc.so
1859 %dir %{_includedir}/libvirt
1860 %{_includedir}/libvirt/virterror.h
1861 %{_includedir}/libvirt/libvirt.h
1862 %{_includedir}/libvirt/libvirt-admin.h
1863 %{_includedir}/libvirt/libvirt-common.h
1864 %{_includedir}/libvirt/libvirt-domain.h
1865 %{_includedir}/libvirt/libvirt-domain-checkpoint.h
1866 %{_includedir}/libvirt/libvirt-domain-snapshot.h
1867 %{_includedir}/libvirt/libvirt-event.h
1868 %{_includedir}/libvirt/libvirt-host.h
1869 %{_includedir}/libvirt/libvirt-interface.h
1870 %{_includedir}/libvirt/libvirt-network.h
1871 %{_includedir}/libvirt/libvirt-nodedev.h
1872 %{_includedir}/libvirt/libvirt-nwfilter.h
1873 %{_includedir}/libvirt/libvirt-secret.h
1874 %{_includedir}/libvirt/libvirt-storage.h
1875 %{_includedir}/libvirt/libvirt-stream.h
1876 %{_includedir}/libvirt/libvirt-qemu.h
1877 %{_includedir}/libvirt/libvirt-lxc.h
1878 %{_libdir}/pkgconfig/libvirt.pc
1879 %{_libdir}/pkgconfig/libvirt-admin.pc
1880 %{_libdir}/pkgconfig/libvirt-qemu.pc
1881 %{_libdir}/pkgconfig/libvirt-lxc.pc
1883 %dir %{_datadir}/libvirt/api/
1884 %{_datadir}/libvirt/api/libvirt-api.xml
1885 %{_datadir}/libvirt/api/libvirt-admin-api.xml
1886 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
1887 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
1890 %changelog