From fed29822a718029de122c2bc353ea6bff055aa20 Mon Sep 17 00:00:00 2001 From: Kristof Date: Sun, 11 Jan 2026 10:46:08 +0100 Subject: [PATCH 1/6] add spectre libs --- .cargo/config.toml | 2 +- Cargo.lock | 33 +++++++++++++++++++++++++++++++++ azure-pipelines.yml | 1 + dll/Cargo.toml | 1 + dll/src/lib.rs | 1 - util/Cargo.toml | 1 + 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 58249541..c3f66ead 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,7 +6,7 @@ rustflags = ["-Ccontrol-flow-guard", "-Ctarget-feature=+crt-static"] # -Clink-args=/DYNAMICBASE /CETCOMPAT: Enable "shadow stack" (https://learn.microsoft.com/en-us/cpp/build/reference/cetcompat) [target.'cfg(all(target_os = "windows", any(target_arch = "i686", target_arch = "x86_64")))'] -rustflags = ["-Clink-args=/DYNAMICBASE /CETCOMPAT"] +rustflags = ["-Clink-arg=/DYNAMICBASE", "-Clink-arg=/CETCOMPAT"] [registries] diff --git a/Cargo.lock b/Cargo.lock index dda8a91d..e179e7fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,6 +65,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[package]] +name = "cc" +version = "1.2.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" +dependencies = [ + "find-msvc-tools", + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.4" @@ -262,6 +272,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "find-msvc-tools" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" + [[package]] name = "flate2" version = "1.1.5" @@ -506,6 +522,7 @@ name = "lepton_jpeg_dll" version = "0.5.6" dependencies = [ "lepton_jpeg", + "msvc_spectre_libs", "rayon", "rstest", ] @@ -537,6 +554,7 @@ version = "0.5.5" dependencies = [ "lepton_jpeg", "log", + "msvc_spectre_libs", "pico-args", "rayon", "simple_logger", @@ -581,6 +599,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "msvc_spectre_libs" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29e871a9861f3664f18b7e04e9301d4edd55090c2dadb4b1c602e26ab32b1f5b" +dependencies = [ + "cc", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -981,6 +1008,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "simd-adler32" version = "0.3.7" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d63e1e6d..4c5623c2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -78,6 +78,7 @@ extends: copy target\release\lepton_jpeg_util.pdb target\release\lepton_jpeg_util_avx2.pdb set RUSTFLAGS=-Ccontrol-flow-guard -Ctarget-feature=+crt-static -Clink-args=/DYNAMICBASE -Clink-args=/CETCOMPAT cargo build --workspace --locked --release 2>&1 + rd /s /q target\release\build displayName: 'Build Release' diff --git a/dll/Cargo.toml b/dll/Cargo.toml index da71ed82..03660764 100644 --- a/dll/Cargo.toml +++ b/dll/Cargo.toml @@ -7,6 +7,7 @@ authors = ["Kristof Roomp "] [dependencies] lepton_jpeg = { path = "../lib" } rayon = "1" +msvc_spectre_libs = "0.1.3" [dev-dependencies] rstest = "0.22" diff --git a/dll/src/lib.rs b/dll/src/lib.rs index eda1c301..9f4f6455 100644 --- a/dll/src/lib.rs +++ b/dll/src/lib.rs @@ -5,7 +5,6 @@ *--------------------------------------------------------------------------------------------*/ #![forbid(trivial_numeric_casts)] -#![forbid(unused_crate_dependencies)] use std::{ collections::VecDeque, diff --git a/util/Cargo.toml b/util/Cargo.toml index 76b362c1..fc244d54 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -15,6 +15,7 @@ simple_logger ="5.0" rayon = "1" uuid = { version = "1.19", features = ["v4"] } winpipe = "0.1" +msvc_spectre_libs = "0.1.3" [[bin]] name="lepton_jpeg_util" From 24e045b386c21ab731589e1c0cad6187eb2dbc07 Mon Sep 17 00:00:00 2001 From: Kristof Date: Wed, 21 Jan 2026 16:45:37 +0100 Subject: [PATCH 2/6] update build number --- lib/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Cargo.toml b/lib/Cargo.toml index b880cb0f..64a338ca 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lepton_jpeg" -version = "0.5.6" +version = "0.5.7" edition = "2024" authors = ["Kristof Roomp "] From 9dab2987958b14d8744429cbef0540f5b70a2551 Mon Sep 17 00:00:00 2001 From: Kristof Date: Wed, 21 Jan 2026 16:48:10 +0100 Subject: [PATCH 3/6] update cargo lock --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e179e7fd..3bdfb536 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -501,7 +501,7 @@ dependencies = [ [[package]] name = "lepton_jpeg" -version = "0.5.6" +version = "0.5.7" dependencies = [ "bytemuck", "byteorder", @@ -519,7 +519,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_dll" -version = "0.5.6" +version = "0.5.7" dependencies = [ "lepton_jpeg", "msvc_spectre_libs", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_util" -version = "0.5.5" +version = "0.5.7" dependencies = [ "lepton_jpeg", "log", From 834afead121f6152e87380aaba5bfd9f977be32f Mon Sep 17 00:00:00 2001 From: Kristof Date: Wed, 21 Jan 2026 16:54:08 +0100 Subject: [PATCH 4/6] fix version --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 3bdfb536..a2bd72a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,7 +519,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_dll" -version = "0.5.7" +version = "0.5.6" dependencies = [ "lepton_jpeg", "msvc_spectre_libs", From 38d697d26f7de982546870c95555c9bb2444c42a Mon Sep 17 00:00:00 2001 From: Kristof Date: Wed, 21 Jan 2026 16:59:27 +0100 Subject: [PATCH 5/6] fix lock --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index a2bd72a2..534f6bf3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_util" -version = "0.5.7" +version = "0.5.5" dependencies = [ "lepton_jpeg", "log", From e9b7fe99bb0b91c098fc9c5b10868c913e87931c Mon Sep 17 00:00:00 2001 From: Kristof Date: Thu, 22 Jan 2026 11:12:11 +0100 Subject: [PATCH 6/6] synced versions --- Cargo.lock | 6 +++--- dll/Cargo.toml | 2 +- package/Lepton.Jpeg.Rust.nuspec | 2 +- python/Cargo.toml | 2 +- python/pyproject.toml | 2 +- util/Cargo.toml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 534f6bf3..e31863f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,7 +519,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_dll" -version = "0.5.6" +version = "0.5.7" dependencies = [ "lepton_jpeg", "msvc_spectre_libs", @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_python" -version = "0.5.5" +version = "0.5.7" dependencies = [ "lepton_jpeg", "pyo3", @@ -550,7 +550,7 @@ dependencies = [ [[package]] name = "lepton_jpeg_util" -version = "0.5.5" +version = "0.5.7" dependencies = [ "lepton_jpeg", "log", diff --git a/dll/Cargo.toml b/dll/Cargo.toml index 03660764..ff3e4f4e 100644 --- a/dll/Cargo.toml +++ b/dll/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lepton_jpeg_dll" -version = "0.5.6" +version = "0.5.7" edition = "2024" authors = ["Kristof Roomp "] diff --git a/package/Lepton.Jpeg.Rust.nuspec b/package/Lepton.Jpeg.Rust.nuspec index 03ad60b8..49f97e53 100644 --- a/package/Lepton.Jpeg.Rust.nuspec +++ b/package/Lepton.Jpeg.Rust.nuspec @@ -2,7 +2,7 @@ Lepton.Jpeg.Rust - 0.5.5.7 + 0.5.7.0 Lepton JPEG Compression Rust version binaries and libraries kristofr kristofr diff --git a/python/Cargo.toml b/python/Cargo.toml index 6a206249..f7f50ca2 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lepton_jpeg_python" -version = "0.5.5" +version = "0.5.7" edition = "2024" [lib] diff --git a/python/pyproject.toml b/python/pyproject.toml index 9d27b10b..b396a740 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "lepton_jpeg_python" -version = "0.5.5" +version = "0.5.7" description = "Rust port of the Lepton JPEG compression library" authors = [{ name = "Kristof Roomp ", email = "kristofr@gmail.com" }] readme = "README.md" diff --git a/util/Cargo.toml b/util/Cargo.toml index fc244d54..f1ee9a2f 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lepton_jpeg_util" -version = "0.5.5" +version = "0.5.7" edition = "2024" authors = ["Kristof Roomp "]