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 <paul.leguendekerneizon@savoirfairelinux.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Paul Le Guen de Kerneizon 2024-03-01 14:07:04 +01:00 committed by Bruce Ashfield
parent 8c18554d3e
commit a7ca71f70b
2 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,76 @@
From bcdb3555b924573e85039b54d63d6173ad99b846 Mon Sep 17 00:00:00 2001
From: Paul Le Guen de Kerneizon <paul.leguendekerneizon@savoirfairelinux.com>
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 <paul.leguendekerneizon@savoirfairelinux.com>
---
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

View File

@ -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 \
"