Oracle P2 plan step 1+2+missed-fields. Locks in the audit cleanup so
future PRs can't regress the 0-errors / deny-unsafe / 79-tests baseline.
- .github/workflows/ci.yml: two jobs on ubuntu-latest (Linux only —
project is Wayland/VAAPI-specific, no macOS/Windows story).
* build-test: installs ffmpeg + libavcodec/libavformat/libavutil/
libswscale/libva dev + libwayland + libdrm + libpipewire-0.3-dev
+ libclang-dev/llvm-14 (LIBCLANG_PATH pinned); caches cargo +
target; runs clippy -> build --release -> test --release.
Release build before tests is mandatory because
tests/integration_test.rs shells out to target/release/wl-webrtc.
* audit: installs cargo-audit and runs 'cargo audit --deny warnings'
as a separate job so a RUSTSEC advisory fails the build
independently of compile state.
No -D warnings on clippy yet — undocumented_unsafe_blocks is already
deny via Cargo.toml; remaining warnings are advisory and can be
tightened later.
- Cargo.toml: pin rust-version = '1.70' to match README's claim.
Without this, cargo builds silently on older toolchains and surfaces
errors as cryptic parse failures instead of a clean version-mismatch
message. Oracle flagged this as a missing field during P2 review.
License field intentionally omitted — repo has no LICENSE file and no
publication plan yet. Add when publication becomes a goal.
Verified locally: YAML parses, cargo build --release Finished in 9.82s,
cargo test --release 79 passed, cargo clippy 0 errors.
41 lines
1.3 KiB
TOML
41 lines
1.3 KiB
TOML
[package]
|
|
name = "wl-webrtc"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
# Matches README's "Rust toolchain (1.70+)". Pinning rust-version prevents
|
|
# building on toolchains older than we've actually tested, and gives cargo
|
|
# a useful error message instead of a parse/error cascade.
|
|
rust-version = "1.70"
|
|
description = "Wayland screen capture and encoding tool"
|
|
|
|
[dependencies]
|
|
wayland-client = "0.31"
|
|
wayland-protocols = { version = "0.32", features = ["client", "unstable"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
ffmpeg-next = "8"
|
|
mio = { version = "1.0", features = ["os-poll", "os-ext"] }
|
|
signal-hook = "0.3"
|
|
signal-hook-mio = { version = "0.2", features = ["support-v1_0"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
anyhow = "1"
|
|
drm = "0.12"
|
|
drm-fourcc = "2"
|
|
libc = "0.2"
|
|
ashpd = { version = "0.13", features = ["tokio", "screencast"] }
|
|
zbus = { version = "5", default-features = false, features = ["tokio"] }
|
|
tokio = { version = "1", features = ["rt"] }
|
|
pipewire = { version = "0.9", features = ["v0_3_45"] }
|
|
libspa = "0.9"
|
|
crossbeam-channel = "0.5"
|
|
str0m = "0.20"
|
|
serde_json = "1"
|
|
dirs = "6"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.27.0"
|
|
|
|
[lints.clippy]
|
|
undocumented_unsafe_blocks = "deny"
|