aboutsummaryrefslogtreecommitdiffstats
path: root/community/qemu/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/qemu/APKBUILD')
-rw-r--r--community/qemu/APKBUILD409
1 files changed, 409 insertions, 0 deletions
diff --git a/community/qemu/APKBUILD b/community/qemu/APKBUILD
new file mode 100644
index 0000000000..699786488d
--- /dev/null
+++ b/community/qemu/APKBUILD
@@ -0,0 +1,409 @@
+# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=qemu
+pkgver=4.1.1
+pkgrel=2
+pkgdesc="QEMU is a generic machine emulator and virtualizer"
+url="https://qemu.org/"
+arch="all"
+license="GPL-2.0 LGPL-2"
+makedepends="
+ alsa-lib-dev
+ bison
+ curl-dev
+ flex
+ glib-dev
+ glib-static
+ gnutls-dev
+ gtk+3.0-dev
+ libaio-dev
+ libcap-dev
+ libcap-ng-dev
+ libjpeg-turbo-dev
+ libnfs-dev
+ libpng-dev
+ libseccomp-dev
+ libssh-dev
+ libusb-dev
+ libxml2-dev
+ linux-headers
+ lzo-dev
+ ncurses-dev
+ paxmark
+ perl
+ python3
+ py3-sphinx
+ sdl2-dev
+ snappy-dev
+ spice-dev
+ texinfo
+ usbredir-dev
+ util-linux-dev
+ vde2-dev
+ virglrenderer-dev
+ vte3-dev
+ xfsprogs-dev
+ zlib-dev
+ zlib-static
+ "
+pkggroups="qemu"
+install="$pkgname.pre-install $pkgname.post-install"
+# suid needed for qemu-bridge-helper
+# strip fails on .img files
+# some tests does not run on our builders
+options="suid !strip !check"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-guest-agent:guest
+ ivshmem-tools:_ivshmem"
+
+_subsystems="
+ aarch64
+ aarch64_be
+ alpha
+ arm
+ armeb
+ cris
+ hppa
+ i386
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ mipsn32
+ mipsn32el
+ nios2
+ or1k
+ ppc
+ ppc64
+ ppc64abi32
+ ppc64le
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc32plus
+ sparc64
+ system-aarch64
+ system-alpha
+ system-arm
+ system-cris
+ system-hppa
+ system-i386
+ system-lm32
+ system-m68k
+ system-microblaze
+ system-microblazeel
+ system-mips
+ system-mips64
+ system-mips64el
+ system-mipsel
+ system-moxie
+ system-nios2
+ system-or1k
+ system-ppc
+ system-ppc64
+ system-riscv32
+ system-riscv64
+ system-s390x
+ system-sh4
+ system-sh4eb
+ system-sparc
+ system-sparc64
+ system-tricore
+ system-unicore32
+ system-x86_64
+ system-xtensa
+ system-xtensaeb
+ tilegx
+ x86_64
+ xtensa
+ xtensaeb
+ "
+for _sub in $_subsystems; do
+ subpackages="$subpackages $pkgname-$_sub:_subsys"
+done
+
+_modules="
+ audio-alsa
+ audio-oss
+ audio-sdl
+ block-curl
+ block-dmg-bz2
+ block-nfs
+ block-ssh
+ ui-curses
+ ui-gtk
+ ui-sdl
+ "
+for _mod in $_modules; do
+ subpackages="$subpackages $pkgname-$_mod:_module"
+done
+subpackages="$subpackages qemu-modules:_all_modules"
+
+subpackages="$subpackages $pkgname-img" # -img must be declared the last
+
+source="https://wiki.qemu-project.org/download/$pkgname-$pkgver.tar.xz
+ 0001-elfload-load-PIE-executables-to-right-address.patch
+ 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch
+ 0001-linux-user-fix-build-with-musl-on-aarch64.patch
+ musl-F_SHLCK-and-F_EXLCK.patch
+ fix-sigevent-and-sigval_t.patch
+ xattr_size_max.patch
+ ncurses.patch
+ ignore-signals-33-and-64-to-allow-golang-emulation.patch
+ 0001-linux-user-fix-build-with-musl-on-ppc64le.patch
+ MAP_SYNC-fix.patch
+ fix-sockios-header.patch
+ test-crypto-ivgen-skip-essiv.patch
+ guest-agent-shutdown.patch
+ fix-statx-translation.patch
+
+ $pkgname-guest-agent.confd
+ $pkgname-guest-agent.initd
+ 80-kvm.rules
+ bridge.conf
+ "
+builddir="$srcdir/$pkgname-$pkgver"
+
+# secfixes:
+# 2.8.1-r1:
+# - CVE-2016-7994
+# - CVE-2016-7995
+# - CVE-2016-8576
+# - CVE-2016-8577
+# - CVE-2016-8578
+# - CVE-2016-8668
+# - CVE-2016-8909
+# - CVE-2016-8910
+# - CVE-2016-9101
+# - CVE-2016-9102
+# - CVE-2016-9103
+# - CVE-2016-9104
+# - CVE-2016-9105
+# - CVE-2016-9106
+# - CVE-2017-2615
+# - CVE-2017-2620
+# - CVE-2017-5525
+# - CVE-2017-5552
+# - CVE-2017-5578
+# - CVE-2017-5579
+# - CVE-2017-5667
+# - CVE-2017-5856
+# - CVE-2017-5857
+# - CVE-2017-5898
+# - CVE-2017-5931
+
+prepare() {
+ default_prepare # apply patches
+
+ sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \
+ Makefile.target
+}
+
+_compile_common() {
+ CFLAGS="${CFLAGS/-Os/-O2}" "$builddir"/configure \
+ --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/qemu \
+ --python=/usr/bin/python3 \
+ --disable-glusterfs \
+ --disable-debug-info \
+ --disable-bsd-user \
+ --disable-werror \
+ --disable-xen \
+ --enable-kvm \
+ --enable-seccomp \
+ --cc="${CC:-gcc}" \
+ "$@"
+ make ARFLAGS="rc"
+}
+
+build() {
+ mkdir -p "$builddir"/build \
+ "$builddir"/build-static
+
+ cd "$builddir"/build-static
+ _compile_common \
+ --enable-linux-user \
+ --disable-system \
+ --static \
+ --disable-sdl \
+ --disable-gtk \
+ --disable-spice \
+ --disable-tools \
+ --disable-guest-agent \
+ --disable-guest-agent-msi \
+ --disable-curses \
+ --disable-curl \
+ --disable-gnutls \
+ --disable-gcrypt \
+ --disable-nettle \
+ --disable-cap-ng \
+ --disable-brlapi \
+ --disable-mpath \
+ --disable-libnfs \
+ --disable-capstone
+
+ cd "$builddir"/build
+ _compile_common \
+ --disable-linux-user \
+ --audio-drv-list=oss,alsa,sdl \
+ --enable-cap-ng \
+ --enable-curl \
+ --enable-curses \
+ --enable-docs \
+ --enable-gtk \
+ --enable-guest-agent \
+ --enable-libnfs \
+ --enable-libssh \
+ --enable-linux-aio \
+ --enable-lzo \
+ --enable-modules \
+ --enable-pie \
+ --enable-sdl \
+ --enable-snappy \
+ --enable-spice \
+ --enable-tpm \
+ --enable-usb-redir \
+ --enable-vde \
+ --enable-vhost-net \
+ --enable-virglrenderer \
+ --enable-virtfs \
+ --enable-vnc \
+ --enable-vnc-jpeg \
+ --enable-vnc-png \
+ --tls-priority=@QEMU,SYSTEM
+}
+
+check() {
+ cd "$builddir"/build
+
+ # XXX: ESSIV crypto tests are disabled, see test-crypto-ivgen-skip-essiv.patch.
+ make check V=1
+}
+
+package() {
+ cd "$builddir"/build-static
+ make DESTDIR="$pkgdir" install
+
+ cd "$builddir"/build
+ make DESTDIR="$pkgdir" install
+ paxmark -m "$pkgdir"/usr/bin/qemu-system-*
+
+ install -Dm640 -g qemu "$srcdir"/bridge.conf \
+ "$pkgdir"/etc/qemu/bridge.conf
+
+ install -Dm644 "$srcdir"/80-kvm.rules \
+ "$pkgdir"/lib/udev/rules.d/80-kvm.rules
+
+ # qemu-bridge-helper needs suid to create tunX devices;
+ # allow only users in the qemu group to run it.
+ chmod 04710 "$pkgdir"/usr/lib/qemu/qemu-bridge-helper
+ chgrp qemu "$pkgdir"/usr/lib/qemu/qemu-bridge-helper
+
+ # Do not install HTML docs.
+ rm "$pkgdir"/usr/share/doc/qemu/*.html
+}
+
+_subsys() {
+ local name=${1:-"${subpkgname#$pkgname-}"}
+ pkgdesc="Qemu ${name/-/ } emulator"
+ options=""
+ depends=""
+ case "$name" in
+ system*) depends="qemu";;
+ esac
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/qemu-$name "$subpkgdir"/usr/bin/
+}
+
+_ivshmem() {
+ pkgdesc="Client and server for QEMU ivshmem device"
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/ivshmem-* "$subpkgdir"/usr/bin/
+}
+
+img() {
+ pkgdesc="QEMU command line tool for manipulating disk images"
+ depends=""
+ options=""
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/qemu-img \
+ "$pkgdir"/usr/bin/qemu-io \
+ "$pkgdir"/usr/bin/qemu-nbd \
+ "$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 path= retval=0
+ for path in "$pkgdir"/usr/bin/qemu-system-* "$pkgdir"/usr/lib/qemu/*.so; do
+ if [ -r "$path" ]; then
+ error "Please create a subpackage for ${path##*/}"
+ retval=1
+ fi
+ done
+ return $retval
+}
+
+guest() {
+ pkgdesc="QEMU guest agent"
+ depends=""
+ options=""
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/qemu-ga "$subpkgdir"/usr/bin/
+
+ install -Dm755 "$srcdir"/$pkgname-guest-agent.initd \
+ "$subpkgdir"/etc/init.d/$pkgname-guest-agent
+ install -Dm644 "$srcdir"/$pkgname-guest-agent.confd \
+ "$subpkgdir"/etc/conf.d/$pkgname-guest-agent
+}
+
+_module() {
+ local _mod=${subpkgname#qemu-}
+ local _class=${_mod%%-*}
+ local _m=${_mod#*-}
+ pkgdesc="Qemu $_m $_class module"
+ mkdir -p "$subpkgdir"/usr/lib/qemu
+ mv "$pkgdir"/usr/lib/qemu/$_mod.so \
+ "$subpkgdir"/usr/lib/qemu/
+}
+
+_all_modules() {
+ pkgdesc="Meta package for all qemu modules"
+ local _i
+ for _i in $_modules; do
+ depends="$depends qemu-$_i"
+ done
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="13c8420f74fd7f043f2dd0774b88262327d22864b3fc7b5d5e7e651fb163de03ac51483abec703cd9914511049b125165875c27566bebfd9b6482d8d2c2ff108 qemu-4.1.1.tar.xz
+405008589cad1c8b609eca004d520bf944366e8525f85a19fc6e283c95b84b6c2429822ba064675823ab69f1406a57377266a65021623d1cd581e7db000134fd 0001-elfload-load-PIE-executables-to-right-address.patch
+98db5e23397cfad4a7210f9f7e1c5fa5c48f065785439521c5b39325c429f2dc367c40925adff6aa8677b3192a1a98a30e93d5b9c879df523deb019c40edd9d9 0006-linux-user-signal.c-define-__SIGRTMIN-MAX-for-non-GN.patch
+1ac043312864309e19f839a699ab2485bca51bbf3d5fdb39f1a87b87e3cbdd8cbda1a56e6b5c9ffccd65a8ac2f600da9ceb8713f4dbba26f245bc52bcd8a1c56 0001-linux-user-fix-build-with-musl-on-aarch64.patch
+224f5b44da749921e8a821359478c5238d8b6e24a9c0b4c5738c34e82f3062ec4639d495b8b5883d304af4a0d567e38aa6623aac1aa3a7164a5757c036528ac0 musl-F_SHLCK-and-F_EXLCK.patch
+5da8114b9bd2e62f0f1f0f73f393fdbd738c5dea827ea60cedffd6f6edd0f5a97489c7148d37a8ec5a148d4e65d75cbefe9353714ee6b6f51a600200133fc914 fix-sigevent-and-sigval_t.patch
+4b1e26ba4d53f9f762cbd5cea8ef6f8062d827ae3ae07bc36c5b0c0be4e94fc1856ad2477e8e791b074b8a25d51ed6d0ddd75e605e54600e5dd0799143793ce4 xattr_size_max.patch
+b6ed02aaf95a9bb30a5f107d35371207967edca058f3ca11348b0b629ea7a9c4baa618db68a3df72199eea6d86d14ced74a5a229d17604cc3f0adedcfeae7a73 ncurses.patch
+fd178f2913639a0c33199b3880cb17536961f2b3ff171c12b27f4be6bca032d6b88fd16302d09c692bb34883346babef5c44407a6804b20a39a465bb2bc85136 ignore-signals-33-and-64-to-allow-golang-emulation.patch
+d8933df9484158c2b4888254e62117d78f8ed7c18527b249419f39c2b2ab1afa148010884b40661f8965f1ef3105580fceffdfddbb2c9221dc1c62066722ba65 0001-linux-user-fix-build-with-musl-on-ppc64le.patch
+d7de79ea74e36702cac4a59e472564a55f0a663be7e63c3755e32b4b5dfbc04b390ee79f09f43f6ae706ee2aec9e005eade3c0fd4a202db60d11f436874a17d7 MAP_SYNC-fix.patch
+39590476a4ebd7c1e79a4f0451b24c75b1817a2a83abaa1f71bb60b225d772152f0af8f3e51ff65645e378c536ffa6ff551dade52884d03a14b7c6a19c5c97d4 fix-sockios-header.patch
+8b8db136f78bd26b5da171effa9e11016ec2bc3e2fc8107228b5543b47aa370978ed883794aa4f917f334e284a5b49e82070e1da2d31d49301195b6713a48eff test-crypto-ivgen-skip-essiv.patch
+b8e58bcc409f25cc6ff59967ed68f4de0a8656ec4db71ab663cc77761f8210b3f85c475fceb32dec934dc02a5c4f679a8313edbcf84e149692a81764c8904f67 guest-agent-shutdown.patch
+41a33719e1d5cfc0d5554cd13d8177ebaa3be7986ce8a2f8641e0cf2922eeadeced5aa780f156861af2cceed5f4d9a4d996344816dfbebe071033ba51bb81d3c fix-statx-translation.patch
+d90c034cae3f9097466854ed1a9f32ab4b02089fcdf7320e8f4da13b2b1ff65067233f48809911485e4431d7ec1a22448b934121bc9522a2dc489009e87e2b1f qemu-guest-agent.confd
+1cd24c2444c5935a763c501af2b0da31635aad9cf62e55416d6477fcec153cddbe7de205d99616def11b085e0dd366ba22463d2270f831d884edbc307c7864a6 qemu-guest-agent.initd
+9b7a89b20fcf737832cb7b4d5dc7d8301dd88169cbe5339eda69fbb51c2e537d8cb9ec7cf37600899e734209e63410d50d0821bce97e401421db39c294d97be2 80-kvm.rules
+749efa2e764006555b4fd3a8e2f6d1118ad2ea4d45acf99104a41a93cfe66dc9685f72027c17d8211e5716246c2a52322c962cf4b73b27541b69393cd57f53bb bridge.conf"