Skip to content

Modify: Workflows & CMake for Toolchains, Add WASM, CFL & LibFuzzer#589

Merged
xsscx merged 8 commits intomasterfrom
cfl
Feb 17, 2026
Merged

Modify: Workflows & CMake for Toolchains, Add WASM, CFL & LibFuzzer#589
xsscx merged 8 commits intomasterfrom
cfl

Conversation

@xsscx
Copy link
Member

@xsscx xsscx commented Feb 8, 2026

Pull Request Checklist

(#203)

  • Have you followed the guidelines in Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you built your Pull Request locally with the Build Instructions?
  • Have you added or updated relevant tests?
  • Have you added or updated relevant docs?

@xsscx xsscx self-assigned this Feb 8, 2026
@xsscx xsscx requested review from Copilot and removed request for dwtza February 8, 2026 08:08
@xsscx xsscx added WASM Web Assembly PR Pull Request Review in Process Issue is being Reviewed by Maintainers Test Status Maintainer indicates TEST Status libFuzzer libFuzzer Related CI labels Feb 8, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR integrates a fuzzing/ClusterFuzzLite workflow and related seed corpora into iccDEV, while updating parts of the CMake build to better support Emscripten/WASM constraints and static-only target consumption.

Changes:

  • Add libFuzzer harnesses, dictionaries/options, and seed corpus setup/testing scripts under Testing/Fuzzing/.
  • Add ClusterFuzzLite configuration (.clusterfuzzlite/*) and a GitHub Actions fuzzer smoke-test workflow.
  • Update CMake to generate version headers into the build directory and to improve portability for static-only builds / Emscripten.

Reviewed changes

Copilot reviewed 71 out of 159 changed files in this pull request and generated 19 comments.

Show a summary per file
File Description
Testing/mcs/Flexo-CMYKOGP/OMYK-SelectMID.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/CMYKOGP-MVIS-Smooth.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/CMYK-SelectMID.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/CMPK-SelectMID.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/CGYK-SelectMID.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/7ChanSelect-MID.icc Adds ICC profile asset for testing/corpus.
Testing/mcs/Flexo-CMYKOGP/4ChanSelect-MID.icc Adds ICC profile asset for testing/corpus.
Testing/Fuzzing/CMakeLists.txt Adds CMake targets/flags to build fuzzers when ENABLE_FUZZING=ON and using Clang.
Testing/Fuzzing/test-seed-corpus.sh Adds a script to validate fuzzer binaries/dicts/corpora presence.
Testing/Fuzzing/seed-corpus-setup.sh Adds a script to populate per-fuzzer seed corpora from an external fuzz directory.
Testing/Fuzzing/icc_*_fuzzer.cpp Adds multiple libFuzzer harnesses for key tools/codepaths (profile parsing, XML, CMM apply, etc.).
Testing/Fuzzing/icc_*.dict Adds/updates dictionaries used by fuzzers.
Testing/Fuzzing/icc_*.options Adds per-fuzzer runtime options files.
Testing/Fuzzing/_seed_corpus/ Adds seed corpus inputs for fuzzers.
Testing/Fuzzing/build-fuzzers.sh Adds a helper script to build selected fuzzers from existing build outputs.
Testing/CMakeLists.txt Adds a Testing CMake entry that conditionally includes fuzzing subdir when enabled.
Build/Cmake/Tools/IccPngDump/CMakeLists.txt Avoids adding system include dirs under Emscripten.
Build/Cmake/IccXML/CMakeLists.txt Generates version header in build dir and adds static-only alias target for consistent linking.
Build/Cmake/IccProfLib/CMakeLists.txt Generates version header in build dir and adds static-only alias target for consistent linking.
.github/workflows/ci-fuzzer-smoke-test.yml Adds a CI workflow to build and smoke-test fuzzers in a matrix.
.clusterfuzzlite/project.yaml Adds CFL project definition.
.clusterfuzzlite/fuzzer.options Adds CFL global fuzzer/ASan/UBSan/MSan options.
.clusterfuzzlite/build.sh Adds CFL build script for a smoke-test style build.
.clusterfuzzlite/build-minimal.sh Adds a minimal CFL build script for local/CFL validation.
.clusterfuzzlite/build-production.sh Adds a production CFL build script intended to build all fuzzers.
.clusterfuzzlite/Dockerfile Adds CFL builder image definition.
.clusterfuzzlite/corpus/* Adds CFL seed corpus inputs.
.clusterfuzzlite/corpus-xml/* Adds CFL XML seed corpus inputs.

@xsscx xsscx added Merge Ready Maintainer indicates Merge Ready and removed Review in Process Issue is being Reviewed by Maintainers Test Status Maintainer indicates TEST Status labels Feb 8, 2026
@xsscx xsscx linked an issue Feb 8, 2026 that may be closed by this pull request
@xsscx xsscx linked an issue Feb 8, 2026 that may be closed by this pull request
@xsscx xsscx force-pushed the cfl branch 2 times, most recently from 0f5214a to 972a65f Compare February 8, 2026 17:37
@xsscx
Copy link
Member Author

xsscx commented Feb 8, 2026

Cross Check

2026-02-08 18:04:30 UTC

Workflow Summary

@xsscx xsscx force-pushed the cfl branch 3 times, most recently from 12765c4 to d18f343 Compare February 17, 2026 16:58
@xsscx xsscx added Pending Merge Maintainer indicates Merge Pending and requests no further changes and removed Review in Process Issue is being Reviewed by Maintainers Test Status Maintainer indicates TEST Status labels Feb 17, 2026
@xsscx xsscx force-pushed the cfl branch 2 times, most recently from 3944f38 to 860df0d Compare February 17, 2026 17:24
@xsscx
Copy link
Member Author

xsscx commented Feb 17, 2026

Prepared to Merge Report

2026-02-17 17:42:11 UTC

  1. Updated documentation
  2. Modified Labeler Workflows
  3. Modified CMake WASM, MSAN, TSAN, Commit Hash on Version Strings
  4. Adds Dockerfiles for iccDEV & NixOS + Workflows with Push on Packages
  5. Adds CMake Workflows for Testing PRs with via Matrix, Compiler & Flags
  6. Modified ci-latest-release output Release with iccDEV-Testing directory

Windows Bundle Contents

References: https://github.com/InternationalColorConsortium/iccDEV/actions/runs/22110909409

sha256:ef9edb6921fad9f149198837cf607465183b8f62720d48c1b7a1ec14912568b7

 Directory of C:\tmp\iccDEV-Testing

02/17/2026  10:41 AM    <DIR>          .
02/17/2026  10:41 AM    <DIR>          ..
02/17/2026  10:41 AM    <DIR>          ApplyDataFiles
02/17/2026  10:41 AM    <DIR>          Calc
02/17/2026  10:41 AM    <DIR>          CalcTest
02/17/2026  10:40 AM               278 CMakeLists.txt
02/17/2026  10:41 AM    <DIR>          CMYK-3DLUTs
02/17/2026  10:40 AM            10,626 CreateAllProfiles.bat
02/17/2026  10:40 AM            12,189 CreateAllProfiles.sh
02/17/2026  10:41 AM    <DIR>          Display
02/17/2026  10:41 AM    <DIR>          docs
02/17/2026  10:41 AM    <DIR>          Encoding
02/17/2026  10:41 AM    <DIR>          HDR
02/17/2026  10:41 AM    <DIR>          hybrid
02/17/2026  10:40 AM           929,280 iccApplyNamedCmm.exe
02/17/2026  10:40 AM           848,384 iccApplyProfiles.exe
02/17/2026  10:40 AM           932,352 iccApplySearch.exe
02/17/2026  10:40 AM           774,144 iccApplyToLink.exe
02/17/2026  10:40 AM           647,680 iccDumpProfile.exe
02/17/2026  10:40 AM           945,664 iccDumpProfileGui.exe
02/17/2026  10:40 AM           645,632 iccFromCube.exe
02/17/2026  10:40 AM         1,082,368 iccFromXml.exe
02/17/2026  10:40 AM            33,280 iccJpegDump.exe
02/17/2026  10:40 AM           653,824 iccPngDump.exe
02/17/2026  10:40 AM        49,284,750 IccProfLib2-static.lib
02/17/2026  10:40 AM            40,960 IccProfLib2.dll
02/17/2026  10:40 AM        49,284,750 IccProfLib2.lib
02/17/2026  10:40 AM           753,664 iccRoundTrip.exe
02/17/2026  10:40 AM            50,688 iccSpecSepToTiff.exe
02/17/2026  10:40 AM           642,560 iccTiffDump.exe
02/17/2026  10:40 AM         1,069,568 iccToXml.exe
02/17/2026  10:40 AM           645,120 iccV5DspObsToV4Dsp.exe
02/17/2026  10:40 AM        15,535,146 IccXML2-static.lib
02/17/2026  10:40 AM            43,008 IccXML2.dll
02/17/2026  10:40 AM        15,535,146 IccXML2.lib
02/17/2026  10:40 AM         1,089,024 iconv-2.dll
02/17/2026  10:41 AM    <DIR>          ICS
02/17/2026  10:40 AM           683,520 jpeg62.dll
02/17/2026  10:40 AM           187,904 liblzma.dll
02/17/2026  10:40 AM           206,336 libpng16.dll
02/17/2026  10:40 AM         1,277,952 libxml2.dll
02/17/2026  10:40 AM             1,562 LICENSE.md
02/17/2026  10:41 AM    <DIR>          mcs
02/17/2026  10:41 AM    <DIR>          Named
02/17/2026  10:41 AM    <DIR>          Overprint
02/17/2026  10:40 AM               519 path.bat
02/17/2026  10:41 AM    <DIR>          PCC
02/17/2026  10:40 AM           561,152 pcre2-16.dll
02/17/2026  10:40 AM             2,445 Readme.md
02/17/2026  10:40 AM            43,520 RefIccMAX.dll
02/17/2026  10:40 AM             6,129 RunTests.bat
02/17/2026  10:40 AM             6,021 RunTests.sh
02/17/2026  10:41 AM    <DIR>          SpecRef
02/17/2026  10:40 AM            60,960 sRGB_v4_ICC_preference.icc
02/17/2026  10:40 AM             2,117 TestingProfilesReadme.txt
02/17/2026  10:40 AM           467,968 tiff.dll
02/17/2026  10:40 AM         2,678,272 wxbase32u_vc_x64_custom.dll
02/17/2026  10:40 AM         7,665,152 wxmsw32u_core_vc_x64_custom.dll
02/17/2026  10:40 AM            90,112 zlib1.dll
              42 File(s)    155,431,726 bytes
              17 Dir(s)  55,047,827,456 bytes free

C:\tmp\iccDEV-Testing>tree
Folder PATH listing for volume Windows
Volume serial number is 4ADC-2BFC
C:.
├───ApplyDataFiles
├───Calc
├───CalcTest
├───CMYK-3DLUTs
├───Display
├───docs
├───Encoding
├───HDR
├───hybrid
│   ├───Data
│   ├───ICC
│   └───Results
├───ICS
├───mcs
│   ├───Flexo-CMYKOGP
│   └───Spot-MVIS
├───Named
├───Overprint
│   └───Spot-OSIM
├───PCC
│   └───CustomObservers
└───SpecRef

C:\tmp\iccDEV-Testing>date
The current date is: Tue 02/17/2026

@xsscx
Copy link
Member Author

xsscx commented Feb 17, 2026

Maintainer Repro

2026-02-17 22:15:00 UTC

Tested updated CMake Presets for Release and Debug

Windows

git clone https://github.com/InternationalColorConsortium/iccDEV.git
cd iccDEV
git fetch origin pull/589/head:pr-589
git checkout pr-589
vcpkg integrate install
vcpkg install
cmake --preset vs2022-x64 -S Build/Cmake -B out/vs2022-x64
cmake --build out/vs2022-x64 --config Release -- /m /maxcpucount

Linux

git clone https://github.com/InternationalColorConsortium/iccDEV.git
cd iccDEV
git fetch origin pull/589/head:pr-589
git checkout pr-589
cmake --preset linux-clang -S Build/Cmake -B out/linux-clang
cmake --build out/linux-clang -j"$(nproc)"

macOS

git clone https://github.com/InternationalColorConsortium/iccDEV.git
cd iccDEV
git fetch origin pull/589/head:pr-589
git checkout pr-589
cmake --preset macos-xcode -S Build/Cmake -B out/macos-xcode
cmake --build out/macos-xcode --config Release -j"$(sysctl -n hw.ncpu)" 

@xsscx xsscx added Configuration Configuration Issues and removed libFuzzer libFuzzer Related pending labels Feb 17, 2026
@xsscx xsscx merged commit 9f53e42 into master Feb 17, 2026
21 checks passed
@xsscx xsscx added Merged Merged and removed Pending Merge Maintainer indicates Merge Pending and requests no further changes labels Feb 17, 2026
@xsscx xsscx deleted the cfl branch February 18, 2026 00:04
@xsscx
Copy link
Member Author

xsscx commented Feb 18, 2026

Post Merge Summary

2026-02-18 03:10:36 UTC

  • Matched for all expected outputs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Configuration Configuration Issues Merged Merged PR Pull Request WASM Web Assembly

Projects

None yet

3 participants