# # spec file for package libvirt (Version 0.5.1) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild %define with_xen 1 %define with_lxc 0 %define with_selinux 0 # Xen is available only on i386 x86_64 %ifnarch %ix86 x86_64 %define with_xen 0 %endif %if 0%{?suse_version} > 1100 %define with_lxc 1 %define with_selinux 1 %endif Name: libvirt BuildRequires: PolicyKit-devel bridge-utils cyrus-sasl-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel readline-devel util-linux xhtml-dtd %if %{with_xen} BuildRequires: xen-devel %endif %if 0%{?suse_version} > 1030 BuildRequires: libavahi-devel %else BuildRequires: avahi-devel %endif %if %{with_selinux} BuildRequires: libselinux-devel %endif %ifarch x86_64 ia64 BuildRequires: libnuma-devel %endif # Only for directory ownership: BuildRequires: gtk-doc Url: http://libvirt.org/ License: LGPL v2.1 or later Group: Development/Libraries/C and C++ AutoReqProv: yes Version: 0.5.1 Release: 3 Summary: A C toolkit to interract with the virtualization capabilities of Linux Requires: readline Requires: ncurses Requires: bridge-utils Requires: iptables Requires: cyrus-sasl Requires: lvm2 Requires: parted #Requires: /usr/bin/qemu-img Recommends: cyrus-sasl-digestmd5 Requires: dnsmasq Requires: PolicyKit >= 0.6 Requires: socat Requires: open-iscsi Requires: nfs-client Requires: hal Source0: %{name}-%{version}.tar.bz2 Source1: libvirtd.init Patch0: socat.patch Patch1: libvirtd-defaults.patch Patch2: fs-storage-driver.patch Patch3: clone.patch Patch4: vnc-port.patch Patch5: xen-pv-cdrom.patch Patch6: detach-disk.patch Patch7: migrate-params.patch Patch8: cve-2008-5086.patch Patch9: devhelp.patch Patch10: suse-network.patch Patch11: snapshots.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Libvirt is a C toolkit to interract with the virtualization capabilities Linux. Virtualization of the Linux Operating System means the ability to run multiple instances of Operating Systems concurently on a single hardware system where the basic resources are driven by a Linux instance. The library aims to provide long term stable C API initially for the Xen paravirtualization but should be able to integrate other virtualization mechanisms if needed. Authors: -------- Daniel Veillard Karel Zak %package devel License: LGPL v2.1 or later Summary: A C toolkit to interract with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name} = %{version} libxml2-devel %if %{with_xen} Requires: xen-devel Requires: pkg-config %endif %description devel Libvirt is a C toolkit to interract with the virtualization capabilities Linux. Virtualization of the Linux Operating System means the ability to run multiple instances of Operating Systems concurently on a single hardware system where the basic resources are driven by a Linux instance. The library aims to provide long term stable C API initially for the Xen paravirtualization but should be able to integrate other virtualization mechanisms if needed. Authors: -------- Daniel Veillard Karel Zak %package doc License: LGPL v2.1 or later Summary: A C toolkit to interract with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name} = %{version} %description doc Libvirt is a C toolkit to interract with the virtualization capabilities Linux. Virtualization of the Linux Operating System means the ability to run multiple instances of Operating Systems concurently on a single hardware system where the basic resources are driven by a Linux instance. The library aims to provide long term stable C API initially for the Xen paravirtualization but should be able to integrate other virtualization mechanisms if needed. Authors: -------- Daniel Veillard Karel Zak %package python License: LGPL v2.1 or later Summary: A C toolkit to interract with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ Requires: %{name} = %{version} %py_requires %description python Libvirt is a C toolkit to interract with the virtualization capabilities Linux. Virtualization of the Linux Operating System means the ability to run multiple instances of Operating Systems concurently on a single hardware system where the basic resources are driven by a Linux instance. The library aims to provide long term stable C API initially for the Xen paravirtualization but should be able to integrate other virtualization mechanisms if needed. Authors: -------- Daniel Veillard Karel Zak %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %build %if ! %{with_xen} %define _without_xen --without-xen %endif %if ! %{with_lxc} %define _without_lxc --without-lxc %endif %if %{with_selinux} %define _with_selinux --with-selinux %endif autoreconf -f -i export CFLAGS="$RPM_OPT_FLAGS" %configure --disable-static --with-pic %{?_without_xen} \ %{?_without_lxc} \ %{?_with_selinux} \ --libexecdir=%{_libdir}/%{name} \ --with-init-script=none \ --with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid \ --with-xen-proxy=no \ ac_cv_path_DNSMASQ=/usr/sbin/dnsmasq \ ac_cv_path_QEMU_IMG=/usr/bin/qemu-img-xen \ ac_cv_path_ISCSIADM=/sbin/iscsiadm \ ac_cv_path_SHOWMOUNT=/usr/sbin/showmount make DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} %install %makeinstall DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} cp -a AUTHORS ChangeLog COPYING NEWS README TODO $RPM_BUILD_ROOT%{_docdir}/%{name}/ cd docs ; cp -a *.html $RPM_BUILD_ROOT%{_docdir}/%{name} ; cp -a *.png $RPM_BUILD_ROOT%{_docdir}/%{name} ; cd .. # remove currently unsupported locale(s) rm -rf $RPM_BUILD_ROOT/usr/share/locale/sr@latin # for now, do not install the default network definition rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml # do not package augeas config files for now rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt rm $RPM_BUILD_ROOT%{_docdir}/%{name}/{*.c,examples.x*} rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a ln_dupes() { target="" fdupes -r "$1" | while read file; do if [ -z "$file" ] || [ -z "$target" ]; then target="$file" continue fi ln -sf "${target#.}" "$file" done } ( cd $RPM_BUILD_ROOT ln_dupes .%{_docdir}/%{name} ln_dupes ./usr/share/locale ) # init script mkdir -p $RPM_BUILD_ROOT/etc/init.d install %SOURCE1 $RPM_BUILD_ROOT/etc/init.d/libvirtd ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd %find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig %{fillup_and_insserv -f -y libvirtd} %preun %stop_on_removal libvirtd %postun /sbin/ldconfig %restart_on_update libvirtd %insserv_cleanup %files -f %{name}.lang %defattr(-, root, root) %{_bindir}/virsh %{_sbindir}/libvirtd %doc %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/[CNRT]* %doc %{_docdir}/%{name}/AUTHORS %doc %{_mandir}/man1/virsh.1* %{_libdir}/*.so.* %dir %{_libdir}/%{name} %if 0%{?suse_version} > 1030 %{_libdir}/%{name}/libvirt_parthelper %endif %if %{with_lxc} %attr(0755, root, root) %{_libdir}/%{name}/libvirt_lxc %endif %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ %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 %dir /%{_localstatedir}/run/libvirt/ %dir /%{_localstatedir}/lib/libvirt/ %config /etc/init.d/libvirtd %{_sbindir}/rclibvirtd %config %{_sysconfdir}/libvirt/libvirtd.conf %config %{_sysconfdir}/libvirt/qemu.conf %config %{_sysconfdir}/sasl2/libvirt.conf %if 0%{?suse_version} > 1030 %{_datadir}/PolicyKit/policy/org.libvirt.unix.policy %endif %files devel %defattr(-, root, root) %{_includedir}/libvirt %{_libdir}/*.so %{_libdir}/pkgconfig/libvirt.pc %files doc %defattr(-, root, root) %{_datadir}/gtk-doc/html/libvirt %doc %{_docdir}/%{name}/*.gif %doc %{_docdir}/%{name}/*.png %doc %{_docdir}/%{name}/*.html %doc %{_docdir}/%{name}/html %files python %defattr(-, root, root) %doc %{_docdir}/%{name}-python %{py_sitedir}/libvirt.py* %{py_sitedir}/libvirtmod* %changelog * Mon Apr 20 2009 crrodriguez@suse.de - use --disable-static instead of just removing static libraries * Sat Jan 31 2009 jfehlig@novell.com - Fix build for architectures not supporting numa - Forward port suse-network.patch and snapshots.patch * Thu Jan 29 2009 jfehlig@novell.com - Updated to version 0.5.1 - CPU and scheduler support for LXC - SDL display configuration - domain lifecycle event support for QEmu and Xen with python bindings - KVM/QEmu migration support - User Mode Linux driver - API for node device enumeration using HAL and DeviceKit with python bindings - Many bug fixes and improvements * Fri Jan 09 2009 jfehlig@novell.com - Added missing html and png files to libvirt-doc package devhelp.patch bnc#463810 * Mon Dec 15 2008 jfehlig@novell.com - Patch for CVE-2008-5086 bnc#459009 * Fri Dec 05 2008 jfehlig@novell.com - Fix migration of Xen domains bnc#456946 * Tue Dec 02 2008 jfehlig@novell.com - Refresh xen-maxmem.patch to match upstream bnc#431766 * Tue Nov 25 2008 jfehlig@novell.com - Add network to Required-Start in libvirtd init script bnc#448756 * Mon Nov 24 2008 jfehlig@novell.com - Fix connecting/disconnecting ISO via virt-manager bnc#446773 * Fri Nov 21 2008 jfehlig@novell.com - Fix detach of Xen tap devices bnc#410644 and bnc#411633 * Fri Nov 07 2008 jfehlig@novell.com - Fix handling of iso/cdrom for xen pv domains. bnc#437388 * Thu Nov 06 2008 jfehlig@novell.com - Expose networks managed outside of libvirt as read-only. bnc#441633 * Wed Nov 05 2008 jfehlig@novell.com - Fix vnc port assignement in domain XML bnc#441625 * Fri Oct 24 2008 jfehlig@novell.com - Add upstream patches to fix ordering problem with setting up cgroup containment on LXC domains. bnc#437816 * Mon Oct 20 2008 jfehlig@novell.com - Remove IA64 from list of architectures supporting Xen. * Fri Oct 10 2008 jfehlig@novell.com - Added upstream patches providing additional LXC support bnc#433881 * Mon Oct 06 2008 jfehlig@novell.com - Use xend vs hypercall interface to change max mem setting bnc#431766 * Thu Oct 02 2008 jfehlig@novell.com - Enabled libvirtd listen mode in libvirtd init script. * Wed Oct 01 2008 jfehlig@novell.com - Updated to version 0.4.6 - avoid a segfault if missing qemu emulator - reading vncdisplay from xend domain - segfault in OpenVZ - fix parsing of pool without a source - Fixed bug in network interface parsing - vif-parsing.patch submitted upstream * Tue Sep 16 2008 jfehlig@novell.com - open-iscsi package required for iscsi storage backend * Mon Sep 15 2008 jfehlig@novell.com - Updated to version 0.4.5 - NETNS support for Linux containers - unified XML domain and network parsing for all drivers - OpenVZ features improvements - OpenVZ and Linux containers support now default - USB device passthrough for QEmu/KVM - storage pool source discovery - other bug fixes and improvements * Thu Sep 04 2008 kwolf@suse.de - Added Python bindings for the snapshot functions * Wed Sep 03 2008 kwolf@suse.de - Implemented listing of snapshots for Xen and in virsh * Tue Sep 02 2008 kwolf@suse.de - Added snapshot support. Implemented snapshot_create/apply/delete for Xen. * Sat Aug 30 2008 jfehlig@novell.com - Fixed bugs in nfs storage pool creation/deletion * Fri Aug 29 2008 jfehlig@novell.com - Fixed bugs in LVM storage pool creation. logical-storage-driver.patch submitted upstream * Wed Aug 27 2008 jfehlig@novell.com - Changed mDNS advertisement of libvirtd service to disabled by default. Enable in libvirtd.conf. - Disable libvirtd from listening on TLS socket by default. User must enable after setting up CA and issuing certificates. * Mon Aug 25 2008 jfehlig@novell.com - Enabled iscsi storage driver support - Enabled ssh transport using socat. SuSE's version of netcat does not support connecting to UDS. - Fixed spec file breakage due to SELinux enablement * Fri Aug 22 2008 prusnak@suse.cz - enabled SELinux support [Fate#303662] * Tue Aug 12 2008 jfehlig@novell.com - Cleanup of libvirtd init script - Removed dnsmasq from BuildRequires * Sat Aug 09 2008 jfehlig@novell.com - Adjustments to spec file + Added /var/lib/libvirt directory + Enabled LXC support if suse_version > 1100, fate #304001 + Cleaned up some rpmlint warnings * Sun Jul 06 2008 jfehlig@novell.com - Updated to libvirt 0.4.4 + Bug fixes: QEmu network serialization, internal memory allocation fixes, virsh large file config problem, xen list APIs when max is zero, string escape problems in the xm driver + Improvements: add autogen to tarballs, improve iSCSI support + Cleanups: const-ness fixed, string helpers for enumeations - spec file adjustments + Remove ExclusiveArch + Common spec file for all products + Support for building/running without Xen * Fri May 09 2008 jfehlig@novell.com - Adjust libvirtd PolicyKit configuration file to match standard suse procedures. bnc#388769 * Mon May 05 2008 jfehlig@novell.com - Fix path to iptables. bnc#386280 * Thu Apr 24 2008 jfehlig@novell.com - Fix Xen 3.2 hypercalls. bnc#378798 * Thu Apr 10 2008 jfehlig@novell.com - Fix NULL pointer dereference in auth callback. bnc#373180, bnc#354995 * Thu Jan 10 2008 jfehlig@novell.com - Remove Requires of nc package. netcat is the equivalent but it does not support unix domain sockets so no need to require it either. * Tue Jan 08 2008 coolo@suse.de - do not require a non existant package, but change it to a recommend to digestmd5 * Fri Jan 04 2008 jfehlig@novell.com - Updated to libvirt-0.4.0 - SASL based authentication for libvirt remote support - PolicyKit authentication - Documentation: example files for QEMU and libvirtd configuations, authentication documentation updates - Bug fixes, improvements and code cleanup * Tue Oct 09 2007 jfehlig@novell.com - Updated to libvirt 0.3.3 - Avahi mDNS daemon export - NUMA support - Bug fixes - Cleanup rpmlint warnings * Mon Oct 08 2007 jfehlig@novell.com - Removed 'jobs' option from make invocation in spec file. Appears to be a subtle dependency issue in one of the makefiles which is causing problems with generation of python bindings when jobs > 1. Bug #329032. * Tue Aug 21 2007 jfehlig@novell.com - Added init script for libvirtd. libvirtd is needed to support management of qemu/kvm guests. Some Xen networking is handled through libvirt as well - bug #298021. * Tue Jul 24 2007 jfehlig@novell.com - Update to libvirt-0.3.0 - Secure Remote support - Documentation: remote support, description of the URI connection strings, update of virsh man page, matrix of libvirt API/hypervisor support with version informations - Bug fixes: examples Makefile.am generation, SetMem fix, URI handling and ordering of drivers, fix virsh help without hypervisor, id marshalling fix, fix virConnectGetMaxVcpus on remote, avoid a realloc leak, scheduler parameters handling for Xen, various early remote bug fixes, remove virsh leaks of domains references, configCache refill bug, fix XML serialization bugs - Improvements: QEmu switch to XDR-based protocol, device attach/detach commands OCaml bindings, new entry points virDomainGetConnect and virNetworkGetConnect useful for bindings, reunitifaction of remote and qemu daemon under a single libvirtd with a config file - Cleanups: parsing of connection URIs, messages from virsh, Coverage files, Solaris fixes, avoid [r]index calls, release information in Xen backend, virsh cpupin command cleanups, xen:/// suppport as standard Xen URI, improve driver selection/decline mechanism, error reporting on XML dump, Remove unused virDomainKernel structure, daemon event loop event handling, various unifications cleanup in the daemon merging, internal file and timer monitoring API, remove libsysfs dependancy, call brctl program directly, virBuffer functions cleanups, make init script LSB compliant, error handling on lookup functions, remove internal virGetDomainByID, revamp of xen subdrivers interfaces - Localization updates * Tue Jun 12 2007 ccoffing@novell.com - Update to libvirt-0.2.3. - Fix duplicate files found by rpmlint. * Wed May 23 2007 ccoffing@novell.com - Fix rpmlint errors. * Fri Apr 27 2007 ccoffing@novell.com - Update to libvirt-0.2.2. * Wed Mar 07 2007 sbrabec@suse.cz - Created -doc subpackage (#248813). - Do not remove valid locales. - Fixed docdir destination. - Build with CFLAGS. - Spec file cleanup. * Wed Feb 21 2007 jfehlig@novell.com - Removed usr/lib/libvirt_proxy setuid binary from package. Fixes bug #246610. * Sat Feb 17 2007 jfehlig@novell.com - Updated to latest release. Many of the issues seen in virt-manager have been caused by bugs / missing functionality in libvirt. This upate provides a better basis for virt-manager. * Thu Jan 11 2007 jfehlig@novell.com - Updated to latest release, version 0.1.10. Submitting to SLES10 SP1 to provide base functionality for FATE feature 301181. - more localizations - bug fixes: - VCPU info breakages on xen 3.0.3 - xenDaemonListDomains buffer overflow (Daniel Berrange) - reference count bug when creating Xen domains (Daniel Berrange) - improvements: - support graphic framebuffer for Xen paravirt (Daniel Berrange) - VNC listen IP range support (Daniel Berrange) - support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange) * Sat Dec 09 2006 jfehlig@novell.com - Updated to latest release, version 0.1.9. - python bindings: release interpeter lock when calling C (Daniel Berrange) - don't raise HTTP error when looking informations for a domain - some refactoring to use the driver for all entry points - better error reporting (Daniel Berrange) - fix OS reporting when running as non-root - provide XML parsing errors - extension of the test framework (Daniel Berrange) - fix the reconnect regression test - python bindings: Domain instances now link to the Connect to avoid garbage collection and disconnect - separate the notion of maximum memory and current use at the XML level - Fix a memory leak (Daniel Berrange) - add support for shareable drives - add support for non-bridge style networking configs for guests(Daniel Berrange) - python bindings: fix unsigned long marshalling (Daniel Berrange) - new config APIs virConfNew() and virConfSetValue() to build configs from scratch - hot plug device support based on Michel Ponceau patch - added support for inactive domains, new APIs, various associated cleanup (Daniel Berrange) - special device model for HVM guests (Daniel Berrange) - add API to dump core of domains (but requires a patched xend) - pygrub bootloader informations take over informations - updated the localization strings * Fri Oct 20 2006 jfehlig@novell.com - Updated to latest release, version 0.1.8. - Bug for system with page size != 4k - vcpu number initialization (Philippe Berthault) - don't label crashed domains as shut off (Peter Vetere) - fix virsh man page (Noriko Mizumoto) - blktapdd support for alternate drivers like blktap (Daniel Berrange) - memory leak fixes (xend interface and XML parsing) (Daniel Berrange) - compile fix - mlock/munlock size fixes (Daniel Berrange) - improve error reporting - Updated to latest release, version 0.1.7. - fix a memory bug on getting vcpu informations from xend (Daniel Berrange) - fix another problem in the hypercalls change in Xen changeset 86d26e6ec89b when getting domain informations (Daniel Berrange) * Tue Sep 26 2006 jfehlig@novell.com - Updated to latest release, version 0.1.6. This release includes fix in hypercall driver so local patch has been removed. * Wed Sep 13 2006 jfehlig@novell.com - Fixed bug in hypercall driver introduced in version 0.1.5. Patch sumbmitted upstream and included locally until next release. * Mon Sep 11 2006 jfehlig@novell.com - Updated to latest release, version 0.1.5 - Support for new hypercalls change in Xen changeset 86d26e6ec89b - bug fixes: virParseUUID() was wrong, netwoking for paravirt guestsi (Daniel Berrange), virsh on non-existent domains (Daniel Berrange), string cast bug when handling error in python (Pete Vetere), HTTP 500 xend error code handling (Pete Vetere and Daniel Berrange) - improvements: test suite for SEXPR <-> XML format conversions (Daniel Berrange), virsh output regression suite (Daniel Berrange), new environ variable VIRSH_DEFAULT_CONNECT_URI for the default URI when connecting (Daniel Berrange), graphical console support for paravirt guests (Jeremy Katz), parsing of simple Xen config files (with Daniel Berrange), early work on defined (not running) domains (Daniel Berrange), virsh output improvement (Daniel Berrange * Mon Aug 28 2006 jfehlig@novell.com - Updated to latest release, version 0.1.4 - bug fixes: spec file fix (Mark McLoughlin), error report problem (with Hugh Brock), long integer in Python bindings (with Daniel Berrange), XML generation bug for CDRom (Daniel Berrange), bug whem using number() XPath function (Mark McLoughlin), fix python detection code, remove duplicate initialization errors (Daniel Berrange) - improvements: UUID in XML description (Peter Vetere), proxy code cleanup, virtual CPU and affinity support + virsh support (Michel Ponceau, Philippe Berthault, Daniel Berrange), port and tty informations for console in XML (Daniel Berrange), added XML dump to driver and proxy support (Daniel Berrange), extention of boot options with support for floppy and cdrom (Daniel Berrange), features block in XML to report/ask PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect operations when using read-only connection, large improvements to test driver (Daniel Berrange) - documentation: spelling (Daniel Berrange), test driver examples. * Wed Aug 16 2006 jfehlig@novell.com - Added ExclusiveArch tag so as to only build on x86 and x86_64 * Mon Jul 31 2006 jfehlig@novell.com - initial submission of libvirt package, version 0.1.3