Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openexr for openSUSE:Factory checked in at 2026-03-12 22:20:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openexr (Old) and /work/SRC/openSUSE:Factory/.openexr.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openexr" Thu Mar 12 22:20:32 2026 rev:73 rq:1338241 version:3.4.6 Changes: -------- --- /work/SRC/openSUSE:Factory/openexr/openexr.changes 2026-03-06 18:17:48.158188357 +0100 +++ /work/SRC/openSUSE:Factory/.openexr.new.8177/openexr.changes 2026-03-12 22:22:07.465905829 +0100 @@ -1,0 +2,7 @@ +Wed Mar 11 08:51:10 UTC 2026 - Petr Gajdos <[email protected]> + +- added patches + fix build with glibc 2.43 [bsc#1258747] + * openexr-glibc-2.43.patch + +------------------------------------------------------------------- New: ---- openexr-glibc-2.43.patch ----------(New B)---------- New: fix build with glibc 2.43 [bsc#1258747] * openexr-glibc-2.43.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openexr.spec ++++++ --- /var/tmp/diff_new_pack.fvO2cz/_old 2026-03-12 22:22:08.285939754 +0100 +++ /var/tmp/diff_new_pack.fvO2cz/_new 2026-03-12 22:22:08.289939919 +0100 @@ -35,6 +35,8 @@ URL: https://www.openexr.com/ Source0: https://github.com/AcademySoftwareFoundation/openexr/archive/v%{version}.tar.gz Source2: baselibs.conf +# fix build with glibc 2.43 [bsc#1258747] +Patch0: openexr-glibc-2.43.patch BuildRequires: cmake >= 3.12 BuildRequires: freeglut-devel BuildRequires: gcc%{?force_gcc_version} ++++++ openexr-glibc-2.43.patch ++++++ >From c6e25f46d9b448cb2a3a74c76624a761212f30b3 Mon Sep 17 00:00:00 2001 From: Cary Phillips <[email protected]> Date: Sun, 22 Feb 2026 12:39:00 -0800 Subject: [PATCH 1/5] Fix build failure with glibc 2.43 due to C11 threads.h conflicts Fix conflicting once_flag, ONCE_FLAG_INIT, and call_once definitions when building with glibc 2.43, which now includes C11 <threads.h> support Detect <threads.h> availability and use standard C11 thread primitives when present, falling back to pthread or Windows implementations otherwise CI This also adds a new Linux build (#12) using a Fedora Rawhide container to test against glibc 2.43 Signed-off-by: Cary Phillips <[email protected]> --- .github/workflows/ci_steps.yml | 15 +++++++++ .github/workflows/ci_workflow.yml | 12 +++++++- src/lib/OpenEXRCore/internal_thread.h | 44 ++++++++++++++++++++++----- 3 files changed, 62 insertions(+), 9 deletions(-) Index: openexr-3.4.6/.github/workflows/ci_steps.yml =================================================================== --- openexr-3.4.6.orig/.github/workflows/ci_steps.yml +++ openexr-3.4.6/.github/workflows/ci_steps.yml @@ -120,6 +120,21 @@ jobs: shell: bash + - name: Report C Runtime Version + run: | + if [[ "$RUNNER_OS" == "Linux" ]]; then + ldd --version 2>&1 | head -1 || true + elif [[ "$RUNNER_OS" == "macOS" ]]; then + echo "macOS SDK: $(xcrun --show-sdk-version 2>/dev/null || echo 'unknown')" + fi + shell: bash + + - name: Install Build Dependencies (Fedora) + if: startsWith(inputs.container, 'fedora:') + run: | + dnf install -y gcc gcc-c++ cmake make git wget libdeflate-devel + shell: bash + - name: Determine MSYS2 Packages if: inputs.msystem != '' run: | Index: openexr-3.4.6/.github/workflows/ci_workflow.yml =================================================================== --- openexr-3.4.6.orig/.github/workflows/ci_workflow.yml +++ openexr-3.4.6/.github/workflows/ci_workflow.yml @@ -65,7 +65,7 @@ jobs: build: ${{ matrix.build }} # DockerHub: https://hub.docker.com/u/aswf # Source: https://github.com/AcademySoftwareFoundation/aswf-docker - container: aswf/ci-openexr:${{ matrix.vfx-cy || '2024' }} + container: ${{ matrix.container || format('aswf/ci-openexr:{0}', matrix.vfx-cy || '2024') }} cmake: ${{ matrix.cmake || '3.14.7' }} cxx-standard: ${{ matrix.cxx-standard || '17' }} cxx-compiler: ${{ matrix.cxx-compiler || 'g++' }} @@ -147,6 +147,16 @@ jobs: RUN_TESTING: OFF validate_install: OFF + - build: 12 + label: Fedora Rawhide + container: fedora:rawhide + cmake: '3.31.6' + OPENEXR_FORCE_INTERNAL_IMATH: 'ON' + OPENEXR_FORCE_INTERNAL_DEFLATE: 'OFF' + OPENEXR_FORCE_INTERNAL_OPENJPH: 'ON' + OPENEXR_INSTALL_DOCS: 'OFF' + validate_install: 'OFF' + macOS: name: 'macOS.${{ matrix.build}}: ${{ matrix.label }}' uses: ./.github/workflows/ci_steps.yml Index: openexr-3.4.6/src/lib/OpenEXRCore/internal_thread.h =================================================================== --- openexr-3.4.6.orig/src/lib/OpenEXRCore/internal_thread.h +++ openexr-3.4.6/src/lib/OpenEXRCore/internal_thread.h @@ -8,10 +8,12 @@ #include "openexr_config.h" -// Thread-safe single initiatization, using InitOnceExecuteOnce on Windows, -// pthread_once elsewhere, or a simple variable if threading is completely disabled. #if ILMTHREAD_THREADING_ENABLED # ifdef _WIN32 +/* + * On Windows, use native InitOnceExecuteOnce, which avoids MSVC's + * problematic <threads.h> + */ # include <windows.h> # define ONCE_FLAG_INIT INIT_ONCE_STATIC_INIT typedef INIT_ONCE once_flag; @@ -27,7 +29,16 @@ call_once (once_flag* flag, void (*func) { InitOnceExecuteOnce (flag, once_init_fn, (PVOID) func, NULL); } +# elif __has_include(<threads.h>) +/* + * On Linux (glibc 2.28+), use standard <threads.h> + */ +# include <threads.h> + # else +/* + * No <threads.h> on macOS and older Linux distros: fall back to pthreads + */ # include <pthread.h> # define ONCE_FLAG_INIT PTHREAD_ONCE_INIT typedef pthread_once_t once_flag; @@ -36,9 +47,17 @@ call_once (once_flag* flag, void (*func) { (void) pthread_once (flag, func); } + # endif -#else -# define ONCE_FLAG_INIT 0 + +#endif /* ILMTHREAD_THREADING_ENABLED */ + +/* + * If threading is disabled, or call_once/ONCE_FLAG_INIT wasn't declared + * above, declare a default implementation. + */ +#ifndef ONCE_FLAG_INIT +# define ONCE_FLAG_INIT 0 typedef int once_flag; static inline void call_once (once_flag* flag, void (*func) (void)) @@ -50,4 +69,5 @@ call_once (once_flag* flag, void (*func) } #endif + #endif /* OPENEXR_PRIVATE_THREAD_H */
