123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- # 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>
- # "Do I need to rebuild?" : A flowchart
- #
- # ,--> pixman-static ------------------------------------,
- # | 0.34.0-1.static2 |
- # qemu-user-static --+------------------------+----> pcre-static -----------+--> glibc
- # 2.12.0-1.static1 | | 8.42-1.static1 | 2.27-3
- # `--> glib2-static -------+----> libffi-static ---------+
- # 2.56.1-1.static1 | 3.2.1-2.static2 |
- # +----> libutil-linux-static --+
- # | 2.32-3.static1 |
- # `----> zlib ------------------'
- # 1:1.2.11-2
- _pkgbase=qemu
- pkgname=(qemu-user-static qemu-user-static-binfmt)
- pkgdesc="A generic and open source machine emulator and virtualizer"
- pkgver=3.1.0
- pkgrel=1
- pkgrel+=.static1
- arch=(x86_64)
- arch+=(i686 armv7h)
- license=(GPL2 LGPL2.1)
- url="http://wiki.qemu.org/"
- depends=()
- makedepends=(pixman-static python glib2-static pcre-static)
- source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
- allow_elf64.patch)
- sha512sums=('7e8dae823937cfac2f0c60406bd3bdcb89df40313dab2a4bed327d5198f7fcc68ac8b31e44692caa09299cc71256ee0b8c17e4f49f78ada8043d424f5daf82fe'
- 'SKIP'
- 'b450625ff1e705f8c7eed9e2c0c4fe2179ca061df88a1a777c861c11d543c151cd0160f7f7227babdfe8b36000de084cbcb6fd7bf0f93d2f936c2e65082c82bf')
- 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
- patch -p1 < ../allow_elf64.patch
- }
- build() {
- local flags=(
- --static
- --disable-system # disable building qemu-system-$CPU, we only want qemu-$CPU
- --enable-linux-user
- --disable-modules
- --disable-guest-agent # disable building qemu-ga
- --disable-guest-agent-msi
- --disable-tools # disable building the qemu-{io,nbd,img} tools
- --disable-blobs # disable installing firmware files used by system
- --disable-docs
- # 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/python3 \
- --smbd=/usr/bin/smbd \
- --with-sdlabi=2.0 \
- --enable-modules \
- --enable-jemalloc \
- "${@:2}"
- make V=1
- )
- package_qemu-user-static() {
- pkgdesc="QEMU user-mode emulation (static binaries)"
- make -C build-static DESTDIR="$pkgdir" install "${@:2}"
- rm -fvr -- "$pkgdir"/{var,usr/lib,usr/share}
- local prog
- for prog in "$pkgdir"/usr/bin/*; do
- mv -vnT -- "$prog" "${prog%-static}-static"
- done
- }
- package_qemu-user-static-binfmt() {
- pkgdesc="binfmt registration for QEMU user-mode emulation"
- depends=("qemu-user-static=$pkgver")
- cd ${_pkgbase}-${pkgver}
- install -d "$pkgdir"/usr/lib/binfmt.d
- ./scripts/qemu-binfmt-conf.sh \
- --qemu-path /usr/bin \
- --systemd ALL \
- --exportdir "$pkgdir"/usr/lib/binfmt.d \
- --credential yes
- # add the "-static" suffix
- sed -i 's/:[^:]*$/-static&/' -- "$pkgdir"/usr/lib/binfmt.d/*.conf
- }
|