Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions LICENSES-AND-NOTICES/SPECS/data/licenses.json
Original file line number Diff line number Diff line change
Expand Up @@ -2345,6 +2345,7 @@
"nmap",
"ntopng",
"opentelemetry-cpp",
"openvmm",
"packer",
"pcaudiolib",
"pcre2",
Expand Down
6 changes: 6 additions & 0 deletions SPECS/openvmm/openvmm.signatures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"Signatures": {
"openvmm-0.1.0-vendor.tar.gz": "d21252583e230fff402945332afe4ffa6ee2bd4a96e6ef446a29fe5f93d25fb2",
"openvmm-0.1.0.tar.gz": "ad476f399c3c02309239638614107174166b75f85cc6cdd11122d418cd6caef5"
}
}
80 changes: 80 additions & 0 deletions SPECS/openvmm/openvmm.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
Vendor: Microsoft Corporation
Distribution: Azure Linux
Name: openvmm
Version: 0.1.0
Release: 1%{?dist}
Summary: Modular, cross-platform virtual machine monitor
Group: Applications/System
License: MIT
URL: https://github.com/microsoft/openvmm
# Upstream tags releases as "openvmm-v<version>". The generated archive unpacks
# into "openvmm-openvmm-v<version>".
Source0: https://github.com/microsoft/openvmm/archive/refs/tags/openvmm-v%{version}.tar.gz#/%{name}-%{version}.tar.gz
# Note: the %%{name}-%%{version}-vendor.tar.gz file is published by upstream and
# contains the vendored sources in vendor/ plus the source replacement config
# 'cargo_config' written by cargo vendor.
Source1: https://github.com/microsoft/openvmm/releases/download/openvmm-v%{version}/%{name}-%{version}-vendor.tar.gz

ExclusiveArch: x86_64 aarch64

# Cargo enforces the workspace's rust-version.
BuildRequires: rust >= 1.95.0
BuildRequires: cargo >= 1.95.0
BuildRequires: binutils
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: kernel-headers
BuildRequires: openssl-devel
BuildRequires: pkgconf-pkg-config
BuildRequires: protobuf
# protoc resolves the well-known .proto imports from /usr/include.
BuildRequires: protobuf-devel

%description
OpenVMM is a modular, cross-platform, general-purpose virtual machine monitor
written in Rust. This package provides the OpenVMM host binary, which runs
virtual machines on Linux via KVM or Microsoft Hypervisor.

%ifarch x86_64
%global rust_target x86_64-unknown-linux-gnu
%endif
%ifarch aarch64
%global rust_target aarch64-unknown-linux-gnu
%endif

# A representative subset of the openvmm binary's dependency closure whose unit
# tests need no live VM. Not exhaustive; more crates can be added over time.
%global test_crates -p acpi -p consomme -p crypto -p loader -p mesh_protobuf -p openvmm_core -p openvmm_entry -p pal -p pci_core -p vhdx -p vm_topology -p vmcore -p vmm_core
Comment thread
benhillis marked this conversation as resolved.

%prep
%autosetup -n %{name}-openvmm-v%{version} -N
tar -xf %{SOURCE1}
%autopatch -p1
# Append the source replacement, keeping the rustflags upstream ships.
printf '\n' >> .cargo/config.toml
cat cargo_config >> .cargo/config.toml

%build
# Override the PROTOC path set for repository development builds.
export PROTOC="$(command -v protoc)"
# Link against the distribution OpenSSL.
export OPENSSL_NO_VENDOR=1

cargo build --release --locked --offline -p openvmm --target %{rust_target}
Comment thread
benhillis marked this conversation as resolved.

%install
install -D -p -m 0755 target/%{rust_target}/release/openvmm %{buildroot}%{_bindir}/openvmm

%check
cargo test --release --locked --offline --lib --target %{rust_target} %{test_crates}
./target/%{rust_target}/release/openvmm --version

%files
%license LICENSE
%doc README.md
%{_bindir}/openvmm

%changelog
* Thu Aug 13 2026 Ben Hillis <benhill@microsoft.com> - 0.1.0-1
- Original version for Azure Linux
- License verified
10 changes: 10 additions & 0 deletions cgmanifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -15788,6 +15788,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "openvmm",
"version": "0.1.0",
"downloadUrl": "https://github.com/microsoft/openvmm/archive/refs/tags/openvmm-v0.1.0.tar.gz"
}
}
},
{
"component": {
"type": "other",
Expand Down
Loading