mirror of
https://github.com/freemkv/freemkv-unlock.git
synced 2026-10-07 18:13:11 +00:00
Sweep the pinned toolchain to Rust 1.97
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.
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
name = "freemkv-unlock"
|
name = "freemkv-unlock"
|
||||||
version = "1.6.0"
|
version = "1.6.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.87"
|
rust-version = "1.97"
|
||||||
license = "MIT"
|
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()."
|
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"
|
repository = "https://github.com/freemkv/freemkv-unlock"
|
||||||
|
|||||||
+5
-5
@@ -141,7 +141,7 @@ pub struct ProfileMatch {
|
|||||||
/// translatable English message.
|
/// translatable English message.
|
||||||
fn decode_hex(s: &str) -> std::result::Result<Vec<u8>, &'static str> {
|
fn decode_hex(s: &str) -> std::result::Result<Vec<u8>, &'static str> {
|
||||||
let bytes = s.as_bytes();
|
let bytes = s.as_bytes();
|
||||||
if bytes.len() % 2 != 0 {
|
if !bytes.len().is_multiple_of(2) {
|
||||||
return Err("hex");
|
return Err("hex");
|
||||||
}
|
}
|
||||||
let mut out = Vec::with_capacity(bytes.len() / 2);
|
let mut out = Vec::with_capacity(bytes.len() / 2);
|
||||||
@@ -304,20 +304,20 @@ pub fn find_by_drive_id(profiles: &Profiles, drive_id: &crate::DriveId) -> Optio
|
|||||||
(Platform::Mt1959B, &profiles.mt1959_b),
|
(Platform::Mt1959B, &profiles.mt1959_b),
|
||||||
(Platform::Renesas, &profiles.renesas),
|
(Platform::Renesas, &profiles.renesas),
|
||||||
] {
|
] {
|
||||||
if !prod.is_empty() {
|
if !prod.is_empty()
|
||||||
if let Some(p) = list.iter().find(|p| {
|
&& let Some(p) = list.iter().find(|p| {
|
||||||
p.identity.vendor_id.trim() == v
|
p.identity.vendor_id.trim() == v
|
||||||
&& p.identity.product_id.trim() == prod
|
&& p.identity.product_id.trim() == prod
|
||||||
&& p.identity.product_revision.trim() == r
|
&& p.identity.product_revision.trim() == r
|
||||||
&& p.identity.vendor_specific.trim() == vs
|
&& p.identity.vendor_specific.trim() == vs
|
||||||
&& p.identity.firmware_date.trim() == date
|
&& p.identity.firmware_date.trim() == date
|
||||||
}) {
|
})
|
||||||
|
{
|
||||||
return Some(ProfileMatch {
|
return Some(ProfileMatch {
|
||||||
profile: p.clone(),
|
profile: p.clone(),
|
||||||
platform,
|
platform,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(p) = list.iter().find(|p| {
|
if let Some(p) = list.iter().find(|p| {
|
||||||
p.identity.vendor_id.trim() == v
|
p.identity.vendor_id.trim() == v
|
||||||
|
|||||||
Reference in New Issue
Block a user