libvirt.spec.in 61.7 KB
Newer Older
1 2
# -*- rpm-spec -*-

3 4 5
# This spec file assumes you are building on a Fedora or RHEL version
# that's still supported by the vendor: that means Fedora 23 or newer,
# or RHEL 6 or newer. It may need some tweaks for other distros.
6
# If neither fedora nor rhel was defined, try to guess them from dist
7
%if (0%{?fedora} && 0%{?fedora} >= 23) || (0%{?rhel} && 0%{?rhel} >= 6)
8
    %define supported_platform 1
9
%else
10
    %define supported_platform 0
11 12
%endif

13 14 15
# Default to skipping autoreconf.  Distros can change just this one line
# (or provide a command-line override) if they backport any patches that
# touch configure.ac or Makefile.am.
16
%{!?enable_autotools:%global enable_autotools 0}
17

18
# The hypervisor drivers that run in libvirtd
19 20 21 22 23 24
%define with_xen           0%{!?_without_xen:1}
%define with_qemu          0%{!?_without_qemu:1}
%define with_lxc           0%{!?_without_lxc:1}
%define with_uml           0%{!?_without_uml:1}
%define with_libxl         0%{!?_without_libxl:1}
%define with_vbox          0%{!?_without_vbox:1}
25

26
%define with_qemu_tcg      %{with_qemu}
27 28 29 30

%define qemu_kvm_arches %{ix86} x86_64

%if 0%{?fedora}
31
    %define qemu_kvm_arches %{ix86} x86_64 %{power64} s390x %{arm} aarch64
32 33 34 35 36
%endif

%if 0%{?rhel}
    %define with_qemu_tcg 0
    %define qemu_kvm_arches x86_64
37
    %if 0%{?rhel} >= 7
38
        %define qemu_kvm_arches x86_64 %{power64} aarch64 s390x
39
    %endif
40 41 42
%endif

%ifarch %{qemu_kvm_arches}
43
    %define with_qemu_kvm      %{with_qemu}
44
%else
45
    %define with_qemu_kvm      0
46 47
%endif

48 49 50 51
%if ! %{with_qemu_tcg} && ! %{with_qemu_kvm}
    %define with_qemu 0
%endif

52 53 54
# Then the hypervisor drivers that run outside libvirtd, in libvirt.so
%define with_openvz        0%{!?_without_openvz:1}
%define with_vmware        0%{!?_without_vmware:1}
55 56
%define with_phyp          0%{!?_without_phyp:1}
%define with_esx           0%{!?_without_esx:1}
57
%define with_hyperv        0%{!?_without_hyperv:1}
58

59
# Then the secondary host drivers, which run inside libvirtd
60
%if 0%{?fedora} || 0%{?rhel} >= 7
61
    %define with_storage_rbd      0%{!?_without_storage_rbd:1}
62
%else
63
    %define with_storage_rbd      0
64
%endif
65
%if 0%{?fedora}
66
    %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:1}
67
%else
68
    %define with_storage_sheepdog 0
69
%endif
70 71
%define with_storage_gluster 0%{!?_without_storage_gluster:1}
%define with_numactl          0%{!?_without_numactl:1}
72

73 74 75 76 77 78 79
# F25+ has zfs-fuse
%if 0%{?fedora} >= 25
    %define with_storage_zfs      0%{!?_without_storage_zfs:1}
%else
    %define with_storage_zfs      0
%endif

80
# A few optional bits off by default, we enable later
81
%define with_fuse          0%{!?_without_fuse:0}
82
%define with_cgconfig      0%{!?_without_cgconfig:0}
83
%define with_sanlock       0%{!?_without_sanlock:0}
84
%define with_systemd       0%{!?_without_systemd:0}
85
%define with_numad         0%{!?_without_numad:0}
86
%define with_firewalld     0%{!?_without_firewalld:0}
87
%define with_libssh2       0%{!?_without_libssh2:0}
88
%define with_wireshark     0%{!?_without_wireshark:0}
89
%define with_libssh        0%{!?_without_libssh:0}
90
%define with_pm_utils      1
91

92 93
# Finally set the OS / architecture specific special cases

94
# Xen is available only on i386 x86_64 ia64
P
Peter Robinson 已提交
95
%ifnarch %{ix86} x86_64 ia64
96 97
    %define with_xen 0
    %define with_libxl 0
98 99
%endif

100 101 102 103 104
# vbox is available only on i386 x86_64
%ifnarch %{ix86} x86_64
    %define with_vbox 0
%endif

105 106
# Numactl is not available on s390[x] and ARM
%ifarch s390 s390x %{arm}
107
    %define with_numactl 0
D
Daniel P. Berrange 已提交
108
%endif
109

110 111
# libgfapi is built only on x86_64 on rhel
%ifnarch x86_64
112
    %if 0%{?rhel}
113 114 115 116
        %define with_storage_gluster 0
    %endif
%endif

117 118 119 120 121 122 123
# librados and librbd are built only on x86_64 on rhel
%ifnarch x86_64
    %if 0%{?rhel} >= 7
        %define with_storage_rbd 0
    %endif
%endif

124 125 126 127 128 129
# zfs-fuse is not available on some architectures
%ifarch s390 s390x aarch64
    %define with_storage_zfs 0
%endif


130
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
J
Ján Tomko 已提交
131
# VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
132
# or HyperV.
133
%if 0%{?rhel}
134 135 136 137 138 139 140 141
    %define with_openvz 0
    %define with_vbox 0
    %define with_uml 0
    %define with_phyp 0
    %define with_vmware 0
    %define with_xenapi 0
    %define with_libxl 0
    %define with_hyperv 0
142
    %define with_vz 0
143 144
%endif

145 146
# Fedora 17 / RHEL-7 are first where we use systemd. Although earlier
# Fedora has systemd, libvirt still used sysvinit there.
147
%if 0%{?fedora} || 0%{?rhel} >= 7
148
    %define with_systemd 1
149
    %define with_pm_utils 0
150 151
%endif

152
# Fedora 18 / RHEL-7 are first where firewalld support is enabled
153
%if 0%{?fedora} || 0%{?rhel} >= 7
154
    %define with_firewalld 1
155 156
%endif

157
# RHEL-6 stopped including Xen on all archs.
158
%if 0%{?rhel}
159
    %define with_xen 0
160 161
%endif

162
# fuse is used to provide virtualized /proc for LXC
163
%if 0%{?fedora} || 0%{?rhel} >= 7
164
    %define with_fuse      0%{!?_without_fuse:1}
165 166
%endif

167
# Enable sanlock library for lock management with QEMU
168
# Sanlock is available only on arches where kvm is available for RHEL
169
%if 0%{?fedora}
170
    %define with_sanlock 0%{!?_without_sanlock:1}
E
Eric Blake 已提交
171
%endif
172
%if 0%{?rhel}
173
    %ifarch %{qemu_kvm_arches}
174
        %define with_sanlock 0%{!?_without_sanlock:1}
175
    %endif
176 177
%endif

178
# Enable libssh2 transport for new enough distros
179
%if 0%{?fedora}
180
    %define with_libssh2 0%{!?_without_libssh2:1}
181 182
%endif

183
# Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
184
%if 0%{?fedora}
185 186 187
    %define with_wireshark 0%{!?_without_wireshark:1}
%endif

188 189 190 191 192
# Enable libssh transport for new enough distros
%if 0%{?fedora}
    %define with_libssh 0%{!?_without_libssh:1}
%endif

193

194
%if %{with_qemu} || %{with_lxc} || %{with_uml}
195
# numad is used to manage the CPU and memory placement dynamically,
196
# it's not available on s390[x] and ARM.
197
    %ifnarch s390 s390x %{arm}
198
        %define with_numad    0%{!?_without_numad:1}
199
    %endif
200 201
%endif

202
# Pull in cgroups config system
203 204
%if %{with_qemu} || %{with_lxc}
    %define with_cgconfig 0%{!?_without_cgconfig:1}
205 206
%endif

207
# Force QEMU to run as non-root
208 209
%define qemu_user  qemu
%define qemu_group  qemu
210

211

212
%if 0%{?fedora} || 0%{?rhel} >= 7
213
    %define with_systemd_macros 1
214
%else
215
    %define with_systemd_macros 0
216 217 218
%endif


219 220 221 222 223
# RHEL releases provide stable tool chains and so it is safe to turn
# compiler warning into errors without being worried about frequent
# changes in reported warnings
%if 0%{?rhel}
    %define enable_werror --enable-werror
J
Jiri Denemark 已提交
224
%else
225
    %define enable_werror --disable-werror
226 227
%endif

228 229
%if 0%{?fedora} >= 25
    %define tls_priority "@LIBVIRT,SYSTEM"
230
%else
231
    %if 0%{?fedora}
232 233 234 235
        %define tls_priority "@SYSTEM"
    %else
        %define tls_priority "NORMAL"
    %endif
236 237
%endif

238

C
Cole Robinson 已提交
239
Summary: Library providing a simple virtualization API
240
Name: libvirt
241
Version: @VERSION@
242
Release: 1%{?dist}%{?extra_release}
243
License: LGPLv2+
244
Group: Development/Libraries
245
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
246
URL: https://libvirt.org/
247

248
%if %(echo %{version} | grep -q "\.0$"; echo $?) == 1
249
    %define mainturl stable_updates/
250
%endif
251
Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
252

253 254 255
Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-daemon-config-network = %{version}-%{release}
Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
256
%if %{with_libxl}
257
Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
258 259
%endif
%if %{with_lxc}
260
Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
261 262
%endif
%if %{with_qemu}
263
Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
264 265
%endif
%if %{with_uml}
266
Requires: libvirt-daemon-driver-uml = %{version}-%{release}
267 268
%endif
%if %{with_xen}
269
Requires: libvirt-daemon-driver-xen = %{version}-%{release}
270 271
%endif
%if %{with_vbox}
272
Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
273
%endif
274
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
275 276 277 278 279 280

Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
281
Requires: libvirt-client = %{version}-%{release}
M
Michal Privoznik 已提交
282
Requires: libvirt-libs = %{version}-%{release}
283

284 285
# All build-time requirements. Run-time requirements are
# listed against each sub-RPM
286 287 288 289 290
%if 0%{?enable_autotools}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-devel
BuildRequires: libtool
291
BuildRequires: /usr/bin/pod2man
292
%endif
293
BuildRequires: git
294 295 296
%if 0%{?fedora} >= 27
BuildRequires: perl-interpreter
%else
297
BuildRequires: perl
298
%endif
D
Daniel P. Berrange 已提交
299
BuildRequires: python
300 301 302
%if %{with_systemd}
BuildRequires: systemd-units
%endif
303
%if %{with_xen} || %{with_libxl}
304
BuildRequires: xen-devel
305
%endif
306
BuildRequires: libxml2-devel
E
Eric Blake 已提交
307
BuildRequires: libxslt
308
BuildRequires: readline-devel
309
BuildRequires: ncurses-devel
310
BuildRequires: gettext
311
BuildRequires: libtasn1-devel
312
%if (0%{?rhel} && 0%{?rhel} < 7)
313
BuildRequires: libgcrypt-devel
314
%endif
R
Richard W.M. Jones 已提交
315
BuildRequires: gnutls-devel
316
BuildRequires: libattr-devel
317 318
# For pool-build probing for existing pools
BuildRequires: libblkid-devel >= 2.17
E
Eric Blake 已提交
319 320
# for augparse, optionally used in testing
BuildRequires: augeas
321
%if 0%{?fedora} || 0%{?rhel} >= 7
322
BuildRequires: systemd-devel >= 185
323
%else
324 325
BuildRequires: libudev-devel >= 145
%endif
326
BuildRequires: libpciaccess-devel >= 0.10.9
327
BuildRequires: yajl-devel
328
%if %{with_sanlock}
329 330
BuildRequires: sanlock-devel >= 2.4
%endif
331
BuildRequires: libpcap-devel
332 333 334
%if 0%{?rhel} && 0%{?rhel} < 7
BuildRequires: libnl-devel
%else
335
BuildRequires: libnl3-devel
336
%endif
337
BuildRequires: avahi-devel
338
BuildRequires: libselinux-devel
339
BuildRequires: dnsmasq >= 2.41
E
Eric Blake 已提交
340
BuildRequires: iptables
341
%if 0%{?rhel} && 0%{?rhel} < 7
E
Eric Blake 已提交
342 343
BuildRequires: iptables-ipv6
%endif
344
BuildRequires: radvd
E
Eric Blake 已提交
345 346
BuildRequires: ebtables
BuildRequires: module-init-tools
347
BuildRequires: cyrus-sasl-devel
348
%if 0%{?fedora} || 0%{?rhel} >= 7
C
Cole Robinson 已提交
349 350
# F22 polkit-devel doesn't pull in polkit anymore, which we need for pkcheck
BuildRequires: polkit >= 0.112
351
BuildRequires: polkit-devel >= 0.112
352
%else
E
Eric Blake 已提交
353
BuildRequires: polkit-devel >= 0.93
354
%endif
355 356 357
# For mount/umount in FS driver
BuildRequires: util-linux
%if %{with_qemu}
358 359
# For managing ACLs
BuildRequires: libacl-devel
360 361 362
# From QEMU RPMs
BuildRequires: /usr/bin/qemu-img
%else
363
    %if %{with_xen}
364 365
# From Xen RPMs
BuildRequires: /usr/sbin/qcow-create
366
    %endif
367
%endif
368 369
# For LVM drivers
BuildRequires: lvm2
370 371
# For ISCSI driver
BuildRequires: iscsi-initiator-utils
372 373
# For disk driver
BuildRequires: parted-devel
374 375
# For Multipath support
BuildRequires: device-mapper-devel
376
%if %{with_storage_rbd}
377
    %if 0%{?fedora} || 0%{?rhel} >= 7
378 379 380
BuildRequires: librados2-devel
BuildRequires: librbd1-devel
    %else
381
BuildRequires: ceph-devel
382
    %endif
383
%endif
384 385 386 387
%if %{with_storage_gluster}
BuildRequires: glusterfs-api-devel >= 3.4.1
BuildRequires: glusterfs-devel >= 3.4.1
%endif
388 389 390
%if %{with_storage_sheepdog}
BuildRequires: sheepdog
%endif
391 392 393 394 395 396
%if %{with_storage_zfs}
# Support any conforming implementation of zfs. On stock Fedora
# this is zfs-fuse, but could be zfsonlinux upstream RPMs
BuildRequires: /sbin/zfs
BuildRequires: /sbin/zpool
%endif
397
%if %{with_numactl}
398 399
# For QEMU/LXC numa info
BuildRequires: numactl-devel
400
%endif
401
BuildRequires: libcap-ng-devel >= 0.5.0
402 403 404
%if %{with_fuse}
BuildRequires: fuse-devel >= 2.8.6
%endif
405
%if %{with_phyp} || %{with_libssh2}
406 407
BuildRequires: libssh2-devel >= 1.3.0
%endif
408

409
%if 0%{?fedora} || 0%{?rhel} >= 7
410
BuildRequires: netcf-devel >= 0.2.2
411
%else
412
BuildRequires: netcf-devel >= 0.1.8
413
%endif
414 415 416
%if %{with_esx}
BuildRequires: libcurl-devel
%endif
417 418 419
%if %{with_hyperv}
BuildRequires: libwsman-devel >= 2.2.3
%endif
420
BuildRequires: audit-libs-devel
D
Daniel Veillard 已提交
421 422 423
# we need /usr/sbin/dtrace
BuildRequires: systemtap-sdt-devel

424 425 426 427
# For mount/umount in FS driver
BuildRequires: util-linux
# For showmount in FS driver (netfs discovery)
BuildRequires: nfs-utils
428

429
# Communication with the firewall and polkit daemons use DBus
430 431
BuildRequires: dbus-devel

432 433
# Fedora build root suckage
BuildRequires: gawk
434

435 436 437
# For storage wiping with different algorithms
BuildRequires: scrub

438 439 440 441
%if %{with_numad}
BuildRequires: numad
%endif

442
%if %{with_wireshark}
443
    %if 0%{fedora} >= 24
444
BuildRequires: wireshark-devel >= 2.1.0
445
    %else
446
BuildRequires: wireshark-devel >= 1.12.1
447
    %endif
448 449
%endif

450 451 452 453
%if %{with_libssh}
BuildRequires: libssh-devel >= 0.7.0
%endif

454 455
Provides: bundled(gnulib)

456
%description
457
Libvirt is a C toolkit to interact with the virtualization capabilities
458 459 460
of recent versions of Linux (and other OSes). The main package includes
the libvirtd server exporting the virtualization support.

461 462 463 464 465 466 467 468
%package docs
Summary: API reference and website documentation
Group: Development/Libraries

%description docs
Includes the API reference for the libvirt C library, and a complete
copy of the libvirt.org website documentation.

469 470 471 472 473 474 475
%package daemon
Summary: Server side daemon and supporting files for libvirt library
Group: Development/Libraries

# All runtime requirements for the libvirt package (runtime requrements
# for subpackages are listed later in those subpackages)

