diff --git a/qemu-all/.footprint b/qemu-all/.footprint index 25a62ab15..e0ada7f7f 100755 --- a/qemu-all/.footprint +++ b/qemu-all/.footprint @@ -117,15 +117,6 @@ drwxr-xr-x root/root usr/share/icons/hicolor/64x64/apps/ drwxr-xr-x root/root usr/share/icons/hicolor/scalable/ drwxr-xr-x root/root usr/share/icons/hicolor/scalable/apps/ -rw-r--r-- root/root usr/share/icons/hicolor/scalable/apps/qemu.svg -drwxr-xr-x root/root usr/share/man/ -drwxr-xr-x root/root usr/share/man/man1/ --rw-r--r-- root/root usr/share/man/man1/qemu.1.gz --rw-r--r-- root/root usr/share/man/man1/virtfs-proxy-helper.1.gz -drwxr-xr-x root/root usr/share/man/man7/ --rw-r--r-- root/root usr/share/man/man7/qemu-block-drivers.7.gz --rw-r--r-- root/root usr/share/man/man7/qemu-cpu-models.7.gz --rw-r--r-- root/root usr/share/man/man7/qemu-ga-ref.7.gz --rw-r--r-- root/root usr/share/man/man7/qemu-qmp-ref.7.gz drwxr-xr-x root/root usr/share/qemu/ -rw-r--r-- root/root usr/share/qemu/QEMU,cgthree.bin -rw-r--r-- root/root usr/share/qemu/QEMU,tcx.bin diff --git a/qemu-all/.signature b/qemu-all/.signature index 20f03911e..dc259d4c4 100644 --- a/qemu-all/.signature +++ b/qemu-all/.signature @@ -1,6 +1,6 @@ untrusted comment: verify with /etc/ports/opt.pub -RWSE3ohX2g5d/at6C/ekmRIXTe0w3rSrp+vMAkFqWT4BBLeWwkmt4SGjsHZ1xBTCNG3Pbuo9l6DqXrjWcFJqHNulXsSPADsEbww= -SHA256 (Pkgfile) = c34f5863f2fba2f7d01fba4ff2702e9dd95f0f0ec373b62d187253df81ad6ae5 -SHA256 (.footprint) = 48ed403939756ea687c40f52d42808ed4feb969cbefd6904a4f14f2230bbb193 -SHA256 (qemu-8.1.0.tar.xz) = 710c101198e334d4762eef65f649bc43fa8a5dd75303554b8acfec3eb25f0e55 -SHA256 (qemu-man-8.1.tar.xz) = 477fed44b3825d73033a0e9113720625c2364ab1d5936845874c1793b2b26ce7 +RWSE3ohX2g5d/eKzdL4rl+4ONkoN+dGFOUFD2ssp5qtN7sxXLB98/H52boxMp7xi8W3llYX2R/38PbGDIDhN0TfJN2ulECt1Jg8= +SHA256 (Pkgfile) = f04a424a8ef9e44ae1b1602270e6dc08af92ed377c389fb4aadb15df5ce62c7d +SHA256 (.footprint) = 8ee3bd36bba7b21ab3110157b5e2eeffbd39dfa66d2b9f2991cdaf69904efeb7 +SHA256 (qemu-8.1.1.tar.xz) = 37ce2ef5e500fb752f681117c68b45118303ea49a7e26bd54080ced54fab7def +SHA256 (keyutils.patch) = 1ed4ffac0568e3ca62ed09429eaa2f896bc42bfbce7eafce502264101e59feb1 diff --git a/qemu-all/Pkgfile b/qemu-all/Pkgfile index 40740eac9..4c837ac37 100644 --- a/qemu-all/Pkgfile +++ b/qemu-all/Pkgfile @@ -1,24 +1,34 @@ # Description: Fast CPU emulator and virtualizer for all supported platforms # URL: http://www.qemu-project.org/ # Maintainer: Juergen Daubert, jue at crux dot nu -# Depends on: dtc glib libsdl2 libusb linux-pam libxkbcommon util-linux xorg-libpixman -# Optional: libseccomp libiscsi usbredir spice +# Depends on: dtc glib libusb linux-pam xorg-libpixman +# Optional: alsa-lib fuse3 gnutls libaio libjpeg-turbo libpng libsdl2 libseccomp libslirp libssh liburing libxkbcommon nettle nfs-utils numactl pipewire pulseaudio python3-sphinx python3-sphinx_rtd_theme sdl2_image snappy xkeyboard-config xkeyboard-config + name=qemu-all -version=8.1.0 +version=8.1.1 release=1 source=(https://download.qemu.org/qemu-$version.tar.xz - qemu-man-${version%.*}.tar.xz) + keyutils.patch) build() { cd qemu-$version + + ## https://lore.kernel.org/qemu-devel/20230824094208.255279-1-thuth@redhat.com/ + patch -Np1 -i $SRC/keyutils.patch - ./configure \ + ## only needed for qemu-keymap + if [[ ! -e /usr/include/xkbcommon/xkbcommon-x11.h ]] && ! prt-get isinst xkeyboard-config; then + printf '\e[1;31m%-6s\e[m\n' "You need to install xkeyboard-config, then rebuild libxkbcommon to build qemu-keymap. We are disabling this feature now." + PKGMK_QEMU+=' --disable-xkbcommon' + fi + prt-get isinst python3-sphinx python3-sphinx_rtd_theme || PKGMK_QEMU+=' --disable-docs' + + ./configure $PKGMK_QEMU \ --prefix=/usr \ --cc="${CC:=gcc}" \ --host-cc="${CC:=gcc}" \ --sysconfdir=/etc \ - --disable-docs \ --libexecdir=/usr/lib/qemu \ --disable-gtk \ --localstatedir=/var \ @@ -28,8 +38,6 @@ build() { make ${MAKEFLAGS:=} make DESTDIR=$PKG install - cp -r $SRC/man $PKG/usr/share - install -d $PKG/etc/udev/rules.d/ echo 'KERNEL=="kvm", NAME="kvm", OWNER="root", GROUP="kvm", MODE="0660"' > \ $PKG/etc/udev/rules.d/60-kvm.rules diff --git a/qemu-all/keyutils.patch b/qemu-all/keyutils.patch new file mode 100644 index 000000000..56e663d44 --- /dev/null +++ b/qemu-all/keyutils.patch @@ -0,0 +1,90 @@ +From: Thomas Huth +To: qemu-devel@nongnu.org, "Daniel P. Berrangé" +Cc: qemu-stable@nongnu.org, "Paolo Bonzini" , + "Marc-André Lureau" , + "Philippe Mathieu-Daudé" , + antischmock@googlemail.com +Subject: [PATCH] meson.build: Make keyutils independent from keyring +Date: Thu, 24 Aug 2023 11:42:08 +0200 [thread overview] +Message-ID: <20230824094208.255279-1-thuth@redhat.com> (raw) + +Commit 0db0fbb5cf ("Add conditional dependency for libkeyutils") +tried to provide a possibility for the user to disable keyutils +if not required by makeing it depend on the keyring feature. This +looked reasonable at a first glance (the unit test in tests/unit/ +needs both), but the condition in meson.build fails if the feature +is meant to be detected automatically, and there is also another +spot in backends/meson.build where keyutils is used independently +from keyring. So let's remove the dependency on keyring again and +introduce a proper meson build option instead. + +Cc: qemu-stable@nongnu.org +Fixes: 0db0fbb5cf ("Add conditional dependency for libkeyutils") +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1842 +Signed-off-by: Thomas Huth +--- + meson.build | 6 ++++-- + meson_options.txt | 2 ++ + scripts/meson-buildoptions.sh | 3 +++ + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 98e68ef0b1..5756148576 100644 +--- a/meson.build ++++ b/meson.build +@@ -1771,8 +1771,9 @@ if gnutls.found() + method: 'pkg-config') + endif + keyutils = not_found +-if get_option('keyring').enabled() +- keyutils = dependency('libkeyutils', required: false, method: 'pkg-config') ++if not get_option('libkeyutils').auto() or have_block ++ keyutils = dependency('libkeyutils', required: get_option('libkeyutils'), ++ method: 'pkg-config') + endif + + has_gettid = cc.has_function('gettid') +@@ -4211,6 +4212,7 @@ endif + summary_info += {'AF_ALG support': have_afalg} + summary_info += {'rng-none': get_option('rng_none')} + summary_info += {'Linux keyring': have_keyring} ++summary_info += {'Linux keyutils': keyutils} + summary(summary_info, bool_yn: true, section: 'Crypto') + + # UI +diff --git a/meson_options.txt b/meson_options.txt +index aaea5ddd77..ae6d8f469d 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -119,6 +119,8 @@ option('avx512bw', type: 'feature', value: 'auto', + description: 'AVX512BW optimizations') + option('keyring', type: 'feature', value: 'auto', + description: 'Linux keyring support') ++option('libkeyutils', type: 'feature', value: 'auto', ++ description: 'Linux keyutils support') + + option('attr', type : 'feature', value : 'auto', + description: 'attr/xattr support') +diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh +index 9da3fe299b..d7020af175 100644 +--- a/scripts/meson-buildoptions.sh ++++ b/scripts/meson-buildoptions.sh +@@ -120,6 +120,7 @@ meson_options_help() { + printf "%s\n" ' libdaxctl libdaxctl support' + printf "%s\n" ' libdw debuginfo support' + printf "%s\n" ' libiscsi libiscsi userspace initiator' ++ printf "%s\n" ' libkeyutils Linux keyutils support' + printf "%s\n" ' libnfs libnfs block device driver' + printf "%s\n" ' libpmem libpmem support' + printf "%s\n" ' libssh ssh block device support' +@@ -341,6 +342,8 @@ _meson_option_parse() { + --libexecdir=*) quote_sh "-Dlibexecdir=$2" ;; + --enable-libiscsi) printf "%s" -Dlibiscsi=enabled ;; + --disable-libiscsi) printf "%s" -Dlibiscsi=disabled ;; ++ --enable-libkeyutils) printf "%s" -Dlibkeyutils=enabled ;; ++ --disable-libkeyutils) printf "%s" -Dlibkeyutils=disabled ;; + --enable-libnfs) printf "%s" -Dlibnfs=enabled ;; + --disable-libnfs) printf "%s" -Dlibnfs=disabled ;; + --enable-libpmem) printf "%s" -Dlibpmem=enabled ;; +-- +2.39.3 diff --git a/qemu-all/qemu-man-8.1.tar.xz b/qemu-all/qemu-man-8.1.tar.xz deleted file mode 100644 index ddb8e1749..000000000 Binary files a/qemu-all/qemu-man-8.1.tar.xz and /dev/null differ