# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=virt-manager
pkgver=5.0.0
pkgrel=0
pkgdesc="GUI for managing virtual machines"
url="https://virt-manager.org/"
arch="noarch !s390x !riscv64" # spice-gtk
license="GPL-2.0-or-later"
depends="
	python3
	$pkgname-common
	spice-gtk
	vte3
	py3-cairo
	gtk-vnc>=0.5.2-r2
	gtksourceview4
	"
_common_deps="
	libosinfo
	libvirt-glib
	py3-gobject3
	py3-libvirt
	py3-libxml2
	py3-requests
	qemu-img
	"
_virt_install_deps="xorriso"
makedepends="glib-dev meson py3-docutils $_common_deps $_virt_install_deps"
checkdepends="
	libosinfo-dev
	py3-gobject3
	py3-libvirt
	py3-libxml2
	py3-pytest
	py3-requests
	"
subpackages="
	$pkgname-doc
	$pkgname-lang
	$pkgname-common
	virt-install:virt_install
	$pkgname-bash-completion
	"
source="
	https://releases.pagure.org/virt-manager/virt-manager-$pkgver.tar.xz
	fix-latest-libvirt-xml-output.patch
	"

# secfixes:
#   2.2.1-r0:
#     - CVE-2019-10183

build() {
	abuild-meson \
		--prefix="/usr" \
		-Db_lto=true \
		-Dcompile-schemas=false \
		-Ddefault-graphics=spice \
		-Dupdate-icon-cache=false \
		. output
	
	# Print config
	meson configure --no-pager output

	meson compile -C output
}

check() {
	_skipped_tests="
		not testAlterCpuMode
		and not testCLI0316virt_xml_edit_cpu_host_copy
	"

	if [ "$CARCH" = "loongarch64" ]; then
		# https://github.com/virt-manager/virt-manager/issues/781
		_skipped_tests="$_skipped_tests
			and not testCLI0006virt_install_memory_hotplug
		"
	fi

	python3 -m pytest --color=yes --verbose \
		-k "$(echo $_skipped_tests | tr -d '\n')"
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

common() {
	pkgdesc="Common files used by virt-manager and virt-install"
	depends="$_common_deps"
	mkdir -p "$subpkgdir"/usr/share/virt-manager "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/share/virt-manager/virtinst \
		"$subpkgdir"/usr/share/virt-manager
}

virt_install() {
	pkgdesc="Utilities for installing virtual machines"
	depends="$pkgname-common=$pkgver-r$pkgrel $_virt_install_deps"
	mkdir -p "$subpkgdir"/usr/share/virt-manager "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/virt-install \
		"$pkgdir"/usr/bin/virt-clone \
		"$subpkgdir"/usr/bin/
}

sha512sums="
d0cb7eb844fc98ad29413717e5fa5834bc6f9f6cb6b9339b59c2721bb37a58f71280e3d2a04a64a6021614626329d76c92474f826bb1d9b7a9040b479f20d4e8  virt-manager-5.0.0.tar.xz
dcf5a1e7d6b88b1169fcfb20a50a20afc5895257ab36f9886dd61d7904a3fa72ee3cfb6cac3ccfcab0a4a4503e1f80d4bdaa2b7f73b78f92c774c69591d6df27  fix-latest-libvirt-xml-output.patch
"
