mirror of
https://github.com/freemkv/freemkv-unlock.git
synced 2026-10-07 18:13:11 +00:00
The Windows UI needs current winsafe, whose real minimum is 1.89 (its manifest under-declares 1.87 while it uses NonNull::from_ref). Rather than stop at the minimum, this goes to current stable and fixes what that costs. The counter-intuitive result: 1.97 is CHEAPER than 1.89. libfreemkv had 54 clippy errors at 1.89 and 6 at 1.97, because clippy tightened the noisy collapsible_if lint in between. Stopping at the minimum would have been the most expensive choice available. Roughly 47 lints across the eight repos, the large majority auto-fixed: libfreemkv 6, freemkv-engine 14, bdemu 8, freemkv-keysources 7, autorip 6, freemkv-unlock 3, freemkv-i18n 3. The hand-fixed ones are a descending sort to sort_by_key(Reverse), four manual checked-division sites, a loop counter replaced by enumerate, and a loop whose first let-else became a while-let. Worth recording for whoever bumps next: clippy is MSRV-AWARE. Those 54 lints only appear once the crate DECLARES 1.89 or later, because let-chains become available. A bare `cargo +1.89 clippy` against a manifest still pinned at 1.87 reports clean and is meaningless — gate with the real precommit script, which is also the only thing that covers build scripts. The pin still sits below the Mac default, so it keeps doing its job: catching lint drift locally before CI sees it.
29 lines
922 B
TOML
29 lines
922 B
TOML
[package]
|
|
name = "freemkv-unlock"
|
|
version = "1.6.0"
|
|
edition = "2024"
|
|
rust-version = "1.97"
|
|
license = "MIT"
|
|
description = "Unlock layer for the freemkv toolchain: the Unlocker contract + self-contained firmware/AACS/CSS unlocker modules. libfreemkv depends on this and dispatches via all_unlockers()."
|
|
repository = "https://github.com/freemkv/freemkv-unlock"
|
|
# NEVER crates.io: this crate carries drive firmware. Consumed only by git tag.
|
|
publish = false
|
|
|
|
[features]
|
|
# Off by default. Exposes ld's unlock-handshake wire format (`UNLOCK_MARKER`,
|
|
# `is_unlock_read_buffer`) for the bdemu test-emulator, which impersonates an
|
|
# ld-unlockable drive. Real clients never enable it and keep the generic API.
|
|
emulation = []
|
|
|
|
[dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
base64 = "0.22.1"
|
|
tracing = "0.1"
|
|
num-bigint = "0.4"
|
|
num-traits = "0.2"
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
aes = "0.8"
|
|
rand = "0.8"
|