Wasmtime packaging
I’m currently working to package Wasmtime, a small and efficient runtime for WebAssembly and WASI, made by the Bytecode Alliance.
My first objective here was to package the Go package
github.com/bytecodealliance/wasmtime-go
,
which is required for WebAssembly support in Open Policy Agent
(currently, Open Policy Agent is packaged in Fedora with WebAssembly disabled).
This Go package uses CGO to consume the C API of the Wasmtime project, which is
written in Rust.
I’ll not only package Wasmtime’s C API and its Go bindings, but I’ll also package the Wasmtime runtime itself, which is a great addition to Fedora Linux.
New Fedora packages
In order to package Wasmtime, I have to package all the dependencies which are not yet in Fedora repositories. Wasmtime also depends of many Rust crates already packaged in Fedora.
Below is the current list of Fedora packages created / to be created in the process of bringing Wasmtime to Fedora.
Please note that:
- packages already in Fedora are not mentioned;
- some dependency links are missing, and the analysis is not complete yet;
- cyclic dependencies are caused by dev-dependencies (tests); they are resolved by bootstraping the packaging without the tests.
Package | Upstream | Packaging status | Review | Dependencies | |
---|---|---|---|---|---|
rust-wasmtime-cli
|
[src] | wasmtime-cli | NOT STARTED | ||
golang-github-bytecodealliance-wasmtime
|
[src] | github.com/bytecodealliance/wasmtime-go | NOT STARTED |
Depends on (1) |
|
rust-wasmtime
|
[src] | wasmtime | NOT STARTED |
Depends on (7) |
|
rust-wasmtime-c-api
|
[src] | rust-wasmtime-c-api | NOT STARTED |
Depends on (7)Required by (1) |
|
rust-wasmtime-cranelift
|
[src] | wasmtime-cranelift | NOT STARTED |
Depends on (8)Required by (2) |
|
rust-wasmtime-environ | [src] | wasmtime-environ | 1963341 |
Depends on (4) |
|
rust-wasmtime-runtime
|
[src] | wasmtime-runtime | PACKAGE REVIEW | 1983456 |
Depends on (4)Required by (3) |
rust-wasmtime-cache | [src] | wasmtime-cache | 1966552 |
Depends on (2)Required by (2) |
|
rust-wasmtime-jit
|
[src] | wasmtime-jit | NOT STARTED |
Depends on (5)Required by (1) |
|
rust-wasmtime-wast
|
[src] | wasmtime-wast | NOT STARTED |
Depends on (2)Required by (1) |
|
rust-wasmtime-wasi
|
[src] | wasmtime-wasi | NOT STARTED |
Depends on (4)Required by (3) |
|
rust-wasmtime-fiber | [src] | wasmtime-fiber | 1967704 |
Depends on (1)Required by (2) |
|
rust-wasmtime-types | [src] | wasmtime-types | 2006997 |
Depends on (2)Required by (2) |
|
rust-wasi-common
|
[src] | wasi-common | NOT STARTED |
Depends on (3)Required by (3) |
|
rust-wasi-cap-std-sync
|
[src] | wasi-cap-std-sync | NOT STARTED |
Depends on (8)Required by (2) |
|
rust-wiggle
|
[src] | wiggle | NOT STARTED |
Depends on (3)Required by (3) |
|
rust-wiggle-macro
|
[src] | wiggle-macro | PACKAGE REVIEW | 1983402 |
Depends on (2)Required by (1) |
rust-wiggle-generate
|
[src] | wiggle-generate | PACKAGE REVIEW | 1983343 |
Depends on (1)Required by (1) |
rust-wasmtime-wasi-nn
|
[src] | wasmtime-wasi-nn | NOT STARTED |
Depends on (5)Required by (1) |
|
rust-cranelift-codegen-shared | [src] | cranelift-codegen-shared | 1959780 |
Required by (2) |
|
rust-cranelift-codegen-meta | [src] | cranelift-codegen-meta | 1962375 |
Depends on (1)Required by (1) |
|
rust-cranelift-codegen | [src] | cranelift-codegen | 1962583 |
Depends on (6) |
|
rust-cranelift-entity | [src] | cranelift-entity | 1959754 | ||
rust-cranelift-bforest | [src] | cranelift-bforest | 1962372 |
Depends on (1)Required by (1) |
|
rust-cranelift-wasm | [src] | cranelift-wasm | 1963340 |
Depends on (5)Required by (1) |
|
rust-cranelift-frontend | [src] | cranelift-frontend | 1962622 |
Depends on (1)Required by (2) |
|
rust-cranelift-native | [src] | cranelift-native | 1967726 |
Depends on (1)Required by (1) |
|
rust-wasmparser | [src] | wasmparser | 1901098 | ||
rust-wast | [src] | wast | 1901090 |
Depends on (3)Required by (4) |
|
rust-wat | [src] | wat | 1901097 |
Depends on (1)Required by (3) |
|
rust-regalloc | [src] | regalloc | 1962574 |
Required by (1) |
|
rust-unsafe-io | [src] | unsafe-io | 1962887 |
Depends on (1) |
|
rust-io-extras | [src] | io-extras | 2027872 |
Depends on (1)Required by (3) |
|
rust-posish | [src] | posish | 1965750 |
Depends on (3) |
|
rust-rustix | [src] | rustix | 2007419 |
Depends on (2) |
|
rust-fs-set-times | [src] | fs-set-times | 1966284 |
Depends on (2)Required by (2) |
|
rust-cap-primitives | [src] | cap-primitives | 1969654 |
Depends on (6)Required by (3) |
|
rust-cap-std | [src] | cap-std | 1971319 |
Depends on (4) |
|
rust-cap-rand | [src] | cap-rand | 1966439 |
Depends on (1)Required by (2) |
|
rust-cap-fs-ext
|
[src] | cap-fs-ext | NOT STARTED |
Depends on (4)Required by (2) |
|
rust-cap-time-ext
|
[src] | cap-time-ext | REVIEW ACCEPTED | 1971773 |
Depends on (3)Required by (1) |
rust-cap-tempfile
|
[src] | cap-tempfile | REVIEW ACCEPTED | 1971774 |
Depends on (1)Required by (2) |
rust-system-interface
|
[src] | system-interface | NOT STARTED |
Depends on (4)Required by (1) |
|
rust-ambient-authority | [src] | ambient-authority | 1973844 |
Required by (2) |
|
rust-leb128 | [src] | leb128 | 1900274 |
Required by (1) |
|
rust-more-asserts | [src] | more-asserts | 1900375 | ||
rust-maybe-owned | [src] | maybe-owned | 1965122 |
Required by (1) |
|
rust-io-lifetimes | [src] | io-lifetimes | 1976248 | ||
rust-file-per-thread-logger | [src] | file-per-thread-logger | 1963863 |
Required by (2) |
|
rust-witx | [src] | witx | 1972159 |
Depends on (1)Required by (3) |
|
rust-linux-raw-sys | [src] | linux-raw-sys | 1983160 |
Required by (2) |