Compare commits

...
Sign in to create a new pull request.

32 commits

Author SHA1 Message Date
Python Maint
bf768eb3fc Rebuilt for Python 3.15.0b4 ABI change 2026-07-22 10:11:21 +02:00
Fedora Release Engineering
923249903d Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:33:16 +00:00
Python Maint
5e7be441c6 Rebuilt for Python 3.15 2026-06-05 15:31:24 +02:00
Ondrej Mosnáček
a7d34984d3
Fix build on EPEL9 and enable optimized init on EPEL10
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2026-04-05 17:51:23 +02:00
Ondrej Mosnáček
8548f7541c
Update to version 1.41 (fedora#2455165)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2026-04-05 16:07:34 +02:00
Ondrej Mosnáček
300651a1e2
Properly conditionalize the mcp extra
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2026-03-06 17:02:13 +01:00
Ondrej Mosnáček
23e789169f
Enable the mcp extra
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2026-03-06 15:51:15 +01:00
Fedora Release Engineering
31ff680d06 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 19:59:09 +00:00
Ondrej Mosnáček
623cff9a5c
Update to version 1.40 (fedora#2419396)
Disable the mcp extra for now, as a dependency is currently missing in
Fedora.

Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-12-05 16:33:17 +01:00
Ondrej Mosnáček
7d24384840
Update to version 1.38 (fedora#2399798)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-09-26 21:55:50 +02:00
Python Maint
35517d9a9a Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 15:02:33 +02:00
Python Maint
e412d7e862 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:22:15 +02:00
Ondrej Mosnáček
f54c45cbed
Update to version 1.37 (fedora#2387222)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-08-08 14:46:56 +02:00
Fedora Release Engineering
29d786fa36 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:09:35 +00:00
Python Maint
9fbcbb5cad Rebuilt for Python 3.14 2025-06-03 10:43:09 +02:00
Ondrej Mosnáček
86c3c90ee7
Update to version 1.36 (fedora#2365576)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-05-12 09:59:06 +02:00
Ondrej Mosnáček
a1a847438b
Update to version 1.35 (fedora#2363986)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-05-05 08:52:50 +02:00
Ondrej Mosnáček
dc6eb79437
Add a TMT test plan with a smoke test
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-02-28 15:39:33 +01:00
Ondrej Mosnáček
c19f696ca1
Update to version 1.33 (fedora#2348442)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-02-27 09:01:42 +01:00
Ondrej Mosnáček
39e2277cf4
Build virtme-ng-init (fedora#2330166)
Enable building of Rust-implemented init binary that makes the VMs boot
faster.

Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-01-23 17:20:43 +01:00
Ondrej Mosnáček
10e4d2f043
Use tarball from GitHub instead of PyPI
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-01-23 13:46:49 +01:00
Fedora Release Engineering
709142cd31 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:29:20 +00:00
Ondrej Mosnáček
41585a20d4
Update to version 1.32 (fedora#2335465)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2025-01-04 11:27:26 +01:00
Ondrej Mosnáček
6bd0746ff6
Update to version 1.31 (fedora#2319880)
This reverts most of the stuff from "Update to version 1.30", as
upstream has walked back on the build system refactoring.

Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-10-19 18:25:49 +02:00
Ondrej Mosnáček
7aef9e91b1
Update to version 1.30 (fedora#2318393)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-10-14 10:43:16 +02:00
Ondrej Mosnáček
07fa23fa49
Use proper macro for bash completion dir
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-09-28 21:49:57 +02:00
Ondrej Mosnáček
9631171791
Update to version 1.29 and remove packaging workaround
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-09-11 09:07:40 +02:00
Ondrej Mosnáček
b5107b7a7f
Update to version 1.28 (fedora#2310415)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-09-10 14:44:44 +02:00
Ondrej Mosnáček
7c0db7d305
Update to version 1.27 (fedora#2301644)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-07-30 20:37:24 +02:00
Fedora Release Engineering
f8b8e192cb Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:53:47 +00:00
Ondrej Mosnáček
ab01b01435
Update to version 1.25 (fedora#2272274)
Signed-off-by: Ondrej Mosnáček <omosnacek@gmail.com>
2024-06-22 13:09:10 +02:00
Python Maint
fd2231ec7d Rebuilt for Python 3.13 2024-06-07 21:53:31 +02:00
4 changed files with 105 additions and 18 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

11
plans/ci.fmf Normal file
View file

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

View file

@ -1 +1 @@
SHA512 (virtme-ng-1.22.tar.gz) = 00f3fb03bdc333ea823fac6d8aaaeba2efe8404b0d6924aa8e24cf254207265c60730cbc4c4bb51fb86c231ceedf404037612183db6d08883dd990b2e40c2dae
SHA512 (virtme-ng-1.41.tar.gz) = aceca43686d8d62adae1d407eb79e735b6423014fa00b3e1d536a6b20588357a6ebe7274a5ed3e924ccdcb8a2547a84b8b0819d8974670eb72ab37c7adfbd6f7

View file

@ -1,15 +1,41 @@
%if 0%{?epel}
# EPEL status as of 2026-04-05:
# EPEL 9: fails on a weird error in %%pyproject_install
%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.41
%forgemeta
Name: virtme-ng
Version: 1.22
Release: %autorelease
Summary: Quickly build and run kernels inside a virtualized snapshot of your live system
# Code license:
# - GPL-2.0-only
# - GPL-3.0-only (virtme_ng_init)
# Rust dependency licenses:
# - MIT
# - MIT OR Apache-2.0
License: GPL-2.0-only AND GPL-3.0-only AND MIT AND (MIT OR Apache-2.0)
URL: %forgeurl
Source: %forgesource
License: GPL-2.0-only
URL: https://github.com/arighi/%{name}
Source: %{pypi_source %{name}}
%if !%{with optimized_init}
BuildArch: noarch
%endif
BuildRequires: python3-devel
BuildRequires: argparse-manpage
%if %{with optimized_init}
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: glibc-static
%endif
Recommends: qemu-kvm
Recommends: busybox
@ -44,40 +70,89 @@ running your tests and experiments.
virtme-ng is based on virtme, written by Andy Lutomirski <luto@kernel.org>.
%prep
%autosetup -p1 -n %{name}-%{version}
%forgeautosetup -p1
# Remove bundled binary (optional optimized init program for the VM)
rm -f virtme/guest/bin/virtme-ng-init
%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
cd virtme_ng_init
%cargo_prep
%endif
%generate_buildrequires
%pyproject_buildrequires
%pyproject_buildrequires %{?with_mcp:-x mcp}
%if %{with optimized_init}
cd virtme_ng_init
%cargo_generate_buildrequires
%endif
%build
%if %{with optimized_init}
export BUILD_VIRTME_NG_INIT=1
%endif
%pyproject_wheel
%if %{with optimized_init}
cd virtme_ng_init
%cargo_license_summary
%{cargo_license} > LICENSE.dependencies
%endif
%install
%pyproject_install
# Work around Python's inability to install global files
mv %{buildroot}%{python3_sitelib}/etc %{buildroot}%{_sysconfdir}
mv %{buildroot}%{python3_sitelib}/usr/share %{buildroot}%{_datadir}
# 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}/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
%if %{with optimized_init}
%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
%{_datadir}/bash-completion/completions/{virtme-ng,vng}-prompt
%{_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