diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest index 4e6705f488..f79e76b698 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest @@ -1 +1,2 @@ DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4 +DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch new file mode 100644 index 0000000000..dff62304a5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch @@ -0,0 +1,85 @@ +From 33ab5f24913db8d5590fe4155829bd38e7902506 Mon Sep 17 00:00:00 2001 +Message-Id: <33ab5f24913db8d5590fe4155829bd38e7902506.1666164897.git.mprivozn@redhat.com> +From: Michal Privoznik +Date: Fri, 14 Oct 2022 09:30:15 +0200 +Subject: [PATCH] configure: Avoid using strings binary + +When determining the endiandness of the target architecture we're +building for a small program is compiled, which in an obfuscated +way declares two strings. Then, we look which string is in +correct order (using strings binary) and deduct the endiandness. +But using the strings binary is problematic, because it's part of +toolchain (strings is just a symlink to +x86_64-pc-linux-gnu-strings or llvm-strings). And when +(cross-)compiling, it requires users to set the symlink to the +correct toolchain. + +Fortunately, we have a better alternative anyways. We can mimic +what compiler.h is already doing: comparing __BYTE_ORDER__ +against values for little/big endiandness. + +Bug: https://bugs.gentoo.org/876933 +Signed-off-by: Michal Privoznik +Message-Id: +Cc: qemu-stable@nongnu.org +Signed-off-by: Paolo Bonzini +--- + configure | 35 ++++++++++++++++++----------------- + 1 file changed, 18 insertions(+), 17 deletions(-) + +diff --git a/configure b/configure +index f9ec050bf8..81561be7c1 100755 +--- a/configure ++++ b/configure +@@ -1423,30 +1423,31 @@ if test "$tcg" = "enabled"; then + git_submodules="$git_submodules tests/fp/berkeley-softfloat-3" + fi + +-# --- ++########################################## + # big/little endian test + cat > $TMPC << EOF +-#include +-short big_endian[] = { 0x4269, 0x4765, 0x4e64, 0x4961, 0x4e00, 0, }; +-short little_endian[] = { 0x694c, 0x7454, 0x654c, 0x6e45, 0x6944, 0x6e41, 0, }; +-int main(int argc, char *argv[]) +-{ +- return printf("%s %s\n", (char *)big_endian, (char *)little_endian); +-} ++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++# error LITTLE ++#endif ++int main(void) { return 0; } + EOF + +-if compile_prog ; then +- if strings -a $TMPE | grep -q BiGeNdIaN ; then +- bigendian="yes" +- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then +- bigendian="no" +- else +- echo big/little test failed +- exit 1 +- fi ++if ! compile_prog ; then ++ bigendian="no" + else ++ cat > $TMPC << EOF ++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++# error BIG ++#endif ++int main(void) { return 0; } ++EOF ++ ++ if ! compile_prog ; then ++ bigendian="yes" ++ else + echo big/little test failed + exit 1 ++ fi + fi + + ########################################## +-- +2.37.3 + diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild index 755c49bd5d..90262e9f63 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild @@ -3,7 +3,7 @@ EAPI="7" -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{7..11} ) inherit systemd toolchain-funcs udev python-any-r1 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild new file mode 100644 index 0000000000..2064e3a7dc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) + +inherit edo systemd toolchain-funcs python-any-r1 udev + +MY_PN="qemu" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" +HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" + +LICENSE="GPL-2 BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" + +RDEPEND="dev-libs/glib" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS}" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-7.1.0-configure-Avoid-using-strings-binary.patch +) + +src_configure() { + tc-export AR LD OBJCOPY RANLIB + + local myconf=( + --prefix=/usr + --sysconfdir=/etc + --libdir="/usr/$(get_libdir)" + --localstatedir=/ + --disable-bsd-user + --disable-linux-user + --disable-system + --disable-strip + --enable-tools + --disable-werror + --enable-guest-agent + --python="${PYTHON}" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + ) + + edo ./configure "${myconf[@]}" +} + +src_install() { + dobin build/qga/qemu-ga + + # Normal init stuff + newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent + newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent + + insinto /etc/logrotate.d + newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent + + # systemd stuff + udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules + + systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \ + qemu-guest-agent.service +} + +pkg_postinst() { + elog "You should add 'qemu-guest-agent' to the default runlevel." + elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload +}