libvirt.spec.in 61.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

19
# The hypervisor drivers that run in libvirtd
20 21 22 23 24 25
%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}
26

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

%define qemu_kvm_arches %{ix86} x86_64

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

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

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

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

53 54 55
# 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}
56 57
%define with_phyp          0%{!?_without_phyp:1}
%define with_esx           0%{!?_without_esx:1}
58
%define with_hyperv        0%{!?_without_hyperv:1}
59

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

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

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

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

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

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

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

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

118 119 120 121 122 123 124
# 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

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


131
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
J
Ján Tomko 已提交
132
# VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
133
# or HyperV.
134
%if 0%{?rhel}
135 136 137 138 139 140 141 142
    %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
143
    %define with_vz 0
144 145
%endif

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

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

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

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

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

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

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

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

194

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

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

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

212

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


220 221 222 223 224
# 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 已提交
225
%else
226
    %define enable_werror --disable-werror
227 228
%endif

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

239

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

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

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

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}
282
Requires: libvirt-client = %{version}-%{release}
M
Michal Privoznik 已提交
283
Requires: libvirt-libs = %{version}-%{release}
284

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

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

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

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

433 434
# Fedora build root suckage
BuildRequires: gawk
435

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

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

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

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

455 456
Provides: bundled(gnulib)

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

462 463 464 465 466 467 468 469
%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.

470 471 472 473 474 475 476
%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 已提交
477 478
# The client side, i.e. shared libs are in a subpackage
Requires: %{name}-libs = %{version}-%{release}
479 480 481 482 483 484

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

%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}
522
Requires: libvirt-daemon-driver-network = %{version}-%{release}
523 524 525 526 527 528 529 530 531

%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}
532
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
533 534 535

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

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

%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}
558
Requires: iptables
559
%if 0%{?rhel} && 0%{?rhel} < 7
560
Requires: iptables-ipv6
561
%endif
562
Requires: ebtables
563 564 565 566 567 568 569 570 571 572 573

%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}
574
# needed for device enumeration
575
%if 0%{?fedora} || 0%{?rhel} >= 7
576
Requires: systemd >= 185
577
%else
578
Requires: udev >= 145
579
%endif
580 581 582 583 584 585 586 587 588 589 590

%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}
591
%if (0%{?fedora} || 0%{?rhel} >= 7)
592
Requires: netcf-libs >= 0.2.2
593
%endif
594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609

%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.

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


730 731 732 733 734 735 736 737 738 739 740 741 742 743 744
%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


745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762
%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
763 764 765
%if %{with_storage_zfs}
Requires: libvirt-daemon-driver-storage-zfs = %{version}-%{release}
%endif
766

767 768 769 770 771 772
%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.


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

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


798
%if %{with_lxc}
799 800 801 802 803
%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
804
Requires: libvirt-daemon-driver-network = %{version}-%{release}
A
Andrea Bolognani 已提交
805
    %if 0%{?fedora} >= 24
806
Requires: systemd-container
A
Andrea Bolognani 已提交
807
    %endif
808 809 810 811 812

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


816
%if %{with_uml}
817 818 819 820 821 822 823 824 825
%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
826
%endif
827 828


829
%if %{with_xen}
830 831 832 833 834 835 836 837 838
%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
839
%endif
840 841


842
%if %{with_vbox}
843 844 845 846 847 848 849 850 851
%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
852
%endif
853 854


855
%if %{with_libxl}
856 857 858 859 860 861 862 863 864
%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
865
%endif
866 867


868

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

Requires: libvirt-daemon = %{version}-%{release}
875 876 877 878
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}
879
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
880 881
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
882 883 884 885 886
Requires: qemu

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


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

Requires: libvirt-daemon = %{version}-%{release}
896 897 898 899
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}
900
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
901 902
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
903 904 905 906 907
Requires: qemu-kvm

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


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

Requires: libvirt-daemon = %{version}-%{release}
917 918 919 920
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}
921
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
922 923
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
924 925 926 927

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


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

Requires: libvirt-daemon = %{version}-%{release}
937 938 939 940
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}
941
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
942 943
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
944 945 946 947 948
# 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
949
%endif
950 951


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

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

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

977
%if %{with_vbox}
978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993
%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
994
%endif
995

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

%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
1021
Requires: cyrus-sasl
1022 1023 1024
# 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
1025

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

1029 1030 1031 1032 1033 1034 1035 1036 1037
%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.

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

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

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

%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

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

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

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

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

1085 1086 1087 1088 1089 1090 1091 1092
%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 已提交
1093

1094
%prep
1095 1096 1097 1098 1099
%if ! %{supported_platform}
echo "This RPM requires either Fedora >= 20 or RHEL >= 6"
exit 1
%endif

1100 1101
%setup -q

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 1131 1132 1133 1134 1135
# 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
1136
rm -rf .git
1137

1138
%build
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
1740 1741
%doc AUTHORS ChangeLog.gz NEWS README TODO
%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
%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1798
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1799

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

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

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

1817
%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1818

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

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

1828 1829
%doc examples/polkit/*.rules

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

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

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

%files daemon-driver-network
1843 1844 1845 1846 1847 1848
%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/
1849
%attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
1850 1851 1852 1853 1854 1855
%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so

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

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

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

%files daemon-driver-storage
1864 1865

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

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

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

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

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

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

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

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

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

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

1905
%if %{with_qemu}
1906
%files daemon-driver-qemu
1907
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1908 1909 1910 1911 1912
%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/
1913
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1914 1915 1916
%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
1917
%{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1918
%endif
1919

1920
%if %{with_lxc}
1921
%files daemon-driver-lxc
1922 1923 1924 1925 1926 1927 1928 1929
%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
1930
%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1931
%endif
1932

1933
%if %{with_uml}
1934
%files daemon-driver-uml
1935 1936 1937 1938
%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/
1939
%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
1940
%endif
1941

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

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

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

1966
%if %{with_qemu_tcg}
1967
%files daemon-qemu
1968
%endif
1969

1970
%if %{with_qemu_kvm}
1971
%files daemon-kvm
1972
%endif
1973

1974
%if %{with_lxc}
1975
%files daemon-lxc
1976
%endif
1977

1978
%if %{with_uml}
1979
%files daemon-uml
1980
%endif
1981

1982
%if %{with_xen} || %{with_libxl}
1983
%files daemon-xen
1984
%endif
1985

1986
%if %{with_vbox}
1987
%files daemon-vbox
1988
%endif
1989

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

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

2017 2018
%{_datadir}/systemtap/tapset/libvirt_probes*.stp
%{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
2019 2020
%{_datadir}/systemtap/tapset/libvirt_functions.stp

M
Michal Privoznik 已提交
2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037

%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
%doc COPYING COPYING.LESSER
%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.*
2038 2039
%dir %{_datadir}/libvirt/
%dir %{_datadir}/libvirt/schemas/
M
Michal Privoznik 已提交
2040
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
2041

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

J
Jiri Denemark 已提交
2059 2060
%{_datadir}/libvirt/cpu_map.xml

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

2063 2064
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf

2065 2066 2067 2068 2069
%files admin
%{_mandir}/man1/virt-admin.1*
%{_bindir}/virt-admin


2070 2071
%if %{with_wireshark}
%files wireshark
2072
%{_libdir}/wireshark/plugins/libvirt.so
2073 2074
%endif

2075 2076
%files nss
%{_libdir}/libnss_libvirt.so.2
2077
%{_libdir}/libnss_libvirt_guest.so.2
2078

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

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

2114 2115
%dir %{_datadir}/libvirt/api/
%{_datadir}/libvirt/api/libvirt-api.xml
2116
%{_datadir}/libvirt/api/libvirt-admin-api.xml
2117
%{_datadir}/libvirt/api/libvirt-qemu-api.xml
2118
%{_datadir}/libvirt/api/libvirt-lxc-api.xml
2119
# Needed building python bindings
2120
%doc docs/libvirt-api.xml
2121

2122

2123
%changelog