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.
9 %if (0%{?fedora} && 0%{?fedora} >= %{min_fedora}) || (0%{?rhel} && 0%{?rhel} >= %{min_rhel})
10 %define supported_platform
1
12 %define supported_platform
0
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
31 %define qemu_kvm_arches
%{ix86} x86_64 %{power64} s390x %{arm} aarch64
35 %define with_qemu_tcg
0
36 %define qemu_kvm_arches x86_64
%{power64} aarch64 s390x
39 %ifarch %{qemu_kvm_arches}
40 %define with_qemu_kvm
%{with_qemu}
42 %define with_qemu_kvm
0
45 %if ! %{with_qemu_tcg} && ! %{with_qemu_kvm}
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}
59 %define with_storage_sheepdog
0%{!?_without_storage_sheepdog:1}
61 %define with_storage_sheepdog
0
63 %define with_storage_gluster
0%{!?_without_storage_gluster:1}
64 %define with_numactl
0%{!?_without_numactl:1}
68 %define with_storage_zfs
0%{!?_without_storage_zfs:1}
70 %define with_storage_zfs
0
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}
77 %define with_storage_iscsi_direct
0
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
98 # vbox is available only on i386 x86_64
99 %ifnarch %{ix86} x86_64
103 # Numactl is not available on many non-x86 archs
104 %ifarch s390 s390x
%{arm} riscv64
105 %define with_numactl
0
108 # zfs-fuse is not available on some architectures
109 %ifarch s390 s390x aarch64 riscv64
110 %define with_storage_zfs
0
113 # Ceph dropping support for 32-bit hosts
114 %if 0%{?fedora} >= 30
115 %ifarch %{arm} %{ix86}
116 %define with_storage_rbd
0
120 # RHEL doesn't ship OpenVZ, VBox, PowerHypervisor,
121 # VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
124 %define with_openvz
0
127 %define with_vmware
0
128 %define with_xenapi
0
130 %define with_hyperv
0
138 %define with_firewalld
1
140 %if 0%{?fedora} >= 31 || 0%{?rhel} > 7
141 %define with_firewalld_zone
0%{!?_without_firewalld_zone:1}
145 # fuse is used to provide virtualized /proc for LXC
147 %define with_fuse
0%{!?_without_fuse:1}
150 # Enable sanlock library for lock management with QEMU
151 # Sanlock is available only on arches where kvm is available for RHEL
153 %define with_sanlock
0%{!?_without_sanlock:1}
156 %ifarch %{qemu_kvm_arches}
157 %define with_sanlock
0%{!?_without_sanlock:1}
161 # Enable libssh2 transport for new enough distros
163 %define with_libssh2
0%{!?_without_libssh2:1}
166 # Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
168 %define with_wireshark
0%{!?_without_wireshark:1}
169 %define wireshark_plugindir %
(pkg
-config
--variable plugindir wireshark
)/epan
172 # Enable libssh transport for new enough distros
173 %if 0%{?fedora} || 0%{?rhel} > 7
174 %define with_libssh
0%{!?_without_libssh:1}
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
183 %define python python2
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}
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
204 %define enable_werror
--enable-werror
206 %define enable_werror
--disable
-werror
210 %define tls_priority "NORMAL"
212 %define tls_priority "@LIBVIRT
,SYSTEM"
216 Summary: Library providing a simple virtualization API
221 URL: https
://libvirt.org
/
223 %if %
(echo %{version} | grep
-q "\
.0$"
; echo $?
) == 1
224 %define mainturl stable_updates
/
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}
232 Requires: libvirt
-daemon
-driver
-libxl
= %{version}-%{release}
235 Requires: libvirt
-daemon
-driver
-lxc
= %{version}-%{release}
238 Requires: libvirt
-daemon
-driver
-qemu
= %{version}-%{release}
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
244 Requires: libvirt
-daemon
-driver
-vbox
= %{version}-%{release}
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
267 %if 0%{?fedora} || 0%{?rhel} > 7
268 BuildRequires
: perl
-interpreter
272 BuildRequires
: %{python}
273 BuildRequires
: systemd
-units
275 BuildRequires
: xen
-devel
277 BuildRequires
: libxml2
-devel
278 BuildRequires
: libxslt
279 BuildRequires
: readline
-devel
280 %if %{with_bash_completion}
281 BuildRequires
: bash
-completion
>= 2.0
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
296 BuildRequires
: sanlock
-devel
>= 2.4
298 BuildRequires
: libpcap
-devel
299 BuildRequires
: libnl3
-devel
300 BuildRequires
: libselinux
-devel
301 BuildRequires
: dnsmasq
>= 2.41
302 BuildRequires
: iptables
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
312 BuildRequires
: libacl
-devel
314 BuildRequires
: /usr
/bin
/qemu
-img
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
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
334 %if %{with_storage_gluster}
335 BuildRequires
: glusterfs
-api
-devel
>= 3.4.1
336 BuildRequires
: glusterfs
-devel
>= 3.4.1
338 %if %{with_storage_sheepdog}
339 BuildRequires
: sheepdog
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
348 # For QEMU/LXC numa info
349 BuildRequires
: numactl
-devel
351 BuildRequires
: libcap
-ng
-devel
>= 0.5.0
353 BuildRequires
: fuse
-devel
>= 2.8.6
355 %if %{with_phyp} || %{with_libssh2}
356 BuildRequires
: libssh2
-devel
>= 1.3.0
359 BuildRequires
: netcf
-devel
>= 0.2.2
361 BuildRequires
: libcurl
-devel
364 BuildRequires
: libwsman
-devel
>= 2.2.3
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
381 # For storage wiping with different algorithms
388 %if %{with_wireshark}
389 BuildRequires
: wireshark
-devel
>= 2.4.0
393 BuildRequires
: libssh
-devel
>= 0.7.0
396 %if 0%{?fedora} || 0%{?rhel} > 7
397 BuildRequires
: rpcgen
398 BuildRequires
: libtirpc
-devel
401 %if %{with_firewalld_zone}
402 BuildRequires
: firewalld
-filesystem
405 Provides: bundled
(gnulib
)
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.
413 Summary: API reference and website documentation
416 Includes the API reference
for the libvirt C library
, and a complete
417 copy of the libvirt.org website documentation.
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
433 # tc is provided by iproute-tc since at least Fedora 26
434 %if 0%{?fedora} || 0%{?rhel} > 7
438 Requires: polkit
>= 0.112
439 %ifarch %{ix86} x86_64 ia64
440 # For virConnectGetSysinfo
443 # For service management
444 Requires(post
): systemd
-units
445 Requires(post
): systemd
-sysv
446 Requires(preun
): systemd
-units
447 Requires(postun
): systemd
-units
451 # libvirtd depends on 'messagebus' service
453 # For uid creation during pre
454 Requires(pre
): shadow
-utils
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
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
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}
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
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
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}
549 Requires: /usr
/bin
/qemu
-img
551 %if !%{with_storage_rbd}
552 Obsoletes
: libvirt
-daemon
-driver
-storage
-rbd
< %{version}-%{release}
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}
566 %description daemon
-driver
-storage
-logical
567 The storage driver backend adding implementation of the storage APIs
for block
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}
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
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}
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.
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}
634 Requires: glusterfs
-client
>= 2.0.1
636 %if (0%{?fedora} || 0%{?with_storage_gluster})
637 Requires: /usr
/sbin
/gluster
640 %description daemon
-driver
-storage
-gluster
641 The storage driver backend adding implementation of the storage APIs
for gluster
642 volumes using libgfapi.
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.
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}
665 %description daemon
-driver
-storage
-sheepdog
666 The storage driver backend adding implementation of the storage APIs
for
667 sheepdog volumes using.
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
678 Requires: /sbin
/zpool
680 %description daemon
-driver
-storage
-zfs
681 The storage driver backend adding implementation of the storage APIs
for
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}
697 %if %{with_storage_gluster}
698 Requires: libvirt
-daemon
-driver
-storage
-gluster
= %{version}-%{release}
700 %if %{with_storage_rbd}
701 Requires: libvirt
-daemon
-driver
-storage
-rbd
= %{version}-%{release}
703 %if %{with_storage_sheepdog}
704 Requires: libvirt
-daemon
-driver
-storage
-sheepdog
= %{version}-%{release}
706 %if %{with_storage_zfs}
707 Requires: libvirt
-daemon
-driver
-storage
-zfs
= %{version}-%{release}
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
,
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
727 %if 0%{?fedora} || 0%{?rhel} > 7
728 Requires: systemd
-container
731 %description daemon
-driver
-qemu
732 The qemu driver plugin
for the libvirtd daemon
, providing
733 an implementation of the hypervisor driver APIs using
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
749 %description daemon
-driver
-lxc
750 The LXC driver plugin
for the libvirtd daemon
, providing
751 an implementation of the hypervisor driver APIs using
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
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
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}
798 %description daemon
-qemu
799 Server side daemon and driver required to manage the virtualization
800 capabilities of the QEMU TCG emulators
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}
818 %description daemon
-kvm
819 Server side daemon and driver required to manage the virtualization
820 capabilities of the KVM hypervisor
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
845 Summary: Server side daemon
& driver required to run XEN guests
847 Requires: libvirt
-daemon
= %{version}-%{release}
849 Requires: libvirt
-daemon
-driver
-libxl
= %{version}-%{release}
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}
859 %description daemon
-xen
860 Server side daemon and driver required to manage the virtualization
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
883 Summary: Client side utilities of the libvirt library
884 Requires: %{name}-libs = %{version}-%{release}
887 # Needed by /usr/libexec/libvirt-guests.sh script.
889 # Needed by virt-pki-validate script.
890 Requires: gnutls
-utils
891 %if %{with_bash_completion}
892 Requires: %{name}-bash-completion = %{version}-%{release}
896 The client binaries needed to access the virtualization
897 capabilities of recent versions of Linux
(and other OSes
).
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)
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
910 Shared libraries
for accessing the libvirt daemon.
913 Summary: Set of tools to control libvirt daemon
914 Requires: %{name}-libs = %{version}-%{release}
916 %if %{with_bash_completion}
917 Requires: %{name}-bash-completion = %{version}-%{release}
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.
931 %if %{with_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.
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
953 Summary: Libraries
, includes
, etc. to compile with the libvirt library
954 Requires: %{name}-libs = %{version}-%{release}
958 Include header files
& development libraries
for the libvirt C library.
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
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
975 Summary: Libvirt plugin
for Name Service Switch
976 Requires: libvirt
-daemon
-driver
-network
= %{version}-%{release}
979 Libvirt plugin
for NSS
for translating domain names into IP addresses.
987 %if ! %{supported_platform}
988 echo "This RPM requires either Fedora
>= %{min_fedora} or RHEL >= %{min_rhel}"
993 %define arg_qemu
--with
-qemu
995 %define arg_qemu
--without
-qemu
999 %define arg_openvz
--with
-openvz
1001 %define arg_openvz
--without
-openvz
1005 %define arg_lxc
--with
-lxc
1006 %define arg_login_shell
--with
-login
-shell
1008 %define arg_lxc
--without
-lxc
1009 %define arg_login_shell
--without
-login
-shell
1013 %define arg_vbox
--with
-vbox
1015 %define arg_vbox
--without
-vbox
1019 %define arg_libxl
--with
-libxl
1021 %define arg_libxl
--without
-libxl
1025 %define arg_phyp
--with
-phyp
1027 %define arg_phyp
--without
-phyp
1031 %define arg_esx
--with
-esx
1033 %define arg_esx
--without
-esx
1037 %define arg_hyperv
--with
-hyperv
1039 %define arg_hyperv
--without
-hyperv
1043 %define arg_vmware
--with
-vmware
1045 %define arg_vmware
--without
-vmware
1048 %if %{with_storage_rbd}
1049 %define arg_storage_rbd
--with
-storage
-rbd
1051 %define arg_storage_rbd
--without
-storage
-rbd
1054 %if %{with_storage_sheepdog}
1055 %define arg_storage_sheepdog
--with
-storage
-sheepdog
1057 %define arg_storage_sheepdog
--without
-storage
-sheepdog
1060 %if %{with_storage_gluster}
1061 %define arg_storage_gluster
--with
-storage
-gluster
1063 %define arg_storage_gluster
--without
-storage
-gluster
1066 %if %{with_storage_zfs}
1067 %define arg_storage_zfs
--with
-storage
-zfs
1069 %define arg_storage_zfs
--without
-storage
-zfs
1073 %define arg_numactl
--with
-numactl
1075 %define arg_numactl
--without
-numactl
1079 %define arg_numad
--with
-numad
1081 %define arg_numad
--without
-numad
1085 %define arg_fuse
--with
-fuse
1087 %define arg_fuse
--without
-fuse
1091 %define arg_sanlock
--with
-sanlock
1093 %define arg_sanlock
--without
-sanlock
1096 %if %{with_firewalld}
1097 %define arg_firewalld
--with
-firewalld
1099 %define arg_firewalld
--without
-firewalld
1102 %if %{with_firewalld_zone}
1103 %define arg_firewalld_zone
--with
-firewalld
-zone
1105 %define arg_firewalld_zone
--without
-firewalld
-zone
1108 %if %{with_wireshark}
1109 %define arg_wireshark
--with
-wireshark
-dissector
1111 %define arg_wireshark
--without
-wireshark
-dissector
1114 %if %{with_storage_iscsi_direct}
1115 %define arg_storage_iscsi_direct
--with
-storage
-iscsi
-direct
1117 %define arg_storage_iscsi_direct
--without
-storage
-iscsi
-direct
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"
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"
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"
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"
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}
1158 %configure %{?arg_qemu} \
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 \
1193 %{?arg_selinux_mount} \
1194 --without
-apparmor \
1203 --with
-driver
-modules \
1205 %{?arg_firewalld_zone} \
1207 --without
-pm
-utils \
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} \
1216 --enable-expensive
-tests \
1217 --with
-init
-script
=systemd \
1219 make %{?_smp_mflags} V
=1
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
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
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
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
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
1280 rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/libvirt
/qemu.conf
1281 rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/logrotate.d
/libvirtd.qemu
1284 rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/libvirt
/lxc.conf
1285 rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/logrotate.d
/libvirtd.lxc
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
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
1302 mv $RPM_BUILD_ROOT
%{_datadir}/systemtap
/tapset
/libvirt_qemu_probes.stp \
1303 $RPM_BUILD_ROOT
%{_datadir}/systemtap
/tapset
/libvirt_qemu_probes
-64.stp
1309 # These tests don't current work in a mock build root
1310 for i
in nodeinfotest seclabeltest
1313 printf 'int main
(void
) { return 0; }'
> $i.c
1314 printf '
#!/bin/sh\nexit 0\n' > $i
1317 if ! make %{?_smp_mflags} check VIR_TEST_DEBUG
=1
1319 cat
test-suite.log || true
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
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 ||
:
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
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
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 ||
:
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}
1403 %postun daemon
-driver
-network
1404 %if %{with_firewalld_zone}
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.
1419 routes
="$
{nl
}$
(ip route show | cut
-d' '
-f1
)$
{nl
}"
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
1425 *"$
{nl
}192.168.$
{new_sub
}.0/24$
{nl
}"
*)
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 ||
:
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
1484 useradd
-r
-g qemu
-G kvm
-d
/ -s
/sbin
/nologin
-c "qemu user" qemu
1492 %systemd_preun libvirt
-guests.service
1495 %systemd_post libvirt
-guests.service
1498 %systemd_postun libvirt
-guests.service
1502 getent group virtlogin
>/dev
/null || groupadd
-r virtlogin
1509 %doc AUTHORS ChangeLog.gz NEWS README README.md
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
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
1570 %{_datadir}/augeas
/lenses
/tests
/test_libvirt_lockd.aug
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
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
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
1663 %if %{with_storage_rbd}
1664 %files daemon
-driver
-storage
-rbd
1665 %{_libdir}/%{name}/storage
-backend
/libvirt_storage_backend_rbd.so
1668 %if %{with_storage_sheepdog}
1669 %files daemon
-driver
-storage
-sheepdog
1670 %{_libdir}/%{name}/storage
-backend
/libvirt_storage_backend_sheepdog.so
1673 %if %{with_storage_zfs}
1674 %files daemon
-driver
-storage
-zfs
1675 %{_libdir}/%{name}/storage
-backend
/libvirt_storage_backend_zfs.so
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
/
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
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
1722 %files daemon
-driver
-vbox
1723 %{_libdir}/%{name}/connection
-driver
/libvirt_driver_vbox.so
1726 %if %{with_qemu_tcg}
1730 %if %{with_qemu_kvm}
1749 %config(noreplace
) %{_sysconfdir}/libvirt
/qemu
-sanlock.conf
1752 %config(noreplace
) %{_sysconfdir}/libvirt
/libxl
-sanlock.conf
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
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*
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
1776 %{_datadir}/systemtap
/tapset
/libvirt_qemu_probes
*.stp
1779 %if %{with_bash_completion}
1780 %{_datadir}/bash
-completion
/completions
/virsh
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
1827 %{_mandir}/man1
/virt
-admin
.1*
1828 %{_bindir}/virt
-admin
1829 %if %{with_bash_completion}
1830 %{_datadir}/bash
-completion
/completions
/virt
-admin
1833 %if %{with_bash_completion}
1834 %files bash
-completion
1835 %{_datadir}/bash
-completion
/completions
/vsh
1838 %if %{with_wireshark}
1840 %{wireshark_plugindir}/libvirt.so
1844 %{_libdir}/libnss_libvirt.so
.2
1845 %{_libdir}/libnss_libvirt_guest.so
.2
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*
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