diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..67d37b8 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,11 @@ +summary: Run tests +discover: + how: shell + tests: + - name: /smoke + summary: Basic smoke test + duration: 10m + require: [virtme-ng, qemu-kvm] + test: virtme-run --kimg --mods auto --script-sh lscpu +execute: + how: tmt diff --git a/sources b/sources index 7281269..a32135e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (virtme-ng-1.33.tar.gz) = 3705c3db870634277d2959d44db16b9fe29347543747d5b0bd71a6616fb4089bd3664d0fa6844ec0db4087b8580d690087c0ccc73b6706f16f5a11b1b2a9e2eb +SHA512 (virtme-ng-1.41.tar.gz) = aceca43686d8d62adae1d407eb79e735b6423014fa00b3e1d536a6b20588357a6ebe7274a5ed3e924ccdcb8a2547a84b8b0819d8974670eb72ab37c7adfbd6f7 diff --git a/virtme-ng.spec b/virtme-ng.spec index 37aaf02..b32d451 100644 --- a/virtme-ng.spec +++ b/virtme-ng.spec @@ -1,15 +1,17 @@ %if 0%{?epel} -# EPEL status as of 2025-01-23: +# EPEL status as of 2026-04-05: # EPEL 9: fails on a weird error in %%pyproject_install -# EPEL 10: missing rust-uzers -%bcond optimized_init 0 +%bcond optimized_init %[%epel >= 10] +# No python-mcp yet in EPEL +%bcond mcp 0 %else %bcond optimized_init 1 +%bcond mcp %[0%{?fedora} >= 43] %endif %global forgeurl https://github.com/arighi/virtme-ng -Version: 1.33 +Version: 1.41 %forgemeta Name: virtme-ng Release: %autorelease @@ -32,6 +34,7 @@ BuildRequires: python3-devel BuildRequires: argparse-manpage %if %{with optimized_init} BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: glibc-static %endif Recommends: qemu-kvm @@ -69,6 +72,22 @@ virtme-ng is based on virtme, written by Andy Lutomirski . %prep %forgeautosetup -p1 +%if 0%{?epel} && 0%{?epel} < 10 +# EPEL 9: work around no PEP 604 +for file in \ + virtme/util.py \ + virtme/architectures.py \ + virtme/mkinitramfs.py \ + virtme/qemu_helpers.py \ + virtme/commands/run.py +do + sed -i \ + -e '1i from typing import Optional' \ + -e 's/\(:\|->\) \([a-zA-Z][^:->]*\) | None/\1 Optional[\2]/g' \ + $file +done +%endif + %if %{with optimized_init} # Don't strip the debuginfo - let the rpm macros do it. sed -i 's/\["strip", /["true", /' setup.py @@ -78,7 +97,7 @@ cd virtme_ng_init %endif %generate_buildrequires -%pyproject_buildrequires +%pyproject_buildrequires %{?with_mcp:-x mcp} %if %{with optimized_init} cd virtme_ng_init %cargo_generate_buildrequires @@ -102,14 +121,13 @@ cd virtme_ng_init # Man page already installs in the right place, remove the sitelib copy rm -rf %{buildroot}%{python3_sitelib}%{_mandir} # These need to be moved into the right place -mv %{buildroot}%{python3_sitelib}/etc %{buildroot}%{_sysconfdir} mv %{buildroot}%{python3_sitelib}/usr/share/* %{buildroot}%{_datadir} rm -rf %{buildroot}%{python3_sitelib}/usr %pyproject_save_files virtme virtme_ng %check -%pyproject_check_import +%pyproject_check_import %{!?with_mcp:-e virtme_ng.mcp} %files -f %{pyproject_files} %license LICENSE @@ -117,15 +135,24 @@ rm -rf %{buildroot}%{python3_sitelib}/usr %license virtme_ng_init/LICENSE.dependencies %endif %doc README.md -%config(noreplace) %{_sysconfdir}/virtme-ng.conf +%ghost %{_sysconfdir}/virtme-ng.conf %{_bindir}/vng %{_bindir}/virtme-ng %{_bindir}/virtme-run %{_bindir}/virtme-configkernel %{_bindir}/virtme-mkinitramfs %{_bindir}/virtme-prep-kdir-mods +%{_bindir}/virtme-ssh-proxy %{bash_completions_dir}/{virtme-ng,vng}-prompt %{_mandir}/man1/vng.1* +%if !%{with mcp} +%exclude %{_bindir}/vng-mcp +%endif + +%if %{with mcp} +%pyproject_extras_subpkg -n %{name} mcp +%{_bindir}/vng-mcp +%endif %changelog %autochangelog