From a7ca71f70b39cd44fe6719af6cf0cc624d4c6743 Mon Sep 17 00:00:00 2001 From: Paul Le Guen de Kerneizon Date: Fri, 1 Mar 2024 14:07:04 +0100 Subject: virt-manager: add package virt-manager is a graphical tool for managing virtual machines via libvirt. By default, virt-manager is compiled with GUI dependency using `gui` flag. Build tested on aarch64 and x86-64 machines, with both with and without gui PACKAGECONFIG flag. Signed-off-by: Paul Le Guen de Kerneizon Signed-off-by: Bruce Ashfield --- ...setup.py-move-global-args-to-install-args.patch | 76 ++++++++++++++++++++++ .../virt-manager/virt-manager_4.1.0.bb | 54 +++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch create mode 100644 recipes-extended/virt-manager/virt-manager_4.1.0.bb diff --git a/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch new file mode 100644 index 00000000..2a08aa19 --- /dev/null +++ b/recipes-extended/virt-manager/virt-manager/0001-setup.py-move-global-args-to-install-args.patch @@ -0,0 +1,76 @@ +From bcdb3555b924573e85039b54d63d6173ad99b846 Mon Sep 17 00:00:00 2001 +From: Paul Le Guen de Kerneizon +Date: Wed, 28 Feb 2024 10:24:00 +0100 +Subject: [PATCH] setup.py: move global args to install args + +Presently, during the installation process, global arguments such as +`no-update-icon-cache` and `no-compile-schemas` are utilized to +prevent the installation of specific graphical components. These +arguments are essential, for instance, when installing virt-manager +without any GUI dependencies on the target system. However, these +global arguments must be set before the install command, yet they only +take effect during the execution of the command. + +Since the Yocto `setuptools3_legacy` class parses arguments after the +command, this commit aims to make these arguments applicable locally to +the install command. + +Signed-off-by: Paul Le Guen de Kerneizon +--- + setup.py | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/setup.py b/setup.py +index cd6cd83e..faca546a 100755 +--- a/setup.py ++++ b/setup.py +@@ -242,6 +242,16 @@ class my_egg_info(setuptools.command.install_egg_info.install_egg_info): + + + class my_install(setuptools.command.install.install): ++ setuptools.command.install.install.user_options += [ ++ ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"), ++ ("no-compile-schemas", None, "Don't compile gsettings schemas"), ++ ] ++ ++ def initialize_options(self): ++ setuptools.command.install.install.initialize_options(self) ++ self.no_update_icon_cache = None ++ self.no_compile_schemas = None ++ + """ + Error if we weren't 'configure'd with the correct install prefix + """ +@@ -266,12 +276,12 @@ class my_install(setuptools.command.install.install): + def run(self): + setuptools.command.install.install.run(self) + +- if not self.distribution.no_update_icon_cache: ++ if not self.no_update_icon_cache: + print("running gtk-update-icon-cache") + icon_path = os.path.join(self.install_data, "share/icons/hicolor") + self.spawn(["gtk-update-icon-cache", "-q", "-t", icon_path]) + +- if not self.distribution.no_compile_schemas: ++ if not self.no_compile_schemas: + print("compiling gsettings schemas") + gschema_install = os.path.join(self.install_data, + "share/glib-2.0/schemas") +@@ -421,14 +431,8 @@ class CheckPylint(setuptools.Command): + + + class VMMDistribution(setuptools.dist.Distribution): +- global_options = setuptools.dist.Distribution.global_options + [ +- ("no-update-icon-cache", None, "Don't run gtk-update-icon-cache"), +- ("no-compile-schemas", None, "Don't compile gsettings schemas"), +- ] + + def __init__(self, *args, **kwargs): +- self.no_update_icon_cache = False +- self.no_compile_schemas = False + setuptools.dist.Distribution.__init__(self, *args, **kwargs) + + +-- +2.34.1 + diff --git a/recipes-extended/virt-manager/virt-manager_4.1.0.bb b/recipes-extended/virt-manager/virt-manager_4.1.0.bb new file mode 100644 index 00000000..a2395012 --- /dev/null +++ b/recipes-extended/virt-manager/virt-manager_4.1.0.bb @@ -0,0 +1,54 @@ +DESCRIPTION = "virt-manager is a graphical tool for managing virtual machines via libvirt" +HOMEPAGE = "https://virt-manager.org/" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS += "python3-docutils-native" +SRCREV = "6710ca6969b7d9c4e8344acd0fe3d50b24adc8ec" + +SRC_URI = " \ + git://github.com/virt-manager/virt-manager;branch=main;protocol=https \ + file://0001-setup.py-move-global-args-to-install-args.patch \ +" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "gui" +PACKAGECONFIG[gui] = ",--no-update-icon-cache --no-compile-schemas,python3-pygobject" + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'gui', 'gtk-icon-cache', '', d)} +inherit bash-completion gettext pkgconfig setuptools3_legacy + +PACKAGES += " \ + ${PN}-common \ + ${PN}-install \ +" + +RDEPENDS:${PN}-common += " \ + libvirt-python \ + libosinfo \ +" + +RDEPENDS:${PN} = "${PN}-common" +RDEPENDS:${PN}-install = "${PN}-common" + +SETUPTOOLS_INSTALL_ARGS += "${PACKAGECONFIG_CONFARGS}" + +FILES:${PN} = " \ + ${bindir}/virt-manager \ + ${datadir}/icons/* \ +" + +FILES:${PN}-common = " \ + ${libdir}/* \ + ${libdir}/python3.10/* \ + ${datadir}/applications \ + ${datadir}/virt-manager \ + ${datadir}/glib-2.0/* \ + ${datadir}/metainfo/* \ +" + +FILES:${PN}-install = " \ + ${bindir}/virt-clone \ + ${bindir}/virt-install \ + ${bindir}/virt-xml \ +" -- cgit v1.2.3-54-g00ecf