Package workstation tools, reuse emulator sessions, and derive build versions

This commit is contained in:
2026-09-23 03:45:48 +08:00
parent 6bfcce8070
commit f5d9f96409
79 changed files with 878 additions and 132 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
[package]
name = "fds-release"
version = "0.1.0"
version.workspace = true
build = "../../tools/version-build.rs"
edition = "2024"
license = "MIT"
description = "FDS release manifest signing and explicit-key verification"
+7 -1
View File
@@ -63,7 +63,13 @@ pub fn filename(value: &str) -> Result<()> {
impl Manifest {
pub fn validate(&self) -> Result<()> {
if self.format != 1
|| self.version != fds_common::VERSION
|| self.version.is_empty()
|| self.version.len() > 32
|| !self.version.starts_with(|c: char| c.is_ascii_digit())
|| !self
.version
.bytes()
.all(|b| b.is_ascii_alphanumeric() || b == b'.')
|| self.source_epoch == 0
|| !hex_valid(&self.source_sha256, 64)
|| !hex_valid(&self.void_commit, 40)
+1 -1
View File
@@ -4,7 +4,7 @@ use std::{path::PathBuf, process::ExitCode};
#[derive(Parser)]
#[command(
version,
version = env!("FDS_BUILD_VERSION"),
about = "Sign and verify FDS release artifacts",
after_help = "Keys and signatures are never overwritten. Verification checks every listed artifact.
An independently trusted public key is required; a bundled key is not automatically trusted."