4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
6 |
PYTHON_COMPAT=( python3_{10..13} )
|
7 |
|
inherit gnome2 python-single-r1 optfeature meson
|
|
7 |
inherit gnome2 python-single-r1 optfeature meson verify-sig
|
8 |
8 |
|
9 |
|
DESCRIPTION="A graphical tool for administering virtual machines"
|
|
9 |
DESCRIPTION="Desktop tool for managing libvirt virtual machines"
|
10 |
10 |
HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
|
11 |
11 |
|
12 |
12 |
if [[ ${PV} == *9999* ]]; then
|
... | ... | |
15 |
15 |
SRC_URI=""
|
16 |
16 |
inherit git-r3
|
17 |
17 |
else
|
18 |
|
SRC_URI="https://releases.pagure.org/${PN}/${P}.tar.xz"
|
19 |
|
KEYWORDS="amd64 arm64 ppc64 x86"
|
|
18 |
SRC_URI="
|
|
19 |
https://releases.pagure.org/${PN}/${P}.tar.xz
|
|
20 |
verify-sig? ( https://releases.pagure.org/${PN}/${P}.tar.xz.asc )
|
|
21 |
"
|
|
22 |
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
20 |
23 |
fi
|
21 |
24 |
|
22 |
|
LICENSE="GPL-2"
|
|
25 |
LICENSE="CC0-1.0 GPL-2+" # appdata & source code
|
23 |
26 |
SLOT="0"
|
24 |
|
IUSE="gui policykit sasl"
|
|
27 |
IUSE="gui policykit sasl verify-sig"
|
25 |
28 |
|
26 |
29 |
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
27 |
30 |
|
|
31 |
# https://github.com/virt-manager/virt-manager/blob/main/virt-manager.spec.in
|
28 |
32 |
RDEPEND="
|
29 |
33 |
${PYTHON_DEPS}
|
30 |
34 |
|| ( dev-libs/libisoburn app-cdr/cdrtools )
|
31 |
|
>=app-emulation/libvirt-glib-1.0.0[introspection]
|
|
35 |
>=app-emulation/libvirt-glib-0.0.9[introspection]
|
32 |
36 |
>=sys-libs/libosinfo-0.2.10[introspection]
|
33 |
37 |
$(python_gen_cond_dep '
|
34 |
38 |
dev-libs/libxml2[python,${PYTHON_USEDEP}]
|
... | ... | |
41 |
45 |
gnome-base/dconf
|
42 |
46 |
>=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
|
43 |
47 |
net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
|
44 |
|
sys-apps/dbus[X]
|
|
48 |
sys-apps/dbus
|
45 |
49 |
x11-libs/gtk+:3[introspection]
|
46 |
|
x11-libs/gtksourceview:4[introspection]
|
|
50 |
|| (
|
|
51 |
x11-libs/gtksourceview:4[introspection]
|
|
52 |
x11-libs/gtksourceview:3.0[introspection]
|
|
53 |
)
|
47 |
54 |
x11-libs/vte:2.91[introspection]
|
48 |
55 |
policykit? ( sys-auth/polkit[introspection] )
|
49 |
56 |
)
|
50 |
57 |
"
|
51 |
58 |
DEPEND="${RDEPEND}"
|
52 |
|
BDEPEND="dev-python/docutils"
|
|
59 |
BDEPEND="
|
|
60 |
dev-python/docutils
|
|
61 |
sys-devel/gettext
|
|
62 |
verify-sig? ( >=sec-keys/openpgp-keys-virt-manager-20250106 )
|
|
63 |
"
|
|
64 |
|
|
65 |
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/virt-manager.asc
|
53 |
66 |
|
54 |
|
DOCS=( README.md NEWS.md )
|
|
67 |
DOCS=( {DESIGN,NEWS,README}.md )
|
55 |
68 |
|
56 |
69 |
src_configure() {
|
57 |
|
# While in the past we did allow test suite to run, any errors from
|
58 |
|
# test_cli.py were ignored. Since that's where like 90% of tests actually
|
59 |
|
# lives, just disable tests (and do not drag additional dependencies).
|
60 |
|
local emesonargs=(
|
|
70 |
local emesonargs=( # in upstream's order
|
|
71 |
-Dupdate-icon-cache=false
|
61 |
72 |
-Dcompile-schemas=false
|
62 |
|
-Ddefault-graphics=spice
|
|
73 |
|
|
74 |
# -Ddefault-graphics=spice # default
|
|
75 |
# we do not ship OpenVZ and bhyve does not work on linux
|
|
76 |
-Ddefault-hvs="['qemu','xen','lxc']"
|
|
77 |
|
|
78 |
# While in the past we did allow test suite to run, any errors from
|
|
79 |
# test_cli.py were ignored. Since that's where like 90% of tests actually
|
|
80 |
# lives, just disable tests (and do not drag additional dependencies).
|
63 |
81 |
-Dtests=disabled
|
64 |
|
-Dupdate-icon-cache=false
|
65 |
82 |
)
|
66 |
83 |
|
67 |
84 |
meson_src_configure
|
... | ... | |
70 |
87 |
src_install() {
|
71 |
88 |
meson_src_install
|
72 |
89 |
|
73 |
|
if ! use gui ; then
|
74 |
|
rm -r "${ED}/usr/share/virt-manager/ui/" || die
|
75 |
|
rm -r "${ED}/usr/share/virt-manager/icons/" || die
|
|
90 |
if ! use gui; then
|
|
91 |
rm -r "${ED}/usr/share/applications/${PN}.desktop" || die
|
|
92 |
rm -r "${ED}/usr/share/${PN}/icons/" || die
|
|
93 |
rm -r "${ED}/usr/share/${PN}/ui/" || die
|
76 |
94 |
rm -r "${ED}/usr/share/icons/" || die
|
77 |
|
rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die
|
78 |
|
rm -r "${ED}/usr/bin/virt-manager" || die
|
|
95 |
rm -r "${ED}/usr/bin/${PN}" || die
|
79 |
96 |
fi
|
80 |
97 |
|
81 |
98 |
python_fix_shebang "${ED}"
|
|
99 |
python_optimize "${ED}"/usr/share/virt-manager/virt{inst,Manager}
|
82 |
100 |
}
|
83 |
101 |
|
84 |
102 |
pkg_postinst() {
|
85 |
103 |
use gui && gnome2_pkg_postinst
|
86 |
104 |
|
87 |
|
optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass
|
88 |
|
optfeature "QEMU host support" app-emulation/qemu[usbredir,spice]
|
|
105 |
# OPTFEATURE SECTION
|
|
106 |
# keep app-emulation/* optfeatures on top and multiline on the bottom
|
|
107 |
if has_version app-emulation/qemu; then
|
|
108 |
optfeature "Full QEMU host support" app-emulation/qemu[usbredir,spice]
|
|
109 |
fi
|
|
110 |
if use policykit && has_version app-emulation/libvirt[-policykit]; then
|
|
111 |
optfeature "PolicyKit integration with local libvirt instance" \
|
|
112 |
app-emulation/libvirt[policykit]
|
|
113 |
fi
|
|
114 |
# it's possible this also requires libguestfs-appliance but it's a RDEPEND of libguestfs
|
|
115 |
optfeature "Inspection of guest filesystems" app-emulation/libguestfs[libvirt,python]
|
|
116 |
|
|
117 |
optfeature "SSH_ASKPASS program implementation" \
|
|
118 |
kde-plasma/ksshaskpass \
|
|
119 |
lxqt-base/lxqt-openssh-askpass \
|
|
120 |
net-misc/ssh-askpass-fullscreen \
|
|
121 |
net-misc/x11-ssh-askpass
|
89 |
122 |
}
|