Hi, Firecracker[0] is a minimal virtual machine manager (a la QEMU) written in Rust that uses KVM to start Linux VMs extremely quickly and securely. It is used by AWS Lambda and Fargate among other things to make VM startup time comparable to containers. I've built it for Fedora x86_64 and shared it in a Copr repository[1] which includes some example commands for starting VMs. Making it build for Fedora required changes across a few components, so I'm writing to ask if this is acceptable for inclusion in Fedora. The Copr specs are all dumped in a Git repository[2] for readability. Changes include: - The musl package adds /usr paths for compatibility with the compiler --sysroot option. - The rust compiler adds musl target subpackages. - The kernel must set CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y to be usable as a guest. - About two dozen Rust crates must be added to Fedora (but a handful are just new versions of existing packages). - Unrelated, but in the Copr repo anyway: The musl package is fixed to allow multilib installs, and Rust includes both 32- and 64-bit targets. I used upstream-preferred settings when adding things, but they may be in conflict with Fedora guidelines. Here are some concerns: - Firecracker can be built with Fedora's libc (glibc), but it is officially unsupported upstream[3]. Functionality would be harmed by not using musl, e.g. seccomp filters are not used. - Upstream Rust wants musl targets to be statically linked by default[4]. It can be changed by patching (Gentoo does this) if dynamic linking is still a priority with Rust binaries, but I haven't tested that. - Firecracker uses two crates forked from crates.io, but they are not vendored/bundled nor published to a registry. I'm currently manually bundling them as if they were vendored to avoid package name conflicts since nothing else uses them, but I don't know the preferred way to deal with those. So does any of that sound like a showstopper for being included in Fedora? Is there any other interest in the project from the community? Thanks. David [0] https://firecracker-microvm.github.io/ [1] https://copr.fedorainfracloud.org/coprs/dm0/Firecracker [2] https://github.com/dm0-/copr-firecracker [3] https://github.com/firecracker-microvm/firecracker/blob/v1.3.0/tools/release.sh#L145 [4] https://github.com/rust-lang/rust/blob/1.67.1/compiler/rustc_target/src/spec/linux_musl_base.rs#L13 _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue