summaryrefslogtreecommitdiff
path: root/libre/qemu-user-static/PKGBUILD
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2017-12-25 04:40:41 -0500
committerLuke Shumaker <lukeshu@lukeshu.com>2017-12-28 15:08:38 -0500
commit28afb45ff5151bd0e1c6d2796a12fac36b960b1b (patch)
treec175cd03862d5c98cb229f76fdfa9f5a59630fed /libre/qemu-user-static/PKGBUILD
parent55ce24617af467542ae1b07814617fbe2b360e33 (diff)
downloadabslibre-28afb45ff5151bd0e1c6d2796a12fac36b960b1b.tar.gz
abslibre-28afb45ff5151bd0e1c6d2796a12fac36b960b1b.tar.bz2
abslibre-28afb45ff5151bd0e1c6d2796a12fac36b960b1b.zip
libre/{qemu-static => qemu-user-static}: upgpkg 2.11.0-3.parabola1
Diffstat (limited to 'libre/qemu-user-static/PKGBUILD')
-rw-r--r--libre/qemu-user-static/PKGBUILD170
1 files changed, 170 insertions, 0 deletions
diff --git a/libre/qemu-user-static/PKGBUILD b/libre/qemu-user-static/PKGBUILD
new file mode 100644
index 000000000..a3030470b
--- /dev/null
+++ b/libre/qemu-user-static/PKGBUILD
@@ -0,0 +1,170 @@
+# Maintainer (Arch:qemu): Tobias Powalowski <tpowa@archlinux.org>
+# Contributor (Arch:qemu): Sébastien "Seblu" Luttringer <seblu@seblu.net>
+# Maintainer: Luke Shumaker <lukeshu@parabola.nu>
+# Contributor: Márcio Silva <coadde@hyperbola.info>
+
+_pkgbase=qemu
+pkgname=(qemu-user-static qemu-user-static-binfmt)
+pkgdesc="A generic and open source machine emulator and virtualizer"
+pkgver=2.11.0
+pkgrel=3.parabola1
+arch=(x86_64)
+arch+=(i686 armv7h)
+license=(GPL2 LGPL2.1)
+url="http://wiki.qemu.org/"
+makedepends=(pixman-static glib2-static pcre-static python2)
+source=("$url/download/${_pkgbase}-${pkgver}.tar.bz2"{,.sig}
+ 0001-linux-user-Use-if-to-only-call-validate_guest_space-.patch
+ 0002-linux-user-Rename-validate_guest_space-init_guest_co.patch
+ 0003-linux-user-init_guest_space-Clean-up-if-we-can-t-ini.patch
+ 0004-linux-user-init_guest_space-Correctly-handle-guest_s.patch
+ 0005-linux-user-init_guest_space-Clarify-page-alignment-l.patch
+ 0006-linux-user-init_guest_commpage-Add-a-comment-about-s.patch
+ 0007-linux-user-init_guest_space-Clean-up-control-flow-a-.patch
+ 0008-linux-user-init_guest_space-Don-t-try-to-align-if-we.patch
+ 0009-linux-user-init_guest_space-Add-a-comment-about-sear.patch
+ 0010-linux-user-init_guest_space-Try-to-make-ARM-space-co.patch
+ allow_elf64.patch)
+sha256sums=('c4f034c7665a84a1c3be72c8da37f3c31ec063475699df062ab646d8b2e17fcb'
+ 'SKIP'
+ '9953a8debd9456adb4f5968817fa89da4d4542e44980a5533ccf86371d819845'
+ 'a977e9295daa14a9c73258cf16399eb5af66382217f8a4e69951ec044131a7ce'
+ 'dba2cfeb24841d45936091319957ee6f65e481da3c761791d410d3b8e6799998'
+ '75b3bda6752c4bf17488489f898767b6772b10ecc5d1f0a5bc1bd831e99a31e3'
+ '731895a8ed6f6d322bb60764b01cf09e0ea762d7d53fc01e91c2d2aecfdc8844'
+ '69b37040f52ef86b86c7c2952eb3f85f3c67d7adf289c43fdac8c71827c6e5b9'
+ '76f88850b0f52450eecb80029ffe16db6f418cec3b58231aca354cc20bbfb16a'
+ '76944d84990cc76e47c381849c683a346c5234bcebbe4c24334d0fd8368482db'
+ '7845867348fd380def28c7fe023e54cee8ff88cd6754aae3ab3472149cfbde51'
+ '1953e7cac58c23526d007d8559410e0042d4a7c1b8cbd5f4c0543f7f876436dd'
+ '13a6d9e678bdc9e1f051006cfd0555f5a80582368f54c8a1bb5a78ece3832ac4')
+validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584')
+
+case $CARCH in
+ i?86) _corearch=i386 ;;
+ x86_64) _corearch=x86_64 ;;
+esac
+
+prepare() {
+ mkdir build-static
+ mkdir -p extra-arch-static/usr/{bin,share/qemu}
+
+ cd ${_pkgbase}-${pkgver}
+ sed -i 's/vte-2\.90/vte-2.91/g' configure
+
+ # https://bugs.launchpad.net/qemu/+bug/1740219
+ # https://lists.nongnu.org/archive/html/qemu-devel/2017-12/msg05237.html
+ local patchfile
+ for patchfile in ../????-linux-user-*.patch; do
+ patch -p1 < "$patchfile"
+ done
+
+ patch -p1 < ../allow_elf64.patch
+}
+
+build() {
+ local flags=(
+ --static
+ --disable-system # disable building qemu-system-$CPU, we only want qemu-$CPU
+ --disable-guest-agent # disable building qemu-ga
+ --disable-tools # disable building the qemu-{io,nbd,img} tools
+ --disable-blobs # disable installing firmware files used by system
+ --disable-docs
+ --disable-modules # modules imply dynamic linking
+
+ # jemalloc-static isn't packaged
+ --disable-jemalloc
+
+ # These libraries are only used for system or tools, but even
+ # though that's disabled, libqemuutil.a still tries to link
+ # against them unless we specifically tell it not to (the linkage
+ # would be removed at the final linker's tree-shaking).
+ --disable-gcrypt
+ --disable-nettle
+ )
+ _build static "${flags[@]}" \
+ --audio-drv-list= \
+ --disable-bluez \
+ --disable-sdl \
+ --disable-gtk \
+ --disable-vte \
+ --disable-opengl \
+ --disable-virglrenderer
+}
+
+_build() (
+ cd build-$1
+
+ # qemu vs. make 4 == bad
+ export ARFLAGS=rv
+
+ # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740
+ export CFLAGS+=" -fPIC"
+
+ ../${_pkgbase}-${pkgver}/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/qemu \
+ --python=/usr/bin/python2 \
+ --smbd=/usr/bin/smbd \
+ --with-gtkabi=3.0 \
+ --with-sdlabi=2.0 \
+ --enable-modules \
+ --enable-jemalloc \
+ "${@:2}"
+
+ make
+)
+
+package_qemu-user-static() {
+ pkgdesc="QEMU user-mode emulation (static binaries)"
+
+ provides=("qemu-static=$pkgver")
+ replaces=(qemu-static)
+ conflicts=(qemu-static)
+
+ _package static
+
+ rm -vr -- \
+ "$pkgdir"/usr/lib/ \
+ "$pkgdir"/usr/share/
+
+ local prog
+ for prog in "$pkgdir"/usr/bin/*; do
+ mv -nT -- "$prog" "${prog%-static}-static"
+ done
+}
+
+_package() {
+ options=(!strip)
+
+ make -C build-$1 DESTDIR="$pkgdir" install "${@:2}"
+
+ cd "$pkgdir"/usr/bin
+ tidy_strip
+}
+
+package_qemu-user-static-binfmt() {
+ pkgdesc="binfmt registration for QEMU user-mode emulation"
+ depends=("qemu-user-static=$pkgver")
+
+ provides=("binfmt-qemu-static=$pkgver")
+ replaces=('binfmt-qemu-static')
+ conflicts=('binfmt-qemu-static')
+
+ cd ${_pkgbase}-${pkgver}
+
+ install -d "$pkgdir"/usr/lib/binfmt.d
+
+ < scripts/qemu-binfmt-conf.sh \
+ sed -e 's/^CHECK=.*/CHECK=qemu_check_systemd/' \
+ -e 's/^BINFMT_SET=.*/BINFMT_SET=qemu_generate_systemd/' \
+ | sh /dev/stdin \
+ --qemu-path /usr/bin \
+ --exportdir "$pkgdir"/usr/lib/binfmt.d \
+ --credential yes
+
+ # add the "-static" suffix
+ sed -i 's/:[^:]*$/-static&/' -- "$pkgdir"/usr/lib/binfmt.d/*.conf
+}