app-emulation/virt-manager: backport patch to avoid libxml2[python]

It will automagically use libxml2[python] if available but it falls back
to elementtree.

Thanks to Pavel Hrdina for the pointer.

Closes: https://bugs.gentoo.org/964164
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2025-10-12 17:56:16 +01:00
parent d1c9df8d39
commit 777a43c052
3 changed files with 136 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
DIST virt-manager-5.0.0.tar.xz 1466724 BLAKE2B b8b93587b1e1cdb398f33e4820aeaa9c1aecfbe26cd54597830fcbc009a51e70b0dd10b947b9392a1d3fdc5b28c19573a1d417b5748c38658b6e03725023bcfb SHA512 d0cb7eb844fc98ad29413717e5fa5834bc6f9f6cb6b9339b59c2721bb37a58f71280e3d2a04a64a6021614626329d76c92474f826bb1d9b7a9040b479f20d4e8
DIST virt-manager-5.0.0.tar.xz.asc 833 BLAKE2B f97127a4cb1c0c24c6627c5d8e1e510075df3ad492e716f0cf07e5f41b3226295da4d73f5cef5903a9bc5a3d7a6f34bd07e7b0f2e21e9d42997c117708de1ada SHA512 e0bec28ce61af5dd2a6895006d60e11dd7b384cd4fec305ebfbf05831864aeb334d212511d6f92827fe15f6d6dcab3ff1d13309afa686d3e8e76c6b354ffa494
DIST virt-manager-5.1.0-elementtree-fallback.patch.xz 8500 BLAKE2B 795444bda6a3d04c9d9e65a63c3acc0c40eae457f460941ac6c871f1a3f78795eb2e7838add13b4378aa9880184c523f9422f73d6b31af603cefeec38bc374ba SHA512 b3a36edb21348072023b237996d6ded5528a6474e1d15c291c17b43eed58b6beb963d90fb026b069b2283535416c6d5416d21cb8dade61960fe3ee903e8856a3
DIST virt-manager-5.1.0.tar.xz 1489116 BLAKE2B 89c00eb1cb472e8ab1b97085404aefee00da4a0577f233945da36a44aeda53e11ee126d0357861cb0700b1b796f46775e3b233d9fa8ec77b058c8e286f498092 SHA512 6306500ae442a6ccb36d5f19bc26b0e32984ca145ee8d41a475e175ee4db6c0d253f0cf9d908c30e3269cf7aabdad4bbd30e84f3cd0477f233da1e43e0235e3c
DIST virt-manager-5.1.0.tar.xz.asc 833 BLAKE2B 60f538b94c1d995c4b04be242f8bf659d1114afe4076b0bf515168f0998ab8df110731104795016b4530ead24783d804ecc887359c3021375ef637de9be0c588 SHA512 b74d8efcf2cec023b2044406c22aa4659e15e265f54a9d0f3501fa651dfd4a4f92f7a7ce690c7d7c0423dfbd01b1564a7e05be8fb4c9e990bfd2302ad2d53c3a

View File

@@ -0,0 +1,135 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit gnome2 python-single-r1 optfeature meson verify-sig
DESCRIPTION="Desktop tool for managing libvirt virtual machines"
HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
EGIT_BRANCH="main"
SRC_URI=""
inherit git-r3
else
SRC_URI="
https://releases.pagure.org/${PN}/${P}.tar.xz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-elementtree-fallback.patch.xz
verify-sig? ( https://releases.pagure.org/${PN}/${P}.tar.xz.asc )
"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
LICENSE="CC0-1.0 GPL-2+" # appdata & source code
SLOT="0"
IUSE="gui policykit sasl verify-sig"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# https://github.com/virt-manager/virt-manager/blob/main/virt-manager.spec.in
RDEPEND="
${PYTHON_DEPS}
|| ( dev-libs/libisoburn app-cdr/cdrtools )
>=app-emulation/libvirt-glib-0.0.9[introspection]
>=sys-libs/libosinfo-0.2.10[introspection]
$(python_gen_cond_dep '
dev-python/argcomplete[${PYTHON_USEDEP}]
>=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
')
gui? (
gnome-base/dconf
>=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
sys-apps/dbus
x11-libs/gtk+:3[introspection]
|| (
x11-libs/gtksourceview:4[introspection]
x11-libs/gtksourceview:3.0[introspection]
)
x11-libs/vte:2.91[introspection]
policykit? ( sys-auth/polkit[introspection] )
)
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-python/docutils
sys-devel/gettext
verify-sig? ( >=sec-keys/openpgp-keys-virt-manager-20250106 )
"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/virt-manager.asc
DOCS=( {DESIGN,NEWS,README}.md )
PATCHES=(
"${WORKDIR}"/${P}-elementtree-fallback.patch
)
src_unpack() {
if use verify-sig ; then
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc}
fi
unpack ${P}.tar.xz
unpack ${P}-elementtree-fallback.patch.xz
}
src_configure() {
local emesonargs=( # in upstream's order
-Dupdate-icon-cache=false
-Dcompile-schemas=false
# -Ddefault-graphics=spice # default
# we do not ship OpenVZ and bhyve does not work on linux
-Ddefault-hvs="['qemu','xen','lxc']"
# While in the past we did allow test suite to run, any errors from
# test_cli.py were ignored. Since that's where like 90% of tests actually
# lives, just disable tests (and do not drag additional dependencies).
-Dtests=disabled
)
meson_src_configure
}
src_install() {
meson_src_install
if ! use gui; then
rm -r "${ED}/usr/share/applications/${PN}.desktop" || die
rm -r "${ED}/usr/share/${PN}/icons/" || die
rm -r "${ED}/usr/share/${PN}/ui/" || die
rm -r "${ED}/usr/share/icons/" || die
rm -r "${ED}/usr/bin/${PN}" || die
fi
python_fix_shebang "${ED}"
python_optimize "${ED}"/usr/share/virt-manager/virt{inst,Manager}
}
pkg_postinst() {
use gui && gnome2_pkg_postinst
# OPTFEATURE SECTION
# keep app-emulation/* optfeatures on top and multiline on the bottom
if has_version app-emulation/qemu; then
optfeature "Full QEMU host support" app-emulation/qemu[usbredir,spice]
fi
if use policykit && has_version app-emulation/libvirt[-policykit]; then
optfeature "PolicyKit integration with local libvirt instance" \
app-emulation/libvirt[policykit]
fi
# it's possible this also requires libguestfs-appliance but it's a RDEPEND of libguestfs
optfeature "Inspection of guest filesystems" app-emulation/libguestfs[libvirt,python]
optfeature "SSH_ASKPASS program implementation" \
kde-plasma/ksshaskpass \
lxqt-base/lxqt-openssh-askpass \
net-misc/ssh-askpass-fullscreen \
net-misc/x11-ssh-askpass
}

View File

@@ -35,7 +35,6 @@ RDEPEND="
>=app-emulation/libvirt-glib-0.0.9[introspection]
>=sys-libs/libosinfo-0.2.10[introspection]
$(python_gen_cond_dep '
dev-libs/libxml2[python,${PYTHON_USEDEP}]
dev-python/argcomplete[${PYTHON_USEDEP}]
>=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]