Skip to content

Add: Shared Libs & Exports#772

Merged
xsscx merged 3 commits intomasterfrom
ci-shared-exports
Apr 5, 2026
Merged

Add: Shared Libs & Exports#772
xsscx merged 3 commits intomasterfrom
ci-shared-exports

Conversation

@xsscx
Copy link
Copy Markdown
Member

@xsscx xsscx commented Apr 4, 2026

Pull Request Checklist

#764

  • 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 requested a review from ChrisCoxArt April 4, 2026 23:22
@xsscx xsscx self-assigned this Apr 4, 2026
@xsscx xsscx requested a review from maxderhak as a code owner April 4, 2026 23:22
@xsscx xsscx added the Merge Ready Maintainer indicates Merge Ready label Apr 4, 2026
@xsscx xsscx requested a review from dwtza as a code owner April 4, 2026 23:22
@xsscx xsscx added the Pending Merge Maintainer indicates Merge Pending and Requests No Further Changes label Apr 4, 2026
@xsscx xsscx force-pushed the ci-shared-exports branch from 612103b to df006f8 Compare April 4, 2026 23:24
@xsscx xsscx removed request for dwtza and maxderhak April 4, 2026 23:25
@xsscx xsscx added PR Pull Request and removed Pending Merge Maintainer indicates Merge Pending and Requests No Further Changes labels Apr 4, 2026
@xsscx
Copy link
Copy Markdown
Member Author

xsscx commented Apr 4, 2026

PR Author Summary

2026-04-04 23:30:22 UTC

This PR contains ci-shared-exports.

iccDLL Server

Description: iccDEV IIS ISAPI shared-library sample
Status code: 1
HTTP status: 200 OK
Headers:
Content-Type: text/plain; charset=utf-8
Cache-Control: no-store

Body:
ok

PR Detail

39 Files Modified

  • iccDLL Server
    • Source Code
    • Support Files
    • Documentation
  • ICC Web Assets
    • iccDLL Server HTML Integration
    • CMake Configuration
      • Shared Libs
      • Updates
      • vcpkg

QA Testing

2026-04-05 00:37:02 UTC

Workflow

  • macOS
  • Linux
  • Windows

Bare Metal

  • WinTel X5
  • WSL-2
  • macOS arm64
  • RasPi

Tool Checks

  • Install & Uninstall
  • Command Line Testing
    • Create Profiles
    • Run Tests

Library Checks

  • Install & Uninstall
  • Shared & Static
  • Symbol Counts
    • ~ 2k ProfLib
    • ~ 500 Xml
  • Symlink Chains
  • Validate Name Patterns
  • No RPATH on Install

Cross-platform symbol visibility for shared library

# Cross-platform symbol visibility for shared library
  # On MSVC, WINDOWS_EXPORT_ALL_SYMBOLS handles exports automatically.
  # On GCC/Clang, define ICCPROFLIBDLL_EXPORTS so ICCPROFLIB_API resolves
  # to __attribute__((visibility("default"))) for annotated symbols.
  if(NOT MSVC)
    target_compile_definitions(${TARGET_NAME} PRIVATE ICCPROFLIBDLL_EXPORTS)
  endif()
  # NOTE: -fvisibility=hidden is intentionally NOT used here.
  # IccProfLib has incomplete ICCPROFLIB_API annotations (~308 partial uses
  # across 43 headers), and IccXML has zero export annotations. Hidden
  # visibility causes undefined references when linking tools against the
  # shared libraries. Until complete export annotations are added, all
  # symbols remain at default visibility for shared builds.

@xsscx xsscx force-pushed the ci-shared-exports branch from df006f8 to e4f5e87 Compare April 4, 2026 23:41
@xsscx xsscx force-pushed the ci-shared-exports branch from e4f5e87 to dca2cf5 Compare April 4, 2026 23:43
@xsscx xsscx added Pending Merge Maintainer indicates Merge Pending and Requests No Further Changes ML Maintainer indicates topic related to Machine Learning and removed Merge Ready Maintainer indicates Merge Ready pending labels Apr 4, 2026
…, RPATH)

Add 4 new validation blocks to ci-shared-exports.yml:

standard-builds job:
- Symbol count assertions (IccProfLib2 >= 2000, IccXML2 >= 500)
- SONAME pattern validation (libIcc*[d].so.N)

source-install-consumer job:
- Symlink chain verification (.so -> .so.2 -> .so.2.x.y.z)
- RPATH absence check for installed binaries
- SONAME pattern validation for installed libraries
- Full governance hardening (credential cleanup, sanitize-sed.sh,
  all ::error::/::warning:: values wrapped in sanitize_line())

All checks Linux-only (readelf/readlink). macOS coverage uses
existing otool/nm checks.

Tested locally: 7322 proflib symbols, 2563 xmllib symbols,
SONAME libIccProfLib2d.so.2 / libIccXML2d.so.2 confirmed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@xsscx xsscx merged commit 9525166 into master Apr 5, 2026
1 check passed
@xsscx xsscx removed Pending Merge Maintainer indicates Merge Pending and Requests No Further Changes pending labels Apr 5, 2026
@xsscx
Copy link
Copy Markdown
Member Author

xsscx commented Apr 5, 2026

Discussion & Analysis

2026-04-05 02:03:25 UTC

Task: Code Review of ci-latest-release workflow
Problem: Packaging Failure following the #772 Merge
Result: Workflow correctly Failed during Packaging and indicated Failure
Baseline: Packaging Logic should be honored and indicate Failure
Resolution: #774

We can see success as the latest Release is now Commit 9525166 #772
https://github.com/InternationalColorConsortium/iccDEV/releases/tag/latest

Rolling Latest Build

Commit: 1a57166
Branch: issue-773
Date: 2026-04-05T00:56:45Z

Downloads

Platform Archive
Linux (GCC) iccdev-linux-gcc.zip
Linux (Clang) iccdev-linux-clang.zip
macOS (Clang) iccdev-macos-clang.zip
Windows (MSVC) iccdev-windows-msvc.zip

Install via Package Managers

Method Command
Homebrew brew install iccdev
NPM npm install iccdev
Docker Pull docker pull ghcr.io/internationalcolorconsortium/iccdev:latest
Docker Run docker run -it ghcr.io/internationalcolorconsortium/iccdev:latest

Auto-published by ci-latest-release on push to issue-773.

@xsscx xsscx linked an issue Apr 5, 2026 that may be closed by this pull request
@xsscx xsscx deleted the ci-shared-exports branch April 6, 2026 07:50
@xsscx xsscx mentioned this pull request Apr 6, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ML Maintainer indicates topic related to Machine Learning PR Pull Request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add: Shared Libs & Exports

2 participants