M
Michal Privoznik 已提交
476 477
# The client side, i.e. shared libs are in a subpackage
Requires: %{name}-libs = %{version}-%{release}
478 479 480 481 482 483

# for modprobe of pci devices
Requires: module-init-tools
# for /sbin/ip & /sbin/tc
Requires: iproute
Requires: avahi-libs
484
%if 0%{?fedora} || 0%{?rhel} >= 7
485
Requires: polkit >= 0.112
486
%else
E
Eric Blake 已提交
487
Requires: polkit >= 0.93
488 489
%endif
%if %{with_cgconfig}
490
Requires: libcgroup
491 492
%endif
%ifarch %{ix86} x86_64 ia64
493 494
# For virConnectGetSysinfo
Requires: dmidecode
495
%endif
496
# For service management
497
%if %{with_systemd}
498 499 500 501
Requires(post): systemd-units
Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
502 503
%endif
%if %{with_numad}
504
Requires: numad
505
%endif
506 507
# libvirtd depends on 'messagebus' service
Requires: dbus
508 509
# For uid creation during pre
Requires(pre): shadow-utils
510 511 512 513 514 515 516 517 518 519 520

%description daemon
Server side daemon required to manage the virtualization capabilities
of recent versions of Linux. Requires a hypervisor specific sub-RPM
for specific drivers.

%package daemon-config-network
Summary: Default configuration files for the libvirtd daemon
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
521
Requires: libvirt-daemon-driver-network = %{version}-%{release}
522 523 524 525 526 527 528 529 530

%description daemon-config-network
Default configuration files for setting up NAT based networking

%package daemon-config-nwfilter
Summary: Network filter configuration files for the libvirtd daemon
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
531
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
532 533 534

%description daemon-config-nwfilter
Network filter configuration files for cleaning guest traffic
535

536 537 538 539
%package daemon-driver-network
Summary: Network driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
540 541 542
Requires: dnsmasq >= 2.41
Requires: radvd
Requires: iptables
543
%if 0%{?rhel} && 0%{?rhel} < 7
544
Requires: iptables-ipv6
545
%endif
546 547 548 549 550 551 552 553 554 555 556

%description daemon-driver-network
The network driver plugin for the libvirtd daemon, providing
an implementation of the virtual network APIs using the Linux
bridge capabilities.


%package daemon-driver-nwfilter
Summary: Nwfilter driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
557
Requires: iptables
558
%if 0%{?rhel} && 0%{?rhel} < 7
559
Requires: iptables-ipv6
560
%endif
561
Requires: ebtables
562 563 564 565 566 567 568 569 570 571 572

%description daemon-driver-nwfilter
The nwfilter driver plugin for the libvirtd daemon, providing
an implementation of the firewall APIs using the ebtables,
iptables and ip6tables capabilities


%package daemon-driver-nodedev
Summary: Nodedev driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
573
# needed for device enumeration
574
%if 0%{?fedora} || 0%{?rhel} >= 7
575
Requires: systemd >= 185
576
%else
577
Requires: udev >= 145
578
%endif
579 580 581 582 583 584 585 586 587 588 589

%description daemon-driver-nodedev
The nodedev driver plugin for the libvirtd daemon, providing
an implementation of the node device APIs using the udev
capabilities.


%package daemon-driver-interface
Summary: Interface driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
590
%if (0%{?fedora} || 0%{?rhel} >= 7)
591
Requires: netcf-libs >= 0.2.2
592
%endif
593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608

%description daemon-driver-interface
The interface driver plugin for the libvirtd daemon, providing
an implementation of the network interface APIs using the
netcf library


%package daemon-driver-secret
Summary: Secret driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}

%description daemon-driver-secret
The secret driver plugin for the libvirtd daemon, providing
an implementation of the secret key APIs.

609 610
%package daemon-driver-storage-core
Summary: Storage driver plugin including base backends for the libvirtd daemon
611 612
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
613 614 615
Requires: nfs-utils
# For mkfs
Requires: util-linux
616
%if %{with_qemu}
617 618
# From QEMU RPMs
Requires: /usr/bin/qemu-img
619 620
%else
    %if %{with_xen}
621 622
# From Xen RPMs
Requires: /usr/sbin/qcow-create
623
    %endif
624
%endif
625

626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728
%description daemon-driver-storage-core
The storage driver plugin for the libvirtd daemon, providing
an implementation of the storage APIs using files, local disks, LVM, SCSI,
iSCSI, and multipath storage.

%package daemon-driver-storage-logical
Summary: Storage driver plugin for lvm volumes
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: lvm2

%description daemon-driver-storage-logical
The storage driver backend adding implementation of the storage APIs for block
volumes using lvm.


%package daemon-driver-storage-disk
Summary: Storage driver plugin for disk
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: parted
Requires: device-mapper

%description daemon-driver-storage-disk
The storage driver backend adding implementation of the storage APIs for block
volumes using the host disks.


%package daemon-driver-storage-scsi
Summary: Storage driver plugin for local scsi devices
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}

%description daemon-driver-storage-scsi
The storage driver backend adding implementation of the storage APIs for scsi
host devices.


%package daemon-driver-storage-iscsi
Summary: Storage driver plugin for iscsi
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: iscsi-initiator-utils

%description daemon-driver-storage-iscsi
The storage driver backend adding implementation of the storage APIs for iscsi
volumes using the host iscsi stack.


%package daemon-driver-storage-mpath
Summary: Storage driver plugin for multipath volumes
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: device-mapper

%description daemon-driver-storage-mpath
The storage driver backend adding implementation of the storage APIs for
multipath storage using device mapper.


%if %{with_storage_gluster}
%package daemon-driver-storage-gluster
Summary: Storage driver plugin for gluster
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
    %if 0%{?fedora}
Requires: glusterfs-client >= 2.0.1
    %endif
    %if (0%{?fedora} || 0%{?with_storage_gluster})
Requires: /usr/sbin/gluster
    %endif

%description daemon-driver-storage-gluster
The storage driver backend adding implementation of the storage APIs for gluster
volumes using libgfapi.
%endif


%if %{with_storage_rbd}
%package daemon-driver-storage-rbd
Summary: Storage driver plugin for rbd
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}

%description daemon-driver-storage-rbd
The storage driver backend adding implementation of the storage APIs for rbd
volumes using the ceph protocol.
%endif


%if %{with_storage_sheepdog}
%package daemon-driver-storage-sheepdog
Summary: Storage driver plugin for sheepdog
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: sheepdog

%description daemon-driver-storage-sheepdog
The storage driver backend adding implementation of the storage APIs for
sheepdog volumes using.
%endif


729 730 731 732 733 734 735 736 737 738 739 740 741 742 743
%if %{with_storage_zfs}
%package daemon-driver-storage-zfs
Summary: Storage driver plugin for ZFS
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
# Support any conforming implementation of zfs
Requires: /sbin/zfs
Requires: /sbin/zpool

%description daemon-driver-storage-zfs
The storage driver backend adding implementation of the storage APIs for
ZFS volumes.
%endif


744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761
%package daemon-driver-storage
Summary: Storage driver plugin including all backends for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
Requires: libvirt-daemon-driver-storage-disk = %{version}-%{release}
Requires: libvirt-daemon-driver-storage-logical = %{version}-%{release}
Requires: libvirt-daemon-driver-storage-scsi = %{version}-%{release}
Requires: libvirt-daemon-driver-storage-iscsi = %{version}-%{release}
Requires: libvirt-daemon-driver-storage-mpath = %{version}-%{release}
%if %{with_storage_gluster}
Requires: libvirt-daemon-driver-storage-gluster = %{version}-%{release}
%endif
%if %{with_storage_rbd}
Requires: libvirt-daemon-driver-storage-rbd = %{version}-%{release}
%endif
%if %{with_storage_sheepdog}
Requires: libvirt-daemon-driver-storage-sheepdog = %{version}-%{release}
%endif
762 763 764
%if %{with_storage_zfs}
Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
%endif
765

766 767 768 769 770 771
%description daemon-driver-storage
The storage driver plugin for the libvirtd daemon, providing
an implementation of the storage APIs using LVM, iSCSI,
parted and more.


772
%if %{with_qemu}
773
%package daemon-driver-qemu
P
Philipp Hahn 已提交
774
Summary: QEMU driver plugin for the libvirtd daemon
775 776 777
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
# There really is a hard cross-driver dependency here
778
Requires: libvirt-daemon-driver-network = %{version}-%{release}
779
Requires: libvirt-daemon-driver-storage-core = %{version}-%{release}
780 781 782 783 784 785
Requires: /usr/bin/qemu-img
# For image compression
Requires: gzip
Requires: bzip2
Requires: lzop
Requires: xz
A
Andrea Bolognani 已提交
786
    %if 0%{?fedora} >= 24
