Skip to content

DW-38: imagesharp v4 framework support - #158

Open
Sawraz-IS wants to merge 7 commits into
developfrom
DW-38-imagesharp-v4-framework-support
Open

Sawraz-IS wants to merge 7 commits into
developfrom
DW-38-imagesharp-v4-framework-support

Conversation

@Sawraz-IS

@Sawraz-IS Sawraz-IS commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Title

Added a dedicated .NET 8 target that uses SixLabors.ImageSharp 4.1.2 and SixLabors.ImageSharp.Drawing 3.1.2, allowing .NET 8+ projects to upgrade to ImageSharp v4 and pick up its security fixes (including CVE-2026-106114). .NET 6 and other targets are unchanged

Description

Added a .NET 8 target using ImageSharp 4.1.2 and Drawing 3.1.2, enabling security fixes including CVE-2026-106114. Other targets remain unchanged.

Fixes #(issue number)
Fixes DW-38

Type of change

Please select the relevant option by placing an 'x' inside the brackets, like this: [x].

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🏗️ Internal/structural update (non-breaking change that improves code quality, organization, or performance)
  • 📚 This change requires a documentation update
  • 🚀 DevOps build chain modification for release
  • 🤖 DevOps build chain modification for CI

How Has This Been Tested?

Run tests on .Net8

Checklist:

Please run through the checklist as much as possible and mark the items completed by placing an 'x' inside the brackets, like this: [x].

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have successfully run all unit tests on Windows
  • I have successfully run all unit tests on Linux

Additional Context

Add any other context, screenshots, or information about the pull request here.

Signing fix: net80 IronSoftware.Drawing.Common.dll was shipped unsigned

Found while verifying the published IronPrint 2026.10.4-prerelease, which bundles this library: IronSoftware.Drawing.Common.dll is not Authenticode-signed in the net80 folder of IronSoftware.System.Drawing 2026.11.4 (the netstandard2.0 and net60 folders are signed, and every folder of the previous release was). The unsigned file propagates to every product that bundles it (IronPrint's six lib/net8.0* folders were unsigned).

  • Cause: CI/step_templates/sign_drawing_libraries_dll.yml, run by the deploy job before nuget pack, only had signing steps for bin/<Configuration>/netstandard2.0 and bin/<Configuration>/net60; the net80 target added by this PR had no step.
  • Fix: a third azuresigntool step for bin/<Configuration>/net80 (same arguments as the other two), and the step names now say which framework they sign (both existing steps were named ".NET6").
  • Verified: the template parses as YAML with the three signing steps. The nuspec packs bin/$configuration$/net80/IronSoftware.Drawing.Common.* and the deploy job downloads bin/$(Configuration) (which contains net80) before signing, so the new step signs the file that gets packed.
  • Not verified: the signing itself, which needs the pipeline's Key Vault secrets. It takes effect with the next deploy; the check after that release is Get-AuthenticodeSignature on lib/net80/IronSoftware.Drawing.Common.dll.
  • Third-party DLLs in the package (e.g. SixLabors.*, BitMiracle.LibTiff.NET) are not ours to sign and stay as shipped.

…TFM (CVE fixes incl. CVE-2026-106114), migrate v4 API surface, and wire Six Labors license into CI build
…TFM (CVE fixes incl. CVE-2026-106114), migrate v4 API surface, and wire Six Labors license into CI build

@mee-ironsoftware mee-ironsoftware left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated /scrutinize review — not yet read by @mee-ironsoftware.

Automated review — verdict: fix-then-ship

Blockers: 0 · Major: 3 · Nits: 1 — 4 inline, 0 in this body.

This is deliberately a comment only: it never approves and never requests changes. The verdict above is advisory; @mee-ironsoftware will follow up.

Adds a net80 TFM that builds against ImageSharp 4.1.2 / Drawing 3.1.2 to pick up CVE fixes; the conditional-TFM approach is the right shape (v4 is net8-only), but for net8 consumers this is a breaking dependency bump that downstream repos aren't ready for, and the new PNG encoder mapping doesn't preserve every depth it claims to.


Reviewed head SHA 0e7d703a83ebf5f3c21a616177557f75a402c268. Re-request review on this PR to get a fresh pass.

Comment thread NuGet/IronSoftware.Drawing.nuspec
Comment thread IronSoftware.Drawing/IronSoftware.Drawing.Common/AnyBitmap.cs Outdated
Comment thread CI/job_templates/build_drawing_libraries.yml
Comment thread NuGet/IronSoftware.Drawing.nuspec Outdated

@mee-ironsoftware mee-ironsoftware left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

… type/bit depth, per-pixel-type fallback for L16/La16/La32/A8 etc.) and add round-trip tests
@Sawraz-IS Sawraz-IS changed the title Dw 38 imagesharp v4 framework support DW-38: imagesharp v4 framework support Oct 13, 2026
Sawraz-IS and others added 2 commits October 18, 2026 03:47
…ipeline

The signing step template only signed bin/<config>/netstandard2.0 and bin/<config>/net60, so the net80 IronSoftware.Drawing.Common.dll shipped unsigned in IronSoftware.System.Drawing 2026.11.4 (and in every product that bundles it, e.g. IronPrint's lib/net8.0* folders). Add the missing net80 step and give the three steps accurate names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants