diff options
10 files changed, 172 insertions, 0 deletions
diff --git a/app-emulation/qemu-guest-agent/Manifest b/app-emulation/qemu-guest-agent/Manifest new file mode 100644 index 00000000..c11c1afb --- /dev/null +++ b/app-emulation/qemu-guest-agent/Manifest @@ -0,0 +1 @@ +DIST qemu-8.2.0.tar.xz 130008888 BLAKE2B a63667042e1e19c635568072d8dcc117320117e81e374a93cfb79e2363ebf505df3217fb098638e53c899eb6f83435221e8031f2aae003c27ec25af8654683b3 SHA512 92ec41196ff145cdbb98948f6b6e43214fa4b4419554a8a1927fb4527080c8212ccb703e184baf8ee0bdfa50ad7a84689e8f5a69eba1bd7bbbdfd69e3b91256c diff --git a/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch new file mode 100644 index 00000000..b6ef6214 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch @@ -0,0 +1,10 @@ +This gets confused by python-any-r1 and tries to find sphinx-build in ${T}. +--- a/docs/meson.build ++++ b/docs/meson.build +@@ -1,5 +1,4 @@ +-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build', +- required: get_option('docs')) ++sphinx_build = find_program('sphinx-build', required: get_option('docs')) + + # Check if tools are available to build documentation. + build_docs = false diff --git a/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.service b/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.service new file mode 100644 index 00000000..51cd7b37 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.service @@ -0,0 +1,11 @@ +[Unit] +Description=QEMU Guest Agent +BindTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device +After=dev-virtio\x2dports-org.qemu.guest_agent.0.device + +[Service] +ExecStart=-/usr/bin/qemu-ga +Restart=always +RestartSec=0 + +[Install] diff --git a/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.udev b/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.udev new file mode 100644 index 00000000..8a290abb --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-ga-systemd.udev @@ -0,0 +1,2 @@ +SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \ + TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" diff --git a/app-emulation/qemu-guest-agent/files/qemu-ga.conf-r1 b/app-emulation/qemu-guest-agent/files/qemu-ga.conf-r1 new file mode 100644 index 00000000..a1a78df3 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-ga.conf-r1 @@ -0,0 +1,11 @@ +# Specifies the transport method used to communicate to QEMU on the host side +# Default: virtio-serial +#GA_METHOD="virtio-serial" + +# Specifies the device path for the communications back to QEMU on the host +# Default: /dev/virtio-ports/org.qemu.guest_agent.0 +#GA_PATH="/dev/virtio-ports/org.qemu.guest_agent.0" + +# Additional options to qemu-guest-agent such as --fsfreeze-hook +# See qemu-ga --help for more info +#GA_OPTIONS="-F/etc/qemu/fsfreeze-hook" diff --git a/app-emulation/qemu-guest-agent/files/qemu-ga.init-r1 b/app-emulation/qemu-guest-agent/files/qemu-ga.init-r1 new file mode 100644 index 00000000..f08c0827 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-ga.init-r1 @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +start() { + GA_METHOD=${GA_METHOD:-virtio-serial} + GA_PATH=${GA_PATH:-/dev/virtio-ports/org.qemu.guest_agent.0} + + ebegin "Starting QEMU Guest Agent" + + start-stop-daemon --start --pidfile /run/qemu-ga.pid \ + --exec /usr/bin/qemu-ga -- -m ${GA_METHOD} -p ${GA_PATH} \ + -l /var/log/qemu-ga.log -d -f /run/qemu-ga.pid -t /run ${GA_OPTIONS} + + eend $? +} + +stop() { + ebegin "Stopping QEMU Guest Agent" + + start-stop-daemon --stop --pidfile /run/qemu-ga.pid + + eend $? +} diff --git a/app-emulation/qemu-guest-agent/files/qemu-ga.logrotate b/app-emulation/qemu-guest-agent/files/qemu-ga.logrotate new file mode 100644 index 00000000..ffcc477d --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-ga.logrotate @@ -0,0 +1,9 @@ +/var/log/qemu-ga.log { + weekly + missingok + rotate 4 + compress + delaycompress + copytruncate + minsize 100k +} diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0-r5.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0-r5.ebuild new file mode 100644 index 00000000..61e042e4 --- /dev/null +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0-r5.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..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} + dev-lang/perl + app-alternatives/ninja" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}/qemu-8.1.0-find-sphinx.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 + --without-default-features + --enable-guest-agent + --python="${PYTHON}" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + ) + + edo ./configure "${myconf[@]}" +} + +src_test() { + # qga only uses generic code covered by qobject tests, + # the full test suite requires at least one softmmu binary + emake check-unit +} + +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 +} diff --git a/metadata/md5-cache/app-emulation/qemu-guest-agent-8.2.0-r5 b/metadata/md5-cache/app-emulation/qemu-guest-agent-8.2.0-r5 new file mode 100644 index 00000000..bfaa39a1 --- /dev/null +++ b/metadata/md5-cache/app-emulation/qemu-guest-agent-8.2.0-r5 @@ -0,0 +1,14 @@ +BDEPEND=|| ( dev-lang/python:3.11 dev-lang/python:3.10 ) dev-lang/perl app-alternatives/ninja virtual/pkgconfig virtual/pkgconfig +DEFINED_PHASES=configure install postinst postrm setup test +DEPEND=dev-libs/glib +DESCRIPTION=QEMU Guest Agent (qemu-ga) for use when running inside a VM +EAPI=8 +HOMEPAGE=https://wiki.qemu.org/Features/GuestAgent +INHERIT=edo systemd toolchain-funcs python-any-r1 udev +KEYWORDS=~amd64 ~ppc ~ppc64 ~x86 +LICENSE=GPL-2 BSD-2 +RDEPEND=dev-libs/glib +SLOT=0 +SRC_URI=http://wiki.qemu.org/download/qemu-8.2.0.tar.xz +_eclasses_=edo c0eb9cbe6b0bd01fcb4918f12598a4d3 multilib c19072c3cd7ac5cb21de013f7e9832e0 multiprocessing 30ead54fa2e2b5f9cd4e612ffc34d0fe python-any-r1 f5169813d1619761b459800587005fd2 python-utils-r1 042f4cc53680245bf99a84669b94155a systemd c8b03e8df84486aa991d4396686e8942 toolchain-funcs e56c7649b804f051623c8bc1a1c44084 udev eec0bbab06977f1cfc5597269c1fa152 +_md5_=0a6e2cc9f7905fd9ffa9f9eba3372494 diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index 6b12b193..69fa9da1 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -5,6 +5,7 @@ app-admin/opensnitch-ebpf-module 1.6.2: eBPF process monitor module for opensnit app-admin/vasile 2.1812.2: Versatile Advanced Script for ISO and Latest Enchantments app-arch/unp 2.0_pre9-r1: Script for unpacking various file formats app-backup/timeshift 22.11.1-r2: A system restore utility for Linux +app-emulation/qemu-guest-agent 8.2.0-r5: QEMU Guest Agent (qemu-ga) for use when running inside a VM app-emulation/steam 1.0.0.71-r3: Digital distribution client bootstrap package app-emulation/virtualbox-modules 7.0.14: Kernel Modules for Virtualbox app-misc/calamares-config-redcore 1.314.1337-r6: Redcore Linux Calamares modules config |