787
Requires: systemd-container
A
Andrea Bolognani 已提交
788
    %endif
789 790 791 792 793

%description daemon-driver-qemu
The qemu driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
QEMU
794
%endif
795 796


797
%if %{with_lxc}
798 799 800 801 802
%package daemon-driver-lxc
Summary: LXC driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}
# There really is a hard cross-driver dependency here
803
Requires: libvirt-daemon-driver-network = %{version}-%{release}
A
Andrea Bolognani 已提交
804
    %if 0%{?fedora} >= 24
805
Requires: systemd-container
A
Andrea Bolognani 已提交
806
    %endif
807 808 809 810 811

%description daemon-driver-lxc
The LXC driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
the Linux kernel
812
%endif
813 814


815
%if %{with_uml}
816 817 818 819 820 821 822 823 824
%package daemon-driver-uml
Summary: Uml driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}

%description daemon-driver-uml
The UML driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
User Mode Linux
825
%endif
826 827


828
%if %{with_xen}
829 830 831 832 833 834 835 836 837
%package daemon-driver-xen
Summary: Xen driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}

%description daemon-driver-xen
The Xen driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
Xen
838
%endif
839 840


841
%if %{with_vbox}
842 843 844 845 846 847 848 849 850
%package daemon-driver-vbox
Summary: VirtualBox driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}

%description daemon-driver-vbox
The vbox driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
VirtualBox
851
%endif
852 853


854
%if %{with_libxl}
855 856 857 858 859 860 861 862 863
%package daemon-driver-libxl
Summary: Libxl driver plugin for the libvirtd daemon
Group: Development/Libraries
Requires: libvirt-daemon = %{version}-%{release}

%description daemon-driver-libxl
The Libxl driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
Libxl
864
%endif
865 866


867

868
%if %{with_qemu_tcg}
869 870 871 872 873
%package daemon-qemu
Summary: Server side daemon & driver required to run QEMU guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
874 875 876 877
Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
878
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
879 880
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
881 882 883 884 885
Requires: qemu

%description daemon-qemu
Server side daemon and driver required to manage the virtualization
capabilities of the QEMU TCG emulators
886
%endif
887 888


889
%if %{with_qemu_kvm}
890 891 892 893 894
%package daemon-kvm
Summary: Server side daemon & driver required to run KVM guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
895 896 897 898
Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
899
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
900 901
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
902 903 904 905 906
Requires: qemu-kvm

%description daemon-kvm
Server side daemon and driver required to manage the virtualization
capabilities of the KVM hypervisor
907
%endif
908 909


910
%if %{with_lxc}
911 912 913 914 915
%package daemon-lxc
Summary: Server side daemon & driver required to run LXC guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
916 917 918 919
Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
920
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
921 922
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
923 924 925 926

%description daemon-lxc
Server side daemon and driver required to manage the virtualization
capabilities of LXC
927
%endif
928 929


930
%if %{with_uml}
931 932 933 934 935
%package daemon-uml
Summary: Server side daemon & driver required to run UML guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
936 937 938 939
Requires: libvirt-daemon-driver-uml = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
940
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
941 942
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
943 944 945 946 947
# There are no UML kernel RPMs in Fedora/RHEL to depend on.

%description daemon-uml
Server side daemon and driver required to manage the virtualization
capabilities of UML
948
%endif
949 950


951
%if %{with_xen} || %{with_libxl}
952 953 954 955 956
%package daemon-xen
Summary: Server side daemon & driver required to run XEN guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
957
    %if %{with_xen}
958
Requires: libvirt-daemon-driver-xen = %{version}-%{release}
959 960
    %endif
    %if %{with_libxl}
961
Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
962
    %endif
963 964 965
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
966
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
967 968
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
969 970 971 972 973
Requires: xen

%description daemon-xen
Server side daemon and driver required to manage the virtualization
capabilities of XEN
974
%endif
975

976
%if %{with_vbox}
977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992
%package daemon-vbox
Summary: Server side daemon & driver required to run VirtualBox guests
Group: Development/Libraries

Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}

%description daemon-vbox
Server side daemon and driver required to manage the virtualization
capabilities of VirtualBox
993
%endif
994

995
%package client
M
Michal Privoznik 已提交
996
Summary: Client side utilities of the libvirt library
997
Group: Development/Libraries
M
Michal Privoznik 已提交
998
Requires: %{name}-libs = %{version}-%{release}
999 1000
Requires: readline
Requires: ncurses
E
Eric Blake 已提交
1001
# Needed by /usr/libexec/libvirt-guests.sh script.
O
Osier Yang 已提交
1002
Requires: gettext
1003 1004
# Needed by virt-pki-validate script.
Requires: gnutls-utils
1005
%if %{with_pm_utils}
1006 1007
# Needed for probing the power management features of the host.
Requires: pm-utils
1008
%endif
M
Michal Privoznik 已提交
1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019

%description client
The client binaries needed to access the virtualization
capabilities of recent versions of Linux (and other OSes).

%package libs
Summary: Client side libraries
Group: Development/Libraries
# So remote clients can access libvirt over SSH tunnel
# (client invokes 'nc' against the UNIX socket on the server)
Requires: nc
1020
Requires: cyrus-sasl
1021 1022 1023
# Needed by default sasl.conf - no onerous extra deps, since
# 100's of other things on a system already pull in krb5-libs
Requires: cyrus-sasl-gssapi
1024

M
Michal Privoznik 已提交
1025 1026
%description libs
Shared libraries for accessing the libvirt daemon.
1027

1028 1029 1030 1031 1032 1033 1034 1035 1036
%package admin
Summary: Set of tools to control libvirt daemon
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: readline

%description admin
The client side utilities to control the libvirt daemon.

1037 1038 1039 1040
%if %{with_wireshark}
%package wireshark
Summary: Wireshark dissector plugin for libvirt RPC transactions
Group: Development/Libraries
1041
Requires: wireshark >= 1.12.6-4
M
Michal Privoznik 已提交
1042
Requires: %{name}-libs = %{version}-%{release}
1043 1044 1045 1046 1047

%description wireshark
Wireshark dissector plugin for better analysis of libvirt RPC traffic.
%endif

1048 1049 1050 1051
%if %{with_lxc}
%package login-shell
Summary: Login shell for connecting users to an LXC container
Group: Development/Libraries
M
Michal Privoznik 已提交
1052
Requires: %{name}-libs = %{version}-%{release}
1053 1054 1055 1056 1057 1058 1059

%description login-shell
Provides the set-uid virt-login-shell binary that is used to
connect a user to an LXC container when they login, by switching
namespaces.
%endif

1060
%package devel
1061
Summary: Libraries, includes, etc. to compile with the libvirt library
1062
Group: Development/Libraries
M
Michal Privoznik 已提交
1063
Requires: %{name}-libs = %{version}-%{release}
1064
Requires: pkgconfig
1065 1066

%description devel
1067
Include header files & development libraries for the libvirt C library.
1068

1069 1070 1071 1072
%if %{with_sanlock}
%package lock-sanlock
Summary: Sanlock lock manager plugin for QEMU driver
Group: Development/Libraries
1073
Requires: sanlock >= 2.4
1074 1075
#for virt-sanlock-cleanup require augeas
Requires: augeas
1076
Requires: %{name}-daemon = %{version}-%{release}
M
Michal Privoznik 已提交
1077
Requires: %{name}-libs = %{version}-%{release}
1078 1079 1080 1081 1082 1083

%description lock-sanlock
Includes the Sanlock lock manager plugin for the QEMU
driver
%endif

1084 1085 1086 1087 1088 1089 1090 1091
%package nss
Summary: Libvirt plugin for Name Service Switch
Group: Development/Libraries
Requires: libvirt-daemon-driver-network = %{version}-%{release}

%description nss
Libvirt plugin for NSS for translating domain names into IP addresses.

M
Martin Kletzander 已提交
1092

1093
%prep
1094

1095 1096
%setup -q

1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130
# Patches have to be stored in a temporary file because RPM has
# a limit on the length of the result of any macro expansion;
# if the string is longer, it's silently cropped
%{lua:
    tmp = os.tmpname();
    f = io.open(tmp, "w+");
    count = 0;
    for i, p in ipairs(patches) do
        f:write(p.."\n");
        count = count + 1;
    end;
    f:close();
    print("PATCHCOUNT="..count.."\n")
    print("PATCHLIST="..tmp.."\n")
}

git init -q
git config user.name rpm-build
git config user.email rpm-build
git config gc.auto 0
git add .
git commit -q -a --author 'rpm-build <rpm-build>' \
           -m '%{name}-%{version} base'

COUNT=$(grep '\.patch$' $PATCHLIST | wc -l)
if [ $COUNT -ne $PATCHCOUNT ]; then
    echo "Found $COUNT patches in $PATCHLIST, expected $PATCHCOUNT"
    exit 1
fi
if [ $COUNT -gt 0 ]; then
    xargs git am <$PATCHLIST || exit 1
fi
echo "Applied $COUNT patches"
rm -f $PATCHLIST
1131
rm -rf .git
1132

1133
%build
1134 1135 1136 1137 1138
%if ! %{supported_platform}
echo "This RPM requires either Fedora >= 20 or RHEL >= 6"
exit 1
%endif

1139 1140 1141 1142
%if %{with_xen}
    %define arg_xen --with-xen
%else
    %define arg_xen --without-xen
1143 1144
%endif

1145 1146 1147 1148
%if %{with_qemu}
    %define arg_qemu --with-qemu
%else
    %define arg_qemu --without-qemu
1149 1150
%endif

1151 1152 1153 1154
%if %{with_openvz}
    %define arg_openvz --with-openvz
%else
    %define arg_openvz --without-openvz
1155 1156
%endif

1157 1158 1159 1160
%if %{with_lxc}
    %define arg_lxc --with-lxc
%else
    %define arg_lxc --without-lxc
1161 1162
%endif

1163 1164 1165 1166
%if %{with_vbox}
    %define arg_vbox --with-vbox
%else
    %define arg_vbox --without-vbox
M
Mark McLoughlin 已提交
1167 1168
%endif

1169 1170 1171 1172
%if %{with_libxl}
    %define arg_libxl --with-libxl
%else
    %define arg_libxl --without-libxl
J
Jim Fehlig 已提交
1173 1174
%endif

1175 1176 1177 1178
%if %{with_phyp}
    %define arg_phyp --with-phyp
%else
    %define arg_phyp --without-phyp
1179 1180
%endif

1181 1182 1183 1184
%if %{with_esx}
    %define arg_esx --with-esx
%else
    %define arg_esx --without-esx
1185 1186
%endif

1187 1188 1189 1190
%if %{with_hyperv}
    %define arg_hyperv --with-hyperv
%else
    %define arg_hyperv --without-hyperv
1191 1192
%endif

1193 1194 1195 1196
%if %{with_vmware}
    %define arg_vmware --with-vmware
%else
    %define arg_vmware --without-vmware
1197 1198
%endif

1199 1200 1201 1202
%if %{with_uml}
    %define arg_uml --with-uml
%else
    %define arg_uml --without-uml
1203 1204
%endif

1205 1206 1207 1208
%if %{with_storage_rbd}
    %define arg_storage_rbd --with-storage-rbd
%else
    %define arg_storage_rbd --without-storage-rbd
1209 1210
%endif

1211 1212 1213 1214
%if %{with_storage_sheepdog}
    %define arg_storage_sheepdog --with-storage-sheepdog
%else
    %define arg_storage_sheepdog --without-storage-sheepdog
1215 1216
%endif

1217 1218 1219 1220
%if %{with_storage_gluster}
    %define arg_storage_gluster --with-storage-gluster
%else
    %define arg_storage_gluster --without-storage-gluster
1221 1222
%endif

1223 1224 1225 1226 1227 1228
%if %{with_storage_zfs}
    %define arg_storage_zfs --with-storage-zfs
%else
    %define arg_storage_zfs --without-storage-zfs
%endif

1229 1230 1231 1232
%if %{with_numactl}
    %define arg_numactl --with-numactl
%else
    %define arg_numactl --without-numactl
1233 1234
%endif

1235 1236 1237 1238
%if %{with_numad}
    %define arg_numad --with-numad
%else
    %define arg_numad --without-numad
1239 1240
%endif

1241 1242 1243 1244
%if %{with_fuse}
    %define arg_fuse --with-fuse
%else
    %define arg_fuse --without-fuse
1245 1246
%endif

1247 1248 1249 1250
%if %{with_sanlock}
    %define arg_sanlock --with-sanlock
%else
    %define arg_sanlock --without-sanlock
1251 1252
%endif

1253
%if %{with_firewalld}
1254 1255 1256
    %define arg_firewalld --with-firewalld
%else
    %define arg_firewalld --without-firewalld
1257 1258
%endif

1259 1260 1261 1262
%if %{with_wireshark}
    %define arg_wireshark --with-wireshark-dissector
%else
    %define arg_wireshark --without-wireshark-dissector
1263 1264
%endif

1265 1266 1267 1268
%if %{with_pm_utils}
    %define arg_pm_utils --with-pm-utils
%else
    %define arg_pm_utils --without-pm-utils
1269 1270
%endif

1271 1272 1273
%define when  %(date +"%%F-%%T")
%define where %(hostname)
%define who   %{?packager}%{!?packager:Unknown}
1274 1275
%define arg_packager --with-packager="%{who}, %{when}, %{where}"
%define arg_packager_version --with-packager-version="%{release}"
1276

1277
%if %{with_systemd}
1278
    %define arg_init_script --with-init-script=systemd
1279
%else
1280
    %define arg_init_script --with-init-script=redhat
1281
%endif
1282

1283
%if 0%{?fedora} || 0%{?rhel} >= 7
1284
    %define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux"
1285
%else
1286
    %define arg_selinux_mount --with-selinux-mount="/selinux"
1287 1288
%endif

1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
%if 0%{?fedora}
    # Nightly firmware repo x86/OVMF
    LOADERS="/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd"
    # Nightly firmware repo aarch64/AAVMF
    LOADERS="$LOADERS:/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw"
    # Fedora official x86/OVMF
    LOADERS="$LOADERS:/usr/share/edk2/ovmf/OVMF_CODE.fd:/usr/share/edk2/ovmf/OVMF_VARS.fd"
    # Fedora official aarch64/AAVMF
    LOADERS="$LOADERS:/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw"
    %define arg_loader_nvram --with-loader-nvram="$LOADERS"
%endif

1301 1302 1303 1304 1305 1306
# place macros above and build commands below this comment

%if 0%{?enable_autotools}
 autoreconf -if
%endif

1307
rm -f po/stamp-po
1308 1309 1310 1311 1312 1313
%configure %{?arg_xen} \
           %{?arg_qemu} \
           %{?arg_openvz} \
           %{?arg_lxc} \
           %{?arg_vbox} \
           %{?arg_libxl} \
1314
           --with-sasl \
1315
           --with-avahi \
1316
           --with-polkit \
1317
           --with-libvirtd \
1318 1319 1320 1321 1322
           %{?arg_uml} \
           %{?arg_phyp} \
           %{?arg_esx} \
           %{?arg_hyperv} \
           %{?arg_vmware} \
1323 1324
           --without-xenapi \
           --without-vz \
1325
           --without-bhyve \
1326
           --with-interface \
1327
           --with-network \
1328 1329 1330
           --with-storage-fs \
           --with-storage-lvm \
           --with-storage-iscsi \
1331
           --with-storage-scsi \
1332 1333
           --with-storage-disk \
           --with-storage-mpath \
1334 1335 1336
           %{?arg_storage_rbd} \
           %{?arg_storage_sheepdog} \
           %{?arg_storage_gluster} \
1337
           %{?arg_storage_zfs} \
1338
           --without-storage-vstorage \
1339 1340
           %{?arg_numactl} \
           %{?arg_numad} \
1341
           --with-capng \
1342
           %{?arg_fuse} \
1343
           --with-netcf \
1344
           --with-selinux \
1345
           %{?arg_selinux_mount} \
1346
           --without-apparmor \
1347
           --without-hal \
1348
           --with-udev \
1349
           --with-yajl \
1350
           %{?arg_sanlock} \
1351
           --with-libpcap \
1352
           --with-macvtap \
1353
           --with-audit \
1354
           --with-dtrace \
1355
           --with-driver-modules \
1356 1357 1358
           %{?arg_firewalld} \
           %{?arg_wireshark} \
           %{?arg_pm_utils} \
1359
           --with-nss-plugin \
1360 1361
           %{arg_packager} \
           %{arg_packager_version} \
1362 1363
           --with-qemu-user=%{qemu_user} \
           --with-qemu-group=%{qemu_group} \
1364
           --with-tls-priority=%{tls_priority} \
1365
           %{?arg_loader_nvram} \
1366
           %{?enable_werror} \
1367
           --enable-expensive-tests \
1368
           %{arg_init_script}
J
Jim Meyering 已提交
1369
make %{?_smp_mflags}
1370
gzip -9 ChangeLog
1371 1372 1373 1374

%install
rm -fr %{buildroot}

1375 1376 1377
# Avoid using makeinstall macro as it changes prefixes rather than setting
# DESTDIR. Newer make_install macro would be better but it's not available
# on RHEL 5, thus we need to expand it here.
1378
make %{?_smp_mflags} install DESTDIR=%{?buildroot} SYSTEMD_UNIT_DIR=%{_unitdir}
1379

1380
make %{?_smp_mflags} -C examples distclean
1381

1382
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
1383
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
1384 1385
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
1386 1387
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
1388 1389
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/storage-backend/*.a
1390
%if %{with_wireshark}
1391
    %if 0%{fedora} >= 24
1392
rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/libvirt.la
1393
    %else
1394 1395 1396
rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.la
mv $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/*/libvirt.so \
      $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/libvirt.so
1397
    %endif
1398
%endif
1399

1400
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
1401 1402 1403 1404 1405 1406 1407 1408
# We don't want to install /etc/libvirt/qemu/networks in the main %files list
# because if the admin wants to delete the default network completely, we don't
# want to end up re-incarnating it on every RPM upgrade.
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
   $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1409 1410 1411 1412 1413 1414 1415

# nwfilter files are installed in /usr/share/libvirt and copied to /etc in %post
# to avoid verification errors on changed files in /etc
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/
cp -a $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter/*.xml \
    $RPM_BUILD_ROOT%{_datadir}/libvirt/nwfilter/

1416
# Strip auto-generated UUID - we need it generated per-install
1417
sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1418
%if ! %{with_qemu}
1419 1420
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1421
%endif
1422
%find_lang %{name}
1423

1424 1425 1426 1427 1428
%if ! %{with_sanlock}
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
%endif

1429 1430 1431
%if ! %{with_lxc}
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1432
%endif
1433

1434 1435
%if ! %{with_qemu}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1436
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1437
%endif
A
Amy Griffis 已提交
1438 1439
%if ! %{with_lxc}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1440
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1441
%endif
1442 1443
%if ! %{with_libxl}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
J
Jim Fehlig 已提交
1444
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
1445 1446 1447
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
%endif
1448 1449
%if ! %{with_uml}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
A
Amy Griffis 已提交
1450
%endif
1451

1452 1453
# Copied into libvirt-docs subpackage eventually
mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} libvirt-docs
1454

1455
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64
1456 1457 1458 1459 1460 1461
mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
   $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
   $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
%endif

1462 1463 1464
%clean
rm -fr %{buildroot}

1465 1466
%check
cd tests
D
Daniel Veillard 已提交
1467 1468
# These tests don't current work in a mock build root
for i in nodeinfotest seclabeltest
1469 1470
do
  rm -f $i
1471
  printf 'int main(void) { return 0; }' > $i.c
D
Daniel Veillard 已提交
1472
  printf '#!/bin/sh\nexit 0\n' > $i
1473 1474
  chmod +x $i
done
1475
if ! make %{?_smp_mflags} check VIR_TEST_DEBUG=1
1476 1477 1478 1479
then
  cat test-suite.log || true
  exit 1
fi
1480

1481 1482 1483 1484 1485 1486 1487 1488
%pre daemon
# 'libvirt' group is just to allow password-less polkit access to
# libvirtd. The uid number is irrelevant, so we use dynamic allocation
# described at the above link.
getent group libvirt >/dev/null || groupadd -r libvirt

exit 0

1489
%post daemon
1490

1491 1492 1493 1494
%if %{with_systemd}
    %if %{with_systemd_macros}
        %systemd_post virtlockd.socket virtlogd.socket libvirtd.service
    %else
1495 1496
if [ $1 -eq 1 ] ; then
    # Initial installation
1497 1498
    /bin/systemctl enable \
        virtlockd.socket \
1499
        virtlogd.socket \
1500
        libvirtd.service >/dev/null 2>&1 || :
1501
fi
1502 1503 1504
    %endif
%else
    %if %{with_cgconfig}
1505 1506
# Starting with Fedora 16/RHEL-7, systemd automounts all cgroups,
# and cgconfig is no longer a necessary service.
1507
        %if 0%{?rhel} && 0%{?rhel} < 7
1508 1509 1510
if [ "$1" -eq "1" ]; then
/sbin/chkconfig cgconfig on
fi
1511
        %endif
1512
    %endif
1513

1514
/sbin/chkconfig --add libvirtd
1515
/sbin/chkconfig --add virtlogd
1516
/sbin/chkconfig --add virtlockd
1517
%endif
1518

1519
%preun daemon
1520 1521 1522 1523
%if %{with_systemd}
    %if %{with_systemd_macros}
        %systemd_preun libvirtd.service virtlogd.socket virtlogd.service virtlockd.socket virtlockd.service
    %else
1524 1525
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
1526 1527
    /bin/systemctl --no-reload disable \
        libvirtd.service \
1528 1529
        virtlogd.socket \
        virtlogd.service \
1530 1531 1532 1533
        virtlockd.socket \
        virtlockd.service > /dev/null 2>&1 || :
    /bin/systemctl stop \
        libvirtd.service \
1534 1535
        virtlogd.socket \
        virtlogd.service \
1536 1537
        virtlockd.socket \
        virtlockd.service > /dev/null 2>&1 || :
1538
fi
1539 1540
    %endif
%else
1541 1542 1543
if [ $1 = 0 ]; then
    /sbin/service libvirtd stop 1>/dev/null 2>&1
    /sbin/chkconfig --del libvirtd
1544 1545
    /sbin/service virtlogd stop 1>/dev/null 2>&1
    /sbin/chkconfig --del virtlogd
1546 1547
    /sbin/service virtlockd stop 1>/dev/null 2>&1
    /sbin/chkconfig --del virtlockd
1548
fi
1549
%endif
1550

1551
%postun daemon
1552
%if %{with_systemd}
1553 1554
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
1555
    /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
1556
    /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
1557 1558
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
fi
1559
%else
1560 1561
if [ $1 -ge 1 ]; then
    /sbin/service virtlockd reload > /dev/null 2>&1 || :
1562
    /sbin/service virtlogd reload > /dev/null 2>&1 || :
1563 1564
    /sbin/service libvirtd condrestart > /dev/null 2>&1
fi
1565
%endif
1566

1567 1568
%if %{with_systemd}
%else
1569 1570 1571
%triggerpostun daemon -- libvirt-daemon < 1.2.1
if [ "$1" -ge "1" ]; then
    /sbin/service virtlockd reload > /dev/null 2>&1 || :
1572
    /sbin/service virtlogd reload > /dev/null 2>&1 || :
1573 1574
    /sbin/service libvirtd condrestart > /dev/null 2>&1
fi
1575
%endif
1576

1577 1578 1579 1580 1581 1582
# In upgrade scenario we must explicitly enable virtlockd/virtlogd
# sockets, if libvirtd is already enabled and start them if
# libvirtd is running, otherwise you'll get failures to start
# guests
%triggerpostun daemon -- libvirt-daemon < 1.3.0
if [ $1 -ge 1 ] ; then
1583
%if %{with_systemd}
1584 1585 1586 1587
        /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
            /bin/systemctl enable virtlogd.socket || :
        /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
            /bin/systemctl start virtlogd.socket || :
1588
%else
1589
        /sbin/chkconfig libvirtd 1>/dev/null 2>&1 &&
1590
            /sbin/chkconfig virtlogd on || :
1591
        /sbin/service libvirtd status 1>/dev/null 2>&1 &&
1592
            /sbin/service virtlogd start || :
1593
%endif
1594 1595
fi

1596 1597
%post daemon-config-network
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1598 1599 1600 1601 1602 1603 1604 1605 1606
    # see if the network used by default network creates a conflict,
    # and try to resolve it
    # NB: 192.168.122.0/24 is used in the default.xml template file;
    # do not modify any of those values here without also modifying
    # them in the template.
    orig_sub=122
    sub=${orig_sub}
    nl='
'
1607
    routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625
    case ${routes} in
      *"${nl}192.168.${orig_sub}.0/24${nl}"*)
        # there was a match, so we need to look for an unused subnet
        for new_sub in $(seq 124 254); do
          case ${routes} in
          *"${nl}192.168.${new_sub}.0/24${nl}"*)
            ;;
          *)
            sub=$new_sub
            break;
            ;;
          esac
        done
        ;;
      *)
        ;;
    esac

1626
    UUID=`/usr/bin/uuidgen`
1627 1628
    sed -e "s/${orig_sub}/${sub}/g" \
        -e "s,</name>,</name>\n  <uuid>$UUID</uuid>," \
1629 1630 1631
         < %{_datadir}/libvirt/networks/default.xml \
         > %{_sysconfdir}/libvirt/qemu/networks/default.xml
    ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1632 1633

    # Make sure libvirt picks up the new network defininiton
1634
%if %{with_systemd}
1635
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 ||:
1636
%else
1637
    /sbin/service libvirtd condrestart > /dev/null 2>&1 || :
1638
%endif
1639

1640
fi
1641

1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652

%post daemon-config-nwfilter
cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/
# Make sure libvirt picks up the new nwfilter defininitons
%if %{with_systemd}
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 ||:
%else
    /sbin/service libvirtd condrestart > /dev/null 2>&1 || :
%endif


1653
%if %{with_systemd}
1654 1655 1656 1657 1658 1659 1660 1661 1662
%triggerun -- libvirt < 0.9.4
%{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||:

# If the package is allowed to autostart:
/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del libvirtd >/dev/null 2>&1 || :
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1663
%endif
1664

1665
%if %{with_qemu}
1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679
%pre daemon-driver-qemu
# We want soft static allocation of well-known ids, as disk images
# are commonly shared across NFS mounts by id rather than name; see
# https://fedoraproject.org/wiki/Packaging:UsersAndGroups
getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
if ! getent passwd qemu >/dev/null; then
  if ! getent passwd 107 >/dev/null; then
    useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
  else
    useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
  fi
fi
exit 0
1680
%endif
1681

J
Jiri Denemark 已提交
1682 1683
%preun client

1684
%if %{with_systemd}
1685 1686 1687
    %if %{with_systemd_macros}
        %systemd_preun libvirt-guests.service
    %endif
1688
%else
J
Jiri Denemark 已提交
1689 1690 1691 1692
if [ $1 = 0 ]; then
    /sbin/chkconfig --del libvirt-guests
    rm -f /var/lib/libvirt/libvirt-guests
fi
1693
%endif
J
Jiri Denemark 已提交
1694 1695 1696 1697

%post client

/sbin/ldconfig
1698
%if %{with_systemd}
1699 1700 1701
    %if %{with_systemd_macros}
        %systemd_post libvirt-guests.service
    %endif
1702
%else
J
Jiri Denemark 已提交
1703
/sbin/chkconfig --add libvirt-guests
1704
%endif
1705

1706
%postun client
1707

1708
/sbin/ldconfig
1709
%if %{with_systemd}
1710
    %if %{with_systemd_macros}
1711
        %systemd_postun libvirt-guests.service
1712
    %endif
1713 1714 1715 1716 1717 1718
%triggerun client -- libvirt < 0.9.4
%{_bindir}/systemd-sysv-convert --save libvirt-guests >/dev/null 2>&1 ||:

# If the package is allowed to autostart:
/bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||:

1719
# Run this because the SysV package being removed won't do them
1720 1721 1722
/sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || :
%endif

1723
%if %{with_sanlock}
1724 1725 1726 1727 1728
%post lock-sanlock
if getent group sanlock > /dev/null ; then
    chmod 0770 %{_localstatedir}/lib/libvirt/sanlock
    chown root:sanlock %{_localstatedir}/lib/libvirt/sanlock
fi
1729
%endif
1730

1731 1732 1733 1734 1735 1736
%if %{with_lxc}
%pre login-shell
getent group virtlogin >/dev/null || groupadd -r virtlogin
exit 0
%endif

1737
%files
1738

1739
%files docs
J
Jiri Denemark 已提交
1740
%doc AUTHORS ChangeLog.gz NEWS README README.md TODO
1741
%doc libvirt-docs/*
1742 1743 1744 1745 1746 1747 1748

# API docs
%dir %{_datadir}/gtk-doc/html/libvirt/
%doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
%doc %{_datadir}/gtk-doc/html/libvirt/*.html
%doc %{_datadir}/gtk-doc/html/libvirt/*.png
%doc %{_datadir}/gtk-doc/html/libvirt/*.css
1749 1750 1751 1752 1753 1754 1755 1756 1757
%doc examples/hellolibvirt
%doc examples/object-events
%doc examples/dominfo
%doc examples/domsuspend
%doc examples/dommigrate
%doc examples/openauth
%doc examples/xml
%doc examples/rename
%doc examples/systemtap
1758
%doc examples/admin
1759

1760 1761 1762

%files daemon

1763
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1764

1765
%if %{with_systemd}
1766
%{_unitdir}/libvirtd.service
1767
%{_unitdir}/virt-guest-shutdown.target
1768 1769
%{_unitdir}/virtlogd.service
%{_unitdir}/virtlogd.socket
1770 1771
%{_unitdir}/virtlockd.service
%{_unitdir}/virtlockd.socket
1772
%else
D
Daniel Veillard 已提交
1773
%{_sysconfdir}/rc.d/init.d/libvirtd
1774
%{_sysconfdir}/rc.d/init.d/virtlogd
1775
%{_sysconfdir}/rc.d/init.d/virtlockd
1776
%endif
A
Alan Pevec 已提交
1777
%doc daemon/libvirtd.upstart
1778
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1779
%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
1780
%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1781
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1782
%config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
1783
%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
1784
%config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
1785

1786
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1787
%dir %{_datadir}/libvirt/
1788

1789
%ghost %dir %{_localstatedir}/run/libvirt/
1790

1791
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1792
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1793
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1794
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1795

1796

1797 1798
%dir %attr(0755, root, root) %{_libdir}/libvirt/
%dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
1799
%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1800
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1801

1802 1803
%{_datadir}/augeas/lenses/libvirtd.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1804 1805
%{_datadir}/augeas/lenses/virtlogd.aug
%{_datadir}/augeas/lenses/tests/test_virtlogd.aug
1806 1807
%{_datadir}/augeas/lenses/virtlockd.aug
%{_datadir}/augeas/lenses/tests/test_virtlockd.aug
1808
%{_datadir}/augeas/lenses/libvirt_lockd.aug
1809
%if %{with_qemu}
1810
%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1811
%endif
1812

1813
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1814
%{_datadir}/polkit-1/actions/org.libvirt.api.policy
1815
%{_datadir}/polkit-1/rules.d/50-libvirt.rules
1816

M
Mark McLoughlin 已提交
1817
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
1818

1819
%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1820

1821
%attr(0755, root, root) %{_sbindir}/libvirtd
1822
%attr(0755, root, root) %{_sbindir}/virtlogd
1823
%attr(0755, root, root) %{_sbindir}/virtlockd
1824

1825
%{_mandir}/man8/libvirtd.8*
1826
%{_mandir}/man8/virtlogd.8*
1827
%{_mandir}/man8/virtlockd.8*
1828
%{_mandir}/man7/virkey*.7*
1829

1830 1831
%doc examples/polkit/*.rules

1832
%files daemon-config-network
1833 1834
%dir %{_datadir}/libvirt/networks/
%{_datadir}/libvirt/networks/default.xml
1835

1836
%files daemon-config-nwfilter
1837 1838 1839
%dir %{_datadir}/libvirt/nwfilter/
%{_datadir}/libvirt/nwfilter/*.xml
%ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
1840

1841 1842 1843 1844
%files daemon-driver-interface
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so

%files daemon-driver-network
1845 1846 1847 1848 1849 1850
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
%ghost %dir %{_localstatedir}/run/libvirt/network/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
1851
%attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1852 1853 1854 1855 1856 1857
%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so

%files daemon-driver-nodedev
%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so

%files daemon-driver-nwfilter
1858 1859
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
%ghost %dir %{_localstatedir}/run/libvirt/network/
1860 1861 1862 1863 1864 1865
%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so

%files daemon-driver-secret
%{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so

%files daemon-driver-storage
1866 1867

%files daemon-driver-storage-core
1868
%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1869
%{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1870
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
1871 1872

%files daemon-driver-storage-disk
1873
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
1874 1875

%files daemon-driver-storage-logical
1876
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so
1877 1878

%files daemon-driver-storage-scsi
1879
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so
1880 1881

%files daemon-driver-storage-iscsi
1882
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so
1883 1884

%files daemon-driver-storage-mpath
1885
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_mpath.so
1886

1887
%if %{with_storage_gluster}
1888
%files daemon-driver-storage-gluster
1889 1890
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so
%endif
1891

1892
%if %{with_storage_rbd}
1893
%files daemon-driver-storage-rbd
1894 1895
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so
%endif
1896

1897
%if %{with_storage_sheepdog}
1898
%files daemon-driver-storage-sheepdog
1899 1900
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so
%endif
1901

1902 1903 1904 1905 1906
%if %{with_storage_zfs}
%files daemon-driver-storage-zfs
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so
%endif

1907
%if %{with_qemu}
1908
%files daemon-driver-qemu
1909
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1910 1911 1912 1913 1914
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
%config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
1915
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1916 1917 1918
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
%{_datadir}/augeas/lenses/libvirtd_qemu.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1919
%{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1920
%endif
1921

1922
%if %{with_lxc}
1923
%files daemon-driver-lxc
1924 1925 1926 1927 1928 1929 1930 1931
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
%config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
%ghost %dir %{_localstatedir}/run/libvirt/lxc/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
%{_datadir}/augeas/lenses/libvirtd_lxc.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
1932
%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1933
%endif
1934

1935
%if %{with_uml}
1936
%files daemon-driver-uml
1937 1938 1939 1940
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml
%ghost %dir %{_localstatedir}/run/libvirt/uml/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
1941
%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
1942
%endif
1943

1944
%if %{with_xen}
1945
%files daemon-driver-xen
1946
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
1947
%{_libdir}/%{name}/connection-driver/libvirt_driver_xen.so
1948
%endif
1949

1950
%if %{with_libxl}
1951
%files daemon-driver-libxl
1952
%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
J
Jim Fehlig 已提交
1953
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
1954
%config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
1955 1956
%{_datadir}/augeas/lenses/libvirtd_libxl.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1957 1958 1959
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
%ghost %dir %{_localstatedir}/run/libvirt/libxl/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1960
%{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1961
%endif
1962

1963
%if %{with_vbox}
1964 1965
%files daemon-driver-vbox
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
1966
%endif
1967

1968
%if %{with_qemu_tcg}
1969
%files daemon-qemu
1970
%endif
1971

1972
%if %{with_qemu_kvm}
1973
%files daemon-kvm
1974
%endif
1975

1976
%if %{with_lxc}
1977
%files daemon-lxc
1978
%endif
1979

1980
%if %{with_uml}
1981
%files daemon-uml
1982
%endif
1983

1984
%if %{with_xen} || %{with_libxl}
1985
%files daemon-xen
1986
%endif
1987

1988
%if %{with_vbox}
1989
%files daemon-vbox
1990
%endif
1991

1992 1993
%if %{with_sanlock}
%files lock-sanlock
1994
    %if %{with_qemu}
1995
%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
1996
    %endif
1997 1998 1999
    %if %{with_libxl}
%config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
    %endif
2000
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
2001 2002
%{_datadir}/augeas/lenses/libvirt_sanlock.aug
%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
2003
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock
2004 2005
%{_sbindir}/virt-sanlock-cleanup
%{_mandir}/man8/virt-sanlock-cleanup.8*
2006
%attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
2007 2008
%endif

M
Michal Privoznik 已提交
2009
%files client
2010 2011
%{_mandir}/man1/virsh.1*
%{_mandir}/man1/virt-xml-validate.1*
2012
%{_mandir}/man1/virt-pki-validate.1*
2013
%{_mandir}/man1/virt-host-validate.1*
2014 2015
%{_bindir}/virsh
%{_bindir}/virt-xml-validate
2016
%{_bindir}/virt-pki-validate
2017
%{_bindir}/virt-host-validate
2018

2019 2020
%{_datadir}/systemtap/tapset/libvirt_probes*.stp
%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
2021 2022
%{_datadir}/systemtap/tapset/libvirt_functions.stp

M
Michal Privoznik 已提交
2023 2024 2025 2026 2027 2028 2029 2030 2031 2032

%if %{with_systemd}
%{_unitdir}/libvirt-guests.service
%else
%{_sysconfdir}/rc.d/init.d/libvirt-guests
%endif
%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh

%files libs -f %{name}.lang
2033 2034
# RHEL6 doesn't have 'license' macro
%{!?_licensedir:%global license %%doc}
2035
%license COPYING COPYING.LESSER
M
Michal Privoznik 已提交
2036 2037 2038 2039 2040 2041
%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
%{_libdir}/libvirt.so.*
%{_libdir}/libvirt-qemu.so.*
%{_libdir}/libvirt-lxc.so.*
%{_libdir}/libvirt-admin.so.*
2042 2043
%dir %{_datadir}/libvirt/
%dir %{_datadir}/libvirt/schemas/
M
Michal Privoznik 已提交
2044
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
2045

2046 2047
%{_datadir}/libvirt/schemas/basictypes.rng
%{_datadir}/libvirt/schemas/capability.rng
J
Jiri Denemark 已提交
2048
%{_datadir}/libvirt/schemas/cputypes.rng
2049
%{_datadir}/libvirt/schemas/domain.rng
M
Michal Privoznik 已提交
2050
%{_datadir}/libvirt/schemas/domaincaps.rng
2051
%{_datadir}/libvirt/schemas/domaincommon.rng
2052
%{_datadir}/libvirt/schemas/domainsnapshot.rng
2053
%{_datadir}/libvirt/schemas/interface.rng
2054
%{_datadir}/libvirt/schemas/network.rng
2055
%{_datadir}/libvirt/schemas/networkcommon.rng
2056
%{_datadir}/libvirt/schemas/nodedev.rng
2057
%{_datadir}/libvirt/schemas/nwfilter.rng
M
Miloslav Trmač 已提交
2058
%{_datadir}/libvirt/schemas/secret.rng
2059
%{_datadir}/libvirt/schemas/storagecommon.rng
2060 2061
%{_datadir}/libvirt/schemas/storagepool.rng
%{_datadir}/libvirt/schemas/storagevol.rng
2062

J
Jiri Denemark 已提交
2063 2064
%{_datadir}/libvirt/cpu_map.xml

D
Daniel P. Berrange 已提交
2065 2066
%{_datadir}/libvirt/test-screenshot.png

2067 2068
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf

2069 2070 2071 2072 2073
%files admin
%{_mandir}/man1/virt-admin.1*
%{_bindir}/virt-admin


2074 2075
%if %{with_wireshark}
%files wireshark
2076
%{_libdir}/wireshark/plugins/libvirt.so
2077 2078
%endif

2079 2080
%files nss
%{_libdir}/libnss_libvirt.so.2
2081
%{_libdir}/libnss_libvirt_guest.so.2
2082

2083 2084
%if %{with_lxc}
%files login-shell
2085
%attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
2086 2087 2088 2089
%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
%{_mandir}/man1/virt-login-shell.1*
%endif

2090
%files devel
2091
%{_libdir}/libvirt.so
2092
%{_libdir}/libvirt-admin.so
2093 2094
%{_libdir}/libvirt-qemu.so
%{_libdir}/libvirt-lxc.so
2095
%dir %{_includedir}/libvirt
2096 2097
%{_includedir}/libvirt/virterror.h
%{_includedir}/libvirt/libvirt.h
2098
%{_includedir}/libvirt/libvirt-admin.h
2099
%{_includedir}/libvirt/libvirt-common.h
2100
%{_includedir}/libvirt/libvirt-domain.h
2101
%{_includedir}/libvirt/libvirt-domain-snapshot.h
2102
%{_includedir}/libvirt/libvirt-event.h
2103
%{_includedir}/libvirt/libvirt-host.h
2104
%{_includedir}/libvirt/libvirt-interface.h
2105
%{_includedir}/libvirt/libvirt-network.h
2106
%{_includedir}/libvirt/libvirt-nodedev.h
2107
%{_includedir}/libvirt/libvirt-nwfilter.h
2108
%{_includedir}/libvirt/libvirt-secret.h
2109
%{_includedir}/libvirt/libvirt-storage.h
2110
%{_includedir}/libvirt/libvirt-stream.h
2111 2112
%{_includedir}/libvirt/libvirt-qemu.h
%{_includedir}/libvirt/libvirt-lxc.h
2113
%{_libdir}/pkgconfig/libvirt.pc
2114
%{_libdir}/pkgconfig/libvirt-admin.pc
2115 2116
%{_libdir}/pkgconfig/libvirt-qemu.pc
%{_libdir}/pkgconfig/libvirt-lxc.pc
2117

2118 2119
%dir %{_datadir}/libvirt/api/
%{_datadir}/libvirt/api/libvirt-api.xml
2120
%{_datadir}/libvirt/api/libvirt-admin-api.xml
2121
%{_datadir}/libvirt/api/libvirt-qemu-api.xml
2122
%{_datadir}/libvirt/api/libvirt-lxc-api.xml
2123
# Needed building python bindings
2124
%doc docs/libvirt-api.xml
2125

2126

2127
%changelog