# Maintainer: Natanael Copa pkgname=qemu pkgver=2.0.0 pkgrel=1 pkgdesc="QEMU is a generic machine emulator and virtualizer" url="http://qemu.org/" arch="all" license="GPL-2 LGPL-2" makedepends="zlib-dev sdl-dev alsa-lib-dev gnutls-dev ncurses-dev glib-dev libjpeg-turbo-dev libpng-dev vde2-dev spice-dev paxctl curl-dev libcap-dev libcap-ng-dev libaio-dev usbredir-dev util-linux-dev gtk+2.0-dev vte-dev libusbx-dev flex bison" depends= install="qemu.pre-install" subpackages=" $pkgname-alpha:alpha $pkgname-arm:arm $pkgname-armeb:armeb $pkgname-cris:cris $pkgname-i386:i386 $pkgname-m68k:m68k $pkgname-microblaze:microblaze $pkgname-microblazeel:microblazeel $pkgname-mips:mips $pkgname-mips64:mips64 $pkgname-mips64el:mips64el $pkgname-mipsel:mipsel $pkgname-mipsn32:mipsn32 $pkgname-mipsn32el:mipsn32el $pkgname-or32:or32 $pkgname-ppc:ppc $pkgname-ppc64:ppc64 $pkgname-ppc64abi32:ppc64abi32 $pkgname-s390x:s390x $pkgname-sh4:sh4 $pkgname-sh4eb:sh4eb $pkgname-sparc:sparc $pkgname-sparc32plus:sparc32plus $pkgname-sparc64:sparc64 $pkgname-system-aarch64:system_aarch64 $pkgname-system-alpha:system_alpha $pkgname-system-arm:system_arm $pkgname-system-cris:system_cris $pkgname-system-i386:system_i386 $pkgname-system-lm32:system_lm32 $pkgname-system-m68k:system_m68k $pkgname-system-microblaze:system_microblaze $pkgname-system-microblazeel:system_microblazeel $pkgname-system-mips:system_mips $pkgname-system-mips64:system_mips64 $pkgname-system-mips64el:system_mips64el $pkgname-system-mipsel:system_mipsel $pkgname-system-moxie:system_moxie $pkgname-system-or32:system_or32 $pkgname-system-ppc:system_ppc $pkgname-system-ppc64:system_ppc64 $pkgname-system-ppcemb:system_ppcemb $pkgname-system-s390x:system_s390x $pkgname-system-sh4:system_sh4 $pkgname-system-sh4eb:system_sh4eb $pkgname-system-sparc:system_sparc $pkgname-system-sparc64:system_sparc64 $pkgname-system-unicore32:system_unicore32 $pkgname-system-x86_64:system_x86_64 $pkgname-system-xtensa:system_xtensa $pkgname-system-xtensaeb:system_xtensaeb $pkgname-unicore32:unicore32 $pkgname-x86_64:x86_64 $pkgname-lang $pkgname-img $pkgname-guest-agent:guest " source="http://wiki.qemu-project.org/download/qemu-$pkgver.tar.bz2 0001-elfload-load-PIE-executables-to-right-address.patch 0001-linux-user-avoid-using-glibc-internals-in-_syscall5-.patch 0002-util-qemu-openpty-fix-build-with-musl-libc-by-includ.patch 0003-xen-replace-ffsl-with-ctzl.patch 0004-vhost-replace-ffsl-with-ctzl.patch 0005-exec-replace-ffsl-with-ctzl.patch 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch musl-F_SHLCK-and-F_EXLCK.patch qemu-guest-agent.confd qemu-guest-agent.initd 80-kvm.rules" prepare() { cd "$srcdir"/$pkgname-$pkgver for i in $source; do case $i in *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; esac done # avoid fdt till an updated release appears sed -i -e 's:fdt="yes":fdt="no":' configure # prevent docs to get automatically installed sed -i '/$(DESTDIR)$(docdir)/d' Makefile # Alter target makefiles to accept CFLAGS sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \ Makefile Makefile.target tests/Makefile sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \ Makefile.target } build() { cd "$srcdir"/$pkgname-$pkgver ./configure \ --prefix=/usr \ --localstatedir=/var \ --sysconfdir=/etc \ --audio-drv-list=oss,alsa,sdl \ --enable-vde \ --enable-spice \ --enable-virtfs \ --enable-curl \ --enable-cap-ng \ --enable-linux-aio \ --enable-usb-redir \ --enable-guest-agent \ --enable-uuid \ --enable-sdl \ --enable-gtk \ --disable-bsd-user \ --enable-linux-user \ --disable-werror \ --disable-smartcard-nss \ --cc="${CC:-gcc}" \ || return 1 make ARFLAGS="rc" || return 1 # tests fails on x86 # http://lists.gnu.org/archive/html/qemu-devel/2012-11/msg01429.html # http://web.archiveorange.com/archive/v/21oVv8wOfpQGkyy8EK0N # make check || return 1 } package() { cd "$srcdir"/$pkgname-$pkgver make DESTDIR="$pkgdir" install || return 1 install -Dm644 "$srcdir"/80-kvm.rules \ "$pkgdir"/lib/udev/rules.d/80-kvm.rules || return 1 paxctl -c -m "$pkgdir"/usr/bin/qemu-system-* || return 1 } _subsys() { pkgdesc="Qemu ${1/-/ } emulator" depends="qemu" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/qemu-$1 "$subpkgdir"/usr/bin/ || return 1 } alpha() { _subsys alpha; } arm() { _subsys arm; } armeb() { _subsys armeb; } cris() { _subsys cris; } i386() { _subsys i386; } m68k() { _subsys m68k; } microblaze() { _subsys microblaze; } microblazeel() { _subsys microblazeel; } mips() { _subsys mips; } mips64() { _subsys mips64; } mips64el() { _subsys mips64el; } mipsel() { _subsys mipsel; } mipsn32() { _subsys mipsn32; } mipsn32el() { _subsys mipsn32el; } or32() { _subsys or32; } ppc() { _subsys ppc; } ppc64() { _subsys ppc64; } ppc64abi32() { _subsys ppc64abi32; } s390x() { _subsys s390x; } sh4() { _subsys sh4; } sh4eb() { _subsys sh4eb; } sparc() { _subsys sparc; } sparc32plus() { _subsys sparc32plus; } sparc64() { _subsys sparc64; } system_aarch64() { _subsys system-aarch64; } system_alpha() { _subsys system-alpha; } system_arm() { _subsys system-arm; } system_cris() { _subsys system-cris; } system_i386() { _subsys system-i386; } system_lm32() { _subsys system-lm32; } system_m68k() { _subsys system-m68k; } system_microblaze() { _subsys system-microblaze; } system_microblazeel() { _subsys system-microblazeel; } system_mips() { _subsys system-mips; } system_mips64() { _subsys system-mips64; } system_mips64el() { _subsys system-mips64el; } system_mipsel() { _subsys system-mipsel; } system_moxie() { _subsys system-moxie; } system_or32() { _subsys system-or32; } system_ppc() { _subsys system-ppc; } system_ppc64() { _subsys system-ppc64; } system_ppcemb() { _subsys system-ppcemb; } system_s390x() { _subsys system-s390x; } system_sh4() { _subsys system-sh4; } system_sh4eb() { _subsys system-sh4eb; } system_sparc() { _subsys system-sparc; } system_sparc64() { _subsys system-sparc64; } system_unicore32() { _subsys system-unicore32; } system_x86_64() { _subsys system-x86_64; } system_xtensa() { _subsys system-xtensa; } system_xtensaeb() { _subsys system-xtensaeb; } unicore32() { _subsys unicore32; } x86_64() { _subsys x86_64; } img() { pkgdesc="QEMU command line tool for manipulating disk images" replaces="qemu" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/qemu-img \ "$pkgdir"/usr/bin/qemu-io \ "$subpkgdir"/usr/bin/ # we exploit the fact that -img subpackage are created last # and check that we done have new systems that belongs in # subpackage local _bins= _ret=0 for i in "$pkgdir"/usr/bin/qemu-system-*; do if [ -r "$i" ]; then error "Please create a subpackage for ${i##*/}" _ret=1 fi done return $_ret } guest() { pkgdesc="QEMU guest agent" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/qemu-ga "$subpkgdir"/usr/bin/ install -Dm755 "$srcdir"/qemu-guest-agent.initd \ "$subpkgdir"/etc/init.d/qemu-guest-agent || return 1 install -Dm644 "$srcdir"/qemu-guest-agent.confd \ "$subpkgdir"/etc/conf.d/qemu-guest-agent || return 1 } md5sums="2790f44fd76da5de5024b4aafeb594c2 qemu-2.0.0.tar.bz2 672727bb1d8c8ab7b5def65dd1793c33 0001-elfload-load-PIE-executables-to-right-address.patch 9e13b70bb154e4bba9b7bc55565bd671 0001-linux-user-avoid-using-glibc-internals-in-_syscall5-.patch d5bee57e71a84b3b1d34a7a6877c710a 0002-util-qemu-openpty-fix-build-with-musl-libc-by-includ.patch a5b3f6d9f1b12d548fec1c0f26656d2a 0003-xen-replace-ffsl-with-ctzl.patch 61de41ce733bc63c4ebb05b0475c9b3f 0004-vhost-replace-ffsl-with-ctzl.patch 3d5271c1ead506b10dfd25a1ea08be39 0005-exec-replace-ffsl-with-ctzl.patch d364208c4847ad2baeb237900befecd1 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch bc5f2e41ed3b6d6d30b672adab82e3e1 musl-F_SHLCK-and-F_EXLCK.patch 1663bc6977f6886a58394155b1bf3676 qemu-guest-agent.confd 2035cd781ea810e94bda250c609d8d90 qemu-guest-agent.initd 66660f143235201249dc0648b39b86ee 80-kvm.rules" sha256sums="60cc1aa0cad39cec891f970bed60ca8a484f071adad4943123599ac223543a3b qemu-2.0.0.tar.bz2 af35304b165622a53f7557b59ffd8da5030f5fd444e669c862f9410131f3b987 0001-elfload-load-PIE-executables-to-right-address.patch 710d2060e8faa3025f8bca608d7e28cbe498ef7ce3735bf005f763f3a97aa623 0001-linux-user-avoid-using-glibc-internals-in-_syscall5-.patch 797ccc6c7fcc01c66ce13c2f32f0fa0dd7ff4deb4e0b6518fda39fb0bb3a9a46 0002-util-qemu-openpty-fix-build-with-musl-libc-by-includ.patch 58879543cdc595409f07e588faf05d8526b9d40d3fbc71f2633714f48bf544a9 0003-xen-replace-ffsl-with-ctzl.patch 1347fd3aa48aa46a51cc01781cbfe0169fd198845304e80eb4a2285792a0f516 0004-vhost-replace-ffsl-with-ctzl.patch 03fb8cd1b7576ccb9f606ec5a3fcd1c94a9e983ba342a18e648e4bf404e1d993 0005-exec-replace-ffsl-with-ctzl.patch 6af6cf9044997710a6d0fbdba30a35c8d775e30d30c032ec97db672f75ec88ac 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch eefd597197223899d3b12d8274af493153e270fd06ea8622e33d6eaeae063d40 musl-F_SHLCK-and-F_EXLCK.patch d84e53a94584f37f3bd1b21f44077b5de0d07094c6729f26ae20ab1f7b9cc298 qemu-guest-agent.confd 982fa8ba67c728405305e4cf5a36a41a780b3d1f388ebd6377e7964c271a1c92 qemu-guest-agent.initd 37f666f1cdb7d8a62171de69b531681dcb0fba74236729dac8b6c019232eba84 80-kvm.rules" sha512sums="8fe2e8faa66251aaea7d6017ee71675d5b05f93f92be7e2ad3e1d02af185b3d6c4069bd83a13fb1e35a3e8947aff76f22446b395f97ac18b6f7a99744202e3fa qemu-2.0.0.tar.bz2 405008589cad1c8b609eca004d520bf944366e8525f85a19fc6e283c95b84b6c2429822ba064675823ab69f1406a57377266a65021623d1cd581e7db000134fd 0001-elfload-load-PIE-executables-to-right-address.patch 8c6a4b7aee138566d6a47df4a58f85a657099c7ec101fac825f81aa264e275bf2e00d264d55f0f91ff3be2da78e7e306aaa031a0997728381bafb6f4b79c674a 0001-linux-user-avoid-using-glibc-internals-in-_syscall5-.patch c9c91116e30868180fab2780e947de72ab338ef5173b86457e6e0ffcc20eda30743867a2fcb7dae788aa36d3bdf5c4058d06332e3adc611ab30d1b5bc4dff081 0002-util-qemu-openpty-fix-build-with-musl-libc-by-includ.patch b9a4e0012f574491debb9c1428240402a223ff772ceff662826fbc821c9cbfe3db368b8a12b8742cfda98b536c6130e289f63cfcf8deff933e9b7bb3ad54ecdc 0003-xen-replace-ffsl-with-ctzl.patch 49078967718b338adc1c445921012d5363af83fddee317a23b8c121a73b127ef7f8014cca1cfdc91c927ffa02f7091712753a19314c6ef28462b77f494025cb1 0004-vhost-replace-ffsl-with-ctzl.patch 9504cc6afa84e5cc687baac2e7f1e4c2dbeee0f67dd8963686c89d0dc9e96eef0228a2390722b813f14dc359ab746227e8494192f5effbe9e8353c991dcbdcc3 0005-exec-replace-ffsl-with-ctzl.patch ec84b27648c01c6e58781295dcd0c2ff8e5a635f9836ef50c1da5d0ed125db1afc4cb5b01cb97606d6dd8f417acba93e1560d9a32ca29161a4bb730b302440ea 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch 5de10f7e8abae16d1d7521e5ca1bfb62a8f295b324bea84f122f882b7b9354c21e5a00b20a1c5484c1b737b937e53c4ca6979e55705522f0779a5669725369f5 musl-F_SHLCK-and-F_EXLCK.patch d90c034cae3f9097466854ed1a9f32ab4b02089fcdf7320e8f4da13b2b1ff65067233f48809911485e4431d7ec1a22448b934121bc9522a2dc489009e87e2b1f qemu-guest-agent.confd 761b4e2397569dae45ae3bb9e46e28746275297f629af9e9065525497fd26a48b65d8abcf4282727afd35309e338967acf6a1b14c3169577bdc16c1f42e618b3 qemu-guest-agent.initd 9b7a89b20fcf737832cb7b4d5dc7d8301dd88169cbe5339eda69fbb51c2e537d8cb9ec7cf37600899e734209e63410d50d0821bce97e401421db39c294d97be2 80-kvm.rules"