mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 08:56:58 +02:00
app-emulation/qemu-guest-agent: Sync with Gentoo
It's from Gentoo commit a2c58194f0ef00329d85704e432fa9bd7f649041.
This commit is contained in:
parent
d827fca6c1
commit
0efade79a5
@ -1 +1,2 @@
|
|||||||
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
|
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
|
||||||
|
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
|
||||||
|
@ -0,0 +1,85 @@
|
|||||||
|
From 33ab5f24913db8d5590fe4155829bd38e7902506 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <33ab5f24913db8d5590fe4155829bd38e7902506.1666164897.git.mprivozn@redhat.com>
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
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 <mprivozn@redhat.com>
|
||||||
|
Message-Id: <d6d9c7043cfe6d976d96694f2b4ecf85cf3206f1.1665732504.git.mprivozn@redhat.com>
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
---
|
||||||
|
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 <stdio.h>
|
||||||
|
-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
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI="7"
|
EAPI="7"
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{7..10} )
|
PYTHON_COMPAT=( python3_{7..11} )
|
||||||
|
|
||||||
inherit systemd toolchain-funcs udev python-any-r1
|
inherit systemd toolchain-funcs udev python-any-r1
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user