supermachine-kernel 0.7.70

Pre-built Linux kernel + in-VM assets for supermachine. A thin facade that re-exports the matching per-arch sub-crate (supermachine-kernel-aarch64 / supermachine-kernel-x86-64) by target_arch, so each `cargo build` downloads only its target's kernel. Pin in lockstep with `supermachine`.
Documentation
[package]
name = "supermachine-kernel"
version = "0.7.70"
edition.workspace = true
rust-version.workspace = true
publish = true
# This crate is now a thin FACADE: it ships no kernel bytes of its own, only a
# few lines of Rust that re-export the right per-arch sub-crate by target_arch.
# The kernel/init/agent bytes (and their GPL-2.0/MIT licenses) live in the
# sub-crates this depends on; we keep the LICENSE-* files + NOTICE here too so
# the umbrella crate documents the full obligation. The facade's own code is
# Apache-2.0; the SPDX expression covers the re-exported material.
license = "Apache-2.0 AND GPL-2.0-only AND MIT"
description = "Pre-built Linux kernel + in-VM assets for supermachine. A thin facade that re-exports the matching per-arch sub-crate (supermachine-kernel-aarch64 / supermachine-kernel-x86-64) by target_arch, so each `cargo build` downloads only its target's kernel. Pin in lockstep with `supermachine`."
documentation = "https://docs.rs/supermachine-kernel"
readme = "README.md"
keywords = ["microvm", "hypervisor", "kernel", "supermachine", "oci"]
categories = ["virtualization", "embedded", "external-ffi-bindings"]

# Facade ships only source + licenses + the x86 kernel build recipe. No binary
# payloads (they live in the per-arch sub-crates), so the .crate is tiny.
include = [
    "src/**/*.rs",
    "Cargo.toml",
    "README.md",
    "kvm-x86_64-build.sh",
    "LICENSE-APACHE",
    "LICENSE-GPL-2.0",
    "LICENSE-MIT",
    "NOTICE",
]

[lib]
name = "supermachine_kernel"
path = "src/lib.rs"

[lints.clippy]
needless_doctest_main = "allow"

# Per-arch sub-crates, resolved by the COMPILATION target's arch. Cargo only
# downloads/builds the dependency whose `cfg(target_arch = ...)` matches, so an
# x86_64 build never fetches the aarch64 kernel crate and vice-versa — the
# whole point of the split (each sub-crate stays under the crates.io cap AND
# nothing redundant is downloaded). The bytes are include_bytes! inside each
# sub-crate, so there is zero runtime fetch.
[target.'cfg(target_arch = "aarch64")'.dependencies]
supermachine-kernel-aarch64 = { version = "=0.7.70", path = "../supermachine-kernel-aarch64" }

[target.'cfg(target_arch = "x86_64")'.dependencies]
supermachine-kernel-x86-64 = { version = "=0.7.70", path = "../supermachine-kernel-x86-64" }