Skip to content
Open
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"
}
}
77 changes: 77 additions & 0 deletions SPECS/openvmm/openvmm.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
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

# Upstream validates the distribution build for x86_64 only.
ExclusiveArch: x86_64

# 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.

%global rust_target x86_64-unknown-linux-gnu

# Unit tests for the pure-logic crates in the openvmm binary's dependency
# closure. The rest of the test suite drives a live VM, which needs
# virtualization the build environment does not have.
%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