Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libaec for openSUSE:Factory checked in at 2026-01-29 17:47:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libaec (Old) and /work/SRC/openSUSE:Factory/.libaec.new.1995 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libaec" Thu Jan 29 17:47:11 2026 rev:10 rq:1329825 version:1.1.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libaec/libaec.changes 2025-06-23 14:57:17.101861643 +0200 +++ /work/SRC/openSUSE:Factory/.libaec.new.1995/libaec.changes 2026-01-29 17:49:43.661520617 +0100 @@ -1,0 +2,6 @@ +Thu Jan 29 14:14:57 UTC 2026 - Manfred Schwarb <[email protected]> + +- Update to version 1.1.5: + * cmake changes and fixes + +------------------------------------------------------------------- Old: ---- libaec-v1.1.4.tar.gz New: ---- libaec-v1.1.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libaec.spec ++++++ --- /var/tmp/diff_new_pack.BekXaQ/_old 2026-01-29 17:49:44.237545052 +0100 +++ /var/tmp/diff_new_pack.BekXaQ/_new 2026-01-29 17:49:44.237545052 +0100 @@ -1,7 +1,7 @@ # # spec file for package libaec # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libaec -Version: 1.1.4 +Version: 1.1.5 Release: 0 Summary: Adaptive Entropy Coding library License: BSD-2-Clause @@ -94,10 +94,8 @@ %install %cmake_install -%post -n libaec0 -p /sbin/ldconfig -%post -n libsz2 -p /sbin/ldconfig -%postun -n libaec0 -p /sbin/ldconfig -%postun -n libsz2 -p /sbin/ldconfig +%ldconfig_scriptlets -n libaec0 +%ldconfig_scriptlets -n libsz2 %files -n libaec0 %license LICENSE.txt ++++++ libaec-v1.1.4.tar.gz -> libaec-v1.1.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/.github/workflows/cmake-multi-platform.yml new/libaec-v1.1.5/.github/workflows/cmake-multi-platform.yml --- old/libaec-v1.1.4/.github/workflows/cmake-multi-platform.yml 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/.github/workflows/cmake-multi-platform.yml 2026-01-23 09:42:36.000000000 +0100 @@ -12,14 +12,15 @@ # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable. fail-fast: false - # Set up a matrix to run the following 3 configurations: + # Set up a matrix to run the following 5 configurations: # 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator> # 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator> # 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator> + # 4. <MacOS, Release, latest GCC compiler toolchain on the default runner image, default generator> + # 5. <MacOS, Release, latest Clang compiler toolchain on the default runner image, default generator> # - # To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list. matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, macos-latest] build_type: [Release] c_compiler: [gcc, clang, cl] include: @@ -39,6 +40,8 @@ c_compiler: clang - os: ubuntu-latest c_compiler: cl + - os: macos-latest + c_compiler: cl steps: - uses: actions/checkout@v3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/CHANGELOG.md new/libaec-v1.1.5/CHANGELOG.md --- old/libaec-v1.1.4/CHANGELOG.md 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/CHANGELOG.md 2026-01-23 09:42:36.000000000 +0100 @@ -1,6 +1,16 @@ # libaec Changelog All notable changes to libaec will be documented in this file. +## [1.1.5] - 2026-01-23 + +### Changed +- CMake now builds libaec and libsz on MacOS with the same version + and compatibility version as libtool. + +### Fixed +- CMake fixes by Antonio Rojas, Christoph Junghans, Orion Poplawski + and malcolm-vivosa + ## [1.1.4] - 2025-06-12 ### Changed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/CMakeLists.txt new/libaec-v1.1.5/CMakeLists.txt --- old/libaec-v1.1.4/CMakeLists.txt 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/CMakeLists.txt 2026-01-23 09:42:36.000000000 +0100 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.26...3.31) -project(libaec LANGUAGES C VERSION 1.1.4) +project(libaec LANGUAGES C VERSION 1.1.5) option(BUILD_SHARED_LIBS "OFF: do not build shared libraries. ON (default): build shared libraries" ON) option(BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" ON) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/LICENSE.txt new/libaec-v1.1.5/LICENSE.txt --- old/libaec-v1.1.4/LICENSE.txt 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/LICENSE.txt 2026-01-23 09:42:36.000000000 +0100 @@ -1,4 +1,4 @@ -Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh +Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh All rights reserved. Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/configure.ac new/libaec-v1.1.5/configure.ac --- old/libaec-v1.1.4/configure.ac 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/configure.ac 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ m4_define([VERSION_MAJOR], [1]) m4_define([VERSION_MINOR], [1]) -m4_define([VERSION_PATCH], [4]) +m4_define([VERSION_PATCH], [5]) AC_INIT([libaec],[VERSION_MAJOR.VERSION_MINOR.VERSION_PATCH],[[email protected]]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/include/libaec.h.in new/libaec-v1.1.5/include/libaec.h.in --- old/libaec-v1.1.4/include/libaec.h.in 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/include/libaec.h.in 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file libaec.h * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/include/szlib.h new/libaec-v1.1.5/include/szlib.h --- old/libaec-v1.1.4/include/szlib.h 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/include/szlib.h 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file szlib.h * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/packaging/CMakeLists.txt new/libaec-v1.1.5/packaging/CMakeLists.txt --- old/libaec-v1.1.4/packaging/CMakeLists.txt 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/packaging/CMakeLists.txt 2026-01-23 09:42:36.000000000 +0100 @@ -18,21 +18,28 @@ set(TARGETS_EXPORT) if(BUILD_SHARED_LIBS) set(TARGETS_EXPORT aec-shared-objects sz-shared-objects aec-shared sz-shared) + + install(TARGETS ${TARGETS_EXPORT} + EXPORT libaec_shared_targets + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + + install(EXPORT libaec_shared_targets + DESTINATION "${libaec_INSTALL_CMAKEDIR}" + NAMESPACE libaec:: + FILE libaec_shared-targets.cmake) endif() if(BUILD_STATIC_LIBS) - set(TARGETS_EXPORT - ${TARGETS_EXPORT} - aec-static-objects sz-static-objects aec-static sz-static) -endif() + set(TARGETS_EXPORT aec-static-objects sz-static-objects aec-static sz-static) -install(TARGETS ${TARGETS_EXPORT} - EXPORT libaec_targets - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + install(TARGETS ${TARGETS_EXPORT} + EXPORT libaec_static_targets + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") -install(EXPORT libaec_targets - DESTINATION "${libaec_INSTALL_CMAKEDIR}" - NAMESPACE libaec:: - FILE libaec-targets.cmake) + install(EXPORT libaec_shared_targets + DESTINATION "${libaec_INSTALL_CMAKEDIR}" + NAMESPACE libaec:: + FILE libaec_static-targets.cmake) +endif() # Cpack configuration mainly for Windows installer set(CPACK_PACKAGE_NAME "libaec") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/packaging/libaec-config.cmake new/libaec-v1.1.5/packaging/libaec-config.cmake --- old/libaec-v1.1.4/packaging/libaec-config.cmake 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/packaging/libaec-config.cmake 2026-01-23 09:42:36.000000000 +0100 @@ -35,11 +35,10 @@ # AEC library (according to the value of # libaec_USE_STATIC_LIBS). -include(${CMAKE_CURRENT_LIST_DIR}/libaec-targets.cmake) - # Alias static or shared targets depending on libaec_USE_STATIC_LIBS if(libaec_USE_STATIC_LIBS) - if(TARGET libaec::aec-static AND TARGET libaec::sz-static) + include(${CMAKE_CURRENT_LIST_DIR}/libaec_static-targets.cmake) + if(TARGET libaec::aec-static AND TARGET libaec::sz-static AND NOT TARGET libaec::aec AND NOT TARGET libaec::sz) add_library(libaec::aec ALIAS libaec::aec-static) add_library(libaec::sz ALIAS libaec::sz-static) else() @@ -48,7 +47,9 @@ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() - if(TARGET libaec::aec-shared AND TARGET libaec::sz-shared) + include(${CMAKE_CURRENT_LIST_DIR}/libaec_shared-targets.cmake) + + if(TARGET libaec::aec-shared AND TARGET libaec::sz-shared AND NOT TARGET libaec::aec AND NOT TARGET libaec::sz) add_library(libaec::aec ALIAS libaec::aec-shared) add_library(libaec::sz ALIAS libaec::sz-shared) else() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/CMakeLists.txt new/libaec-v1.1.5/src/CMakeLists.txt --- old/libaec-v1.1.4/src/CMakeLists.txt 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/CMakeLists.txt 2026-01-23 09:42:36.000000000 +0100 @@ -39,10 +39,24 @@ PRIVATE "LIBAEC_BUILD") add_library(aec-shared SHARED "$<TARGET_OBJECTS:aec-shared-objects>") target_link_libraries(aec-shared PUBLIC aec-shared-objects) + + # Shared libaec versioning + set(libaec_VERSION_MAJOR 0) + set(libaec_VERSION_MINOR 1) + set(libaec_VERSION_PATCH 5) + + # libtool compatible versioning for Mach-O + math(EXPR libaec_MACHO_COMPATIBILITY_VERSION + "${libaec_VERSION_MAJOR} + ${libaec_VERSION_MINOR} + 1") + set(libaec_MACHO_CURRENT_VERSION + "${libaec_MACHO_COMPATIBILITY_VERSION}.${libaec_VERSION_PATCH}") + set_target_properties(aec-shared PROPERTIES - VERSION 0.1.4 - SOVERSION 0 + VERSION "${libaec_VERSION_MAJOR}.${libaec_VERSION_MINOR}.${libaec_VERSION_PATCH}" + SOVERSION "${libaec_VERSION_MAJOR}" + MACHO_COMPATIBILITY_VERSION "${libaec_MACHO_COMPATIBILITY_VERSION}" + MACHO_CURRENT_VERSION "${libaec_MACHO_CURRENT_VERSION}" OUTPUT_NAME aec) # Shared libsz @@ -55,10 +69,23 @@ "$<TARGET_OBJECTS:sz-shared-objects>" "$<TARGET_OBJECTS:aec-shared-objects>") target_link_libraries(sz-shared PUBLIC sz-shared-objects) + + # Shared libsz versioning + set(sz_VERSION_MAJOR 2) + set(sz_VERSION_MINOR 0) + set(sz_VERSION_PATCH 1) + + math(EXPR sz_MACHO_COMPATIBILITY_VERSION + "${sz_VERSION_MAJOR} + ${sz_VERSION_MINOR} + 1") + set(sz_MACHO_CURRENT_VERSION + "${sz_MACHO_COMPATIBILITY_VERSION}.${sz_VERSION_PATCH}") + set_target_properties(sz-shared PROPERTIES - VERSION 2.0.1 - SOVERSION 2 + VERSION "${sz_VERSION_MAJOR}.${sz_VERSION_MINOR}.${sz_VERSION_PATCH}" + SOVERSION "${sz_VERSION_MAJOR}" + MACHO_COMPATIBILITY_VERSION "${sz_MACHO_COMPATIBILITY_VERSION}" + MACHO_CURRENT_VERSION "${sz_MACHO_CURRENT_VERSION}" OUTPUT_NAME sz) if(MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC")) set_target_properties(sz-shared PROPERTIES OUTPUT_NAME szip) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/Makefile.am new/libaec-v1.1.5/src/Makefile.am --- old/libaec-v1.1.4/src/Makefile.am 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/Makefile.am 2026-01-23 09:42:36.000000000 +0100 @@ -5,7 +5,7 @@ libaec_la_SOURCES = encode.c encode_accessors.c decode.c vector.c\ encode.h encode_accessors.h decode.h vector.h libaec_la_CPPFLAGS = $(AM_CPPFLAGS) -DLIBAEC_BUILD $(LIBAEC_SHARED) -libaec_la_LDFLAGS = -version-info 1:4:1 -no-undefined +libaec_la_LDFLAGS = -version-info 1:5:1 -no-undefined libsz_la_SOURCES = sz_compat.c libsz_la_LIBADD = libaec.la libsz_la_CPPFLAGS = $(AM_CPPFLAGS) -DLIBAEC_BUILD $(LIBAEC_SHARED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/decode.c new/libaec-v1.1.5/src/decode.c --- old/libaec-v1.1.4/src/decode.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/decode.c 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file decode.c * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/decode.h new/libaec-v1.1.5/src/decode.h --- old/libaec-v1.1.4/src/decode.h 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/decode.h 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file decode.h * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/encode.c new/libaec-v1.1.5/src/encode.c --- old/libaec-v1.1.4/src/encode.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/encode.c 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file encode.c * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/encode.h new/libaec-v1.1.5/src/encode.h --- old/libaec-v1.1.4/src/encode.h 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/encode.h 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file encode.h * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/encode_accessors.c new/libaec-v1.1.5/src/encode_accessors.c --- old/libaec-v1.1.4/src/encode_accessors.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/encode_accessors.c 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file encode_accessors.c * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/encode_accessors.h new/libaec-v1.1.5/src/encode_accessors.h --- old/libaec-v1.1.4/src/encode_accessors.h 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/encode_accessors.h 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file encode_accessors.h * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/graec.c new/libaec-v1.1.5/src/graec.c --- old/libaec-v1.1.4/src/graec.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/graec.c 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file aec.c * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/sz_compat.c new/libaec-v1.1.5/src/sz_compat.c --- old/libaec-v1.1.4/src/sz_compat.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/sz_compat.c 2026-01-23 09:42:36.000000000 +0100 @@ -2,7 +2,7 @@ * @file sz_compat.c * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libaec-v1.1.4/src/utime.c new/libaec-v1.1.5/src/utime.c --- old/libaec-v1.1.4/src/utime.c 2025-06-12 13:06:42.000000000 +0200 +++ new/libaec-v1.1.5/src/utime.c 2026-01-23 09:42:36.000000000 +0100 @@ -4,7 +4,7 @@ * @author Thomas Jahns, Deutsches Klimarechenzentrum * * @section LICENSE - * Copyright 2025 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh + * Copyright 2026 Mathis Rosenhauer, Moritz Hanke, Joerg Behrens, Luis Kornblueh * All rights reserved. * * Redistribution and use in source and binary forms, with or without
