Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
kvm
kvm.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kvm.spec of Package kvm
# # spec file for package kvm (Version 0.12.5) # # Copyright (c) 2010 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 # icecream 0 %bcond_with vde %define bios_id seabios-0.5.1-git-9fb3f4d950744e97cc655b7d7b523d8bf101e4a0 %define pxe_rom_id gpxe-0.9.9 #%define vgabios_id vgabios-0.6c # note that this list doesn't include the gpxe roms since they get handled # individually and not as a group %define firmware_files {bios.bin vgabios.bin vgabios-cirrus.bin optionrom/extboot.bin optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/vapic.bin} ExclusiveArch: %ix86 x86_64 %ifarch %ix86 x86_64 # choice of building all from source or using provided binary x86 blobs %define build_fw_from_source 1 # build the Mac BIOS on x86 platforms %define mac_bios 1 %else %define build_fw_from_source 0 # build no Mac BIOS on others %define mac_bios 0 %endif %define using_buildservice 0%{?opensuse_bs} Name: kvm BuildRequires: SDL-devel alsa alsa-devel gnutls-devel libaio-devel ncurses-devel pciutils-devel perl python texinfo %ifarch %ix86 x86_64 ia64 %if %{build_fw_from_source} # needed for building vgabios: BuildRequires: bin86 %ifarch x86_64 #needed by bcc compiler which is needed for building vgabios: BuildRequires: glibc-32bit %endif %endif %if %suse_version > 1110 BuildRequires: acpica %else BuildRequires: pmtools %endif %endif #Requires: virt-utils %if %suse_version >= 1100 BuildRequires: libcurl-devel libpulse-devel %endif %if %{with vde} BuildRequires: vde2-devel %endif Requires: python-curses %if %suse_version < 1110 Requires: kvm-kmp %endif License: BSD3c ; GPLv2 ; GPLv2+ ; LGPLv2.1+ ; MIT Group: System/Kernel Summary: Kernel-based Virtual Machine Url: http://kvm.qumranet.com/ Version: 0.12.5 Release: 2.<RELEASE3> Source0: qemu-%{name}-%{version}.tar.bz2 Source1: 60-kvm.rules Source2: qemu-ifup Source4: win-virtio-drivers.iso Source5: win-virtio-drivers-src.tar.bz2 Source6: %{bios_id}.tar.bz2 Source7: %{pxe_rom_id}.tar.bz2 Source8: bcc-0.16.17-2.i486.rpm #Source9: %{vgabios_id}.tar.bz2 Source10: kvm-supported.txt Source11: s390-zipl.rom Source12: NETKVM-20081229.iso # common and X86 patches Patch01: gpxe-rom-settings.patch Patch02: gpxe-code-cleanups.patch Patch03: gpxe_avoid_spaces_in_build_rule.patch Patch04: seabios-sanitize-version.patch Patch05: vgabios-bcc-paths.patch Patch06: qemu-datadir.diff Patch07: kvm-qemu-default-memsize.patch Patch08: kvm-qemu-no-fallback-if-open-kvm-fails.patch Patch09: seabios-preXX-ap-start.patch Patch10: seabios-preXX-enable-irq-in-spin-functions.patch Patch11: kvm-qemu-user-space-tool-name.patch # Mac OS X patches Patch12: kvm-qemu-lpc.patch Patch13: kvm-qemu-applesmc.patch Patch14: kvm-qemu-ide-ich6.patch Patch15: kvm-qemu-macmodel.patch Patch16: kvm-qemu-rtl8139-link.patch Patch90: kvm-bios.patch # Post-release upstream patches Patch100: kvm-qemu-preXX-dictzip1.patch Patch101: kvm-qemu-preXX-dictzip2.patch Patch102: kvm-qemu-preXX-dictzip3.patch Patch103: kvm-qemu-preXX-dictzip4.patch Patch104: kvm-qemu-preXX-dictzip5.patch Patch105: kvm-qemu-preXX-dictzip6.patch Patch106: kvm-qemu-preXX-virtio-hotplug.patch Patch107: kvm-qemu-preXX-write-full.patch Patch108: kvm-qemu-preXX-qcow2-error-handling.patch Patch109: kvm-qemu-preXX-qcow2-regression.patch Patch110: kvm-qemu-preXX-rtl8139-timer.patch Patch111: kvm-qemu-preXX-32bit-breakpoint-crash.patch Patch112: kvm-qemu-preXX-curses-return-key.patch Patch113: kvm-qemu-preXX-sdl-grab-help.patch Patch114: kvm-qemu-preXX-qdev-ide-bios-setup.patch Patch115: kvm-qemu-preXX-balloon-report-overflow.patch Patch116: kvm-qemu-preXX-report-open-failure.patch Patch117: kvm-qemu-preXX-boot-option.patch Patch118: kvm-qemu-pre0.13-flush-unsafe.patch Patch119: kvm-qemu-pre0.13-flush-unsafe-snapshot.patch Patch120: kvm-qemu-preXX-move-unsafe-to-end-of-caching-modes-in-help.patch Patch121: kvm-qemu-preXX-report-default-mac-used.patch Patch122: kvm-qemu-preXX-virtio-blk-fail-unaligned-requests.patch Patch123: kvm-qemu-no-hot-unplug-for-certain-devices.patch Patch125: kvm-qemu-preXX-virtio-guard-against-negative-vq-notifies.patch Patch126: kvm-qemu-preXX-validate-virtqueue.patch Patch127: kvm-qemu-preXX-dictzip7.patch Patch128: kvm-qemu-preXX-e1000-check-for-overflow-whenever-issuing-PCI-dma-reads.patch Patch129: kvm-qemu-preXX-block-prevent-snapshot-mode-TMPDIR-symlink-attack.patch Patch200: kvm-studio-slirp-nooutgoing.patch Patch201: kvm-studio-vnc.patch # for IA64 Source500: ia64-fix-pagesize.pl Patch500: IA64-kvm-suse.patch Patch501: IA64-compile-fix-suse.patch # for S390 Patch700: S390-qemu-kvm.patch Patch701: S390-qemu-early-printk.patch Patch702: S390-0002-S390-Tell-user-why-VM-creation-failed.patch Patch703: S390-0003-Make-char-muxer-more-robust-wrt-small-FIFOs.patch Patch704: S390-0004-Always-notify-consumers-of-char-devices-if-they-re-o.patch Patch705: S390-0005--S390-Implement-virtio-reset.patch Patch706: S390-0006--S390-Add-firmware-code.patch # For upstream patches: BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: /usr/sbin/groupadd %description KVM (Kernel-based Virtual Machine) is virtualization software for Linux. It is based on the hardware virtualization extensions provided by Intel VT and AMD-V technologies. KVM kernel modules provide a control interface at /dev/kvm which the qemu-kvm user-space program uses to provide a hybrid emulated and actual hardware environment sufficent to run various PC operating systems (guests) in unmodified form, including Linux, Windows, and Mac OS X. Since qemu-kvm is derived from the qemu processor emulator sources it also is able to run guests using processor emulation mode, but with the expected performance impact. Conversely, hardware virtualization features outside the processor such as iommu and sr-iov are used by KVM allowing for improved performance. The seabios, vgabios and gpxe open source projects are also pulled from to provide the firmware components included. To increase performance over emulated hardware devices virtio drivers are supported, and in the case of Windows, included. KVM is compatible with various VM management solutions, including libvirt, virt-manager and vm-install. Authors: -------- Avi Kivity <avi@qumranet.com> Yaniv Kamay <yaniv@qumranet.com> Dor Laor <dor.laor@qumranet.com> %prep %if %{build_fw_from_source} mkdir bcc-bits cd bcc-bits/ rpm2cpio %{SOURCE8} | cpio -id ./usr/bin/bcc ./usr/lib/bcc/bcc-cc1 %setup -q -T -D -n %{pxe_rom_id} -b 7 %patch01 -p1 %patch02 -p1 %patch03 -p1 %endif %setup -q -n qemu-%{name}-%{version} -a 6 #%setup -q -n qemu-%{name}-%{version} -a 6 -a 9 %if %{build_fw_from_source} #ensure that we only end up with the ones we built for i in %firmware_files do rm -f pc-bios/$i done %patch04 -p1 %patch05 -p1 %endif cp %{SOURCE10} . %patch06 -p1 %patch07 -p1 %patch08 -p1 %patch09 -p1 %patch10 -p1 %patch11 -p1 # Mac OS X guest %if %{mac_bios} %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 cp -a roms/seabios roms/seabios-mac %patch90 -p1 -b .bios-mac %endif # Post-release patches %patch100 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 %patch104 -p1 %patch105 -p1 %patch106 -p1 %patch107 -p1 %patch108 -p1 %patch109 -p1 %patch110 -p1 %patch111 -p1 %patch112 -p1 %patch113 -p1 %patch114 -p1 %patch115 -p1 %patch116 -p1 %patch117 -p1 %patch118 -p1 %patch119 -p1 %patch120 -p1 %patch121 -p1 %patch122 -p1 %patch123 -p1 %patch125 -p1 %patch126 -p1 %patch127 -p1 %patch128 -p1 %patch129 -p1 # Studio addons %patch200 -p1 %patch201 -p1 # IA64 support %ifarch ia64 %patch500 -p1 %patch501 -p1 %endif # S390 support %ifarch s390x %patch700 -p1 %patch701 -p1 %patch702 -p1 %patch703 -p1 %patch704 -p1 %patch705 -p1 %patch706 -p1 cp %{SOURCE11} pc-bios/ %endif %build ./configure --prefix=%{_prefix} \ --audio-card-list="ac97 adlib cs4231a gus" \ %if %{build_fw_from_source} --disable-blobs \ %endif %if %suse_version >= 1100 --audio-drv-list="alsa sdl pa oss" \ %else --audio-drv-list="alsa sdl oss" \ %endif %ifarch ia64 --target-list="ia64-softmmu" --disable-cpu-emulation \ %endif %ifarch s390x --target-list="s390x-softmmu" \ %endif --extra-cflags="%{optflags}" \ --disable-strip \ --disable-werror # Aborts if curses support is not enabled: grep "^CONFIG_CURSES=y" config-host.mak # Patch kvm/user Makefile to accept inital CFLAGS: # XXX why? we don't install anything from kvm/user/ sed -i 's/CFLAGS =/CFLAGS +=/' kvm/user/Makefile echo "CFLAGS=%optflags" >> kvm/user/config.mak # Patch the version, so we know which revision was installed: # sed -i "s|kvm-%{version}|kvm-%{version}-%{release}|" config-host.h echo "%{version}-%{release}" > VERSION # userspace: make KVM_KMOD="no" %{?jobs:-j%jobs} # Firmware %ifarch %ix86 x86_64 make -C roms/seabios cp roms/seabios/out/bios.bin pc-bios/bios.bin %if %{mac_bios} make -C roms/seabios-mac %endif %if %{build_fw_from_source} make -C kvm/vgabios cp kvm/vgabios/VGABIOS-lgpl-latest.cirrus.bin pc-bios/vgabios-cirrus.bin cp kvm/vgabios/VGABIOS-lgpl-latest.bin pc-bios/vgabios.bin cd ../%{pxe_rom_id}/src make bin/blib.a make bin/8086100e.rom make bin/10222000.rom make bin/10500940.rom make bin/10ec8139.rom make bin/80861209.rom make bin/1af41000.rom %endif %endif %install make DESTDIR=%{buildroot} KVM_KMOD="no" install %if %{mac_bios} install -m 644 roms/seabios-mac/out/bios.bin %{buildroot}%{_datadir}/qemu-kvm/bios-mac.bin %endif mkdir -p %{buildroot}%{_docdir}/kvm cp qemu-doc.html qemu-kvm.html install -m 755 kvm/kvm_stat %{buildroot}%{_bindir}/ %if %{build_fw_from_source} for i in %firmware_files do install -m 644 pc-bios/$i %{buildroot}%{_datadir}/qemu-kvm/ done install_rom() { install -m 644 $1.rom %{buildroot}%{_datadir}/qemu-kvm/$2.bin } cd ../%{pxe_rom_id}/src/bin/ install_rom 8086100e pxe-e1000 install_rom 10222000 pxe-pcnet install_rom 10500940 pxe-ne2k_pci install_rom 10ec8139 pxe-rtl8139 install_rom 80861209 pxe-i82559er install_rom 1af41000 pxe-virtio %endif cd %{buildroot} rm -r .{%_bindir/qemu-io,%_bindir/qemu-nbd,%_datadir/doc/qemu} mv .%_bindir/qemu-img{,-kvm} %if !%{build_fw_from_source} rm -r .%_datadir/qemu-kvm/{openbios-sparc32,openbios-sparc64,ppc_rom.bin,openbios-ppc,video.x,bamboo.dtb,petalogix-s3adsp1800.dtb} %endif %ifarch ia64 s390x rm -f .%_datadir/qemu-kvm/bios.bin %endif rm -r .{%_mandir/man1/qemu-img.1,%_mandir/man8/qemu-nbd.8} mv .%_bindir/{qemu-system*,qemu-kvm} mv .%_mandir/man1/{qemu.1,qemu-kvm.1} chmod 644 .%_mandir/man1/* install -D -m 644 %{SOURCE1} %{buildroot}/etc/udev/rules.d/60-kvm.rules install -D -m 755 %{SOURCE2} %{buildroot}/usr/share/qemu-kvm/qemu-ifup install -D -m 644 %{SOURCE4} %{buildroot}/usr/share/qemu-kvm/win-virtio-drivers.iso install -D -m 644 %{SOURCE12} %{buildroot}/usr/share/qemu-kvm/NETKVM-20081229.iso %pre /usr/sbin/groupadd -r kvm 2>/dev/null || : %files %defattr(-,root,root) %doc qemu-kvm.html kvm-supported.txt %attr(755,root,kvm) %{_bindir}/qemu-kvm %attr(755,root,kvm) %{_bindir}/qemu-img-kvm %attr(755,root,kvm) %{_bindir}/kvm_stat %{_datadir}/qemu-kvm %config /etc/udev/rules.d/60-kvm.rules %_mandir/man1/qemu-kvm.1.gz %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor