From 777a43c0523eaf0fe1d502046c425fdfd7939890 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 12 Oct 2025 17:56:16 +0100 Subject: [PATCH] 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 --- app-emulation/virt-manager/Manifest | 1 + .../virt-manager/virt-manager-5.1.0-r1.ebuild | 135 ++++++++++++++++++ .../virt-manager/virt-manager-9999.ebuild | 1 - 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 app-emulation/virt-manager/virt-manager-5.1.0-r1.ebuild diff --git a/app-emulation/virt-manager/Manifest b/app-emulation/virt-manager/Manifest index c6f0a348a8d1a..ac23350a43c6e 100644 --- a/app-emulation/virt-manager/Manifest +++ b/app-emulation/virt-manager/Manifest @@ -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 diff --git a/app-emulation/virt-manager/virt-manager-5.1.0-r1.ebuild b/app-emulation/virt-manager/virt-manager-5.1.0-r1.ebuild new file mode 100644 index 0000000000000..bebdb7609e4e9 --- /dev/null +++ b/app-emulation/virt-manager/virt-manager-5.1.0-r1.ebuild @@ -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 +} diff --git a/app-emulation/virt-manager/virt-manager-9999.ebuild b/app-emulation/virt-manager/virt-manager-9999.ebuild index 937882eb4ccaa..4d773dbb48ce4 100644 --- a/app-emulation/virt-manager/virt-manager-9999.ebuild +++ b/app-emulation/virt-manager/virt-manager-9999.ebuild @@ -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}]