# Maintainer: Natanael Copa pkgname=qemu pkgver=1.6.2 pkgrel=6 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-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 0409-vbe-make-bochs-dispi-interface-return-the-correct-me.patch 0410-vbe-rework-sanity-checks.patch 0411-spice-make-sure-we-don-t-overflow-ssd-buf.patch 0427-cirrus-fix-blit-region-check.patch 0428-cirrus-don-t-overflow-CirrusVGAState-cirrus_bltbuf.patch CVE-2014-0150.patch CVE-2014-5263.patch CVE-2015-3456.patch CVE-2015-4037.patch CVE-2015-5165.1.patch CVE-2015-5165.2.patch CVE-2015-5165.3.patch CVE-2015-5165.4.patch CVE-2015-5165.5.patch CVE-2015-5165.6.patch CVE-2015-5165.7.patch CVE-2015-5278.patch CVE-2015-5279.patch CVE-2015-6815.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 \ --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_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="d0a75f8acfe2becf33cec040e8be78e8 qemu-1.6.2.tar.bz2 672727bb1d8c8ab7b5def65dd1793c33 0001-elfload-load-PIE-executables-to-right-address.patch b5e0d150f9dbd87b4259653b0e138cfe 0409-vbe-make-bochs-dispi-interface-return-the-correct-me.patch 4f0763a2a0b490a27346791e85027b14 0410-vbe-rework-sanity-checks.patch b480dbb5bbf2c4550138ecd090028e83 0411-spice-make-sure-we-don-t-overflow-ssd-buf.patch 0ae782ce64e4015ccea5b7b3c94ff715 0427-cirrus-fix-blit-region-check.patch c10e5d649375ca3551ac7428d545890f 0428-cirrus-don-t-overflow-CirrusVGAState-cirrus_bltbuf.patch 99dbe445530aeaa795a4a68aabef6c90 CVE-2014-0150.patch 35dfdc9788a11d4e7b0f8189c20f1242 CVE-2014-5263.patch 5e8a68940c4e0267e795a6ddd144e00e CVE-2015-3456.patch 97045abdf8d0543691e52f9fdf0c8d52 CVE-2015-4037.patch 2cb289d5071f4dd93235fb7d89e178be CVE-2015-5165.1.patch da48557667d23bd2cbe115735b8c3034 CVE-2015-5165.2.patch 4a33d5a280ed5e847353a9c5e4b90184 CVE-2015-5165.3.patch 6127b15957145fa1feeeb457573cf86f CVE-2015-5165.4.patch e42ef3d3840db18ae172513bf14c7dbd CVE-2015-5165.5.patch 53b14f33b64137e37366478b76e46843 CVE-2015-5165.6.patch 52a6193bc3371e81e3eaab4db8689d85 CVE-2015-5165.7.patch 86a63ff69fe5b8af150cd1c082a75b43 CVE-2015-5278.patch 3e3adef433cd25e650815b0506c2c73b CVE-2015-5279.patch a5bf6747adf6b50bdd5ef8dc540a475c CVE-2015-6815.patch 1663bc6977f6886a58394155b1bf3676 qemu-guest-agent.confd 2035cd781ea810e94bda250c609d8d90 qemu-guest-agent.initd 66660f143235201249dc0648b39b86ee 80-kvm.rules" sha256sums="65c5196226e73e327377d741d70004d2ea8fb6799080812b6f3ed8f9269e4eb4 qemu-1.6.2.tar.bz2 af35304b165622a53f7557b59ffd8da5030f5fd444e669c862f9410131f3b987 0001-elfload-load-PIE-executables-to-right-address.patch ba710d3ec48df051bf242caaec1990d92895928eb1505bc819fa758f4c3fc7d8 0409-vbe-make-bochs-dispi-interface-return-the-correct-me.patch 531653767007ea2affbd65e285022c3f00b4d39c419745452f40f9a16ad620c3 0410-vbe-rework-sanity-checks.patch a585ec12317d6fbfa1f2b7a8d7efda61c466a1537b4384b7389bc9d5f9dfd056 0411-spice-make-sure-we-don-t-overflow-ssd-buf.patch 93e58ef5da1dd62613bf7de4322435f8a602ebbf164debdb04420215eecd5a8a 0427-cirrus-fix-blit-region-check.patch 5be596bdd8bf1534435a312be2dd3f9c813421be07321c73b5b263af2c700019 0428-cirrus-don-t-overflow-CirrusVGAState-cirrus_bltbuf.patch e07581b81a364d5c774f30331b5d9f79e7cbdbecbece21af12ba1674d4f75084 CVE-2014-0150.patch 394c3eb1a880b1190676e96195987da46bc95d671a7547f226ec81147164035f CVE-2014-5263.patch de69a47daf292fd0cc01c925a23c9fadbac0fb60c322bf89260cccceb47ca204 CVE-2015-3456.patch 6bb3f4bb71716bdde8ff417b76ceb4cee336ae93a65b2ae1db15406f382c0299 CVE-2015-4037.patch 12d0dc1a31449288ed5e562a1e9415c437b7a2799e8afa0b251e3957a0d8ab23 CVE-2015-5165.1.patch c91a60b7d7e18ea95b31eca0ba940d53c14730fae1e50802375c9e5ab7d0f109 CVE-2015-5165.2.patch 99062a9cbf4b96de8f0aa8555291cf6e296a9dbdf22ad4e9285912ba02de9261 CVE-2015-5165.3.patch 82d2214a0bd42b03b72b26170e4c80699d74bc691b6e223780a693ad2e9c267a CVE-2015-5165.4.patch b728ae69e4a1d838bb1b4c5e6135e84fe8f6fc7e97fdc99915e7fc908edb4fd2 CVE-2015-5165.5.patch 6fb23646e05ef9a4b010d2a2c0235b6ee58a293f39ed40b6b1611115c948a79a CVE-2015-5165.6.patch ebcadb69110ea4672795b52472222ed1ffe67a83e37c5b7d401530f43137c587 CVE-2015-5165.7.patch 0ceeaeec1ed46bff0a1a6580d9744ff3615eae55689cd3254ec7d187758b7758 CVE-2015-5278.patch 39ebcd2f3690e241354f9c06716e3f88966baee65907da425c4dc90006281390 CVE-2015-5279.patch 2a67392d648c3e0b5e65eb7c51bc0ab1a3040cdbc4decb3daef391472b3b13e1 CVE-2015-6815.patch d84e53a94584f37f3bd1b21f44077b5de0d07094c6729f26ae20ab1f7b9cc298 qemu-guest-agent.confd 982fa8ba67c728405305e4cf5a36a41a780b3d1f388ebd6377e7964c271a1c92 qemu-guest-agent.initd 37f666f1cdb7d8a62171de69b531681dcb0fba74236729dac8b6c019232eba84 80-kvm.rules" sha512sums="bea8ebfc4b8af23f88ebc0acb2ecfe9d38ec8c8a86a94d7f20d8da21ccdbffe79b3213ad5bac2f5175e4fdc98ad149e82250d2a99f0b5415cace82e776033a64 qemu-1.6.2.tar.bz2 405008589cad1c8b609eca004d520bf944366e8525f85a19fc6e283c95b84b6c2429822ba064675823ab69f1406a57377266a65021623d1cd581e7db000134fd 0001-elfload-load-PIE-executables-to-right-address.patch 860f2e77dc8f1ce5f94fab2345ba80078567e1a33cc7cdf9286777f87390342a7da8922f29bd58dceea2d47b540f3e3fd8809df4c00c496d2212e6e56e36413e 0409-vbe-make-bochs-dispi-interface-return-the-correct-me.patch 1febaa97b2223cbfa2918dcdbab7f4d0c6804cd559ad42753d80f0ffbf62113db470dcea000ca8c4517c73b216b7535692396c0a96683b60956bfc38ee17f359 0410-vbe-rework-sanity-checks.patch f1b0564ba35f2840eeaf7cae1d42969edcf84cc1c1ebb44858e6eace8fa89c9cd7669165bf22305925326151993e365319e94d856c8ddbf56bbe8be2b41e5214 0411-spice-make-sure-we-don-t-overflow-ssd-buf.patch ef4df18475d1750594f0341fdf22ac2e9767dd9763ebded289a119ef0a8eb99113dfba56ac04ad8caf0a0ed76be157f46e5457477fe9506a5abac91dfbe3b957 0427-cirrus-fix-blit-region-check.patch b151de5c8e6e3f6c3015724d4717e0342cfa70f67c4979d466a5bee6e726935880fca8f25a5ee622b64a88cd6f54bf2755ddbf6d9c71d2cbf58aab5c7d55ff95 0428-cirrus-don-t-overflow-CirrusVGAState-cirrus_bltbuf.patch 39630e251954f321419c59a9fce4ab0443e7c3679ed8cb69e8448bf017d2b715f3bb6b45a11bdd9cb1c083a801273b4c0dc9ebfd628f80477064845f9ba200e4 CVE-2014-0150.patch 33c77ad81c52b91c0db6a73b29b173bf50ec05b95882e7141410e27f601af3ce41958b73ea753909e96e51f51c83d61700a799db085c23ee45db04d1779e6bdf CVE-2014-5263.patch 81485e26e30314b075a154cbce841fa3b803b70d8539a5ce00e57ec2020ab801d88c35631805811d003505dfd1909a5b70307fdbd8a192986f53143669465bd8 CVE-2015-3456.patch 8dc68c2f511a28b0c1896b89922fab8e31dea4eefe18a69e6c068dd799cfc5a5a8b2ed8c3f5d17584932ddb9a2bf72d72fdaaf19c2129babf9a8e8f4ce150659 CVE-2015-4037.patch 1df1ff1044542c4a0b040cb7fe5bbe002ee95782277f50f2bea86fbb34d4c5404a6c1f467a4cc224020882fe8c2f113e6b44d762129bd79ae04e139494a90ddc CVE-2015-5165.1.patch eb332382898e0450bc6a6297e5977579a05f7b2ad304659aff37a7eed040b28013a982cdff2a1d669e968cea2aefef183081db1f6f9ae2baf64865ef2dbfa283 CVE-2015-5165.2.patch 664ce64538441b0eeb93d1b5642acf3a1bd8c9c8b4cb5578d49e8226b967c9bef816caee41a429365ff0c5f982991f25483fc14db6c0a27d14626febaf8f8bcd CVE-2015-5165.3.patch a7dba1a26f33c2a65ee84fd0d3e5606cd17f623bea0c33438247e1f8d6cd72217d02bd00c28a24f54506480b12092b7351551af5f9cdcf863157cddaa461b606 CVE-2015-5165.4.patch 7476649c099b363632b158b691f8ec2704590ec6e671f9bb013c7ffe50e593dc7c97278b6d09b5021605071a23b528875f024f5617a019954efac9c4055f6a83 CVE-2015-5165.5.patch a1a38fdbc3f3cebb557ae00c3764bb268019b2c9f15731bb829b3b73a87856c5d51d65cc3ff712b28601298afb2aa82e83789bab867c8fb2816f23d515af8be7 CVE-2015-5165.6.patch d174df707dabbaf49fadda0db9b551abef0e4c2045287bfb78ded69c7b8e6a59333d7aa1459ac7a81c0f3f711ec225157d8dabcd63d6eed10bb5755cea608fbb CVE-2015-5165.7.patch 62cc1f05decad3c48bf9246659c4de14862aaba6b8bbf41724ae0e0b45ef5c9e0e0ae163da0f097ba0c3b2a8dd356b3bfe4f2de8de63b22b30ad6b8364cd8cc4 CVE-2015-5278.patch a435101af6881993bcaf58409b167d1fbe39aa97eac6b77dc48d37f75bb902b945bb01d23931ea44b6634dbff71ff735b54bd55822393163732ef5d8ae346d64 CVE-2015-5279.patch b7f9c48ca74351d7553f6c9c647bdeafa73bfb71f56cb4f812b55ea99db9e7e58c30854c0a4e9ad202de9a83b694f883c9eb7cd05f80288dc87f98870b3ee541 CVE-2015-6815.patch d90c034cae3f9097466854ed1a9f32ab4b02089fcdf7320e8f4da13b2b1ff65067233f48809911485e4431d7ec1a22448b934121bc9522a2dc489009e87e2b1f qemu-guest-agent.confd 761b4e2397569dae45ae3bb9e46e28746275297f629af9e9065525497fd26a48b65d8abcf4282727afd35309e338967acf6a1b14c3169577bdc16c1f42e618b3 qemu-guest-agent.initd 9b7a89b20fcf737832cb7b4d5dc7d8301dd88169cbe5339eda69fbb51c2e537d8cb9ec7cf37600899e734209e63410d50d0821bce97e401421db39c294d97be2 80-kvm.rules"