d0107545c7754492dc8619dcea7d8a0bc11d7757
[libvirt.git] / libvirt.spec
1 # -*- rpm-spec -*-
2
3 %define mainstream_version 1.0.2
4 %define module_version_varname mainstream_version
5 %define taglevel 1
6
7 #libvirt-RPMFLAGS := --without storage-disk --without storage-iscsi --without storage-scsi \
8 #                       --without storage-fs --without storage-lvm \
9 #                       --without polkit --without sasl --without audit --with capng --with udev \
10 #                       --without netcf --without avahi --without sanlock \
11 #                       --without xen --without qemu --without hyperv --without phyp --without esx \
12 #                       --without libxl \
13 %define _without_storage_disk   true
14 %define _without_storage_iscsi  true
15 %define _without_storage_fs     true
16 %define _without_storage_lvm    true
17 %define _without_polkit         true
18 %define _without_sasl           true
19 %define _without_audit          true
20 #interface requires netcf
21 #%define _without_netcf         true
22 %define _without_avahi          true
23 %define _without_sanlock        true
24 %define _without_xen            true
25 %define _without_qemu           true
26 %define _without_hyperv         true
27 %define _without_phyp           true
28 %define _without_esx            true
29 %define _without_libxl          true
30
31 # turn this off even on f18 as an attempt to get back /proc/meminfo
32 %define _without_fuse           true
33
34 %define enable_autotools        1
35
36 # If neither fedora nor rhel was defined, try to guess them from %{dist}
37 %if !0%{?rhel} && !0%{?fedora}
38 %{expand:%(echo "%{?dist}" | \
39   sed -ne 's/^\.el\([0-9]\+\).*/%%define rhel \1/p')}
40 %{expand:%(echo "%{?dist}" | \
41   sed -ne 's/^\.fc\?\([0-9]\+\).*/%%define fedora \1/p')}
42 %endif
43
44 # Default to skipping autoreconf.  Distros can change just this one line
45 # (or provide a command-line override) if they backport any patches that
46 # touch configure.ac or Makefile.am.
47 %{!?enable_autotools:%define enable_autotools 0}
48
49 # A client only build will create a libvirt.so only containing
50 # the generic RPC driver, and test driver and no libvirtd
51 # Default to a full server + client build
52 %define client_only        0
53
54 # Now turn off server build in certain cases
55
56 # RHEL-5 builds are client-only for s390, ppc
57 %if 0%{?rhel} == 5
58     %ifnarch %{ix86} x86_64 ia64
59         %define client_only        1
60     %endif
61 %endif
62
63 # Disable all server side drivers if client only build requested
64 %if %{client_only}
65     %define server_drivers     0
66 %else
67     %define server_drivers     1
68 %endif
69
70 # Always build with dlopen'd modules
71 %define with_driver_modules 1
72
73 # Now set the defaults for all the important features, independent
74 # of any particular OS
75
76 # First the daemon itself
77 %define with_libvirtd      0%{!?_without_libvirtd:%{server_drivers}}
78 %define with_avahi         0%{!?_without_avahi:%{server_drivers}}
79
80 # Then the hypervisor drivers that run in libvirtd
81 %define with_xen           0%{!?_without_xen:%{server_drivers}}
82 %define with_qemu          0%{!?_without_qemu:%{server_drivers}}
83 %define with_lxc           0%{!?_without_lxc:%{server_drivers}}
84 %define with_uml           0%{!?_without_uml:%{server_drivers}}
85 %define with_libxl         0%{!?_without_libxl:%{server_drivers}}
86
87 %define with_qemu_tcg      %{with_qemu}
88 # Change if we ever provide qemu-kvm binaries on non-x86 hosts
89 %if 0%{?fedora} >= 18
90     %define qemu_kvm_arches    %{ix86} x86_64 ppc64 s390x
91 %else
92     %define qemu_kvm_arches    %{ix86} x86_64
93 %endif
94
95 %ifarch %{qemu_kvm_arches}
96     %define with_qemu_kvm      %{with_qemu}
97 %else
98     %define with_qemu_kvm      0
99 %endif
100
101 # Then the hypervisor drivers that run outside libvirtd, in libvirt.so
102 %define with_openvz        0%{!?_without_openvz:1}
103 %define with_vbox          0%{!?_without_vbox:1}
104 %define with_vmware        0%{!?_without_vmware:1}
105 %define with_phyp          0%{!?_without_phyp:1}
106 %define with_esx           0%{!?_without_esx:1}
107 %define with_hyperv        0%{!?_without_hyperv:1}
108 %define with_xenapi        0%{!?_without_xenapi:1}
109 %define with_parallels     0%{!?_without_parallels:1}
110
111 # Then the secondary host drivers, which run inside libvirtd
112 %define with_interface        0%{!?_without_interface:%{server_drivers}}
113 %define with_network          0%{!?_without_network:%{server_drivers}}
114 %define with_storage_fs       0%{!?_without_storage_fs:%{server_drivers}}
115 %define with_storage_lvm      0%{!?_without_storage_lvm:%{server_drivers}}
116 %define with_storage_iscsi    0%{!?_without_storage_iscsi:%{server_drivers}}
117 %define with_storage_disk     0%{!?_without_storage_disk:%{server_drivers}}
118 %define with_storage_mpath    0%{!?_without_storage_mpath:%{server_drivers}}
119 %if 0%{?fedora} >= 16
120     %define with_storage_rbd      0%{!?_without_storage_rbd:%{server_drivers}}
121 %else
122     %define with_storage_rbd      0
123 %endif
124 %if 0%{?fedora} >= 17
125     %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:%{server_drivers}}
126 %else
127     %define with_storage_sheepdog 0
128 %endif
129 %define with_numactl          0%{!?_without_numactl:%{server_drivers}}
130 %define with_selinux          0%{!?_without_selinux:%{server_drivers}}
131
132 # A few optional bits off by default, we enable later
133 %define with_polkit        0%{!?_without_polkit:0}
134 %define with_capng         0%{!?_without_capng:0}
135 %define with_fuse          0%{!?_without_fuse:0}
136 %define with_netcf         0%{!?_without_netcf:0}
137 %define with_udev          0%{!?_without_udev:0}
138 %define with_hal           0%{!?_without_hal:0}
139 %define with_yajl          0%{!?_without_yajl:0}
140 %define with_nwfilter      0%{!?_without_nwfilter:0}
141 %define with_libpcap       0%{!?_without_libpcap:0}
142 %define with_macvtap       0%{!?_without_macvtap:0}
143 %define with_libnl         0%{!?_without_libnl:0}
144 %define with_audit         0%{!?_without_audit:0}
145 %define with_dtrace        0%{!?_without_dtrace:0}
146 %define with_cgconfig      0%{!?_without_cgconfig:0}
147 %define with_sanlock       0%{!?_without_sanlock:0}
148 %define with_systemd       0%{!?_without_systemd:0}
149 %define with_numad         0%{!?_without_numad:0}
150 %define with_firewalld     0%{!?_without_firewalld:0}
151 %define with_libssh2       0%{!?_without_libssh2:0}
152
153 # Non-server/HV driver defaults which are always enabled
154 %define with_python        0%{!?_without_python:1}
155 %define with_sasl          0%{!?_without_sasl:1}
156
157
158 # Finally set the OS / architecture specific special cases
159
160 # Xen is available only on i386 x86_64 ia64
161 %ifnarch %{ix86} x86_64 ia64
162     %define with_xen 0
163     %define with_libxl 0
164 %endif
165
166 # Numactl is not available on s390[x] and ARM
167 %ifarch s390 s390x %{arm}
168     %define with_numactl 0
169 %endif
170
171 # RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
172 # VMWare, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
173 # or HyperV.
174 %if 0%{?rhel}
175     %define with_openvz 0
176     %define with_vbox 0
177     %define with_uml 0
178     %define with_phyp 0
179     %define with_vmware 0
180     %define with_xenapi 0
181     %define with_libxl 0
182     %define with_hyperv 0
183     %define with_parallels 0
184 %endif
185
186 # Fedora 17 / RHEL-7 are first where we use systemd. Although earlier
187 # Fedora has systemd, libvirt still used sysvinit there.
188 %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
189     %define with_systemd 1
190 %endif
191
192 # Fedora 18 / RHEL-7 are first where firewalld support is enabled
193 %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
194     %define with_firewalld 1
195 %endif
196
197 # RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
198 %if 0%{?rhel} == 5
199     %define with_qemu_tcg 0
200     %ifnarch x86_64
201         %define with_qemu 0
202         %define with_qemu_kvm 0
203     %endif
204     %define with_lxc 0
205 %endif
206
207 # RHEL-6 has restricted QEMU to x86_64 only, stopped including Xen
208 # on all archs. Other archs all have LXC available though
209 %if 0%{?rhel} >= 6
210     %define with_qemu_tcg 0
211     %ifnarch x86_64
212         %define with_qemu 0
213         %define with_qemu_kvm 0
214     %endif
215     %define with_xen 0
216 %endif
217
218 # Fedora doesn't have any QEMU on ppc64 until FC16 - only ppc
219 %if 0%{?fedora} && 0%{?fedora} < 16
220     %ifarch ppc64
221         %define with_qemu 0
222     %endif
223 %endif
224
225 # Fedora doesn't have new enough Xen for libxl until F18
226 %if 0%{?fedora} && 0%{?fedora} < 18
227     %define with_libxl 0
228 %endif
229
230 # PolicyKit was introduced in Fedora 8 / RHEL-6 or newer
231 %if 0%{?fedora} >= 8 || 0%{?rhel} >= 6
232     %define with_polkit    0%{!?_without_polkit:1}
233 %endif
234
235 # libcapng is used to manage capabilities in Fedora 12 / RHEL-6 or newer
236 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
237     %define with_capng     0%{!?_without_capng:1}
238 %endif
239
240 # fuse is used to provide virtualized /proc for LXC
241 %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
242     %define with_fuse      0%{!?_without_fuse:1}
243 %endif
244
245 # netcf is used to manage network interfaces in Fedora 12 / RHEL-6 or newer
246 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
247     %define with_netcf     0%{!?_without_netcf:%{server_drivers}}
248 %endif
249
250 # udev is used to manage host devices in Fedora 12 / RHEL-6 or newer
251 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
252     %define with_udev     0%{!?_without_udev:%{server_drivers}}
253 %else
254     %define with_hal       0%{!?_without_hal:%{server_drivers}}
255 %endif
256
257 # interface requires netcf
258 %if ! 0%{?with_netcf}
259     %define with_interface     0
260 %endif
261
262 # Enable yajl library for JSON mode with QEMU
263 %if 0%{?fedora} >= 13 || 0%{?rhel} >= 6
264     %define with_yajl     0%{!?_without_yajl:%{server_drivers}}
265 %endif
266
267 # Enable sanlock library for lock management with QEMU
268 # Sanlock is available only on i686 x86_64 for RHEL
269 %if 0%{?fedora} >= 16
270     %define with_sanlock 0%{!?_without_sanlock:%{server_drivers}}
271 %endif
272 %if 0%{?rhel} >= 6
273     %ifarch %{ix86} x86_64
274         %define with_sanlock 0%{!?_without_sanlock:%{server_drivers}}
275     %endif
276 %endif
277
278 # Enable libssh2 transport for new enough distros
279 %if 0%{?fedora} >= 17 || 0%{?rhel} >= 6
280     %define with_libssh2 0%{!?_without_libssh2:1}
281 %endif
282
283 # Disable some drivers when building without libvirt daemon.
284 # The logic is the same as in configure.ac
285 %if ! %{with_libvirtd}
286     %define with_interface 0
287     %define with_network 0
288     %define with_qemu 0
289     %define with_lxc 0
290     %define with_uml 0
291     %define with_hal 0
292     %define with_udev 0
293     %define with_storage_fs 0
294     %define with_storage_lvm 0
295     %define with_storage_iscsi 0
296     %define with_storage_mpath 0
297     %define with_storage_rbd 0
298     %define with_storage_sheepdog 0
299     %define with_storage_disk 0
300 %endif
301
302 %if %{with_qemu} || %{with_lxc} || %{with_uml}
303     %define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}}
304 # Enable libpcap library
305     %define with_libpcap  0%{!?_without_libpcap:%{server_drivers}}
306     %define with_macvtap  0%{!?_without_macvtap:%{server_drivers}}
307
308 # numad is used to manage the CPU and memory placement dynamically,
309 # it's not available on s390[x] and ARM.
310     %if 0%{?fedora} >= 17 || 0%{?rhel} >= 6
311         %ifnarch s390 s390x %{arm}
312             %define with_numad    0%{!?_without_numad:%{server_drivers}}
313         %endif
314     %endif
315 %endif
316
317 %if %{with_macvtap}
318     %define with_libnl 1
319 %endif
320
321 %if 0%{?fedora} >= 11 || 0%{?rhel} >= 5
322     %define with_audit    0%{!?_without_audit:1}
323 %endif
324
325 %if 0%{?fedora} >= 13 || 0%{?rhel} >= 6
326     %define with_dtrace 1
327 %endif
328
329 # Pull in cgroups config system
330 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
331     %if %{with_qemu} || %{with_lxc}
332         %define with_cgconfig 0%{!?_without_cgconfig:1}
333     %endif
334 %endif
335
336 %if %{with_udev} || %{with_hal}
337     %define with_nodedev 1
338 %else
339     %define with_nodedev 0
340 %endif
341
342 %if %{with_storage_fs} || %{with_storage_mpath} || %{with_storage_iscsi} || %{with_storage_lvm} || %{with_storage_disk}
343     %define with_storage 1
344 %else
345     %define with_storage 0
346 %endif
347
348
349 # Force QEMU to run as non-root
350 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
351     %define qemu_user  qemu
352     %define qemu_group  qemu
353 %else
354     %define qemu_user  root
355     %define qemu_group  root
356 %endif
357
358
359 # The RHEL-5 Xen package has some feature backports. This
360 # flag is set to enable use of those special bits on RHEL-5
361 %if 0%{?rhel} == 5
362     %define with_rhel5  1
363 %else
364     %define with_rhel5  0
365 %endif
366
367 %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
368     %define with_systemd_macros 1
369 %else
370     %define with_systemd_macros 0
371 %endif
372
373
374 Summary: Library providing a simple virtualization API
375 Name: libvirt
376 Version: %{mainstream_version}
377 Release: %{taglevel}
378 License: LGPLv2+
379 Group: Development/Libraries
380 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
381 URL: http://libvirt.org/
382
383 %if %(echo %{version} | grep -o \\. | wc -l) == 3
384     %define mainturl stable_updates/
385 %endif
386 Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
387 Patch1: libcurl.patch
388 Patch3: securityselinuxlabeltest.patch
389
390 %if %{with_libvirtd}
391 Requires: libvirt-daemon = %{version}-%{release}
392     %if %{with_network}
393 Requires: libvirt-daemon-config-network = %{version}-%{release}
394     %endif
395     %if %{with_nwfilter}
396 Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
397     %endif
398     %if %{with_driver_modules}
399         %if %{with_libxl}
400 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
401         %endif
402         %if %{with_lxc}
403 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
404         %endif
405         %if %{with_qemu}
406 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
407         %endif
408         %if %{with_uml}
409 Requires: libvirt-daemon-driver-uml = %{version}-%{release}
410         %endif
411         %if %{with_xen}
412 Requires: libvirt-daemon-driver-xen = %{version}-%{release}
413         %endif
414
415         %if %{with_interface}
416 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
417         %endif
418 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
419 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
420 Requires: libvirt-daemon-driver-network = %{version}-%{release}
421 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
422 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
423     %endif
424 %endif
425 Requires: libvirt-client = %{version}-%{release}
426
427 # All build-time requirements. Run-time requirements are
428 # listed against each sub-RPM
429 %if 0%{?enable_autotools}
430 BuildRequires: autoconf
431 BuildRequires: automake
432 BuildRequires: gettext-devel
433 BuildRequires: libtool
434 %endif
435 BuildRequires: python-devel
436 %if %{with_systemd}
437 BuildRequires: systemd-units
438 %endif
439 %if %{with_xen}
440 BuildRequires: xen-devel
441 %endif
442 BuildRequires: libxml2-devel
443 BuildRequires: xhtml1-dtds
444 BuildRequires: libxslt
445 BuildRequires: readline-devel
446 BuildRequires: ncurses-devel
447 BuildRequires: gettext
448 BuildRequires: libtasn1-devel
449 BuildRequires: gnutls-devel
450 BuildRequires: libattr-devel
451 %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
452 # for augparse, optionally used in testing
453 BuildRequires: augeas
454 %endif
455 %if %{with_hal}
456 BuildRequires: hal-devel
457 %endif
458 %if %{with_udev}
459     %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
460 BuildRequires: systemd-devel >= 185
461     %else
462 BuildRequires: libudev-devel >= 145
463     %endif
464 BuildRequires: libpciaccess-devel >= 0.10.9
465 %endif
466 %if %{with_yajl}
467 BuildRequires: yajl-devel
468 %endif
469 %if %{with_sanlock}
470 # make sure libvirt is built with new enough sanlock on
471 # distros that have it; required for on_lockfailure
472     %if 0%{?fedora} >= 17 || 0%{?rhel} >= 6
473 BuildRequires: sanlock-devel >= 2.4
474     %else
475 BuildRequires: sanlock-devel >= 1.8
476     %endif
477 %endif
478 %if %{with_libpcap}
479 BuildRequires: libpcap-devel
480 %endif
481 %if %{with_libnl}
482     %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
483 BuildRequires: libnl3-devel
484     %else
485 BuildRequires: libnl-devel
486     %endif
487 %endif
488 %if %{with_avahi}
489 BuildRequires: avahi-devel
490 %endif
491 %if %{with_selinux}
492 BuildRequires: libselinux-devel
493 %endif
494 %if %{with_network}
495 BuildRequires: dnsmasq >= 2.41
496 BuildRequires: iptables
497 BuildRequires: iptables-ipv6
498 BuildRequires: radvd
499 %endif
500 %if %{with_nwfilter}
501 BuildRequires: ebtables
502 %endif
503 BuildRequires: module-init-tools
504 %if %{with_sasl}
505 BuildRequires: cyrus-sasl-devel
506 %endif
507 %if %{with_polkit}
508     %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
509 # Only need the binary, not -devel
510 BuildRequires: polkit >= 0.93
511     %else
512 BuildRequires: PolicyKit-devel >= 0.6
513     %endif
514 %endif
515 %if %{with_storage_fs}
516 # For mount/umount in FS driver
517 BuildRequires: util-linux
518 %endif
519 %if %{with_qemu}
520 # From QEMU RPMs
521 BuildRequires: /usr/bin/qemu-img
522 %else
523     %if %{with_xen}
524 # From Xen RPMs
525 BuildRequires: /usr/sbin/qcow-create
526     %endif
527 %endif
528 %if %{with_storage_lvm}
529 # For LVM drivers
530 BuildRequires: lvm2
531 %endif
532 %if %{with_storage_iscsi}
533 # For ISCSI driver
534 BuildRequires: iscsi-initiator-utils
535 %endif
536 %if %{with_storage_disk}
537 # For disk driver
538 BuildRequires: parted-devel
539     %if 0%{?rhel} == 5
540 # Broken RHEL-5 parted RPM is missing a dep
541 BuildRequires: e2fsprogs-devel
542     %endif
543 %endif
544 %if %{with_storage_mpath}
545 # For Multipath support
546     %if 0%{?rhel} == 5
547 # Broken RHEL-5 packaging has header files in main RPM :-(
548 BuildRequires: device-mapper
549     %else
550 BuildRequires: device-mapper-devel
551     %endif
552     %if %{with_storage_rbd}
553 BuildRequires: ceph-devel
554     %endif
555 %endif
556 %if %{with_numactl}
557 # For QEMU/LXC numa info
558 BuildRequires: numactl-devel
559 %endif
560 %if %{with_capng}
561 BuildRequires: libcap-ng-devel >= 0.5.0
562 %endif
563 %if %{with_fuse}
564 BuildRequires: fuse-devel >= 2.8.6
565 Requires: fuse
566 %endif
567 %if %{with_phyp} || %{with_libssh2}
568 BuildRequires: libssh2-devel >= 1.3.0
569 %endif
570
571 %if %{with_netcf}
572     %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
573 BuildRequires: netcf-devel >= 0.2.2
574     %else
575         %if 0%{?fedora} >= 16 || 0%{?rhel} >= 6
576 BuildRequires: netcf-devel >= 0.1.8
577         %else
578 BuildRequires: netcf-devel >= 0.1.4
579         %endif
580     %endif
581 %endif
582 %if %{with_esx}
583     %if 0%{?fedora} >= 9 || 0%{?rhel} >= 6
584 BuildRequires: libcurl-devel
585     %else
586 BuildRequires: curl-devel
587     %endif
588 %endif
589 %if %{with_hyperv}
590 BuildRequires: libwsman-devel >= 2.2.3
591 %endif
592 %if %{with_audit}
593 BuildRequires: audit-libs-devel
594 %endif
595 %if %{with_dtrace}
596 # we need /usr/sbin/dtrace
597 BuildRequires: systemtap-sdt-devel
598 %endif
599
600 %if %{with_storage_fs}
601 # For mount/umount in FS driver
602 BuildRequires: util-linux
603 # For showmount in FS driver (netfs discovery)
604 BuildRequires: nfs-utils
605 %endif
606
607 %if %{with_firewalld}
608 # Communication with the firewall daemon uses DBus
609 BuildRequires: dbus-devel
610 %endif
611
612 # Fedora build root suckage
613 BuildRequires: gawk
614
615 # For storage wiping with different algorithms
616 BuildRequires: scrub
617
618 %if %{with_numad}
619 BuildRequires: numad
620 %endif
621
622 Provides: bundled(gnulib)
623
624 %description
625 Libvirt is a C toolkit to interact with the virtualization capabilities
626 of recent versions of Linux (and other OSes). The main package includes
627 the libvirtd server exporting the virtualization support.
628
629 %package docs
630 Summary: API reference and website documentation
631 Group: Development/Libraries
632
633 %description docs
634 Includes the API reference for the libvirt C library, and a complete
635 copy of the libvirt.org website documentation.
636
637 %if %{with_libvirtd}
638 %package daemon
639 Summary: Server side daemon and supporting files for libvirt library
640 Group: Development/Libraries
641
642 # All runtime requirements for the libvirt package (runtime requrements
643 # for subpackages are listed later in those subpackages)
644
645 # The client side, i.e. shared libs and virsh are in a subpackage
646 Requires: %{name}-client = %{version}-%{release}
647
648 # for modprobe of pci devices
649 Requires: module-init-tools
650 # for /sbin/ip & /sbin/tc
651 Requires: iproute
652     %if %{with_avahi}
653         %if 0%{?rhel} == 5
654 Requires: avahi
655         %else
656 Requires: avahi-libs
657         %endif
658     %endif
659     %if %{with_network}
660 Requires: dnsmasq >= 2.41
661 Requires: radvd
662     %endif
663     %if %{with_network} || %{with_nwfilter}
664 Requires: iptables
665 Requires: iptables-ipv6
666     %endif
667     %if %{with_nwfilter}
668 Requires: ebtables
669     %endif
670     %if %{with_netcf} && (0%{?fedora} >= 18 || 0%{?rhel} >= 7)
671 Requires: netcf-libs >= 0.2.2
672     %endif
673 # needed for device enumeration
674     %if %{with_hal}
675 Requires: hal
676     %endif
677     %if %{with_udev}
678         %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
679 Requires: systemd >= 185
680         %else
681 Requires: udev >= 145
682         %endif
683     %endif
684     %if %{with_polkit}
685         %if 0%{?fedora} >= 12 || 0%{?rhel} >=6
686 Requires: polkit >= 0.93
687         %else
688 Requires: PolicyKit >= 0.6
689         %endif
690     %endif
691     %if %{with_storage_fs}
692 Requires: nfs-utils
693 # For mkfs
694 Requires: util-linux
695 # For pool-build probing for existing pools
696 BuildRequires: libblkid-devel >= 2.17
697 # For glusterfs
698         %if 0%{?fedora} >= 11
699 Requires: glusterfs-client >= 2.0.1
700         %endif
701     %endif
702     %if %{with_qemu}
703 # From QEMU RPMs
704 Requires: /usr/bin/qemu-img
705 # For image compression
706 Requires: gzip
707 Requires: bzip2
708 Requires: lzop
709 Requires: xz
710     %else
711         %if %{with_xen}
712 # From Xen RPMs
713 Requires: /usr/sbin/qcow-create
714         %endif
715     %endif
716     %if %{with_storage_lvm}
717 # For LVM drivers
718 Requires: lvm2
719     %endif
720     %if %{with_storage_iscsi}
721 # For ISCSI driver
722 Requires: iscsi-initiator-utils
723     %endif
724     %if %{with_storage_disk}
725 # For disk driver
726 Requires: parted
727 Requires: device-mapper
728     %endif
729     %if %{with_storage_mpath}
730 # For multipath support
731 Requires: device-mapper
732     %endif
733     %if %{with_storage_sheepdog}
734 # For Sheepdog support
735 Requires: sheepdog
736     %endif
737     %if %{with_cgconfig}
738 Requires: libcgroup
739     %endif
740     %ifarch %{ix86} x86_64 ia64
741 # For virConnectGetSysinfo
742 Requires: dmidecode
743     %endif
744 # For service management
745     %if %{with_systemd}
746 Requires(post): systemd-units
747 Requires(post): systemd-sysv
748 Requires(preun): systemd-units
749 Requires(postun): systemd-units
750     %endif
751     %if %{with_numad}
752 Requires: numad
753     %endif
754 # libvirtd depends on 'messagebus' service
755 Requires: dbus
756
757 %description daemon
758 Server side daemon required to manage the virtualization capabilities
759 of recent versions of Linux. Requires a hypervisor specific sub-RPM
760 for specific drivers.
761
762     %if %{with_network}
763 %package daemon-config-network
764 Summary: Default configuration files for the libvirtd daemon
765 Group: Development/Libraries
766
767 Requires: libvirt-daemon = %{version}-%{release}
768
769 %description daemon-config-network
770 Default configuration files for setting up NAT based networking
771     %endif
772
773     %if %{with_nwfilter}
774 %package daemon-config-nwfilter
775 Summary: Network filter configuration files for the libvirtd daemon
776 Group: Development/Libraries
777
778 Requires: libvirt-daemon = %{version}-%{release}
779
780 %description daemon-config-nwfilter
781 Network filter configuration files for cleaning guest traffic
782     %endif
783
784     %if %{with_driver_modules}
785         %if %{with_network}
786 %package daemon-driver-network
787 Summary: Network driver plugin for the libvirtd daemon
788 Group: Development/Libraries
789 Requires: libvirt-daemon = %{version}-%{release}
790
791 %description daemon-driver-network
792 The network driver plugin for the libvirtd daemon, providing
793 an implementation of the virtual network APIs using the Linux
794 bridge capabilities.
795         %endif
796
797
798         %if %{with_nwfilter}
799 %package daemon-driver-nwfilter
800 Summary: Nwfilter driver plugin for the libvirtd daemon
801 Group: Development/Libraries
802 Requires: libvirt-daemon = %{version}-%{release}
803
804 %description daemon-driver-nwfilter
805 The nwfilter driver plugin for the libvirtd daemon, providing
806 an implementation of the firewall APIs using the ebtables,
807 iptables and ip6tables capabilities
808         %endif
809
810
811         %if %{with_nodedev}
812 %package daemon-driver-nodedev
813 Summary: Nodedev driver plugin for the libvirtd daemon
814 Group: Development/Libraries
815 Requires: libvirt-daemon = %{version}-%{release}
816
817 %description daemon-driver-nodedev
818 The nodedev driver plugin for the libvirtd daemon, providing
819 an implementation of the node device APIs using the udev
820 capabilities.
821         %endif
822
823
824         %if %{with_interface}
825 %package daemon-driver-interface
826 Summary: Interface driver plugin for the libvirtd daemon
827 Group: Development/Libraries
828 Requires: libvirt-daemon = %{version}-%{release}
829
830 %description daemon-driver-interface
831 The interface driver plugin for the libvirtd daemon, providing
832 an implementation of the network interface APIs using the
833 netcf library
834         %endif
835
836
837 %package daemon-driver-secret
838 Summary: Secret driver plugin for the libvirtd daemon
839 Group: Development/Libraries
840 Requires: libvirt-daemon = %{version}-%{release}
841
842 %description daemon-driver-secret
843 The secret driver plugin for the libvirtd daemon, providing
844 an implementation of the secret key APIs.
845
846
847         %if %{with_storage}
848 %package daemon-driver-storage
849 Summary: Storage driver plugin for the libvirtd daemon
850 Group: Development/Libraries
851 Requires: libvirt-daemon = %{version}-%{release}
852
853 %description daemon-driver-storage
854 The storage driver plugin for the libvirtd daemon, providing
855 an implementation of the storage APIs using LVM, iSCSI,
856 parted and more.
857         %endif
858
859
860         %if %{with_qemu}
861 %package daemon-driver-qemu
862 Summary: Qemu driver plugin for the libvirtd daemon
863 Group: Development/Libraries
864 Requires: libvirt-daemon = %{version}-%{release}
865 # There really is a hard cross-driver dependency here
866 Requires: libvirt-daemon-driver-network = %{version}-%{release}
867
868 %description daemon-driver-qemu
869 The qemu driver plugin for the libvirtd daemon, providing
870 an implementation of the hypervisor driver APIs using
871 QEMU
872         %endif
873
874
875         %if %{with_lxc}
876 %package daemon-driver-lxc
877 Summary: LXC driver plugin for the libvirtd daemon
878 Group: Development/Libraries
879 Requires: libvirt-daemon = %{version}-%{release}
880 # There really is a hard cross-driver dependency here
881 Requires: libvirt-daemon-driver-network = %{version}-%{release}
882
883 %description daemon-driver-lxc
884 The LXC driver plugin for the libvirtd daemon, providing
885 an implementation of the hypervisor driver APIs using
886 the Linux kernel
887         %endif
888
889
890         %if %{with_uml}
891 %package daemon-driver-uml
892 Summary: Uml driver plugin for the libvirtd daemon
893 Group: Development/Libraries
894 Requires: libvirt-daemon = %{version}-%{release}
895
896 %description daemon-driver-uml
897 The UML driver plugin for the libvirtd daemon, providing
898 an implementation of the hypervisor driver APIs using
899 User Mode Linux
900         %endif
901
902
903         %if %{with_xen}
904 %package daemon-driver-xen
905 Summary: Xen driver plugin for the libvirtd daemon
906 Group: Development/Libraries
907 Requires: libvirt-daemon = %{version}-%{release}
908
909 %description daemon-driver-xen
910 The Xen driver plugin for the libvirtd daemon, providing
911 an implementation of the hypervisor driver APIs using
912 Xen
913         %endif
914
915
916         %if %{with_libxl}
917 %package daemon-driver-libxl
918 Summary: Libxl driver plugin for the libvirtd daemon
919 Group: Development/Libraries
920 Requires: libvirt-daemon = %{version}-%{release}
921
922 %description daemon-driver-libxl
923 The Libxl driver plugin for the libvirtd daemon, providing
924 an implementation of the hypervisor driver APIs using
925 Libxl
926         %endif
927     %endif # %{with_driver_modules}
928
929
930
931     %if %{with_qemu_tcg}
932 %package daemon-qemu
933 Summary: Server side daemon & driver required to run QEMU guests
934 Group: Development/Libraries
935
936 Requires: libvirt-daemon = %{version}-%{release}
937         %if %{with_driver_modules}
938 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
939 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
940 Requires: libvirt-daemon-driver-network = %{version}-%{release}
941 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
942 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
943 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
944 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
945         %endif
946 Requires: qemu
947
948 %description daemon-qemu
949 Server side daemon and driver required to manage the virtualization
950 capabilities of the QEMU TCG emulators
951     %endif
952
953
954     %if %{with_qemu_kvm}
955 %package daemon-kvm
956 Summary: Server side daemon & driver required to run KVM guests
957 Group: Development/Libraries
958
959 Requires: libvirt-daemon = %{version}-%{release}
960         %if %{with_driver_modules}
961 Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
962 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
963 Requires: libvirt-daemon-driver-network = %{version}-%{release}
964 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
965 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
966 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
967 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
968         %endif
969 Requires: qemu-kvm
970
971 %description daemon-kvm
972 Server side daemon and driver required to manage the virtualization
973 capabilities of the KVM hypervisor
974     %endif
975
976
977     %if %{with_lxc}
978 %package daemon-lxc
979 Summary: Server side daemon & driver required to run LXC guests
980 Group: Development/Libraries
981
982 Requires: libvirt-daemon = %{version}-%{release}
983         %if %{with_driver_modules}
984 Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
985 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
986 Requires: libvirt-daemon-driver-network = %{version}-%{release}
987 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
988 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
989 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
990 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
991         %endif
992
993 %description daemon-lxc
994 Server side daemon and driver required to manage the virtualization
995 capabilities of LXC
996     %endif
997
998
999     %if %{with_uml}
1000 %package daemon-uml
1001 Summary: Server side daemon & driver required to run UML guests
1002 Group: Development/Libraries
1003
1004 Requires: libvirt-daemon = %{version}-%{release}
1005         %if %{with_driver_modules}
1006 Requires: libvirt-daemon-driver-uml = %{version}-%{release}
1007 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
1008 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1009 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
1010 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
1011 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
1012 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
1013         %endif
1014 # There are no UML kernel RPMs in Fedora/RHEL to depend on.
1015
1016 %description daemon-uml
1017 Server side daemon and driver required to manage the virtualization
1018 capabilities of UML
1019     %endif
1020
1021
1022     %if %{with_xen} || %{with_libxl}
1023 %package daemon-xen
1024 Summary: Server side daemon & driver required to run XEN guests
1025 Group: Development/Libraries
1026
1027 Requires: libvirt-daemon = %{version}-%{release}
1028         %if %{with_driver_modules}
1029             %if %{with_xen}
1030 Requires: libvirt-daemon-driver-xen = %{version}-%{release}
1031             %endif
1032             %if %{with_libxl}
1033 Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
1034             %endif
1035 Requires: libvirt-daemon-driver-interface = %{version}-%{release}
1036 Requires: libvirt-daemon-driver-network = %{version}-%{release}
1037 Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
1038 Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
1039 Requires: libvirt-daemon-driver-secret = %{version}-%{release}
1040 Requires: libvirt-daemon-driver-storage = %{version}-%{release}
1041         %endif
1042 Requires: xen
1043
1044 %description daemon-xen
1045 Server side daemon and driver required to manage the virtualization
1046 capabilities of XEN
1047     %endif
1048 %endif # %{with_libvirtd}
1049
1050 %package client
1051 Summary: Client side library and utilities of the libvirt library
1052 Group: Development/Libraries
1053 Requires: readline
1054 Requires: ncurses
1055 # So remote clients can access libvirt over SSH tunnel
1056 # (client invokes 'nc' against the UNIX socket on the server)
1057 Requires: nc
1058 # Needed by libvirt-guests init script.
1059 Requires: gettext
1060 # Needed by virt-pki-validate script.
1061 Requires: gnutls-utils
1062 # Needed for probing the power management features of the host.
1063 Requires: pm-utils
1064 %if %{with_sasl}
1065 Requires: cyrus-sasl
1066 # Not technically required, but makes 'out-of-box' config
1067 # work correctly & doesn't have onerous dependencies
1068 Requires: cyrus-sasl-md5
1069 %endif
1070
1071 %description client
1072 Shared libraries and client binaries needed to access to the
1073 virtualization capabilities of recent versions of Linux (and other OSes).
1074
1075 %package devel
1076 Summary: Libraries, includes, etc. to compile with the libvirt library
1077 Group: Development/Libraries
1078 Requires: %{name}-client = %{version}-%{release}
1079 Requires: %{name}-docs = %{version}-%{release}
1080 Requires: pkgconfig
1081
1082 %description devel
1083 Include header files & development libraries for the libvirt C library.
1084
1085 %if %{with_sanlock}
1086 %package lock-sanlock
1087 Summary: Sanlock lock manager plugin for QEMU driver
1088 Group: Development/Libraries
1089     %if 0%{?fedora} >= 17 || 0%{?rhel} >= 6
1090 Requires: sanlock >= 2.4
1091     %else
1092 Requires: sanlock >= 1.8
1093     %endif
1094 #for virt-sanlock-cleanup require augeas
1095 Requires: augeas
1096 Requires: %{name}-daemon = %{version}-%{release}
1097 Requires: %{name}-client = %{version}-%{release}
1098
1099 %description lock-sanlock
1100 Includes the Sanlock lock manager plugin for the QEMU
1101 driver
1102 %endif
1103
1104 %if %{with_python}
1105 %package python
1106 Summary: Python bindings for the libvirt library
1107 Group: Development/Libraries
1108 Requires: %{name}-client = %{version}-%{release}
1109
1110 %description python
1111 The libvirt-python package contains a module that permits applications
1112 written in the Python programming language to use the interface
1113 supplied by the libvirt library to use the virtualization capabilities
1114 of recent versions of Linux (and other OSes).
1115 %endif
1116
1117 %prep
1118 %setup -q
1119 %patch1 -p1
1120 %patch3 -p1
1121
1122 %build
1123 %if ! %{with_xen}
1124     %define _without_xen --without-xen
1125 %endif
1126
1127 %if ! %{with_qemu}
1128     %define _without_qemu --without-qemu
1129 %endif
1130
1131 %if ! %{with_openvz}
1132     %define _without_openvz --without-openvz
1133 %endif
1134
1135 %if ! %{with_lxc}
1136     %define _without_lxc --without-lxc
1137 %endif
1138
1139 %if ! %{with_vbox}
1140     %define _without_vbox --without-vbox
1141 %endif
1142
1143 %if ! %{with_xenapi}
1144     %define _without_xenapi --without-xenapi
1145 %endif
1146
1147 %if ! %{with_libxl}
1148     %define _without_libxl --without-libxl
1149 %endif
1150
1151 %if ! %{with_sasl}
1152     %define _without_sasl --without-sasl
1153 %endif
1154
1155 %if ! %{with_avahi}
1156     %define _without_avahi --without-avahi
1157 %endif
1158
1159 %if ! %{with_phyp}
1160     %define _without_phyp --without-phyp
1161 %endif
1162
1163 %if ! %{with_esx}
1164     %define _without_esx --without-esx
1165 %endif
1166
1167 %if ! %{with_hyperv}
1168     %define _without_hyperv --without-hyperv
1169 %endif
1170
1171 %if ! %{with_vmware}
1172     %define _without_vmware --without-vmware
1173 %endif
1174
1175 %if ! %{with_parallels}
1176     %define _without_parallels --without-parallels
1177 %endif
1178
1179 %if ! %{with_polkit}
1180     %define _without_polkit --without-polkit
1181 %endif
1182
1183 %if ! %{with_python}
1184     %define _without_python --without-python
1185 %endif
1186
1187 %if ! %{with_libvirtd}
1188     %define _without_libvirtd --without-libvirtd
1189 %endif
1190
1191 %if ! %{with_uml}
1192     %define _without_uml --without-uml
1193 %endif
1194
1195 %if %{with_rhel5}
1196     %define _with_rhel5_api --with-rhel5-api
1197 %endif
1198
1199 %if ! %{with_interface}
1200     %define _without_interface --without-interface
1201 %endif
1202
1203 %if ! %{with_network}
1204     %define _without_network --without-network
1205 %endif
1206
1207 %if ! %{with_storage_fs}
1208     %define _without_storage_fs --without-storage-fs
1209 %endif
1210
1211 %if ! %{with_storage_lvm}
1212     %define _without_storage_lvm --without-storage-lvm
1213 %endif
1214
1215 %if ! %{with_storage_iscsi}
1216     %define _without_storage_iscsi --without-storage-iscsi
1217 %endif
1218
1219 %if ! %{with_storage_disk}
1220     %define _without_storage_disk --without-storage-disk
1221 %endif
1222
1223 %if ! %{with_storage_mpath}
1224     %define _without_storage_mpath --without-storage-mpath
1225 %endif
1226
1227 %if ! %{with_storage_rbd}
1228     %define _without_storage_rbd --without-storage-rbd
1229 %endif
1230
1231 %if ! %{with_storage_sheepdog}
1232     %define _without_storage_sheepdog --without-storage-sheepdog
1233 %endif
1234
1235 %if ! %{with_numactl}
1236     %define _without_numactl --without-numactl
1237 %endif
1238
1239 %if ! %{with_numad}
1240     %define _without_numad --without-numad
1241 %endif
1242
1243 %if ! %{with_capng}
1244     %define _without_capng --without-capng
1245 %endif
1246
1247 %if ! %{with_fuse}
1248     %define _without_fuse --without-fuse
1249 %endif
1250
1251 %if ! %{with_netcf}
1252     %define _without_netcf --without-netcf
1253 %endif
1254
1255 %if ! %{with_selinux}
1256     %define _without_selinux --without-selinux
1257 %endif
1258
1259 %if ! %{with_hal}
1260     %define _without_hal --without-hal
1261 %endif
1262
1263 %if ! %{with_udev}
1264     %define _without_udev --without-udev
1265 %endif
1266
1267 %if ! %{with_yajl}
1268     %define _without_yajl --without-yajl
1269 %endif
1270
1271 %if ! %{with_sanlock}
1272     %define _without_sanlock --without-sanlock
1273 %endif
1274
1275 %if ! %{with_libpcap}
1276     %define _without_libpcap --without-libpcap
1277 %endif
1278
1279 %if ! %{with_macvtap}
1280     %define _without_macvtap --without-macvtap
1281 %endif
1282
1283 %if ! %{with_audit}
1284     %define _without_audit --without-audit
1285 %endif
1286
1287 %if ! %{with_dtrace}
1288     %define _without_dtrace --without-dtrace
1289 %endif
1290
1291 %if ! %{with_driver_modules}
1292     %define _without_driver_modules --without-driver-modules
1293 %endif
1294
1295 %if %{with_firewalld}
1296     %define _with_firewalld --with-firewalld
1297 %endif
1298
1299 %define when  %(date +"%%F-%%T")
1300 %define where %(hostname)
1301 %define who   %{?packager}%{!?packager:Unknown}
1302 %define with_packager --with-packager="%{who}, %{when}, %{where}"
1303 %define with_packager_version --with-packager-version="%{release}"
1304
1305 %if %{with_systemd}
1306     %define init_scripts --with-init_script=systemd
1307 %else
1308     %define init_scripts --with-init_script=redhat
1309 %endif
1310
1311 %if 0%{?enable_autotools}
1312  autoreconf -if
1313 %endif
1314
1315 %if %{with_selinux}
1316     %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
1317         %define with_selinux_mount --with-selinux-mount="/sys/fs/selinux"
1318     %else
1319         %define with_selinux_mount --with-selinux-mount="/selinux"
1320     %endif
1321 %endif
1322
1323 %configure %{?_without_xen} \
1324            %{?_without_qemu} \
1325            %{?_without_openvz} \
1326            %{?_without_lxc} \
1327            %{?_without_vbox} \
1328            %{?_without_libxl} \
1329            %{?_without_xenapi} \
1330            %{?_without_sasl} \
1331            %{?_without_avahi} \
1332            %{?_without_polkit} \
1333            %{?_without_python} \
1334            %{?_without_libvirtd} \
1335            %{?_without_uml} \
1336            %{?_without_phyp} \
1337            %{?_without_esx} \
1338            %{?_without_hyperv} \
1339            %{?_without_vmware} \
1340            %{?_without_parallels} \
1341            %{?_without_interface} \
1342            %{?_without_network} \
1343            %{?_with_rhel5_api} \
1344            %{?_without_storage_fs} \
1345            %{?_without_storage_lvm} \
1346            %{?_without_storage_iscsi} \
1347            %{?_without_storage_disk} \
1348            %{?_without_storage_mpath} \
1349            %{?_without_storage_rbd} \
1350            %{?_without_storage_sheepdog} \
1351            %{?_without_numactl} \
1352            %{?_without_numad} \
1353            %{?_without_capng} \
1354            %{?_without_fuse} \
1355            %{?_without_netcf} \
1356            %{?_without_selinux} \
1357            %{?_with_selinux_mount} \
1358            %{?_without_hal} \
1359            %{?_without_udev} \
1360            %{?_without_yajl} \
1361            %{?_without_sanlock} \
1362            %{?_without_libpcap} \
1363            %{?_without_macvtap} \
1364            %{?_without_audit} \
1365            %{?_without_dtrace} \
1366            %{?_without_driver_modules} \
1367            %{?_with_firewalld} \
1368            %{with_packager} \
1369            %{with_packager_version} \
1370            --with-qemu-user=%{qemu_user} \
1371            --with-qemu-group=%{qemu_group} \
1372            %{init_scripts}
1373 make %{?_smp_mflags}
1374 gzip -9 ChangeLog
1375
1376 %install
1377 rm -fr %{buildroot}
1378
1379 %makeinstall SYSTEMD_UNIT_DIR=%{buildroot}%{_unitdir}
1380 for i in domain-events/events-c dominfo domsuspend hellolibvirt openauth python xml/nwfilter systemtap
1381 do
1382   (cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
1383 done
1384 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
1385 rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
1386 rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
1387 rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
1388 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.la
1389 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/lock-driver/*.a
1390 %if %{with_driver_modules}
1391 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.la
1392 rm -f $RPM_BUILD_ROOT%{_libdir}/libvirt/connection-driver/*.a
1393 %endif
1394
1395 %if %{with_network}
1396 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lib/libvirt/dnsmasq/
1397 # We don't want to install /etc/libvirt/qemu/networks in the main %files list
1398 # because if the admin wants to delete the default network completely, we don't
1399 # want to end up re-incarnating it on every RPM upgrade.
1400 install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
1401 cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
1402    $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1403 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1404 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1405 # Strip auto-generated UUID - we need it generated per-install
1406 sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
1407 %else
1408 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
1409 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1410 %endif
1411 %if ! %{with_qemu}
1412 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
1413 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1414 %endif
1415 %find_lang %{name}
1416
1417 %if ! %{with_sanlock}
1418 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
1419 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1420 %endif
1421
1422 %if ! %{with_lxc}
1423 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
1424 rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1425 %endif
1426
1427 %if ! %{with_python}
1428 rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version}
1429 %else
1430 rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version}/examples
1431 %endif
1432
1433 %if ! %{with_qemu}
1434 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
1435 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
1436 %endif
1437 %if ! %{with_lxc}
1438 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
1439 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
1440 %endif
1441 %if ! %{with_uml}
1442 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
1443 %endif
1444
1445 mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} \
1446    $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-docs-%{version}
1447
1448 %if %{with_dtrace}
1449     %ifarch %{power64} s390x x86_64 ia64 alpha sparc64
1450 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
1451    $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
1452 mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
1453    $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
1454     %endif
1455 %endif
1456
1457 %if 0%{?fedora} < 14 && 0%{?rhel} < 6
1458 rm -f $RPM_BUILD_ROOT%{_prefix}/lib/sysctl.d/libvirtd.conf
1459 %endif
1460
1461 %clean
1462 rm -fr %{buildroot}
1463
1464 %check
1465 cd tests
1466 make
1467 # These tests don't current work in a mock build root
1468 for i in nodeinfotest seclabeltest
1469 do
1470   rm -f $i
1471   printf 'int main(void) { return 0; }' > $i.c
1472   printf '#!/bin/sh\nexit 0\n' > $i
1473   chmod +x $i
1474 done
1475 make check
1476
1477 %if %{with_libvirtd}
1478 %pre daemon
1479     %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
1480 # Normally 'setup' adds this in /etc/passwd, but this is
1481 # here for case of upgrades from earlier Fedora/RHEL. This
1482 # UID/GID pair is reserved for qemu:qemu
1483 getent group kvm >/dev/null || groupadd -g 36 -r kvm
1484 getent group qemu >/dev/null || groupadd -g 107 -r qemu
1485 getent passwd qemu >/dev/null || \
1486   useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
1487     -c "qemu user" qemu
1488     %endif
1489
1490 %post daemon
1491
1492     %if %{with_network}
1493 # All newly defined networks will have a mac address for the bridge
1494 # auto-generated, but networks already existing at the time of upgrade
1495 # will not. We need to go through all the network configs, look for
1496 # those that don't have a mac address, and add one.
1497
1498 network_files=$( (cd %{_localstatedir}/lib/libvirt/network && \
1499                   grep -L "mac address" *.xml; \
1500                   cd %{_sysconfdir}/libvirt/qemu/networks && \
1501                   grep -L "mac address" *.xml) 2>/dev/null \
1502                 | sort -u)
1503
1504 for file in $network_files
1505 do
1506    # each file exists in either the config or state directory (or both) and
1507    # does not have a mac address specified in either. We add the same mac
1508    # address to both files (or just one, if the other isn't there)
1509
1510    mac4=`printf '%X' $(($RANDOM % 256))`
1511    mac5=`printf '%X' $(($RANDOM % 256))`
1512    mac6=`printf '%X' $(($RANDOM % 256))`
1513    for dir in %{_localstatedir}/lib/libvirt/network \
1514               %{_sysconfdir}/libvirt/qemu/networks
1515    do
1516       if test -f $dir/$file
1517       then
1518          sed -i.orig -e \
1519            "s|\(<bridge.*$\)|\0\n  <mac address='52:54:00:$mac4:$mac5:$mac6'/>|" \
1520            $dir/$file
1521          if test $? != 0
1522          then
1523              echo "failed to add <mac address='52:54:00:$mac4:$mac5:$mac6'/>" \
1524                   "to $dir/$file"
1525              mv -f $dir/$file.orig $dir/$file
1526          else
1527              rm -f $dir/$file.orig
1528          fi
1529       fi
1530    done
1531 done
1532     %endif
1533
1534     %if %{with_systemd}
1535         %if %{with_systemd_macros}
1536             %systemd_post libvirtd.service
1537         %else
1538 if [ $1 -eq 1 ] ; then
1539     # Initial installation
1540     /bin/systemctl enable virtlockd.socket >/dev/null 2>&1 || :
1541     /bin/systemctl enable libvirtd.service >/dev/null 2>&1 || :
1542 fi
1543         %endif
1544     %else
1545         %if %{with_cgconfig}
1546 # Starting with Fedora 16/RHEL-7, systemd automounts all cgroups,
1547 # and cgconfig is no longer a necessary service.
1548             %if (0%{?rhel} && 0%{?rhel} < 7) || (0%{?fedora} && 0%{?fedora} < 16)
1549 if [ "$1" -eq "1" ]; then
1550 /sbin/chkconfig cgconfig on
1551 fi
1552             %endif
1553         %endif
1554
1555 /sbin/chkconfig --add libvirtd
1556 if [ "$1" -ge "1" ]; then
1557     /sbin/service libvirtd condrestart > /dev/null 2>&1
1558 fi
1559     %endif
1560
1561 %preun daemon
1562     %if %{with_systemd}
1563         %if %{with_systemd_macros}
1564             %systemd_preun libvirtd.service
1565         %else
1566 if [ $1 -eq 0 ] ; then
1567     # Package removal, not upgrade
1568     /bin/systemctl --no-reload disable virtlockd.socket > /dev/null 2>&1 || :
1569     /bin/systemctl --no-reload disable libvirtd.service > /dev/null 2>&1 || :
1570     /bin/systemctl stop libvirtd.service > /dev/null 2>&1 || :
1571     /bin/systemctl stop virtlockd.service > /dev/null 2>&1 || :
1572 fi
1573         %endif
1574     %else
1575 if [ $1 = 0 ]; then
1576     /sbin/service libvirtd stop 1>/dev/null 2>&1
1577     /sbin/chkconfig --del libvirtd
1578 fi
1579     %endif
1580
1581 %postun daemon
1582     %if %{with_systemd}
1583         %if %{with_systemd_macros}
1584             %systemd_postun_with_restart libvirtd.service
1585         %else
1586 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1587 if [ $1 -ge 1 ] ; then
1588     # Package upgrade, not uninstall
1589     /bin/systemctl status virtlockd.service >/dev/null 2>&1
1590     if [ $? = 1 ] ; then
1591         /bin/systemctl kill --signal=USR1 virtlockd.service >/dev/null 2>&1 || :
1592     fi
1593     /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1594 fi
1595         %endif
1596     %endif
1597
1598     %if %{with_network}
1599 %post daemon-config-network
1600 if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
1601     UUID=`/usr/bin/uuidgen`
1602     sed -e "s,</name>,</name>\n  <uuid>$UUID</uuid>," \
1603          < %{_datadir}/libvirt/networks/default.xml \
1604          > %{_sysconfdir}/libvirt/qemu/networks/default.xml
1605     ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
1606 fi
1607     %endif
1608
1609     %if %{with_systemd}
1610 %triggerun -- libvirt < 0.9.4
1611 %{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||:
1612
1613 # If the package is allowed to autostart:
1614 /bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||:
1615
1616 # Run these because the SysV package being removed won't do them
1617 /sbin/chkconfig --del libvirtd >/dev/null 2>&1 || :
1618 /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
1619     %endif
1620 %endif # %{with_libvirtd}
1621
1622 %preun client
1623
1624 %if %{with_systemd}
1625     %if %{with_systemd_macros}
1626         %systemd_preun libvirt-guests.service
1627     %endif
1628 %else
1629 if [ $1 = 0 ]; then
1630     /sbin/chkconfig --del libvirt-guests
1631     rm -f /var/lib/libvirt/libvirt-guests
1632 fi
1633 %endif
1634
1635 %post client
1636
1637 /sbin/ldconfig
1638 %if %{with_systemd}
1639     %if %{with_systemd_macros}
1640         %systemd_post libvirt-guests.service
1641     %endif
1642 %else
1643 /sbin/chkconfig --add libvirt-guests
1644 %endif
1645
1646 %postun client
1647
1648 /sbin/ldconfig
1649 %if %{with_systemd}
1650     %if %{with_systemd_macros}
1651         %systemd_postun_with_restart libvirt-guests.service
1652     %endif
1653 %triggerun client -- libvirt < 0.9.4
1654 %{_bindir}/systemd-sysv-convert --save libvirt-guests >/dev/null 2>&1 ||:
1655
1656 # If the package is allowed to autostart:
1657 /bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||:
1658
1659 # Run these because the SysV package being removed won't do them
1660 /sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || :
1661 /bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || :
1662 %endif
1663
1664 %if %{with_sanlock}
1665 %post lock-sanlock
1666 if getent group sanlock > /dev/null ; then
1667     chmod 0770 %{_localstatedir}/lib/libvirt/sanlock
1668     chown root:sanlock %{_localstatedir}/lib/libvirt/sanlock
1669 fi
1670 %endif
1671
1672 %files
1673 %defattr(-, root, root)
1674
1675 %files docs
1676 %defattr(-, root, root)
1677 # Website
1678 %dir %{_datadir}/doc/libvirt-docs-%{version}
1679 %dir %{_datadir}/doc/libvirt-docs-%{version}/html
1680 %{_datadir}/doc/libvirt-docs-%{version}/html/*
1681
1682 # API docs
1683 %dir %{_datadir}/gtk-doc/html/libvirt/
1684 %doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
1685 %doc %{_datadir}/gtk-doc/html/libvirt/*.html
1686 %doc %{_datadir}/gtk-doc/html/libvirt/*.png
1687 %doc %{_datadir}/gtk-doc/html/libvirt/*.css
1688
1689 %if %{with_libvirtd}
1690 %files daemon
1691 %defattr(-, root, root)
1692
1693 %doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
1694 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
1695
1696     %if %{with_network}
1697 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
1698 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
1699 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
1700     %endif
1701
1702 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
1703
1704     %if %{with_systemd}
1705 %{_unitdir}/libvirtd.service
1706 %{_unitdir}/virtlockd.service
1707 %{_unitdir}/virtlockd.socket
1708     %else
1709 %{_sysconfdir}/rc.d/init.d/libvirtd
1710 %{_sysconfdir}/rc.d/init.d/virtlockd
1711     %endif
1712 %doc daemon/libvirtd.upstart
1713 %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
1714 %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
1715 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
1716     %if 0%{?fedora} >= 14 || 0%{?rhel} >= 6
1717 %config(noreplace) %{_prefix}/lib/sysctl.d/libvirtd.conf
1718     %endif
1719 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
1720 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
1721 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
1722     %if %{with_libxl}
1723 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/libxl/
1724     %endif
1725
1726 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
1727     %if %{with_qemu}
1728 %config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
1729 %config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
1730 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
1731     %endif
1732     %if %{with_lxc}
1733 %config(noreplace) %{_sysconfdir}/libvirt/lxc.conf
1734 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.lxc
1735     %endif
1736     %if %{with_uml}
1737 %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml
1738     %endif
1739
1740 %dir %{_datadir}/libvirt/
1741
1742     %if %{with_network}
1743 %dir %{_datadir}/libvirt/networks/
1744 %{_datadir}/libvirt/networks/default.xml
1745     %endif
1746
1747 %ghost %dir %{_localstatedir}/run/libvirt/
1748
1749 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
1750 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
1751 %dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
1752 %dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
1753
1754     %if %{with_qemu}
1755 %ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
1756 %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
1757 %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
1758     %endif
1759     %if %{with_lxc}
1760 %ghost %dir %{_localstatedir}/run/libvirt/lxc/
1761 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
1762     %endif
1763     %if %{with_uml}
1764 %ghost %dir %{_localstatedir}/run/libvirt/uml/
1765 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
1766     %endif
1767     %if %{with_libxl}
1768 %ghost %dir %{_localstatedir}/run/libvirt/libxl/
1769 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
1770     %endif
1771     %if %{with_xen}
1772 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/xen/
1773     %endif
1774     %if %{with_network}
1775 %ghost %dir %{_localstatedir}/run/libvirt/network/
1776 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
1777 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
1778     %endif
1779
1780 %dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
1781 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
1782
1783     %if %{with_qemu}
1784 %{_datadir}/augeas/lenses/libvirtd_qemu.aug
1785 %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
1786     %endif
1787
1788     %if %{with_lxc}
1789 %{_datadir}/augeas/lenses/libvirtd_lxc.aug
1790 %{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
1791     %endif
1792
1793 %{_datadir}/augeas/lenses/libvirtd.aug
1794 %{_datadir}/augeas/lenses/tests/test_libvirtd.aug
1795 %{_datadir}/augeas/lenses/libvirt_lockd.aug
1796 %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug
1797
1798     %if %{with_polkit}
1799         %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6
1800 %{_datadir}/polkit-1/actions/org.libvirt.unix.policy
1801         %else
1802 %{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
1803         %endif
1804     %endif
1805
1806 %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
1807
1808     %if %{with_lxc}
1809 %attr(0755, root, root) %{_libexecdir}/libvirt_lxc
1810     %endif
1811
1812     %if %{with_storage_disk}
1813 %attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
1814     %endif
1815
1816 %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
1817 %attr(0755, root, root) %{_sbindir}/libvirtd
1818 %attr(0755, root, root) %{_sbindir}/virtlockd
1819
1820 %{_mandir}/man8/libvirtd.8*
1821
1822     %if %{with_driver_modules}
1823         %if %{with_network}
1824 %files daemon-config-network
1825 %defattr(-, root, root)
1826         %endif
1827
1828         %if %{with_nwfilter}
1829 %files daemon-config-nwfilter
1830 %defattr(-, root, root)
1831 %{_sysconfdir}/libvirt/nwfilter/*.xml
1832         %endif
1833
1834         %if %{with_interface}
1835 %files daemon-driver-interface
1836 %defattr(-, root, root)
1837 %{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
1838         %endif
1839
1840         %if %{with_network}
1841 %files daemon-driver-network
1842 %defattr(-, root, root)
1843 %{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
1844         %endif
1845
1846         %if %{with_nodedev}
1847 %files daemon-driver-nodedev
1848 %defattr(-, root, root)
1849 %{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
1850         %endif
1851
1852         %if %{with_nwfilter}
1853 %files daemon-driver-nwfilter
1854 %defattr(-, root, root)
1855 %{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
1856         %endif
1857
1858 %files daemon-driver-secret
1859 %defattr(-, root, root)
1860 %{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
1861
1862         %if %{with_storage}
1863 %files daemon-driver-storage
1864 %defattr(-, root, root)
1865 %{_libdir}/%{name}/connection-driver/libvirt_driver_storage.so
1866         %endif
1867
1868         %if %{with_qemu}
1869 %files daemon-driver-qemu
1870 %defattr(-, root, root)
1871 %{_libdir}/%{name}/connection-driver/libvirt_driver_qemu.so
1872         %endif
1873
1874         %if %{with_lxc}
1875 %files daemon-driver-lxc
1876 %defattr(-, root, root)
1877 %{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
1878         %endif
1879
1880         %if %{with_uml}
1881 %files daemon-driver-uml
1882 %defattr(-, root, root)
1883 %{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
1884         %endif
1885
1886         %if %{with_xen}
1887 %files daemon-driver-xen
1888 %defattr(-, root, root)
1889 %{_libdir}/%{name}/connection-driver/libvirt_driver_xen.so
1890         %endif
1891
1892         %if %{with_libxl}
1893 %files daemon-driver-libxl
1894 %defattr(-, root, root)
1895 %{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
1896         %endif
1897     %endif # %{with_driver_modules}
1898
1899     %if %{with_qemu_tcg}
1900 %files daemon-qemu
1901 %defattr(-, root, root)
1902     %endif
1903
1904     %if %{with_qemu_kvm}
1905 %files daemon-kvm
1906 %defattr(-, root, root)
1907     %endif
1908
1909     %if %{with_lxc}
1910 %files daemon-lxc
1911 %defattr(-, root, root)
1912     %endif
1913
1914     %if %{with_uml}
1915 %files daemon-uml
1916 %defattr(-, root, root)
1917     %endif
1918
1919     %if %{with_xen} || %{with_libxl}
1920 %files daemon-xen
1921 %defattr(-, root, root)
1922     %endif
1923 %endif # %{with_libvirtd}
1924
1925 %if %{with_sanlock}
1926 %files lock-sanlock
1927 %defattr(-, root, root)
1928     %if %{with_qemu}
1929 %config(noreplace) %{_sysconfdir}/libvirt/qemu-sanlock.conf
1930     %endif
1931 %attr(0755, root, root) %{_libdir}/libvirt/lock-driver/sanlock.so
1932 %{_datadir}/augeas/lenses/libvirt_sanlock.aug
1933 %{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
1934 %dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/sanlock
1935 %{_sbindir}/virt-sanlock-cleanup
1936 %{_mandir}/man8/virt-sanlock-cleanup.8*
1937 %attr(0755, root, root) %{_libexecdir}/libvirt_sanlock_helper
1938 %endif
1939
1940 %files client -f %{name}.lang
1941 %defattr(-, root, root)
1942 %doc AUTHORS ChangeLog.gz NEWS README COPYING.LIB TODO
1943
1944 %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
1945 %{_mandir}/man1/virsh.1*
1946 %{_mandir}/man1/virt-xml-validate.1*
1947 %{_mandir}/man1/virt-pki-validate.1*
1948 %{_mandir}/man1/virt-host-validate.1*
1949 %{_bindir}/virsh
1950 %{_bindir}/virt-xml-validate
1951 %{_bindir}/virt-pki-validate
1952 %{_bindir}/virt-host-validate
1953 %{_libdir}/lib*.so.*
1954
1955 %if %{with_dtrace}
1956 %{_datadir}/systemtap/tapset/libvirt_probes*.stp
1957 %{_datadir}/systemtap/tapset/libvirt_qemu_probes*.stp
1958 %{_datadir}/systemtap/tapset/libvirt_functions.stp
1959 %endif
1960
1961 %dir %{_datadir}/libvirt/
1962 %dir %{_datadir}/libvirt/schemas/
1963
1964 %{_datadir}/libvirt/schemas/basictypes.rng
1965 %{_datadir}/libvirt/schemas/capability.rng
1966 %{_datadir}/libvirt/schemas/domain.rng
1967 %{_datadir}/libvirt/schemas/domaincommon.rng
1968 %{_datadir}/libvirt/schemas/domainsnapshot.rng
1969 %{_datadir}/libvirt/schemas/interface.rng
1970 %{_datadir}/libvirt/schemas/network.rng
1971 %{_datadir}/libvirt/schemas/networkcommon.rng
1972 %{_datadir}/libvirt/schemas/nodedev.rng
1973 %{_datadir}/libvirt/schemas/nwfilter.rng
1974 %{_datadir}/libvirt/schemas/secret.rng
1975 %{_datadir}/libvirt/schemas/storageencryption.rng
1976 %{_datadir}/libvirt/schemas/storagepool.rng
1977 %{_datadir}/libvirt/schemas/storagevol.rng
1978
1979 %{_datadir}/libvirt/cpu_map.xml
1980
1981 %if %{with_systemd}
1982 %{_unitdir}/libvirt-guests.service
1983 %else
1984 %{_sysconfdir}/rc.d/init.d/libvirt-guests
1985 %endif
1986 %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
1987 %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
1988 %dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
1989
1990 %if %{with_sasl}
1991 %config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
1992 %endif
1993
1994 %files devel
1995 %defattr(-, root, root)
1996
1997 %{_libdir}/lib*.so
1998 %dir %{_includedir}/libvirt
1999 %{_includedir}/libvirt/*.h
2000 %{_libdir}/pkgconfig/libvirt.pc
2001
2002 %dir %{_datadir}/libvirt/api/
2003 %{_datadir}/libvirt/api/libvirt-api.xml
2004 %{_datadir}/libvirt/api/libvirt-qemu-api.xml
2005 %{_datadir}/libvirt/api/libvirt-lxc-api.xml
2006
2007 %doc docs/*.html docs/html docs/*.gif
2008 %doc docs/libvirt-api.xml
2009 %doc examples/hellolibvirt
2010 %doc examples/domain-events/events-c
2011 %doc examples/dominfo
2012 %doc examples/domsuspend
2013 %doc examples/openauth
2014 %doc examples/xml
2015 %doc examples/systemtap
2016
2017 %if %{with_python}
2018 %files python
2019 %defattr(-, root, root)
2020
2021 %doc AUTHORS NEWS README COPYING.LIB
2022 %{_libdir}/python*/site-packages/libvirt.py*
2023 %{_libdir}/python*/site-packages/libvirt_qemu.py*
2024 %{_libdir}/python*/site-packages/libvirt_lxc.py*
2025 %{_libdir}/python*/site-packages/libvirtmod*
2026 %doc python/tests/*.py
2027 %doc python/TODO
2028 %doc examples/python
2029 %doc examples/domain-events/events-python
2030 %endif
2031
2032 %changelog
2033 * Wed Jan 30 2013 Daniel Veillard <veillard@redhat.com> - 1.0.2-1
2034 - LXC improvements
2035 - S390 architecture improvement
2036 - Power architecture improvement
2037 - large Coverity report cleanups and associated bug fixes
2038 - virTypedParams* APIs to helps with those data structures
2039 - a lot of bug fixes and overall improvements
2040
2041 * Fri Nov  2 2012 Daniel Veillard <veillard@redhat.com> - 1.0.0-1
2042 - virNodeGetCPUMap: Define public API
2043 - Add systemd journal support
2044 - Add a qemu capabilities cache manager
2045 - USB migration support
2046 - various improvement and fixes when using QMP QEmu interface
2047 - Support for Xen 4.2
2048 - Lot of localization enhancements
2049 - a lot of bug fixes, improvements and portability work
2050
2051 * Mon Sep 24 2012 Daniel Veillard <veillard@redhat.com> - 0.10.2-1
2052 - network: define new API virNetworkUpdate
2053 - add support for QEmu sandbox support
2054 - blockjob: add virDomainBlockCommit
2055 - New APIs to get/set Node memory parameters
2056 - new API virConnectListAllSecrets
2057 - new API virConnectListAllNWFilters
2058 - new API virConnectListAllNodeDevices
2059 - parallels: add support of containers to the driver
2060 - new API virConnectListAllInterfaces
2061 - new API virConnectListAllNetworks
2062 - new API virStoragePoolListAllVolumes
2063 - Add PMSUSPENDED life cycle event
2064 - new API virStorageListAllStoragePools
2065 - Add per-guest S3/S4 state configuration
2066 - qemu: Support for Block Device IO Limits
2067 - a lot of bug fixes, improvements and portability work
2068
2069 * Fri Aug 31 2012 Daniel Veillard <veillard@redhat.com> - 0.10.1-1
2070 - bugfixes and a brown paper bag
2071
2072 * Wed Aug 29 2012 Daniel Veillard <veillard@redhat.com> - 0.10.0-1
2073 - agent: add qemuAgentArbitraryCommand() for general qemu agent command
2074 - Introduce virDomainPinEmulator and virDomainGetEmulatorPinInfo functions
2075 - network: use firewalld instead of iptables, when available
2076 - network: make network driver vlan-aware
2077 - esx: Implement network driver
2078 - driver for parallels hypervisor
2079 - Various LXC improvements
2080 - Add virDomainGetHostname
2081 - a lot of bug fixes, improvements and portability work
2082
2083 * Mon Jul  2 2012 Daniel Veillard <veillard@redhat.com> - 0.9.13-1
2084 - S390: support for s390(x)
2085 - snapshot: implement new APIs for esx and vbox
2086 - snapshot: new query APIs and many improvements
2087 - virsh: Allow users to reedit rejected XML
2088 - nwfilter: add DHCP snooping
2089 - Enable driver modules in libvirt RPM
2090 - Default to enable driver modules for libvirtd
2091 - storage backend: Add RBD (RADOS Block Device) support
2092 - sVirt support for LXC domains inprovement
2093 - a lot of bug fixes, improvements and portability work
2094
2095 * Mon May 14 2012 Daniel Veillard <veillard@redhat.com> - 0.9.12-1
2096 - qemu: allow snapshotting of sheepdog and rbd disks
2097 - blockjob: add new APIs
2098 - a lot of bug fixes, improvements and portability work
2099
2100 * Tue Apr  3 2012 Daniel Veillard <veillard@redhat.com> - 0.9.11-1
2101 - Add support for the suspend event
2102 - Add support for event tray moved of removable disks
2103 - qemu: Support numad
2104 - cpustats: API, improvements and qemu support
2105 - qemu: support type='hostdev' network devices at domain start
2106 - Introduce virDomainPMWakeup API
2107 - network: support Open vSwitch
2108 - a number of snapshot improvements
2109 - many improvements and bug fixes
2110
2111 * Mon Feb 13 2012 Daniel Veillard <veillard@redhat.com> - 0.9.10-1
2112 - Add support for sVirt in the LXC driver
2113 - block rebase: add new API virDomainBlockRebase
2114 - API: Add api to set and get domain metadata
2115 - virDomainGetDiskErrors public API
2116 - conf: add rawio attribute to disk element of domain XML
2117 - Add new public API virDomainGetCPUStats()
2118 - Introduce virDomainPMSuspendForDuration API
2119 - resize: add virStorageVolResize() API
2120 - Add a virt-host-validate command to sanity check HV config
2121 - Add new virDomainShutdownFlags API
2122 - QEMU guest agent support
2123 - many improvements and bug fixes
2124
2125 * Sat Jan  7 2012 Daniel Veillard <veillard@redhat.com> - 0.9.9-1
2126 - Add API virDomain{S,G}etInterfaceParameters
2127 - Add API virDomain{G, S}etNumaParameters
2128 - Add support for ppc64 qemu
2129 - Support Xen domctl v8
2130 - many improvements and bug fixes
2131
2132 * Thu Dec  8 2011 Daniel Veillard <veillard@redhat.com> - 0.9.8-1
2133 - Add support for QEMU 1.0
2134 - Add preliminary PPC cpu driver
2135 - Add new API virDomain{Set, Get}BlockIoTune
2136 - block_resize: Define the new API
2137 - Add a public API to invoke suspend/resume on the host
2138 - various improvements for LXC containers
2139 - Define keepalive protocol and add virConnectIsAlive API
2140 - Add support for STP and VLAN filtering
2141 - many improvements and bug fixes
2142
2143 * Tue Nov  8 2011 Daniel Veillard <veillard@redhat.com> - 0.9.7-1
2144 - esx: support vSphere 5.x
2145 - vbox: support for VirtualBox 4.1
2146 - Introduce the virDomainOpenGraphics API
2147 - Add AHCI support to qemu driver
2148 - snapshot: many improvements and 2 new APIs
2149 - api: Add public api for 'reset'
2150 - many improvements and bug fixes
2151
2152 * Thu Sep 22 2011 Daniel Veillard <veillard@redhat.com> - 0.9.6-1
2153 - Fix the qemu reboot bug and a few others bug fixes
2154
2155 * Tue Sep 20 2011 Daniel Veillard <veillard@redhat.com> - 0.9.5-1
2156 - many snapshot improvements (Eric Blake)
2157 - latency: Define new public API and structure (Osier Yang)
2158 - USB2 and various USB improvements (Marc-AndrĂ© Lureau)
2159 - storage: Add fs pool formatting (Osier Yang)
2160 - Add public API for getting migration speed (Jim Fehlig)
2161 - Add basic driver for Microsoft Hyper-V (Matthias Bolte)
2162 - many improvements and bug fixes
2163
2164 * Wed Aug  3 2011 Daniel Veillard <veillard@redhat.com> - 0.9.4-1
2165 - network bandwidth QoS control
2166 - Add new API virDomainBlockPull*
2167 - save: new API to manipulate save file images
2168 - CPU bandwidth limits support
2169 - allow to send NMI and key event to guests
2170 - new API virDomainUndefineFlags
2171 - Implement code to attach to external QEMU instances
2172 - bios: Add support for SGA
2173 - various missing python binding
2174 - many improvements and bug fixes
2175
2176 * Mon Jul  4 2011 Daniel Veillard <veillard@redhat.com> - 0.9.3-1
2177 - new API virDomainGetVcpupinInfo
2178 - Add TXT record support for virtual DNS service
2179 - Support reboots with the QEMU driver
2180 - New API virDomainGetControlInfo API
2181 - New API virNodeGetMemoryStats
2182 - New API virNodeGetCPUTime
2183 - New API for send-key
2184 - New API virDomainPinVcpuFlags
2185 - support multifunction PCI device
2186 - lxc: various improvements
2187 - many improvements and bug fixes
2188
2189 * Mon Jun  6 2011 Daniel Veillard <veillard@redhat.com> - 0.9.2-1
2190 - Framework for lock manager plugins
2191 - API for network config change transactions
2192 - flags for setting memory parameters
2193 - virDomainGetState public API
2194 - qemu: allow blkstat/blkinfo calls during migration
2195 - Introduce migration v3 API
2196 - Defining the Screenshot public API
2197 - public API for NMI injection
2198 - Various improvements and bug fixes
2199
2200 * Thu May  5 2011 Daniel Veillard <veillard@redhat.com> - 0.9.1-1
2201 - support various persistent domain updates
2202 - improvements on memory APIs
2203 - Add virDomainEventRebootNew
2204 - various improvements to libxl driver
2205 - Spice: support audio, images and stream compression
2206 - Various improvements and bug fixes
2207
2208 * Mon Apr  4 2011 Daniel Veillard <veillard@redhat.com> - 0.9.0-1
2209 - Support cputune cpu usage tuning
2210 - Add public APIs for storage volume upload/download
2211 - Add public API for setting migration speed on the fly
2212 - Add libxenlight driver
2213 - qemu: support migration to fd
2214 - libvirt: add virDomain{Get,Set}BlkioParameters
2215 - setmem: introduce a new libvirt API (virDomainSetMemoryFlags)
2216 - Expose event loop implementation as a public API
2217 - Dump the debug buffer to libvirtd.log on fatal signal
2218 - Audit support
2219 - Various improvements and bug fixes
2220
2221 * Thu Feb 17 2011 Daniel Veillard <veillard@redhat.com> - 0.8.8-1
2222 - expose new API for sysinfo extraction
2223 - cgroup blkio weight support
2224 - smartcard device support
2225 - qemu: Support per-device boot ordering
2226 - Various improvements and bug fixes
2227
2228 * Tue Jan  4 2011 Daniel Veillard <veillard@redhat.com> - 0.8.7-1
2229 - Preliminary support for VirtualBox 4.0
2230 - IPv6 support
2231 - Add VMware Workstation and Player driver driver
2232 - Add network disk support
2233 - Various improvements and bug fixes
2234
2235 * Tue Nov 30 2010 Daniel Veillard <veillard@redhat.com> - 0.8.6-1
2236 - Add support for iSCSI target auto-discovery
2237 - QED: Basic support for QED images
2238 - remote console support
2239 - support for SPICE graphics
2240 - sysinfo and VMBIOS support
2241 - virsh qemu-monitor-command
2242 - various improvements and bug fixes
2243
2244 * Fri Oct 29 2010 Daniel Veillard <veillard@redhat.com> - 0.8.5-1
2245 - Enable JSON and netdev features in QEMU >= 0.13
2246 - framework for auditing integration
2247 - framework DTrace/SystemTap integration
2248 - Setting the number of vcpu at boot
2249 - Enable support for nested SVM
2250 - Virtio plan9fs filesystem QEMU
2251 - Memory parameter controls
2252 - various improvements and bug fixes
2253
2254 * Fri Sep 10 2010 Daniel Veillard <veillard@redhat.com> - 0.8.4-1
2255 - big improvements to UML driver
2256 - various improvements and bug fixes
2257
2258 * Wed Aug  4 2010 Daniel Veillard <veillard@redhat.com> - 0.8.3-1
2259 - esx: Support vSphere 4.1
2260 - Qemu arbitrary monitor commands
2261 - Qemu Monitor API entry point
2262 - various improvements and bug fixes
2263
2264 * Mon Jul  5 2010 Daniel Veillard <veillard@redhat.com> - 0.8.2-1
2265 - phyp: adding support for IVM
2266 - libvirt: introduce domainCreateWithFlags API
2267 - add 802.1Qbh and 802.1Qbg switches handling
2268 - Support for VirtualBox version 3.2
2269 - Init script for handling guests on shutdown/boot
2270 - qemu: live migration with non-shared storage for kvm
2271
2272 * Fri Apr 30 2010 Daniel Veillard <veillard@redhat.com> - 0.8.1-1
2273 - Starts dnsmasq from libvirtd with --dhcp-hostsfile
2274 - Add virDomainGetBlockInfo API to query disk sizing
2275 - a lot of bug fixes and cleanups
2276
2277 * Mon Apr 12 2010 Daniel Veillard <veillard@redhat.com> - 0.8.0-1
2278 - Snapshotting support (QEmu/VBox/ESX)
2279 - Network filtering API
2280 - XenAPI driver
2281 - new APIs for domain events
2282 - Libvirt managed save API
2283 - timer subselection for domain clock
2284 - synchronous hooks
2285 - API to update guest CPU to host CPU
2286 - virDomainUpdateDeviceFlags new API
2287 - migrate max downtime API
2288 - volume wiping API
2289 - and many bug fixes
2290
2291 * Fri Mar  5 2010 Daniel Veillard <veillard@redhat.com> - 0.7.7-1
2292 - macvtap support
2293 - async job handling
2294 - virtio channel
2295 - computing baseline CPU
2296 - virDomain{Attach,Detach}DeviceFlags
2297 - assorted bug fixes and lots of cleanups
2298
2299 * Wed Feb  3 2010 Daniel Veillard <veillard@redhat.com> - 0.7.6-1
2300
2301 * Wed Dec 23 2009 Daniel Veillard <veillard@redhat.com> - 0.7.5-1
2302 - Add new API virDomainMemoryStats
2303 - Public API and domain extension for CPU flags
2304 - vbox: Add support for version 3.1
2305 - Support QEMU's virtual FAT block device driver
2306 - a lot of fixes
2307
2308 * Fri Nov 20 2009 Daniel Veillard <veillard@redhat.com> - 0.7.3-1
2309 - udev node device backend
2310 - API to check object properties
2311 - better QEmu monitor processing
2312 - MAC address based port filtering for qemu
2313 - support IPv6 and multiple addresses per interfaces
2314 - a lot of fixes
2315
2316 * Tue Sep 15 2009 Daniel Veillard <veillard@redhat.com> - 0.7.1-1
2317 - ESX, VBox driver updates
2318 - mutipath support
2319 - support for encrypted (qcow) volume
2320 - compressed save image format for Qemu/KVM
2321 - QEmu host PCI device hotplug support
2322 - configuration of huge pages in guests
2323 - a lot of fixes
2324
2325 * Wed Aug  5 2009 Daniel Veillard <veillard@redhat.com> - 0.7.0-1
2326 - ESX, VBox3, Power Hypervisor drivers
2327 - new net filesystem glusterfs
2328 - Storage cloning for LVM and Disk backends
2329 - interface implementation based on netcf
2330 - Support cgroups in QEMU driver
2331 - QEmu hotplug NIC support
2332 - a lot of fixes
2333
2334 * Fri Jul  3 2009 Daniel Veillard <veillard@redhat.com> - 0.6.5-1
2335 - release of 0.6.5
2336
2337 * Fri May 29 2009 Daniel Veillard <veillard@redhat.com> - 0.6.4-1
2338 - release of 0.6.4
2339 - various new APIs
2340
2341 * Fri Apr 24 2009 Daniel Veillard <veillard@redhat.com> - 0.6.3-1
2342 - release of 0.6.3
2343 - VirtualBox driver
2344
2345 * Fri Apr  3 2009 Daniel Veillard <veillard@redhat.com> - 0.6.2-1
2346 - release of 0.6.2
2347
2348 * Fri Mar  4 2009 Daniel Veillard <veillard@redhat.com> - 0.6.1-1
2349 - release of 0.6.1
2350
2351 * Sat Jan 31 2009 Daniel Veillard <veillard@redhat.com> - 0.6.0-1
2352 - release of 0.6.0
2353
2354 * Tue Nov 25 2008 Daniel Veillard <veillard@redhat.com> - 0.5.0-1
2355 - release of 0.5.0
2356
2357 * Tue Sep 23 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-1
2358 - release of 0.4.6
2359
2360 * Mon Sep  8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-1
2361 - release of 0.4.5
2362
2363 * Wed Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1
2364 - release of 0.4.4
2365 - mostly a few bug fixes from 0.4.3
2366
2367 * Thu Jun 12 2008 Daniel Veillard <veillard@redhat.com> - 0.4.3-1
2368 - release of 0.4.3
2369 - lots of bug fixes and small improvements
2370
2371 * Tue Apr  8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.2-1
2372 - release of 0.4.2
2373 - lots of bug fixes and small improvements
2374
2375 * Mon Mar  3 2008 Daniel Veillard <veillard@redhat.com> - 0.4.1-1
2376 - Release of 0.4.1
2377 - Storage APIs
2378 - xenner support
2379 - lots of assorted improvements, bugfixes and cleanups
2380 - documentation and localization improvements
2381
2382 * Tue Dec 18 2007 Daniel Veillard <veillard@redhat.com> - 0.4.0-1
2383 - Release of 0.4.0
2384 - SASL based authentication
2385 - PolicyKit authentication
2386 - improved NUMA and statistics support
2387 - lots of assorted improvements, bugfixes and cleanups
2388 - documentation and localization improvements
2389
2390 * Sun Sep 30 2007 Daniel Veillard <veillard@redhat.com> - 0.3.3-1
2391 - Release of 0.3.3
2392 - Avahi support
2393 - NUMA support
2394 - lots of assorted improvements, bugfixes and cleanups
2395 - documentation and localization improvements
2396
2397 * Tue Aug 21 2007 Daniel Veillard <veillard@redhat.com> - 0.3.2-1
2398 - Release of 0.3.2
2399 - API for domains migration
2400 - APIs for collecting statistics on disks and interfaces
2401 - lots of assorted bugfixes and cleanups
2402 - documentation and localization improvements
2403
2404 * Tue Jul 24 2007 Daniel Veillard <veillard@redhat.com> - 0.3.1-1
2405 - Release of 0.3.1
2406 - localtime clock support
2407 - PS/2 and USB input devices
2408 - lots of assorted bugfixes and cleanups
2409 - documentation and localization improvements
2410
2411 * Mon Jul  9 2007 Daniel Veillard <veillard@redhat.com> - 0.3.0-1
2412 - Release of 0.3.0
2413 - Secure remote access support
2414 - unification of daemons
2415 - lots of assorted bugfixes and cleanups
2416 - documentation and localization improvements
2417
2418 * Fri Jun  8 2007 Daniel Veillard <veillard@redhat.com> - 0.2.3-1
2419 - Release of 0.2.3
2420 - lot of assorted bugfixes and cleanups
2421 - support for Xen-3.1
2422 - new scheduler API
2423
2424 * Tue Apr 17 2007 Daniel Veillard <veillard@redhat.com> - 0.2.2-1
2425 - Release of 0.2.2
2426 - lot of assorted bugfixes and cleanups
2427 - preparing for Xen-3.0.5
2428
2429 * Thu Mar 22 2007 Jeremy Katz <katzj@redhat.com> - 0.2.1-2.fc7
2430 - don't require xen; we don't need the daemon and can control non-xen now
2431 - fix scriptlet error (need to own more directories)
2432 - update description text
2433
2434 * Fri Mar 16 2007 Daniel Veillard <veillard@redhat.com> - 0.2.1-1
2435 - Release of 0.2.1
2436 - lot of bug and portability fixes
2437 - Add support for network autostart and init scripts
2438 - New API to detect the virtualization capabilities of a host
2439 - Documentation updates
2440
2441 * Fri Feb 23 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-4.fc7
2442 - Fix loading of guest & network configs
2443
2444 * Fri Feb 16 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-3.fc7
2445 - Disable kqemu support since its not in Fedora qemu binary
2446 - Fix for -vnc arg syntax change in 0.9.0  QEMU
2447
2448 * Thu Feb 15 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-2.fc7
2449 - Fixed path to qemu daemon for autostart
2450 - Fixed generation of <features> block in XML
2451 - Pre-create config directory at startup
2452
2453 * Wed Feb 14 2007 Daniel Veillard <veillard@redhat.com> 0.2.0-1.fc7
2454 - support for KVM and QEmu
2455 - support for network configuration
2456 - assorted fixes
2457
2458 * Mon Jan 22 2007 Daniel Veillard <veillard@redhat.com> 0.1.11-1.fc7
2459 - finish inactive Xen domains support
2460 - memory leak fix
2461 - RelaxNG schemas for XML configs
2462
2463 * Wed Dec 20 2006 Daniel Veillard <veillard@redhat.com> 0.1.10-1.fc7
2464 - support for inactive Xen domains
2465 - improved support for Xen display and vnc
2466 - a few bug fixes
2467 - localization updates
2468
2469 * Thu Dec  7 2006 Jeremy Katz <katzj@redhat.com> - 0.1.9-2
2470 - rebuild against python 2.5
2471
2472 * Wed Nov 29 2006 Daniel Veillard <veillard@redhat.com> 0.1.9-1
2473 - better error reporting
2474 - python bindings fixes and extensions
2475 - add support for shareable drives
2476 - add support for non-bridge style networking
2477 - hot plug device support
2478 - added support for inactive domains
2479 - API to dump core of domains
2480 - various bug fixes, cleanups and improvements
2481 - updated the localization
2482
2483 * Tue Nov  7 2006 Daniel Veillard <veillard@redhat.com> 0.1.8-3
2484 - it's pkgconfig not pgkconfig !
2485
2486 * Mon Nov  6 2006 Daniel Veillard <veillard@redhat.com> 0.1.8-2
2487 - fixing spec file, added %dist, -devel requires pkgconfig and xen-devel
2488 - Resolves: rhbz#202320
2489
2490 * Mon Oct 16 2006 Daniel Veillard <veillard@redhat.com> 0.1.8-1
2491 - fix missing page size detection code for ia64
2492 - fix mlock size when getting domain info list from hypervisor
2493 - vcpu number initialization
2494 - don't label crashed domains as shut off
2495 - fix virsh man page
2496 - blktapdd support for alternate drivers like blktap
2497 - memory leak fixes (xend interface and XML parsing)
2498 - compile fix
2499 - mlock/munlock size fixes
2500
2501 * Fri Sep 22 2006 Daniel Veillard <veillard@redhat.com> 0.1.7-1
2502 - Fix bug when running against xen-3.0.3 hypercalls
2503 - Fix memory bug when getting vcpus info from xend
2504
2505 * Fri Sep 22 2006 Daniel Veillard <veillard@redhat.com> 0.1.6-1
2506 - Support for localization
2507 - Support for new Xen-3.0.3 cdrom and disk configuration
2508 - Support for setting VNC port
2509 - Fix bug when running against xen-3.0.2 hypercalls
2510 - Fix reconnection problem when talking directly to http xend
2511
2512 * Tue Sep  5 2006 Jeremy Katz <katzj@redhat.com> - 0.1.5-3
2513 - patch from danpb to support new-format cd devices for HVM guests
2514
2515 * Tue Sep  5 2006 Daniel Veillard <veillard@redhat.com> 0.1.5-2
2516 - reactivating ia64 support
2517
2518 * Tue Sep  5 2006 Daniel Veillard <veillard@redhat.com> 0.1.5-1
2519 - new release
2520 - bug fixes
2521 - support for new hypervisor calls
2522 - early code for config files and defined domains
2523
2524 * Mon Sep  4 2006 Daniel Berrange <berrange@redhat.com> - 0.1.4-5
2525 - add patch to address dom0_ops API breakage in Xen 3.0.3 tree
2526
2527 * Mon Aug 28 2006 Jeremy Katz <katzj@redhat.com> - 0.1.4-4
2528 - add patch to support paravirt framebuffer in Xen
2529
2530 * Mon Aug 21 2006 Daniel Veillard <veillard@redhat.com> 0.1.4-3
2531 - another patch to fix network handling in non-HVM guests
2532
2533 * Thu Aug 17 2006 Daniel Veillard <veillard@redhat.com> 0.1.4-2
2534 - patch to fix virParseUUID()
2535
2536 * Wed Aug 16 2006 Daniel Veillard <veillard@redhat.com> 0.1.4-1
2537 - vCPUs and affinity support
2538 - more complete XML, console and boot options
2539 - specific features support
2540 - enforced read-only connections
2541 - various improvements, bug fixes
2542
2543 * Wed Aug  2 2006 Jeremy Katz <katzj@redhat.com> - 0.1.3-6
2544 - add patch from pvetere to allow getting uuid from libvirt
2545
2546 * Wed Aug  2 2006 Jeremy Katz <katzj@redhat.com> - 0.1.3-5
2547 - build on ia64 now
2548
2549 * Thu Jul 27 2006 Jeremy Katz <katzj@redhat.com> - 0.1.3-4
2550 - don't BR xen, we just need xen-devel
2551
2552 * Thu Jul 27 2006 Daniel Veillard <veillard@redhat.com> 0.1.3-3
2553 - need rebuild since libxenstore is now versionned
2554
2555 * Mon Jul 24 2006 Mark McLoughlin <markmc@redhat.com> - 0.1.3-2
2556 - Add BuildRequires: xen-devel
2557
2558 * Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.1.3-1.1
2559 - rebuild
2560
2561 * Tue Jul 11 2006 Daniel Veillard <veillard@redhat.com> 0.1.3-1
2562 - support for HVM Xen guests
2563 - various bugfixes
2564
2565 * Mon Jul  3 2006 Daniel Veillard <veillard@redhat.com> 0.1.2-1
2566 - added a proxy mechanism for read only access using httpu
2567 - fixed header includes paths
2568
2569 * Wed Jun 21 2006 Daniel Veillard <veillard@redhat.com> 0.1.1-1
2570 - extend and cleanup the driver infrastructure and code
2571 - python examples
2572 - extend uuid support
2573 - bug fixes, buffer handling cleanups
2574 - support for new Xen hypervisor API
2575 - test driver for unit testing
2576 - virsh --conect argument
2577
2578 * Mon Apr 10 2006 Daniel Veillard <veillard@redhat.com> 0.1.0-1
2579 - various fixes
2580 - new APIs: for Node information and Reboot
2581 - virsh improvements and extensions
2582 - documentation updates and man page
2583 - enhancement and fixes of the XML description format
2584
2585 * Tue Feb 28 2006 Daniel Veillard <veillard@redhat.com> 0.0.6-1
2586 - added error handling APIs
2587 - small bug fixes
2588 - improve python bindings
2589 - augment documentation and regression tests
2590
2591 * Thu Feb 23 2006 Daniel Veillard <veillard@redhat.com> 0.0.5-1
2592 - new domain creation API
2593 - new UUID based APIs
2594 - more tests, documentation, devhelp
2595 - bug fixes
2596
2597 * Fri Feb 10 2006 Daniel Veillard <veillard@redhat.com> 0.0.4-1
2598 - fixes some problems in 0.0.3 due to the change of names
2599
2600 * Wed Feb  8 2006 Daniel Veillard <veillard@redhat.com> 0.0.3-1
2601 - changed library name to libvirt from libvir, complete and test the python
2602   bindings
2603
2604 * Sun Jan 29 2006 Daniel Veillard <veillard@redhat.com> 0.0.2-1
2605 - upstream release of 0.0.2, use xend, save and restore added, python bindings
2606   fixed
2607
2608 * Wed Nov  2 2005 Daniel Veillard <veillard@redhat.com> 0.0.1-1
2609 - created