Skip to content

feat: SG-42145: Common dependency updates (aja, atomic_ops, gc, openjph, pcre2 and spdlog)#1075

Open
mcoliver wants to merge 33 commits intoAcademySoftwareFoundation:mainfrom
mcoliver:dependency_updates
Open

feat: SG-42145: Common dependency updates (aja, atomic_ops, gc, openjph, pcre2 and spdlog)#1075
mcoliver wants to merge 33 commits intoAcademySoftwareFoundation:mainfrom
mcoliver:dependency_updates

Conversation

@mcoliver
Copy link
Contributor

@mcoliver mcoliver commented Jan 22, 2026

Summarize your change.

Created a script to check common dependencies against their most recent releases. Useful for seeing if there are updates to dependency packages. I used that script to identify a few that were behind on bug fixes, security updates, and features. None are breaking changes.

Describe the reason for the change.

There were quite a few dependencies that were running old versions. Newer versions fix bugs and security issues along with exposing new features that can be harnessed for future performance optimizations and feature extensions.

Fixes:
#1096
#1097
#1098
#1099
#1100
#1102
#1103
#1104
#1106
#1108
#1105
#1110
#1111

Describe what you have tested and on which operating system.

builds locally. Will monitor CICD on the PR. Tested various images and videos affected by the packages that were updated with success (jpeg, webp, png, libraw, etc..)

Add a list of changes, and note any that might need special attention during the review.

I linked out to each changelog and commit diff for the various dependencies. I made a best effort to ensure there are no breaking changes and stuck to minor version updates.

One thing to note: Libraw does deprecate some older cameras but also adds support for a bunch of new ones along with other new features. Feels like a worthwhile tradeoff but should be noted. https://github.com/LibRaw/LibRaw/blob/d20315b6e7b0162d3b0d7820dcbaf4de716b3e77/Changelog.txt#L50

If possible, provide screenshots.

Numerous improvements, supported hardware, and bug fixes
aja-video/libajantv2@ntv2_17_1_0...ntv2_17_6_0

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
bdwgc/libatomic_ops@0445739...v7.10.0

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
You can run this script to quickly check for new versions of common dependencies. It checks releases first and then tags. Best effort to discover the latest release or tag that conforms to the versioning schema per package.  Ignores rc, beta, dev, test, pre, and alpha named versions.  There is some messiness out there with versioning.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Performance improvements and optimizations
videolan/dav1d@1.4.3...1.5.3

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
fixes build errors
aja-video/libajantv2@ntv2_17_6_0...ntv2_17_6_0_hotfix1

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous security and bug fixes.

libexpat/libexpat@R_2_6_3...R_2_7_3
https://github.com/libexpat/libexpat/blob/master/expat/Changes

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous bug fixes and features
https://github.com/bdwgc/bdwgc/blob/master/ChangeLog
bdwgc/bdwgc@v8.2.2...v8.2.10

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Bug fixes and feature updates

https://github.com/uclouvain/openjpeg/blob/master/CHANGELOG.md

uclouvain/openjpeg@v2.5.0...v2.5.4

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous bug fixes and enhancements
aous72/OpenJPH@0.21.3...0.26.0

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Numerous bug fixes and improvements

https://github.com/PCRE2Project/pcre2/blob/pcre2-10.47/ChangeLog
PCRE2Project/pcre2@pcre2-10.43...pcre2-10.47

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
bug fixes, security fixes, and feature improvements

https://github.com/gabime/spdlog/releases

gabime/spdlog@v1.11.0...v1.17.0

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
forgot to update the hash

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
formatting

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jan 22, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

apparently it wants to squash this all into one line.   ¯\_(ツ)_/¯

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
uses lib64 since  v0.24.  https://github.com/aous72/OpenJPH/releases/tag/0.24.0

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
updated hash to be accurate

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Windows builds failing on spdlog and oiio because they bundle fmt which requires a utf-8 flag when compiling  on windows.

Error was D:\a\OpenRV\OpenRV\_build\RV_DEPS_SPDLOG\install\include\spdlog\fmt\bundled\base.h(465,28): error C2338: static_assert failed: 'Unicode support requires compiling with /utf-8' [D:\a\OpenRV\OpenRV\_build\src\lib\base\TwkUtil\TwkUtil.vcxproj]

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
openjph now support debug envs so lets support them as well
https://github.com/aous72/OpenJPH/blob/8e597d11715552a6c63e3963d940fa29a4c5831b/src/core/CMakeLists.txt#L119

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
fixed formatting

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
format fixes

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Builds failing with LINK : fatal error LNK1181: cannot open input file '..\..\..\..\RV_DEPS_AJA\install\lib\ajantv2_vs143_MT.lib'

Install log references Installing: D:/a/OpenRV/OpenRV/_build/RV_DEPS_AJA/install/lib/ajantv2.lib so let's change the lib name

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
@mcoliver
Copy link
Contributor Author

pre-commit.ci autofix

need to move the debug postfix.  According to CICD build logs windows debug wants to build D:/a/OpenRV/OpenRV/_build/RV_DEPS_OPENJPH/build/src/core/Debug/openjph.0.26d.lib

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…dependency_updates

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
@mcoliver
Copy link
Contributor Author

@cedrik-fuoco-adsk apologies for all the ci/cd build runs to iron out the kinks. Setting up all the dev envs to build locally is not possible for me at the moment. I just pushed the last one that should fix the debug windows build name for openjph. That should be the last one

