# # spec file for package qemu # # Copyright (c) 2011 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 Name: qemu Url: http://fabrice.bellard.free.fr/qemu/ License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ ; MIT License (or similar) Group: System/Emulators/PC Summary: Universal CPU emulator Version: 1.0 Release: 0 Source: %name-%version.tar.bz2 Patch1: 0001-Handle-CPU-interrupts-by-inline-checking-of-a-flag.patch Patch2: 0002-linux-user-fix-QEMU_STRACE-1-segfault.patch Patch3: 0003-linux-user-save-auxv-length.patch Patch4: 0004-linux-user-add-open-hijack-infrastructure.patch Patch5: 0005-linux-user-fake-proc-self-maps.patch Patch6: 0006-linux-user-fake-proc-self-stat.patch Patch7: 0007-linux-user-fake-proc-self-auxv.patch Patch8: 0008-XXX-dont-dump-core-on-sigabort.patch Patch9: 0009-linux-user-fix-wait-syscall-status-returns.patch Patch10: 0010-Revert-linux-user-fix-wait-syscall-status-returns.patch Patch11: 0011-linux-user-fix-wait-syscall-status-returns.patch Patch12: 0012-linux-user-Fix-32-on-64-mmap-for-x86_64.patch Patch13: 0013-XXX-linux-user-fake-proc-self-maps-even-more.patch Patch14: 0014-XXX-work-around-SA_RESTART-race-with-boehm-gc-ARM-o.patch Patch15: 0015-XXX-move-qemu-binary-lower-in-address-space-so-we-ha.patch Patch16: 0016-linux-user-map-lower-in-address-space.patch Patch17: 0017-XXX-fake-proc-self-maps-also-fclose-real-file.patch Patch18: 0018-XXX-map-qemu-higher-again-so-we-have-space-for-brk.patch Patch19: 0019-qemu-0.9.0.cvs-binfmt.patch Patch20: 0020-qemu-cvs-alsa_bitfield.patch Patch21: 0021-qemu-cvs-alsa_ioctl.patch Patch22: 0022-qemu-cvs-alsa_mmap.patch Patch23: 0023-qemu-cvs-gettimeofday.patch Patch24: 0024-qemu-cvs-ioctl_debug.patch Patch25: 0025-qemu-cvs-ioctl_nodirection.patch Patch26: 0026-qemu-img-vmdk-scsi.patch Patch27: 0027-qemu-nonvoid_return.patch Patch28: 0028-fix-mipsn32-linux-user-builds.patch Patch29: 0029-Integrating-Dynamips-and-GNS3-UDP-tunnels-Patches.patch Patch30: 0030-linux-user-add-binfmt-wrapper-for-argv-0-handling.patch Patch31: 0031-linux-user-Ignore-timer_create-syscall.patch Patch32: 0032-linux-user-be-silent-about-capget-failures.patch # this is to make lint happy Source300: rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: SDL-devel BuildRequires: bison BuildRequires: bluez-devel BuildRequires: curl-devel BuildRequires: cyrus-sasl-devel BuildRequires: e2fsprogs-devel BuildRequires: libaio BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libgnutls-devel BuildRequires: libpcap-devel BuildRequires: ncurses-devel %if 0%{?suse_version} >= 1120 BuildRequires: zlib-devel-static %else BuildRequires: zlib-devel %endif %if 0%{?suse_version} >= 1210 BuildRequires: libattr-devel-static BuildRequires: glibc-devel-static BuildRequires: libfdt1-devel %endif %if 0%{?suse_version} >= 1140 BuildRequires: glib2-devel-static %endif BuildRequires: libvdeplug3-devel BuildRequires: glib2-devel BuildRequires: python BuildRequires: fdupes Requires: timezone virt-utils %description QEMU is an extremely well-performing CPU emulator that allows you to choose between simulating an entire system and running userspace binaries for different architectures under your native operating system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well as PC and PowerMac systems. %package linux-user Group: System/Emulators/PC Summary: Universal CPU emulator -- Linux User binaries Provides: qemu:%_bindir/qemu-arm %description linux-user QEMU is an extremely well-performing CPU emulator that allows you to choose between simulating an entire system and running userspace binaries for different architectures under your native operating system. It currently emulates x86, ARM, PowerPC and SPARC CPUs as well as PC and PowerMac systems. This sub package contains static linked binaries for runnign linux-user emulations. This can be used together with the OBS build script to run cross architectures builds %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 %patch26 -p1 %patch27 -p1 %patch28 -p1 %patch29 -p1 %patch30 -p1 %patch31 -p1 %patch32 -p1 %build # build QEMU mkdir -p dynamic # build qemu-system ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ --interp-prefix=%_datadir/%name/qemu-i386 \ --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus" \ --audio-drv-list="alsa sdl" --enable-mixemu --enable-vde \ --extra-cflags="$QEMU_OPT_FLAGS" --enable-system --disable-linux-user # curl test fails for no reason in build system echo "CONFIG_CURL=y" >> config-host.mak echo "CURL_LIBS=-lcurl" >> config-host.mak echo "#define CONFIG_CURL 1" >> config-host.h make %{?jobs:-j%jobs} V=1 make qemu-img V=1 mv */qemu */qemu-* qemu-io dynamic || true make clean # build userland emus ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ --interp-prefix=%_datadir/%name/qemu-i386 \ --enable-linux-user \ --disable-system \ --static --disable-linux-aio \ --extra-cflags="$QEMU_OPT_FLAGS" make %{?jobs:-j%jobs} V=1 %install make install DESTDIR=$RPM_BUILD_ROOT rm -f $RPM_BUILD_ROOT/%_mandir/man1/qemu-img.1 rm -f $RPM_BUILD_ROOT/%_mandir/man8/qemu-nbd.8 rm -fr $RPM_BUILD_ROOT/%_datadir/doc # otherwise we get: install: omitting directory `dynamic/qemu-palcode' rm -fr dynamic/qemu-palcode install -m 755 */qemu-*[^.]? $RPM_BUILD_ROOT/%_bindir install -d -m 755 $RPM_BUILD_ROOT/%_sbindir install -m 755 dynamic/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/%_sbindir %ifnarch %ix86 x86_64 ln -sf ../../../emul/ia32-linux $RPM_BUILD_ROOT/usr/share/qemu/qemu-i386 %endif %ifnarch ia64 mkdir -p $RPM_BUILD_ROOT/emul/ia32-linux %endif %fdupes -s $RPM_BUILD_ROOT %clean rm -rf ${RPM_BUILD_ROOT} %files %defattr(-, root, root) %doc COPYING COPYING.LIB Changelog README TODO VERSION qemu-doc.html qemu-tech.html %_bindir/qemu-io %_bindir/qemu-system-* %doc %_mandir/man[18]/qemu*.[18].gz %_datadir/%name %ifnarch %ix86 x86_64 ia64 %dir /emul/ia32-linux %endif %dir %_sysconfdir/%name %config %_sysconfdir/%name/target-x86_64.conf %files linux-user %defattr(-, root, root) %_bindir/qemu-alpha %_bindir/qemu-arm %_bindir/qemu-armeb %_bindir/qemu-cris %_bindir/qemu-i386 %_bindir/qemu-m68k %_bindir/qemu-microblaze %_bindir/qemu-microblazeel %_bindir/qemu-mips %_bindir/qemu-mipsel %_bindir/qemu-mipsn32 %_bindir/qemu-mipsn32el %_bindir/qemu-ppc64abi32 %_bindir/qemu-ppc64 %_bindir/qemu-ppc %_bindir/qemu-s390x %_bindir/qemu-sh4 %_bindir/qemu-sh4eb %_bindir/qemu-sparc32plus %_bindir/qemu-sparc64 %_bindir/qemu-sparc %_bindir/qemu-unicore32 %_bindir/qemu-x86_64 %_bindir/qemu-*-binfmt %_bindir/qemu-binfmt-conf.sh %_sbindir/qemu-binfmt-conf.sh %changelog