libvirt.spec.in 62.5 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 1520 1521 1522
# request daemon restart in posttrans
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :

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

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

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

1578 1579 1580 1581 1582 1583
# 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
1584
%if %{with_systemd}
1585 1586 1587 1588
        /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 || :
1589
%else
1590
        /sbin/chkconfig libvirtd 1>/dev/null 2>&1 &&
1591
            /sbin/chkconfig virtlogd on || :
1592
        /sbin/service libvirtd status 1>/dev/null 2>&1 &&
1593
            /sbin/service virtlogd start || :
1594
%endif
1595 1596
fi

1597 1598 1599 1600 1601 1602 1603 1604 1605 1606
%posttrans daemon
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
%if %{with_systemd}
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
%else
    /sbin/service libvirtd condrestart > /dev/null 2>&1 || :
%endif
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :

1607 1608
%post daemon-config-network
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1609 1610 1611 1612 1613 1614 1615 1616 1617
    # 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='
'
1618
    routes="${nl}$(ip route show | cut -d' ' -f1)${nl}"
1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636
    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

1637
    UUID=`/usr/bin/uuidgen`
1638 1639
    sed -e "s/${orig_sub}/${sub}/g" \
        -e "s,</name>,</name>\n  <uuid>$UUID</uuid>," \
1640 1641 1642
         < %{_datadir}/libvirt/networks/default.xml \
         > %{_sysconfdir}/libvirt/qemu/networks/default.xml
    ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1643 1644

    # Make sure libvirt picks up the new network defininiton
1645 1646 1647 1648 1649 1650
    mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
    touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
fi

%posttrans daemon-config-network
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1651
%if %{with_systemd}
1652
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1653
%else
1654
    /sbin/service libvirtd condrestart > /dev/null 2>&1 || :
1655
%endif
1656
fi
1657
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1658 1659 1660 1661

%post daemon-config-nwfilter
cp %{_datadir}/libvirt/nwfilter/*.xml %{_sysconfdir}/libvirt/nwfilter/
# Make sure libvirt picks up the new nwfilter defininitons
1662 1663 1664 1665 1666
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :

%posttrans daemon-config-nwfilter
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
1667
%if %{with_systemd}
1668
    /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1669 1670 1671
%else
    /sbin/service libvirtd condrestart > /dev/null 2>&1 || :
%endif
1672 1673
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
1674 1675


1676
%if %{with_systemd}
1677 1678 1679 1680 1681 1682 1683 1684 1685
%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 || :
1686
%endif
1687

1688
%if %{with_qemu}
1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702
%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
1703
%endif
1704

J
Jiri Denemark 已提交
1705 1706
%preun client

1707
%if %{with_systemd}
1708 1709 1710
    %if %{with_systemd_macros}
        %systemd_preun libvirt-guests.service
    %endif
1711
%else
J
Jiri Denemark 已提交
1712 1713 1714 1715
if [ $1 = 0 ]; then
    /sbin/chkconfig --del libvirt-guests
    rm -f /var/lib/libvirt/libvirt-guests
fi
1716
%endif
J
Jiri Denemark 已提交
1717 1718 1719 1720

%post client

/sbin/ldconfig
1721
%if %{with_systemd}
1722 1723 1724
    %if %{with_systemd_macros}
        %systemd_post libvirt-guests.service
    %endif
1725
%else
J
Jiri Denemark 已提交
1726
/sbin/chkconfig --add libvirt-guests
1727
%endif
1728

1729
%postun client
1730

1731
/sbin/ldconfig
1732
%if %{with_systemd}
1733
    %if %{with_systemd_macros}
1734
        %systemd_postun libvirt-guests.service
1735
    %endif
1736 1737 1738 1739 1740 1741
%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 ||:

1742
# Run this because the SysV package being removed won't do them
1743 1744 1745
/sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || :
%endif

1746
%if %{with_sanlock}
1747 1748 1749 1750 1751
%post lock-sanlock
if getent group sanlock > /dev/null ; then
    chmod 0770 %{_localstatedir}/lib/libvirt/sanlock
    chown root:sanlock %{_localstatedir}/lib/libvirt/sanlock
fi
1752
%endif
1753

1754 1755 1756 1757 1758 1759
%if %{with_lxc}
%pre login-shell
getent group virtlogin >/dev/null || groupadd -r virtlogin
exit 0
%endif

1760
%files
1761

1762
%files docs
D
Daniel P. Berrange 已提交
1763
%doc AUTHORS ChangeLog.gz NEWS README README.md
1764
%doc libvirt-docs/*
1765 1766 1767 1768 1769 1770 1771

# 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
1772 1773 1774 1775 1776 1777 1778 1779 1780
%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
1781
%doc examples/admin
1782

1783 1784 1785

%files daemon

1786
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1787

1788
%if %{with_systemd}
1789
%{_unitdir}/libvirtd.service
1790
%{_unitdir}/virt-guest-shutdown.target
1791 1792
%{_unitdir}/virtlogd.service
%{_unitdir}/virtlogd.socket
1793 1794
%{_unitdir}/virtlockd.service
%{_unitdir}/virtlockd.socket
1795
%else
D
Daniel Veillard 已提交
1796
%{_sysconfdir}/rc.d/init.d/libvirtd
1797
%{_sysconfdir}/rc.d/init.d/virtlogd
1798
%{_sysconfdir}/rc.d/init.d/virtlockd
1799
%endif
A
Alan Pevec 已提交
1800
%doc daemon/libvirtd.upstart
1801
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1802
%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
1803
%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1804
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1805
%config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
1806
%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
1807
%config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
1808

1809
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1810
%dir %{_datadir}/libvirt/
1811

1812
%ghost %dir %{_localstatedir}/run/libvirt/
1813

1814
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1815
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1816
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1817
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1818

1819

1820 1821
%dir %attr(0755, root, root) %{_libdir}/libvirt/
%dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
1822
%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1823
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1824

1825 1826
%{_datadir}/augeas/lenses/libvirtd.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1827 1828
%{_datadir}/augeas/lenses/virtlogd.aug
%{_datadir}/augeas/lenses/tests/test_virtlogd.aug
1829 1830
%{_datadir}/augeas/lenses/virtlockd.aug
%{_datadir}/augeas/lenses/tests/test_virtlockd.aug
1831
%{_datadir}/augeas/lenses/libvirt_lockd.aug
1832
%if %{with_qemu}
1833
%{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1834
%endif
1835

1836
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1837
%{_datadir}/polkit-1/actions/org.libvirt.api.policy
1838
%{_datadir}/polkit-1/rules.d/50-libvirt.rules
1839

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

1842
%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1843

1844
%attr(0755, root, root) %{_sbindir}/libvirtd
1845
%attr(0755, root, root) %{_sbindir}/virtlogd
1846
%attr(0755, root, root) %{_sbindir}/virtlockd
1847

1848
%{_mandir}/man8/libvirtd.8*
1849
%{_mandir}/man8/virtlogd.8*
1850
%{_mandir}/man8/virtlockd.8*
1851
%{_mandir}/man7/virkey*.7*
1852

1853 1854
%doc examples/polkit/*.rules

1855
%files daemon-config-network
1856 1857
%dir %{_datadir}/libvirt/networks/
%{_datadir}/libvirt/networks/default.xml
1858

1859
%files daemon-config-nwfilter
1860 1861 1862
%dir %{_datadir}/libvirt/nwfilter/
%{_datadir}/libvirt/nwfilter/*.xml
%ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
1863

1864 1865 1866 1867
%files daemon-driver-interface
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so

%files daemon-driver-network
1868 1869 1870 1871 1872 1873
%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/
1874
%attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1875 1876 1877 1878 1879 1880
%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so

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

%files daemon-driver-nwfilter
1881 1882
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
%ghost %dir %{_localstatedir}/run/libvirt/network/
1883 1884 1885 1886 1887 1888
%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so

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

%files daemon-driver-storage
1889 1890

%files daemon-driver-storage-core
1891
%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1892
%{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1893
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
1894 1895

%files daemon-driver-storage-disk
1896
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
1897 1898

%files daemon-driver-storage-logical
1899
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_logical.so
1900 1901

%files daemon-driver-storage-scsi
1902
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_scsi.so
1903 1904

%files daemon-driver-storage-iscsi
1905
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_iscsi.so
1906 1907

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

1910
%if %{with_storage_gluster}
1911
%files daemon-driver-storage-gluster
1912 1913
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_gluster.so
%endif
1914

1915
%if %{with_storage_rbd}
1916
%files daemon-driver-storage-rbd
1917 1918
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_rbd.so
%endif
1919

1920
%if %{with_storage_sheepdog}
1921
%files daemon-driver-storage-sheepdog
1922 1923
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_sheepdog.so
%endif
1924

1925 1926 1927 1928 1929
%if %{with_storage_zfs}
%files daemon-driver-storage-zfs
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_zfs.so
%endif

1930
%if %{with_qemu}
1931
%files daemon-driver-qemu
1932
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1933 1934 1935 1936 1937
%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/
1938
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1939 1940 1941
%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
1942
%{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1943
%endif
1944

1945
%if %{with_lxc}
1946
%files daemon-driver-lxc
1947 1948 1949 1950 1951 1952 1953 1954
%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
1955
%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1956
%endif
1957

1958
%if %{with_uml}
1959
%files daemon-driver-uml
1960 1961 1962 1963
%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/
1964
%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
1965
%endif
1966

1967
%if %{with_xen}
1968
%files daemon-driver-xen
1969
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
1970
%{_libdir}/%{name}/connection-driver/libvirt_driver_xen.so
1971
%endif
1972

1973
%if %{with_libxl}
1974
%files daemon-driver-libxl
1975
%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
J
Jim Fehlig 已提交
1976
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.libxl
1977
%config(noreplace) %{_sysconfdir}/libvirt/libxl-lockd.conf
1978 1979
%{_datadir}/augeas/lenses/libvirtd_libxl.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
1980 1981 1982
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
%ghost %dir %{_localstatedir}/run/libvirt/libxl/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1983
%{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1984
%endif
1985

1986
%if %{with_vbox}
1987 1988
%files daemon-driver-vbox
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
1989
%endif
1990

1991
%if %{with_qemu_tcg}
1992
%files daemon-qemu
1993
%endif
1994

1995
%if %{with_qemu_kvm}
1996
%files daemon-kvm
1997
%endif
1998

1999
%if %{with_lxc}
2000
%files daemon-lxc
2001
%endif
2002

2003
%if %{with_uml}
2004
%files daemon-uml
2005
%endif
2006

2007
%if %{with_xen} || %{with_libxl}
2008
%files daemon-xen
2009
%endif
2010

2011
%if %{with_vbox}
2012
%files daemon-vbox
2013
%endif
2014

2015 2016
%if %{with_sanlock}
%files lock-sanlock
2017
    %if %{with_qemu}
2018
%config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
2019
    %endif
2020 2021 2022
    %if %{with_libxl}
%config(noreplace) %{_sysconfdir}/libvirt/libxl-sanlock.conf
    %endif
2023
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
2024 2025
%{_datadir}/augeas/lenses/libvirt_sanlock.aug
%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
2026
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock
2027 2028
%{_sbindir}/virt-sanlock-cleanup
%{_mandir}/man8/virt-sanlock-cleanup.8*
2029
%attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
2030 2031
%endif

M
Michal Privoznik 已提交
2032
%files client
2033 2034
%{_mandir}/man1/virsh.1*
%{_mandir}/man1/virt-xml-validate.1*
2035
%{_mandir}/man1/virt-pki-validate.1*
2036
%{_mandir}/man1/virt-host-validate.1*
2037 2038
%{_bindir}/virsh
%{_bindir}/virt-xml-validate
2039
%{_bindir}/virt-pki-validate
2040
%{_bindir}/virt-host-validate
2041

2042 2043
%{_datadir}/systemtap/tapset/libvirt_probes*.stp
%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
2044 2045
%{_datadir}/systemtap/tapset/libvirt_functions.stp

M
Michal Privoznik 已提交
2046 2047 2048 2049 2050 2051 2052 2053 2054 2055

%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
2056 2057
# RHEL6 doesn't have 'license' macro
%{!?_licensedir:%global license %%doc}
2058
%license COPYING COPYING.LESSER
M
Michal Privoznik 已提交
2059 2060 2061 2062 2063 2064
%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.*
2065 2066
%dir %{_datadir}/libvirt/
%dir %{_datadir}/libvirt/schemas/
M
Michal Privoznik 已提交
2067
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
2068

2069 2070
%{_datadir}/libvirt/schemas/basictypes.rng
%{_datadir}/libvirt/schemas/capability.rng
J
Jiri Denemark 已提交
2071
%{_datadir}/libvirt/schemas/cputypes.rng
2072
%{_datadir}/libvirt/schemas/domain.rng
M
Michal Privoznik 已提交
2073
%{_datadir}/libvirt/schemas/domaincaps.rng
2074
%{_datadir}/libvirt/schemas/domaincommon.rng
2075
%{_datadir}/libvirt/schemas/domainsnapshot.rng
2076
%{_datadir}/libvirt/schemas/interface.rng
2077
%{_datadir}/libvirt/schemas/network.rng
2078
%{_datadir}/libvirt/schemas/networkcommon.rng
2079
%{_datadir}/libvirt/schemas/nodedev.rng
2080
%{_datadir}/libvirt/schemas/nwfilter.rng
M
Miloslav Trmač 已提交
2081
%{_datadir}/libvirt/schemas/secret.rng
2082
%{_datadir}/libvirt/schemas/storagecommon.rng
2083 2084
%{_datadir}/libvirt/schemas/storagepool.rng
%{_datadir}/libvirt/schemas/storagevol.rng
2085

J
Jiri Denemark 已提交
2086 2087
%{_datadir}/libvirt/cpu_map.xml

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

2090 2091
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf

2092 2093 2094 2095 2096
%files admin
%{_mandir}/man1/virt-admin.1*
%{_bindir}/virt-admin


2097 2098
%if %{with_wireshark}
%files wireshark
2099
%{_libdir}/wireshark/plugins/libvirt.so
2100 2101
%endif

2102 2103
%files nss
%{_libdir}/libnss_libvirt.so.2
2104
%{_libdir}/libnss_libvirt_guest.so.2
2105

2106 2107
%if %{with_lxc}
%files login-shell
2108
%attr(4750, root, virtlogin) %{_bindir}/virt-login-shell
2109 2110 2111 2112
%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf
%{_mandir}/man1/virt-login-shell.1*
%endif

2113
%files devel
2114
%{_libdir}/libvirt.so
2115
%{_libdir}/libvirt-admin.so
2116 2117
%{_libdir}/libvirt-qemu.so
%{_libdir}/libvirt-lxc.so
2118
%dir %{_includedir}/libvirt
2119 2120
%{_includedir}/libvirt/virterror.h
%{_includedir}/libvirt/libvirt.h
2121
%{_includedir}/libvirt/libvirt-admin.h
2122
%{_includedir}/libvirt/libvirt-common.h
2123
%{_includedir}/libvirt/libvirt-domain.h
2124
%{_includedir}/libvirt/libvirt-domain-snapshot.h
2125
%{_includedir}/libvirt/libvirt-event.h
2126
%{_includedir}/libvirt/libvirt-host.h
2127
%{_includedir}/libvirt/libvirt-interface.h
2128
%{_includedir}/libvirt/libvirt-network.h
2129
%{_includedir}/libvirt/libvirt-nodedev.h
2130
%{_includedir}/libvirt/libvirt-nwfilter.h
2131
%{_includedir}/libvirt/libvirt-secret.h
2132
%{_includedir}/libvirt/libvirt-storage.h
2133
%{_includedir}/libvirt/libvirt-stream.h
2134 2135
%{_includedir}/libvirt/libvirt-qemu.h
%{_includedir}/libvirt/libvirt-lxc.h
2136
%{_libdir}/pkgconfig/libvirt.pc
2137
%{_libdir}/pkgconfig/libvirt-admin.pc
2138 2139
%{_libdir}/pkgconfig/libvirt-qemu.pc
%{_libdir}/pkgconfig/libvirt-lxc.pc
2140

2141 2142
%dir %{_datadir}/libvirt/api/
%{_datadir}/libvirt/api/libvirt-api.xml
2143
%{_datadir}/libvirt/api/libvirt-admin-api.xml
2144
%{_datadir}/libvirt/api/libvirt-qemu-api.xml
2145
%{_datadir}/libvirt/api/libvirt-lxc-api.xml
2146
# Needed building python bindings
2147
%doc docs/libvirt-api.xml
2148

2149

2150
%changelog