summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorBjörn Bidar2022-05-22 01:55:23 +0300
committerBjörn Bidar2022-05-22 02:05:43 +0300
commitf40700bca140aab1918188ccc2c2d6dcdd3b91fa (patch)
treeee659257ca8e495b51830bb6f0ecbd50a2bc9f3d /PKGBUILD
downloadaur-f40700bca140aab1918188ccc2c2d6dcdd3b91fa.tar.gz
Added as 7.0.0-1
- Initial packaging for qemu patched for use with scratchbox2
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD272
1 files changed, 272 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..d70472dae506
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,272 @@
+# Maintainer: Björn Bidar <AUR+me@thaodan.de>
+# Vanilla package Maintainer: David Runge <dvzrv@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sébastien "Seblu" Luttringer <seblu@seblu.net>
+
+_pkgbase=qemu
+pkgbase=$_pkgbase-scratchbox2
+pkgname=(
+ $pkgbase-tests
+ $pkgbase-user
+)
+pkgver=7.0.0
+pkgrel=10
+_pkgdesc_suffix="patched for use with scratchbox2"
+pkgdesc="A generic and open source machine emulator and virtualizer $_pkgdesc_suffix"
+arch=(x86_64)
+url="https://www.qemu.org/"
+license=(GPL2 LGPL2.1)
+# TODO: consider providing rdma-core
+# TODO: consider providing lzfse
+# TODO: package systemtap
+# TODO: package openbios for qemu-system-{ppc,sparc}
+# TODO: package /usr/share/qemu/{efi,pxe}-* for qemu (ipxe)
+# TODO: package /usr/share/qemu/slof.bin for qemu-system-ppc (slof)
+# TODO: package /usr/share/qemu/sgabios.bin for qemu-system-x86 (sgabios)
+# TODO: package static libs of glib2 and pcre for qemu-user-static
+makedepends=(
+ alsa-lib
+ brltty
+ bzip2
+ cairo
+ ceph
+ curl
+ dtc
+ fuse3
+ gcc-libs
+ gdk-pixbuf2
+ glib2
+ glusterfs
+ gnutls
+ gtk3
+ jack
+ libaio
+ libbpf
+ libcacard
+ libcap-ng
+ libepoxy
+ libiscsi
+ libnfs
+ libpng
+ libpulse
+ libsasl
+ libseccomp
+ libslirp
+ libssh
+ liburing
+ libusb
+ libx11
+ libxml2
+ libxkbcommon
+ lzo
+ mesa
+ meson
+ multipath-tools
+ ncurses
+ ndctl
+ numactl
+ pam
+ python
+ python-sphinx
+ python-sphinx_rtd_theme
+ sdl2
+ sdl2_image
+ snappy
+ spice-protocol
+ spice
+ systemd
+ usbredir
+ vde2
+ virglrenderer
+ vte3
+ zlib
+ zstd
+)
+# NOTE: currently the debug package for qemu >= 7.0.0 contains an invalid /build dir
+options=(debug)
+source=(
+ https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
+ 0001-Revert-linux-user-Use-safe_syscall-for-open-and-open.patch
+ 0002-Revert-linux-user-Use-safe_syscall-for-execve-syscal.patch
+ 0003-Revert-linux-user-Use-safe_syscall-wrapper-for-send-.patch
+ 0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch
+ 0005-Revert-linux-user-Use-safe_syscall-wrapper-for-conne.patch
+ 0006-Revert-linux-user-Use-direct-syscall-for-utimensat.patch
+ 0007-Revert-util-drop-old-utimensat-compat-code.patch
+ 0008-Revert-linux-user-Use-safe_syscall-wrapper-for-fcntl.patch
+ 0009-make-sure-mode-is-passed-to-openat-if-O_TMPFILE-is-s.patch
+ 0010-linux-user-disable-commpage.patch
+ 0011-virtio-scsi-don-t-waste-CPU-polling-the-event-virtqu.patch
+ 0012-virtio-scsi-fix-ctrl-and-event-handler-functions-in-.patch
+)
+sha512sums=('44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1'
+ 'SKIP'
+ 'b8f16f8e73a05aba0caab7844700ee57dcd9aba337a58a5a6b862ac4642919378ca9532972b760b42a65f48730ab96a4c5e4bd68af7f42b0e18a5e050a68539d'
+ '124b4be68e3949293c0c90cee8c6da719c871426e83fbc9e52597d02dfaf79ce95ed12373e3d0bafbd83f019fd6e254ec91651dab17a868c06b7eaa8abc1e19a'
+ '37626ac06af37a324f4912dff689b52a9b3da27e08a0029ad2dd0855137fae8b3aacb873456897298f9a4fb28e4f04929477ab433ede0e6e9cb3534657114233'
+ 'b173e735ce7f81c4ad986d8b6d774663957e59ee025cd153f6b016c5687a7d62a82b031e5956dd7b8ecf086addc38b1a509d7c3180988bdd7333847557781c9f'
+ '520697682261e89017b091f3ce16a1bab8be18d2291a9febf9eb7ed8e1a54422eb3a26e96f16d8994d50ca73f6e08f3df7dc5130fadffe5cf9c52c779d501c51'
+ 'c0c74faab1685107b0e83e76e5a592966d3e3497191cf32b3d84fff70feac1ebdbcf3d8a481fdddfd04d79883e3155db9564c9a51b279a83cf650b248d76b033'
+ '6fb03b29ea9a3c2ab13da01d97c735b2b28dbe262cd18f068f21ce5b808cab0042c2f22b5066da744255ac380104b8740d02754fe11c3e4f0e864bbf6e46336a'
+ '9db86e41e7725fd670625b78341a4b5c20e8271b4ab2673cda153696cb57f662bd5383f96c887a41a629cf8c35ed36f6a20f8b8bec23ab7cbf3621695ff7d697'
+ 'ef057bf82dd81bbf4fd1270876698efc69e5f9c4f34c4b424e6562eeed64a8fa70126b192c041d342e7b44369223d79b587198a2a07d0cef16c03305a75d7b00'
+ '57f4b72df80333e457bbc6a9afa47af40dcd59a32d55a7babda5b5378f9485282823c50e2baca54230fc77056303e809b2108b9ffb73d64eab7eedbf67303ab5'
+ '4c66df5ffbae302bf0a2f5f6aab1536ac00b5e57eab94e69f7fbd79f54fefa47c46ca20c3b039fd7e51ee72bc74142ab7a94ec2e64f653682992a7df30867d9b'
+ '155b3de89a18fa8cb234ce71767dbf59ab4e0ed2c6375279413fa2c11c128d46bdc2c28467fdbe226e2188755cecae2e33c964f7a35806882a173551d9765684')
+b2sums=('ceda6d9f1a585298bd49fed61e8bb35f0064ad8388a9f979c8bd68a38bfe1a47c5bb055e5f74f970c2c440957042b9de4a861524120040c56e4cd8b56c5cfb68'
+ 'SKIP'
+ '0f591ed6d4d1356d75039429da7711f03bbafff8014ef47ab3b7683111d30c4a535ab79c5701984b3a04af74cd6b2d395fe1da942eb4da43cf08f16753b6024e'
+ 'b0d553e58da26f33003ab95b3910b98e0a14ef0719facef01c8cf22facec20fd29a1f5bae6f7301c53bd23e02abfd7cedfbfb263a558f4c4eea808a157b2c6b4'
+ 'e70c3ea01afd75c2489d106a2464f4bd8d9b373a8a3147d0a5fb77ebc5587b66c2924bd11a2c2a61359f080e20071810faed299f9bab3816ac2142360a54deb3'
+ 'c113c1297de8222d413c8715de2e35fc7166ea3064e04de4242e59eb1f283c38589ccc26c21e1937eb1f0d935dc3aba55ab5b549efb02a27ca3ae880c10f1b47'
+ '2e5d5aa1c98142c55f94104d40116ff8baf8a1a995704ec86d164455d840fcf210e68093790e6968c357dafce0cf8ab600d53fd692887563186a571e2d3f3b93'
+ '0aae840a656c05c10c9d10d1894869e472e3415af3895d35bdd86fdb77c597c157ee867a77a202ef2e81d6a89eeb086a1b86ff396276fc31f61d5a1566c1af15'
+ '9d067a955d1ecaf838fa24161af32d4402308af1c24364a13357ffc39abd4ce346b27af40642e5236aec8af85748329c2f736ee386f2e2f802fa335d56a1b8d5'
+ '975d48c77fb62876e19f2548572c46b19d34e3836c42f482b35759dd3405c9601d6030009a56336a55e1d0baf049632de77ad8928660ccbc6fb42bff27d5d720'
+ '5972d7524bd3d1b3c37f68c4d23358eac4bf68762a857362caff5ebe90480b6ff8d18f8a667d3b88b908cad75de6a5140a23471deea75394afc99904d550fd90'
+ '28654ef9a6cab7a9e2408c44de9769fb5772141eb8253058f147b807cf46ed25b72dc404addb09cc9495f9f872b0af8859f7d75d597ad3c1b33f05c17e3e00d3'
+ 'd7c3b91fa4ed217d9df1d2cb0fbf696ed81fcbcb15f15fc631a75aef4e45dc51ef58d6f9db40eea274c8b745d76a4c6fbad4357a85bdbba12c6b342cd7020576'
+ 'd02aaaa9763740c6e46fa66d1247e441c396ebc9d0351c86c913629d47f4e64fea23ee7b4376234f8d33bd5a67f109e2d7e485bb078327ec9b3e5271982d07cc')
+validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth <flukshun@gmail.com>
+
+_qemu_system_deps=(
+ dtc
+ fuse3
+ gcc-libs
+ glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so
+ gnutls
+ libaio
+ libbpf libbpf.so
+ libjpeg-turbo libjpeg.so
+ libpng
+ libsasl
+ libseccomp libseccomp.so
+ libslirp libslirp.so
+ liburing liburing.so
+ lzo
+ ndctl
+ numactl libnuma.so
+ pam libpam.so
+ pixman libpixman-1.so
+ qemu-common
+ snappy
+ vde2
+ zlib
+ zstd libzstd.so
+)
+
+_pick() {
+ local p="$1" f d; shift
+ for f; do
+ d="$srcdir/$p/${f#$pkgdir/}"
+ mkdir -p "$(dirname "$d")"
+ mv "$f" "$d"
+ rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+ done
+}
+
+prepare() {
+ # extract licenses for TCG
+ sed -n '1,23p' $_pkgbase-$pkgver/tcg/tcg-internal.h > tcg.LICENSE.MIT
+ sed -n '1,23p' $_pkgbase-$pkgver/tcg/arm/tcg-target.c.inc > tcg-arm.LICENSE.MIT
+ sed -n '1,23p' $_pkgbase-$pkgver/tcg/tci/tcg-target.h > tci.LICENSE.MIT
+
+ # install qemu-pr-helper.socket to sockets.target
+ sed -e 's/multi-user.target/sockets.target/g' -i $_pkgbase-$pkgver/contrib/systemd/qemu-pr-helper.socket
+
+ # create build dir
+ mkdir -vp build
+ mkdir -vp build-static
+
+ # fix issues with virtio-scsi https://lists.gnu.org/archive/html/qemu-devel/2022-04/msg04724.html
+ cd $_pkgbase-$pkgver
+ for patch in ${srcdir}/*.patch ; do
+ patch -p1 -i "$patch"
+ done
+}
+
+build() {
+ # Build only minimal debug info to reduce size
+ CFLAGS+=' -g1'
+ CXXFLAGS+=' -g1'
+
+
+ (
+ cd build
+
+ # LTO needs more open files
+ ulimit -n 50000
+
+ ../$_pkgbase-$pkgver/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/qemu \
+ --localstatedir=/var \
+ --docdir=/usr/share/doc/qemu \
+ --enable-modules \
+ --enable-sdl \
+ --enable-slirp=system \
+ --enable-tpm \
+ --smbd=/usr/bin/smbd \
+ --tls-priority=@QEMU,SYSTEM \
+ --with-coroutine=ucontext
+ ninja -j $(($(nproc)/4))
+ )
+
+ # TODO: qemu-user-static
+ # (
+ # cd build-static
+ # ../$_pkgbase-$pkgver/configure \
+ # --enable-attr \
+ # --enable-linux-user \
+ # --enable-tcg \
+ # --disable-install-blobs \
+ # --static
+ # ninja
+ # )
+
+ meson install -C build --destdir "$srcdir"/_pkgdir
+ install -vdm 755 "$srcdir"/_pkgdir/usr/lib/binfmt.d/
+ $_pkgbase-$pkgver/scripts/qemu-binfmt-conf.sh --systemd ALL \
+ --exportdir \
+ "$srcdir"/_pkgdir/usr/lib/binfmt.d/ --qemu-path "/usr/bin"
+ (
+ # pick files for all split packages
+ cd "$srcdir/_pkgdir"
+
+ _pick qemu-scratchbox2-user usr/bin/qemu-{aarch64{,_be},alpha,arm{,eb},cris,hexagon,hppa,i386,m68k,microblaze{,el},mips{,64,64el,el,n32,n32el},nios2,or1k,ppc{,64,64le},riscv{32,64},s390x,sh4{,eb},sparc{,32plus,64},x86_64,xtensa{,eb}}
+ _pick qemu-scratchbox2-user usr/lib/binfmt.d/*.conf
+ _pick qemu-scratchbox2-tests usr/lib/qemu/accel-qtest-*.so
+ )
+}
+
+
+package_qemu-scratchbox2-tests() {
+ pkgdesc="QEMU tests $_pkgdesc_suffix"
+ depends=(qemu-common)
+ provides=($_pkgbase-tests)
+ conflicts=($_pkgbase-tests)
+ mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-scratchbox2-user() {
+ pkgdesc="QEMU user mode emulation $_pkgdesc_suffix"
+ depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls
+ liburing liburing.so qemu-common zlib)
+ provides=($_pkgbase-user)
+ conflicts=($_pkgbase-user)
+ mv -v $pkgname/* "$pkgdir"
+ install -vdm 755 "$pkgdir/usr/lib/binfmt.d/"
+}
+
+# package_qemu-user-static() {
+# pkgdesc="QEMU static user mode emulation $_pkgdesc_suffix"
+# depends=(glibc)
+# mv -v $pkgname/* "$pkgdir"
+# }
+
+
+
+
+
+# vim:set ts=2 sw=2 et: