Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package occt for openSUSE:Factory checked in at 2022-07-06 15:41:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/occt (Old) and /work/SRC/openSUSE:Factory/.occt.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "occt" Wed Jul 6 15:41:46 2022 rev:9 rq:986904 version:7.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/occt/occt.changes 2022-07-02 15:34:24.507005716 +0200 +++ /work/SRC/openSUSE:Factory/.occt.new.1548/occt.changes 2022-07-06 15:41:57.990514306 +0200 @@ -1,0 +2,9 @@ +Mon Jul 4 22:42:11 UTC 2022 - Stefan Br??ns <[email protected]> + +- Use verifiable source tarball from upstream +- Use soversion including minor version (i.e. 7_6) to avoid + incompatibilities due to ABI changes: + https://tracker.dev.opencascade.org/view.php?id=32856, add + fix_soversion_minor.patch + +------------------------------------------------------------------- Old: ---- _service occt-7.6.2.obscpio occt.obsinfo New: ---- fix_soversion_minor.patch occt-7.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ occt.spec ++++++ --- /var/tmp/diff_new_pack.wSIEi7/_old 2022-07-06 15:41:59.582516651 +0200 +++ /var/tmp/diff_new_pack.wSIEi7/_new 2022-07-06 15:41:59.586516658 +0200 @@ -16,10 +16,13 @@ # +%define OCCT_TAG 7_6_2 + Name: occt Version: 7.6.2 Release: 0 -%define soname 7 +%define soname 7_6 +%define sover 7.6 Summary: OpenCASCADE Official Edition License: LGPL-2.1-only WITH OCCT-exception-1.0 Group: Productivity/Graphics/CAD @@ -27,7 +30,9 @@ # Password protected URL, factory validation will fail # https://www.opencascade.com/sites/default/files/private/occt/OCC_%%{version}_release/opencascade-%%{version}.tgz # getting it from git for patch level releases not existing as tar ball -Source0: occt-%{version}.tar.xz +Source0: https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V%{OCCT_TAG}.tar.gz#/occt-%{version}.tar.gz +# PATCH-FIX_UPSTREAM - include minor version in SOVERSION +Patch0: https://git.dev.opencascade.org/gitweb/?p=occt.git;a=patch;h=75e2ba16951821ab6b435929272445d993845235#/fix_soversion_minor.patch Patch1: fix_build.patch Provides: OpenCASCADE = %{version} BuildRequires: bison @@ -89,6 +94,7 @@ Summary: OpenCASCADE libraries Group: System/Libraries Requires: %{name}-resources +Obsoletes: libopencascade7 = 7.6.2 %description -n libopencascade%{soname} This package contain the needed libraries for OpenCASCADE @@ -102,7 +108,7 @@ This package contains the DRAWEXE executable of OpenCASCADE. %prep -%autosetup -p1 +%autosetup -p1 -n OCCT-%{OCCT_TAG} %build %cmake \ @@ -115,8 +121,7 @@ %cmake_build cd .. -# Sidestep gendoc error (#32156) by adding -pdf option -./gendoc -refman -html -pdf -mathjax="%{_datadir}/javascript/mathjax" +./gendoc -refman -html -mathjax="%{_datadir}/javascript/mathjax" %install %cmake_install @@ -127,10 +132,11 @@ # fixing up broken files sed -i -e 's,'%{_lib}'\\${OCCT_INSTALL_BIN_LETTER}/,'%{_lib}'/,' %{buildroot}%{_libdir}/cmake/opencascade/* sed -i -e 's,/lib\$,/'%{_lib}'\$,' %{buildroot}%{_libdir}/cmake/opencascade/* +grep -C5 -E "BIN_LETTER|/lib" %{buildroot}%{_libdir}/cmake/opencascade/* rm -rf %buildroot/usr/share/doc -%fdupes -s %{buildroot} +%fdupes %{buildroot}%{_datadir} %post -n libopencascade%{soname} -p /sbin/ldconfig @@ -138,7 +144,7 @@ %files -n libopencascade%{soname} %license LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt -%_libdir/lib*.so.%{soname}* +%_libdir/lib*.so.%{sover}* %files resources %dir %{_datadir}/opencascade ++++++ fix_soversion_minor.patch ++++++ >From 75e2ba16951821ab6b435929272445d993845235 Mon Sep 17 00:00:00 2001 From: kgv <[email protected]> Date: Sat, 26 Feb 2022 19:29:44 +0300 Subject: [PATCH] 0032856: Configuration, CMake - SONAME should include minor version in addition to major to reflect ABI compatibility Added option BUILD_SOVERSION_NUMBERS to manage SOVERSION length. Default option value is set to 2 (major.minor) instead of previously used 1 (major), excluding Android/Emscripten/Windows platforms that use 0 by default. --- CMakeLists.txt | 14 ++++++++++++++ adm/cmake/occt_toolkit.cmake | 17 ++++++++++------- adm/cmake/vardescr.cmake | 3 +++ adm/qmake/OccToolkit.pri | 12 +++++++++++- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e6ad20280a..23dd2d377b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,20 @@ set_property (GLOBAL PROPERTY OCC_VERSION_MAJOR ${OCC_VERSION_MAJOR}) set_property (GLOBAL PROPERTY OCC_VERSION_MINOR ${OCC_VERSION_MINOR}) set_property (GLOBAL PROPERTY OCC_VERSION_MAINTENANCE ${OCC_VERSION_MAINTENANCE}) +# set soversion variable determining compatibility version on platforms with symlinks +# 0 - for empty, 1 - for major, 2 - for major.minor, 3 - for major.minor.maintenance +if (NOT BUILD_SOVERSION_NUMBERS) + set (BUILD_SOVERSION_NUMBERS "0" CACHE STRING "${BUILD_SOVERSION_NUMBERS_DESCR}" FORCE) + SET_PROPERTY(CACHE BUILD_SOVERSION_NUMBERS PROPERTY STRINGS 0 1 2 3) + + # update default state of soversion on different platforms + if (WIN32 OR ANDROID OR EMSCRIPTEN) + set (BUILD_SOVERSION_NUMBERS 0) + else() + set (BUILD_SOVERSION_NUMBERS 2) + endif() +endif() + set (INSTALL_TEST_CASES OFF CACHE BOOL "${INSTALL_TEST_CASES_DESCR}") # Regeneration of OCCT resource files diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake index 2f96c6f148..b3c83067b8 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -280,14 +280,17 @@ get_property (OCC_VERSION_MAJOR GLOBAL PROPERTY OCC_VERSION_MAJOR) get_property (OCC_VERSION_MINOR GLOBAL PROPERTY OCC_VERSION_MINOR) get_property (OCC_VERSION_MAINTENANCE GLOBAL PROPERTY OCC_VERSION_MAINTENANCE) -if (ANDROID) - # do not append version to the filename - set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_DEFS}") -else() - set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_DEFS}" - SOVERSION "${OCC_VERSION_MAJOR}" - VERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}") +set (OCC_SOVERSION "") +if (BUILD_SOVERSION_NUMBERS GREATER 2) + set (OCC_SOVERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}") +elseif (BUILD_SOVERSION_NUMBERS GREATER 1) + set (OCC_SOVERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}") +elseif (BUILD_SOVERSION_NUMBERS GREATER 0) + set (OCC_SOVERSION "${OCC_VERSION_MAJOR}") endif() +set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_DEFS}" + SOVERSION "${OCC_SOVERSION}" + VERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}") set (USED_TOOLKITS_BY_CURRENT_PROJECT) set (USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT) diff --git a/adm/cmake/vardescr.cmake b/adm/cmake/vardescr.cmake index 0733af0ac2..8212a0308b 100644 --- a/adm/cmake/vardescr.cmake +++ b/adm/cmake/vardescr.cmake @@ -28,6 +28,9 @@ Applies only for Debug configuration.") set (BUILD_SHARED_LIBRARY_NAME_POSTFIX_DESCR "Append the postfix to names of output libraries") +set (BUILD_SOVERSION_NUMBERS_DESCR +"Version numbers to put into SONAME: 0 - for empty, 1 - for major, 2 - for major.minor, 3 - for major.minor.maintenance") + set (BUILD_RELEASE_DISABLE_EXCEPTIONS_DESCR "Disables exceptions like Standard_OutOfRange in Release builds. Defines No_Exception macros for Release builds when enabled (default). diff --git a/adm/qmake/OccToolkit.pri b/adm/qmake/OccToolkit.pri index 9bc54d1cdb..3f18edb1cf 100644 --- a/adm/qmake/OccToolkit.pri +++ b/adm/qmake/OccToolkit.pri @@ -132,21 +132,31 @@ for (aPackage, aPackages) { } } -# extend clean with versioned .so files !win32 { aVerList = $$split(VERSION, ".") aVerMaj = $$member(aVerList, 0) aVerMin = $$member(aVerList, 1) aVerMic = $$member(aVerList, 2) + equals(TEMPLATE, app) { QMAKE_CLEAN += $$DESTDIR/$${TARGET} } else { mac { + # override qmake soname versionong logic + QMAKE_LFLAGS_SONAME = + QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.dylib.$${aVerMaj}.$${aVerMin} + + # extend clean with versioned .dylib files QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.dylib QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.dylib QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.dylib QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.$${aVerMic}.dylib } else { + # override qmake soname versionong logic + QMAKE_LFLAGS_SONAME = + QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.so.$${aVerMaj}.$${aVerMin} + + # extend clean with versioned .so files QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj} QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin} -- 2.20.1