AJA updated the release lib name to match macos/linux, but kept the _vs143_MT suffix for the debug lib.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
@mcoliver
Copy link
Contributor Author

@cedrik-fuoco-adsk would it be helpful for me to break this into separate PR's per dependency? I know it's a lot of upgrades all at once.

@cedrik-fuoco-adsk
Copy link
Contributor

I think it's ok @mcoliver. They all do different things. Having a single build with everything should help with the testing. The two main one that really need testing are AJA and OIIO.

bedcrypto.lib(md.obj) : error LNK2019: unresolved external symbol __imp_ferror referenced in function mbedtls_md_file
Copy link

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 updates several third-party dependency versions used by the CMake dependency build system and adds a helper script to compare the pinned versions in CYCOMMON.cmake against upstream Git tags.

Changes:

  • Bump multiple common dependency versions/hashes in cmake/defaults/CYCOMMON.cmake (e.g., spdlog, pcre2, gc, openjpeg/openjph, libpng, libraw, webp, dav1d, etc.).
  • Adjust several dependency build recipes (download artifacts switched to .tar.gz in a few places; OpenJPH naming updated for Debug postfix handling; Windows /utf-8 flags added for spdlog/OIIO).
  • Add check_dependency_versions.py to scan CYCOMMON.cmake and report latest upstream tags.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
cmake/dependencies/spdlog.cmake Switch spdlog download to tarball; add Windows UTF-8 compile flag handling.
cmake/dependencies/pcre2.cmake Switch PCRE2 download artifact from zip to tarball.
cmake/dependencies/openjph.cmake Update OpenJPH library naming for Debug postfix (notably on Windows).
cmake/dependencies/oiio.cmake Add Windows UTF-8 compile flag handling for OIIO consumers/build.
cmake/dependencies/gc.cmake Switch bdwgc download artifact from zip to tarball.
cmake/dependencies/atomic_ops.cmake Update atomic_ops download URL to tagged release under bdwgc repo.
cmake/dependencies/aja.cmake Adjust Windows Debug naming selection and force mbedtls runtime setting in Debug.
cmake/defaults/CYCOMMON.cmake Central version/hash bumps for common dependencies.
check_dependency_versions.py New script to compare pinned dependency versions vs latest upstream tags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


IF(RV_TARGET_WINDOWS)
LIST(PREPEND _configure_options "-G ${CMAKE_GENERATOR}")
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8")
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

Passing -DCMAKE_CXX_FLAGS=/utf-8 on the CMake command line hard-sets the cache value for CMAKE_CXX_FLAGS inside the ExternalProject, which can override toolchain-provided flags (and any existing CMAKE_CXX_FLAGS content). Prefer adding /utf-8 via target compile options in that project (or appending to the existing flags, e.g. including the prior value) rather than replacing the whole variable.

Suggested change
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8")
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} /utf-8")

Copilot uses AI. Check for mistakes.
Comment on lines +39 to 45
RV_MAKE_STANDARD_LIB_NAME("openjph.${_version_major}.${_version_minor}${RV_OPENJPH_DEBUG_POSTFIX}" "${RV_DEPS_OPENJPH_VERSION}" "SHARED" "")
SET(_libname
"openjph.${_version_major}.${_version_minor}.lib"
"openjph.${_version_major}.${_version_minor}${RV_OPENJPH_DEBUG_POSTFIX}.lib"
)
SET(_implibpath
${_lib_dir}/${_libname}
)
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

On Windows this overrides _libname (which RV_COPY_LIB_BIN_FOLDERS() expects to be the DLL name for staging) with the import library name ending in .lib. That will make the stage target depend on ${RV_STAGE_BIN_DIR}/${_libname} where _libname is now a .lib that lives in ${_lib_dir}, causing staging/build failures. Keep _libname as the DLL name from RV_MAKE_STANDARD_LIB_NAME, and instead override _implibname/_implibpath (or use a separate variable) for the import library.

Copilot uses AI. Check for mistakes.
SET(_make_command
ninja
)
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8")
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

Passing -DCMAKE_CXX_FLAGS=/utf-8 on the CMake command line hard-sets the cache value for CMAKE_CXX_FLAGS inside the ExternalProject, which can override toolchain-provided flags (and any existing CMAKE_CXX_FLAGS content). Prefer adding /utf-8 via target compile options in that project (or appending to the existing flags, e.g. including the prior value) rather than replacing the whole variable.

Suggested change
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8")
LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} /utf-8")

Copilot uses AI. Check for mistakes.
@cedrik-fuoco-adsk cedrik-fuoco-adsk added the community Contribution from the Open RV Community label Feb 17, 2026
@cedrik-fuoco-adsk cedrik-fuoco-adsk changed the title Common dependency updates SG-42145: Common dependency updates Feb 18, 2026
@cedrik-fuoco-adsk cedrik-fuoco-adsk changed the title SG-42145: Common dependency updates feat: SG-42145: Common dependency updates Feb 19, 2026
@cedrik-fuoco-adsk
Copy link
Contributor

Hi @mcoliver,

Do you mind splitting libpng in other PR?

We would like to merge libpng faster because the new version fixes a CVE.
If you don't have time, I can create another PR for libpng.

@cedrik-fuoco-adsk cedrik-fuoco-adsk changed the title feat: SG-42145: Common dependency updates feat: SG-42145: Common dependency updates (aja, atomic_ops, gc, openjph, pcre2 and spdlog) Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Contribution from the Open RV Community tracked

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants