test_driver: Fix permissions for test_driver.c
[libvirt/ericb.git] / libvirt.spec.in
blobd54f58f1d4eb15b85ef3f99808ad13cde3c05b24
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.service
1347 # request daemon restart in posttrans
1348 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1349 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1351 %preun daemon
1352 %systemd_preun libvirtd.service
1353 %systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service
1354 %systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service
1356 %postun daemon
1357 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1358 if [ $1 -ge 1 ] ; then
1359 /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
1360 /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
1363 # In upgrade scenario we must explicitly enable virtlockd/virtlogd
1364 # sockets, if libvirtd is already enabled and start them if
1365 # libvirtd is running, otherwise you'll get failures to start
1366 # guests
1367 %triggerpostun daemon -- libvirt-daemon < 1.3.0
1368 if [ $1 -ge 1 ] ; then
1369 /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
1370 /bin/systemctl enable virtlogd.socket virtlogd-admin.socket || :
1371 /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
1372 /bin/systemctl start virtlogd.socket virtlogd-admin.socket || :
1375 %posttrans daemon
1376 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1377 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1379 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1381 %post daemon-driver-network
1382 %if %{with_firewalld_zone}
1383 %firewalld_reload
1384 %endif
1386 %postun daemon-driver-network
1387 %if %{with_firewalld_zone}
1388 %firewalld_reload
1389 %endif
1391 %post daemon-config-network
1392 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1393 # see if the network used by default network creates a conflict,
1394 # and try to resolve it
1395 # NB: 192.168.122.0/24 is used in the default.xml template file;
1396 # do not modify any of those values here without also modifying
1397 # them in the template.
1398 orig_sub=122
1399 sub=${orig_sub}
1400 nl='
1402 routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1403 case ${routes} in
1404 *"${nl}192.168.${orig_sub}.0/24${nl}"*)
1405 # there was a match, so we need to look for an unused subnet
1406 for new_sub in $(seq 124 254); do
1407 case ${routes} in
1408 *"${nl}192.168.${new_sub}.0/24${nl}"*)
1411 sub=$new_sub
1412 break;
1414 esac
1415 done
1419 esac
1421 UUID=`/usr/bin/uuidgen`
1422 sed -e "s/${orig_sub}/${sub}/g" \
1423 -e "s,</name>,</name>\n <uuid>$UUID</uuid>," \
1424 < %{_datadir}/libvirt/networks/default.xml \
1425 > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1426 ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1427 # libvirt saves this file with mode 0600
1428 chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
1430 # Make sure libvirt picks up the new network defininiton
1431 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1432 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1435 %posttrans daemon-config-network
1436 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1437 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1439 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1441 %post daemon-config-nwfilter
1442 cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/
1443 # libvirt saves these files with mode 600
1444 chmod 600 %{_sysconfdir}/libvirt/nwfilter/*.xml
1445 # Make sure libvirt picks up the new nwfilter defininitons
1446 mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
1447 touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
1449 %posttrans daemon-config-nwfilter
1450 if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1451 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1453 rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1456 %if %{with_qemu}
1457 %pre daemon-driver-qemu
1458 # We want soft static allocation of well-known ids, as disk images
1459 # are commonly shared across NFS mounts by id rather than name; see
1460 # https://fedoraproject.org/wiki/Packaging:UsersAndGroups
1461 getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
1462 getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
1463 if ! getent passwd qemu >/dev/null; then
1464 if ! getent passwd 107 >/dev/null; then
1465 useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1466 else
1467 useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
1470 exit 0
1471 %endif
1473 %preun client
1475 %systemd_preun libvirt-guests.service
1477 %post client
1478 %systemd_post libvirt-guests.service
1480 %postun client
1481 %systemd_postun libvirt-guests.service
1483 %if %{with_lxc}
1484 %pre login-shell
1485 getent group virtlogin >/dev/null || groupadd -r virtlogin
1486 exit 0
1487 %endif
1489 %files
1491 %files docs
1492 %doc AUTHORS ChangeLog.gz NEWS README README.md
1493 %doc libvirt-docs/*
1495 # API docs
1496 %dir %{_datadir}/gtk-doc/html/libvirt/
1497 %doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
1498 %doc %{_datadir}/gtk-doc/html/libvirt/*.html
1499 %doc %{_datadir}/gtk-doc/html/libvirt/*.png
1500 %doc %{_datadir}/gtk-doc/html/libvirt/*.css
1503 %files daemon
1505 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1507 %{_unitdir}/libvirtd.service
1508 %{_unitdir}/virt-guest-shutdown.target
1509 %{_unitdir}/virtlogd.service
1510 %{_unitdir}/virtlogd.socket
1511 %{_unitdir}/virtlogd-admin.socket
1512 %{_unitdir}/virtlockd.service
1513 %{_unitdir}/virtlockd.socket
1514 %{_unitdir}/virtlockd-admin.socket
1515 %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1516 %config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
1517 %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1518 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1519 %config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
1520 %config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
1521 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
1522 %config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
1524 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1525 %dir %{_datadir}/libvirt/
1527 %ghost %dir %{_localstatedir}/run/libvirt/
1529 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1530 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1531 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1532 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1535 %dir %attr(0755, root, root) %{_libdir}/libvirt/
1536 %dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
1537 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1538 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1540 %{_datadir}/augeas/lenses/libvirtd.aug
1541 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1542 %{_datadir}/augeas/lenses/virtlogd.aug
1543 %{_datadir}/augeas/lenses/tests/test_virtlogd.aug
1544 %{_datadir}/augeas/lenses/virtlockd.aug
1545 %{_datadir}/augeas/lenses/tests/test_virtlockd.aug
1546 %{_datadir}/augeas/lenses/libvirt_lockd.aug
1547 %if %{with_qemu}
1548 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1549 %endif
1551 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1552 %{_datadir}/polkit-1/actions/org.libvirt.api.policy
1553 %{_datadir}/polkit-1/rules.d/50-libvirt.rules
1555 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
1557 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1559 %attr(0755, root, root) %{_sbindir}/libvirtd
1560 %attr(0755, root, root) %{_sbindir}/virtlogd
1561 %attr(0755, root, root) %{_sbindir}/virtlockd
1563 %{_mandir}/man8/libvirtd.8*
1564 %{_mandir}/man8/virtlogd.8*
1565 %{_mandir}/man8/virtlockd.8*
1566 %{_mandir}/man7/virkey*.7*
1568 %files daemon-config-network
1569 %dir %{_datadir}/libvirt/networks/
1570 %{_datadir}/libvirt/networks/default.xml
1571 %ghost %{_sysconfdir}/libvirt/qemu/networks/default.xml
1572 %ghost %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1574 %files daemon-config-nwfilter
1575 %dir %{_datadir}/libvirt/nwfilter/
1576 %{_datadir}/libvirt/nwfilter/*.xml
1577 %ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
1579 %files daemon-driver-interface
1580 %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
1582 %files daemon-driver-network
1583 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1584 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
1585 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
1586 %ghost %dir %{_localstatedir}/run/libvirt/network/
1587 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
1588 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
1589 %attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1590 %{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
1592 %if %{with_firewalld_zone}
1593 %{_prefix}/lib/firewalld/zones/libvirt.xml
1594 %endif
1596 %files daemon-driver-nodedev
1597 %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
1599 %files daemon-driver-nwfilter
1600 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
1601 %ghost %dir %{_localstatedir}/run/libvirt/network/
1602 %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
1604 %files daemon-driver-secret
1605 %{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
1607 %files daemon-driver-storage
1609 %files daemon-driver-storage-core
1610 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1611 %{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1612 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
1613 %{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so
1615 %files daemon-driver-storage-disk
1616 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
1618 %files daemon-driver-storage-logical
1619 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so
1621 %files daemon-driver-storage-scsi
1622 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so
1624 %files daemon-driver-storage-iscsi
1625 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so
1627 %if %{with_storage_iscsi_direct}
1628 %files daemon-driver-storage-iscsi-direct
1629 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi-direct.so
1630 %endif
1632 %files daemon-driver-storage-mpath
1633 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_mpath.so
1635 %if %{with_storage_gluster}
1636 %files daemon-driver-storage-gluster
1637 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so
1638 %{_libdir}/%{name}/storage-file/libvirt_storage_file_gluster.so
1639 %endif
1641 %if %{with_storage_rbd}
1642 %files daemon-driver-storage-rbd
1643 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so
1644 %endif
1646 %if %{with_storage_sheepdog}
1647 %files daemon-driver-storage-sheepdog
1648 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so
1649 %endif
1651 %if %{with_storage_zfs}
1652 %files daemon-driver-storage-zfs
1653 %{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so
1654 %endif
1656 %if %{with_qemu}
1657 %files daemon-driver-qemu
1658 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1659 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
1660 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
1661 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
1662 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
1663 %ghost %dir %{_localstatedir}/run/libvirt/qemu/
1664 %dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1665 %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
1666 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
1667 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1668 %{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1669 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/swtpm/
1670 %dir %attr(0711, root, root) %{_localstatedir}/log/swtpm/libvirt/qemu/
1671 %endif
1673 %if %{with_lxc}
1674 %files daemon-driver-lxc
1675 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
1676 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
1677 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
1678 %ghost %dir %{_localstatedir}/run/libvirt/lxc/
1679 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
1680 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
1681 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1682 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
1683 %{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1684 %endif
1686 %if %{with_libxl}
1687 %files daemon-driver-libxl
1688 %config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
1689 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
1690 %config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
1691 %{_datadir}/augeas/lenses/libvirtd_libxl.aug
1692 %{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1693 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
1694 %ghost %dir %{_localstatedir}/run/libvirt/libxl/
1695 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1696 %{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1697 %endif
1699 %if %{with_vbox}
1700 %files daemon-driver-vbox
1701 %{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
1702 %endif
1704 %if %{with_qemu_tcg}
1705 %files daemon-qemu
1706 %endif
1708 %if %{with_qemu_kvm}
1709 %files daemon-kvm
1710 %endif
1712 %if %{with_lxc}
1713 %files daemon-lxc
1714 %endif
1716 %if %{with_libxl}
1717 %files daemon-xen
1718 %endif
1720 %if %{with_vbox}
1721 %files daemon-vbox
1722 %endif
1724 %if %{with_sanlock}
1725 %files lock-sanlock
1726 %if %{with_qemu}
1727 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
1728 %endif
1729 %if %{with_libxl}
1730 %config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
1731 %endif
1732 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
1733 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
1734 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1735 %dir %attr(0770, root, sanlock) %{_localstatedir}/lib/libvirt/sanlock
1736 %{_sbindir}/virt-sanlock-cleanup
1737 %{_mandir}/man8/virt-sanlock-cleanup.8*
1738 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
1739 %endif
1741 %files client
1742 %{_mandir}/man1/virsh.1*
1743 %{_mandir}/man1/virt-xml-validate.1*
1744 %{_mandir}/man1/virt-pki-validate.1*
1745 %{_mandir}/man1/virt-host-validate.1*
1746 %{_bindir}/virsh
1747 %{_bindir}/virt-xml-validate
1748 %{_bindir}/virt-pki-validate
1749 %{_bindir}/virt-host-validate
1751 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
1752 %{_datadir}/systemtap/tapset/libvirt_functions.stp
1753 %if %{with_qemu}
1754 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
1755 %endif
1757 %if %{with_bash_completion}
1758 %{_datadir}/bash-completion/completions/virsh
1759 %endif
1762 %{_unitdir}/libvirt-guests.service
1763 %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
1764 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
1766 %files libs -f %{name}.lang
1767 %license COPYING COPYING.LESSER
1768 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
1769 %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
1770 %{_libdir}/libvirt.so.*
1771 %{_libdir}/libvirt-qemu.so.*
1772 %{_libdir}/libvirt-lxc.so.*
1773 %{_libdir}/libvirt-admin.so.*
1774 %dir %{_datadir}/libvirt/
1775 %dir %{_datadir}/libvirt/schemas/
1776 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
1778 %{_datadir}/libvirt/schemas/basictypes.rng
1779 %{_datadir}/libvirt/schemas/capability.rng
1780 %{_datadir}/libvirt/schemas/cputypes.rng
1781 %{_datadir}/libvirt/schemas/domain.rng
1782 %{_datadir}/libvirt/schemas/domaincaps.rng
1783 %{_datadir}/libvirt/schemas/domaincommon.rng
1784 %{_datadir}/libvirt/schemas/domainsnapshot.rng
1785 %{_datadir}/libvirt/schemas/interface.rng
1786 %{_datadir}/libvirt/schemas/network.rng
1787 %{_datadir}/libvirt/schemas/networkcommon.rng
1788 %{_datadir}/libvirt/schemas/networkport.rng
1789 %{_datadir}/libvirt/schemas/nodedev.rng
1790 %{_datadir}/libvirt/schemas/nwfilter.rng
1791 %{_datadir}/libvirt/schemas/nwfilter_params.rng
1792 %{_datadir}/libvirt/schemas/nwfilterbinding.rng
1793 %{_datadir}/libvirt/schemas/secret.rng
1794 %{_datadir}/libvirt/schemas/storagecommon.rng
1795 %{_datadir}/libvirt/schemas/storagepool.rng
1796 %{_datadir}/libvirt/schemas/storagepoolcaps.rng
1797 %{_datadir}/libvirt/schemas/storagevol.rng
1799 %{_datadir}/libvirt/cpu_map/*.xml
1801 %{_datadir}/libvirt/test-screenshot.png
1803 %files admin
1804 %{_mandir}/man1/virt-admin.1*
1805 %{_bindir}/virt-admin
1806 %if %{with_bash_completion}
1807 %{_datadir}/bash-completion/completions/virt-admin
1808 %endif
1810 %if %{with_bash_completion}
1811 %files bash-completion
1812 %{_datadir}/bash-completion/completions/vsh
1813 %endif
1815 %if %{with_wireshark}
1816 %files wireshark
1817 %{wireshark_plugindir}/libvirt.so
1818 %endif
1820 %files nss
1821 %{_libdir}/libnss_libvirt.so.2
1822 %{_libdir}/libnss_libvirt_guest.so.2
1824 %if %{with_lxc}
1825 %files login-shell
1826 %attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
1827 %config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
1828 %{_mandir}/man1/virt-login-shell.1*
1829 %endif
1831 %files devel
1832 %{_libdir}/libvirt.so
1833 %{_libdir}/libvirt-admin.so
1834 %{_libdir}/libvirt-qemu.so
1835 %{_libdir}/libvirt-lxc.so
1836 %dir %{_includedir}/libvirt
1837 %{_includedir}/libvirt/virterror.h
1838 %{_includedir}/libvirt/libvirt.h
1839 %{_includedir}/libvirt/libvirt-admin.h
1840 %{_includedir}/libvirt/libvirt-common.h
1841 %{_includedir}/libvirt/libvirt-domain.h
1842 %{_includedir}/libvirt/libvirt-domain-snapshot.h
1843 %{_includedir}/libvirt/libvirt-event.h
1844 %{_includedir}/libvirt/libvirt-host.h
1845 %{_includedir}/libvirt/libvirt-interface.h
1846 %{_includedir}/libvirt/libvirt-network.h
1847 %{_includedir}/libvirt/libvirt-nodedev.h
1848 %{_includedir}/libvirt/libvirt-nwfilter.h
1849 %{_includedir}/libvirt/libvirt-secret.h
1850 %{_includedir}/libvirt/libvirt-storage.h
1851 %{_includedir}/libvirt/libvirt-stream.h
1852 %{_includedir}/libvirt/libvirt-qemu.h
1853 %{_includedir}/libvirt/libvirt-lxc.h
1854 %{_libdir}/pkgconfig/libvirt.pc
1855 %{_libdir}/pkgconfig/libvirt-admin.pc
1856 %{_libdir}/pkgconfig/libvirt-qemu.pc
1857 %{_libdir}/pkgconfig/libvirt-lxc.pc
1859 %dir %{_datadir}/libvirt/api/
1860 %{_datadir}/libvirt/api/libvirt-api.xml
1861 %{_datadir}/libvirt/api/libvirt-admin-api.xml
1862 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
1863 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
1866 %changelog