# Maintainer (Arch:qemu): Tobias Powalowski # Contributor (Arch:qemu): Sébastien "Seblu" Luttringer # Maintainer: Luke Shumaker # Contributor: Márcio Silva _pkgbase=qemu-git _gitname=qemu pkgname=(qemu-user-static-git qemu-user-static-binfmt-git) pkgdesc="A generic and open source machine emulator and virtualizer. Git version." pkgver=v2.12.0.rc0.r0.gf1a63fcfcd pkgrel=1 arch=(x86_64) license=(GPL2 LGPL2.1) url="http://wiki.qemu.org/" makedepends=(git pixman-static glib2-static pcre-static python2) source=(git://git.qemu.org/qemu.git 0001-add-binfmt-wrapper.patch) sha256sums=('SKIP' '3fc4f49a43adc22e91c485fa13f3690ed2cfc847751032e4215e6da8ec124a27') validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') case $CARCH in i?86) _corearch=i386 ;; x86_64) _corearch=x86_64 ;; esac pkgver() { cd "${srcdir}/${_gitname}" git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { mkdir build-static mkdir -p extra-arch-static/usr/{bin,share/qemu} cd "${srcdir}/${_gitname}" sed -i 's/vte-2\.90/vte-2.91/g' configure patch -Np1 -i "$srcdir"/0001-add-binfmt-wrapper.patch # update git submodules scripts/git-submodule.sh update ui/keycodemapdb dtc } 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" ../${_gitname}/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 \ --disable-git-update \ "${@:2}" make ) package_qemu-user-static-git() { pkgdesc="QEMU user-mode emulation (static binaries) - Git version." provides=("qemu-static=$pkgver") conflicts=(qemu-static qemu-user-static) _package static rm -vr -- \ "$pkgdir"/usr/lib/ \ "$pkgdir"/usr/share/ local prog for prog in "$pkgdir"/usr/bin/*; do if [[ $prog != *-binfmt ]]; then mv -nT -- "$prog" "${prog%-static}-static" fi done } _package() { options=(!strip) make -C build-$1 DESTDIR="$pkgdir" install "${@:2}" cd "$pkgdir"/usr/bin tidy_strip } package_qemu-user-static-binfmt-git() { pkgdesc="binfmt registration for QEMU user-mode emulation - Git version." depends=("qemu-user-static-git=$pkgver") provides=("binfmt-qemu-static=$pkgver") conflicts=('binfmt-qemu-static' 'qemu-user-static-binfmt') cd ${_gitname} 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 }