[arch-commits] Commit in qemu/repos (7 files)
Anatol Pomozov
anatolik at gemini.archlinux.org
Sun Dec 19 21:32:47 UTC 2021
Date: Sunday, December 19, 2021 @ 21:32:47
Author: anatolik
Revision: 432794
archrelease: copy trunk to testing-x86_64
Added:
qemu/repos/testing-x86_64/
qemu/repos/testing-x86_64/65-kvm.rules
(from rev 432793, qemu/trunk/65-kvm.rules)
qemu/repos/testing-x86_64/PKGBUILD
(from rev 432793, qemu/trunk/PKGBUILD)
qemu/repos/testing-x86_64/build-most-modules-statically-hack.diff
(from rev 432793, qemu/trunk/build-most-modules-statically-hack.diff)
qemu/repos/testing-x86_64/qemu-guest-agent.install
(from rev 432793, qemu/trunk/qemu-guest-agent.install)
qemu/repos/testing-x86_64/qemu-guest-agent.service
(from rev 432793, qemu/trunk/qemu-guest-agent.service)
qemu/repos/testing-x86_64/qemu.install
(from rev 432793, qemu/trunk/qemu.install)
-----------------------------------------+
65-kvm.rules | 1
PKGBUILD | 429 ++++++++++++++++++++++++++++++
build-most-modules-statically-hack.diff | 40 ++
qemu-guest-agent.install | 9
qemu-guest-agent.service | 9
qemu.install | 8
6 files changed, 496 insertions(+)
Copied: qemu/repos/testing-x86_64/65-kvm.rules (from rev 432793, qemu/trunk/65-kvm.rules)
===================================================================
--- testing-x86_64/65-kvm.rules (rev 0)
+++ testing-x86_64/65-kvm.rules 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1 @@
+KERNEL=="vhost-net", GROUP="kvm", MODE="0660", TAG+="uaccess", OPTIONS+="static_node=vhost-net"
Copied: qemu/repos/testing-x86_64/PKGBUILD (from rev 432793, qemu/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1,429 @@
+# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
+# Contributor: David Runge <dvzrv at archlinux.org>
+# Contributor: Sébastien "Seblu" Luttringer <seblu at seblu.net>
+
+pkgbase=qemu
+pkgname=(
+ qemu
+ qemu-headless
+ qemu-arch-extra
+ qemu-headless-arch-extra
+ qemu-block-{iscsi,rbd,gluster}
+ qemu-guest-agent
+)
+pkgdesc="A generic and open source machine emulator and virtualizer"
+pkgver=6.2.0
+pkgrel=2
+arch=(x86_64)
+license=(GPL2 LGPL2.1)
+url="https://wiki.qemu.org/"
+# TODO: consider providing rdma-core
+# TODO: consider providing lzfse
+makedepends=(
+ alsa-lib
+ brltty
+ bzip2
+ cairo
+ ceph
+ curl
+ cdrtools
+ 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
+ libxkbcommon
+ lzo
+ mesa
+ meson
+ ncurses
+ ndctl
+ numactl
+ pam
+ python
+ python-sphinx
+ python-sphinx_rtd_theme
+ sdl2
+ sdl2_image
+ seabios
+ snappy
+ spice-protocol
+ spice
+ systemd
+ usbredir
+ vde2
+ virglrenderer
+ vte3
+ xfsprogs
+ zlib
+ zstd
+)
+source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
+ qemu-guest-agent.service
+ 65-kvm.rules)
+sha512sums=('e9f8231c9e1cfcc41cb47f10a55d63f6b8aee307af00cf6acf64acb7aa4f49fa7e9d6330703a2abea15d8b7bbaba7d3cb08c83edd98d82642367b527df730817'
+ 'SKIP'
+ '269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
+ 'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99')
+validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth <flukshun at gmail.com>
+
+case $CARCH in
+ i?86) _corearch=i386 ;;
+ x86_64) _corearch=x86_64 ;;
+esac
+
+prepare() {
+ mkdir build-{full,headless}
+ mkdir -p extra-arch-{full,headless}/usr/{bin,share/qemu}
+}
+
+build() {
+ _build full
+
+ _build headless \
+ --disable-sdl \
+ --disable-gtk \
+ --disable-vte \
+ --disable-brlapi \
+ --disable-opengl \
+ --disable-virglrenderer \
+ --disable-alsa \
+ --disable-jack \
+ --disable-oss \
+ --disable-pa \
+ --disable-sdl
+}
+
+_build() (
+ cd build-$1
+
+ ../${pkgname}-${pkgver}/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/qemu \
+ --smbd=/usr/bin/smbd \
+ --enable-modules \
+ --enable-sdl \
+ --enable-slirp=system \
+ --enable-xfsctl \
+ "${@:2}"
+
+ ninja
+)
+
+package_qemu() {
+ depends=(
+ alsa-lib libasound.so
+ bzip2 libbz2.so
+ cairo
+ curl libcurl.so
+ dtc
+ fuse3
+ gcc-libs
+ gdk-pixbuf2 libgdk_pixbuf-2.0.so
+ glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so
+ gnutls
+ gtk3 libgdk-3.so libgtk-3.so
+ jack libjack.so
+ libaio
+ libbpf libbpf.so
+ libcacard
+ libcap-ng libcap-ng.so
+ libepoxy
+ libjpeg libjpeg.so
+ libnfs
+ libpng
+ libpulse libpulse.so
+ libsasl
+ libseccomp libseccomp.so
+ libslirp libslirp.so
+ libssh libssh.so
+ libusb libusb-1.0.so
+ liburing liburing.so
+ libx11
+ libxkbcommon libxkbcommon.so
+ lzo
+ mesa
+ ncurses libncursesw.so
+ ndctl
+ numactl libnuma.so
+ pam libpam.so
+ pixman libpixman-1.so
+ seabios
+ sdl2
+ sdl2_image
+ snappy
+ spice libspice-server.so
+ systemd-libs libudev.so
+ usbredir
+ virglrenderer
+ vde2
+ vte3 libvte-2.91.so
+ zlib
+ zstd libzstd.so
+ )
+ optdepends=(
+ 'brltty: for braille device support'
+ 'qemu-arch-extra: extra architectures support'
+ )
+ provides=(qemu-headless)
+ conflicts=(qemu-headless)
+ replaces=(qemu-kvm)
+
+ _package full
+}
+
+package_qemu-headless() {
+ pkgdesc="QEMU without GUI"
+ depends=(
+ bzip2 libbz2.so
+ curl libcurl.so
+ dtc
+ fuse3
+ gcc-libs
+ glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so
+ gnutls
+ libaio
+ libbpf libbpf.so
+ libcacard
+ libcap-ng libcap-ng.so
+ libjpeg libjpeg.so
+ libnfs
+ libpng
+ libsasl
+ libseccomp libseccomp.so
+ libslirp libslirp.so
+ libssh libssh.so
+ libusb libusb-1.0.so
+ liburing liburing.so
+ libxkbcommon libxkbcommon.so
+ lzo
+ ndctl
+ numactl libnuma.so
+ ncurses libncursesw.so
+ pam libpam.so
+ pixman libpixman-1.so
+ seabios
+ snappy
+ spice libspice-server.so
+ systemd-libs libudev.so
+ usbredir
+ vde2
+ zlib
+ zstd libzstd.so
+ )
+ optdepends=('qemu-headless-arch-extra: extra architectures support')
+
+ _package headless
+}
+
+_package() {
+ optdepends+=('samba: SMB/CIFS server support'
+ 'qemu-block-iscsi: iSCSI block support'
+ 'qemu-block-rbd: RBD block support'
+ 'qemu-block-gluster: glusterfs block support')
+ install=qemu.install
+ options=(!strip !emptydirs)
+
+ DESTDIR="$pkgdir" ninja -C build-$1 install "${@:2}"
+
+ # systemd stuff
+ install -Dm644 65-kvm.rules "$pkgdir/usr/lib/udev/rules.d/65-kvm.rules"
+
+ # remove conflicting /var/run directory
+ cd "$pkgdir"
+ rm -r var
+
+ cd usr/lib
+
+ # bridge_helper needs suid
+ # https://bugs.archlinux.org/task/32565
+ chmod u+s qemu/qemu-bridge-helper
+
+ # remove split block modules
+ rm qemu/block-{iscsi,rbd,gluster}.so
+
+ cd ../bin
+
+ # remove extra arch
+ for _bin in qemu-*; do
+ [[ -f $_bin ]] || continue
+
+ case ${_bin#qemu-} in
+ # guest agent
+ ga) rm "$_bin"; continue ;;
+
+ # tools
+ edid|img|io|keymap|nbd|pr-helper|storage-daemon) continue ;;
+
+ # core emu
+ system-${_corearch}) continue ;;
+ esac
+
+ mv "$_bin" "$srcdir/extra-arch-$1/usr/bin"
+ done
+
+ cd ../share/qemu
+ for _blob in *; do
+ [[ -f $_blob ]] || continue
+
+ case $_blob in
+ # provided by seabios package
+ bios.bin|bios-256k.bin|vgabios-cirrus.bin|vgabios-qxl.bin|\
+ vgabios-stdvga.bin|vgabios-vmware.bin|vgabios-virtio.bin|vgabios-bochs-display.bin|\
+ vgabios-ramfb.bin) rm "$_blob"; continue ;;
+
+ # provided by edk2-ovmf package
+ edk2-*) rm "$_blob"; continue ;;
+
+ # iPXE ROMs
+ efi-*|pxe-*) continue ;;
+
+ # core blobs
+ bios-microvm.bin|kvmvapic.bin|linuxboot*|multiboot.bin|sgabios.bin|vgabios*) continue ;;
+
+ # Trace events definitions
+ trace-events*) continue ;;
+ esac
+
+ mv "$_blob" "$srcdir/extra-arch-$1/usr/share/qemu"
+ done
+
+ # provided by edk2-ovmf package
+ rm -r firmware
+
+ cd ..
+ if [ "$1" = headless ]; then rm -r {applications,icons}; fi
+}
+
+package_qemu-arch-extra() {
+ pkgdesc="QEMU for foreign architectures"
+ depends=(
+ dtc
+ fuse3
+ gcc-libs
+ gnutls
+ libaio
+ libbpf libbpf.so
+ glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so libgmodule-2.0.so
+ libjpeg 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
+ snappy
+ systemd-libs
+ libudev.so
+ qemu
+ vde2
+ zlib
+ zstd
+ libzstd.so
+ )
+ optdepends=(
+ 'edk2-armvirt: for aarch64 UEFI support'
+ 'edk2-ovmf: for ia32 and x64 UEFI support'
+ )
+ provides=(qemu-headless-arch-extra)
+ conflicts=(qemu-headless-arch-extra)
+ options=(!strip)
+
+ mv -v extra-arch-full/usr "$pkgdir"
+}
+
+package_qemu-headless-arch-extra() {
+ pkgdesc="QEMU without GUI, for foreign architectures"
+ depends=(
+ dtc
+ fuse3
+ gcc-libs
+ gnutls
+ libaio
+ libbpf libbpf.so
+ glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so libgmodule-2.0.so
+ libjpeg 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
+ snappy
+ qemu-headless
+ systemd-libs libudev.so
+ vde2
+ zlib
+ zstd libzstd.so
+ )
+ optdepends=(
+ 'edk2-armvirt: for aarch64 UEFI support'
+ 'edk2-ovmf: for ia32 and x64 UEFI support'
+ )
+ options=(!strip)
+
+ mv -v extra-arch-headless/usr "$pkgdir"
+}
+
+package_qemu-block-iscsi() {
+ pkgdesc="QEMU iSCSI block module"
+ depends=(glibc libiscsi)
+
+ install -vDm 755 build-full/block-iscsi.so -t "$pkgdir/usr/lib/qemu/"
+}
+
+package_qemu-block-rbd() {
+ pkgdesc="QEMU RBD block module"
+ depends=(glibc ceph-libs)
+
+ install -vDm 755 build-full/block-rbd.so -t "$pkgdir/usr/lib/qemu/"
+}
+
+package_qemu-block-gluster() {
+ pkgdesc="QEMU GlusterFS block module"
+ depends=(glibc glusterfs)
+
+ install -vDm 755 build-full/block-gluster.so -t "$pkgdir/usr/lib/qemu/"
+}
+
+package_qemu-guest-agent() {
+ pkgdesc="QEMU Guest Agent"
+ depends=(gcc-libs glib2 libudev.so liburing)
+ install=qemu-guest-agent.install
+
+ install -vDm 755 build-full/qga/qemu-ga -t "$pkgdir/usr/bin/"
+ install -vDm 644 qemu-guest-agent.service -t "$pkgdir/usr/lib/systemd/system/"
+ install -vDm 755 "$srcdir/qemu-$pkgver/scripts/qemu-guest-agent/fsfreeze-hook" -t "$pkgdir/etc/qemu/"
+}
+
+# vim:set ts=2 sw=2 et:
Copied: qemu/repos/testing-x86_64/build-most-modules-statically-hack.diff (from rev 432793, qemu/trunk/build-most-modules-statically-hack.diff)
===================================================================
--- testing-x86_64/build-most-modules-statically-hack.diff (rev 0)
+++ testing-x86_64/build-most-modules-statically-hack.diff 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1,40 @@
+From: Michael Tokarev <mjt at tls.msk.ru>
+Subject: build most modules statically (hack)
+
+This hack makes the build procedure to build most modules statically,
+except block and gui modules which goes into their own packages.
+The rest are built into the executables directly in order to make
+qemu-system-common package (where all other modules goes) to be
+more-or-less version-independent.
+
+There's little reason to build these as modules or to ship them in
+separate packages.
+
+diff --git a/meson.build b/meson.build
+index e3386196ba..a28f7d10f1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1587,13 +1587,19 @@ softmmu_mods = []
+ foreach d, list : modules
+ foreach m, module_ss : list
+ if enable_modules and targetos != 'windows'
+- module_ss = module_ss.apply(config_all, strict: false)
+- sl = static_library(d + '-' + m, [genh, module_ss.sources()],
+- dependencies: [modulecommon, module_ss.dependencies()], pic: true)
++ module_dn = module_ss.apply(config_all, strict: false)
++ sl = static_library(d + '-' + m, [genh, module_dn.sources()],
++ dependencies: [modulecommon, module_dn.dependencies()], pic: true)
+ if d == 'block'
+ block_mods += sl
+ else
+- softmmu_mods += sl
++ # we only build 2 non-block modules as modules: it is the gui part
++ if d + '-' + m in [ 'ui-gtk', 'ui-sdl', 'audio-pa' ]
++ softmmu_mods += sl
++ else
++ warning('Compiling module statically: ' + d + '-' + m)
++ softmmu_ss.add_all(module_ss)
++ endif
+ endif
+ else
+ if d == 'block'
Copied: qemu/repos/testing-x86_64/qemu-guest-agent.install (from rev 432793, qemu/trunk/qemu-guest-agent.install)
===================================================================
--- testing-x86_64/qemu-guest-agent.install (rev 0)
+++ testing-x86_64/qemu-guest-agent.install 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1,9 @@
+post_upgrade() {
+ if (( $(vercmp "$2" '5.1.0-2') < 0 )); then
+ printf "NOTE: The qemu-ga.service has been renamed to qemu-guest-agent.service\n"
+ fi
+ if systemctl is-enabled -q qemu-ga.service; then
+ systemctl disable qemu-ga.service
+ systemctl enable qemu-guest-agent.service
+ fi
+}
Copied: qemu/repos/testing-x86_64/qemu-guest-agent.service (from rev 432793, qemu/trunk/qemu-guest-agent.service)
===================================================================
--- testing-x86_64/qemu-guest-agent.service (rev 0)
+++ testing-x86_64/qemu-guest-agent.service 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1,9 @@
+[Unit]
+Description=QEMU Guest Agent
+ConditionPathExists=/dev/virtio-ports/org.qemu.guest_agent.0
+
+[Service]
+ExecStart=/usr/bin/qemu-ga
+
+[Install]
+WantedBy=multi-user.target
Copied: qemu/repos/testing-x86_64/qemu.install (from rev 432793, qemu/trunk/qemu.install)
===================================================================
--- testing-x86_64/qemu.install (rev 0)
+++ testing-x86_64/qemu.install 2021-12-19 21:32:47 UTC (rev 432794)
@@ -0,0 +1,8 @@
+# Arg 1: the new package version
+post_install() {
+ # trigger events on modules files when already loaded
+ for _f in /sys/devices/virtual/misc/vhost-net; do
+ [[ -e "$_f" ]] && udevadm trigger "$_f"
+ done
+ :
+}
More information about the arch-commits
mailing list