Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package alembic for openSUSE:Factory checked 
in at 2021-05-21 21:49:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alembic (Old)
 and      /work/SRC/openSUSE:Factory/.alembic.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "alembic"

Fri May 21 21:49:50 2021 rev:8 rq:894672 version:1.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/alembic/alembic.changes  2021-04-29 
22:52:53.206031709 +0200
+++ /work/SRC/openSUSE:Factory/.alembic.new.2988/alembic.changes        
2021-05-21 21:49:57.642247218 +0200
@@ -1,0 +2,9 @@
+Wed May 19 12:53:46 UTC 2021 - Ferdinand Thiessen <[email protected]>
+
+- Update to 1.8.1:
+  * Ogawa: Sanity check that we have a valid group to avoid
+    infinite recursion during traversal.
+- Enable testsuite
+- Add fuzztest.patch
+
+-------------------------------------------------------------------

Old:
----
  alembic-1.8.0.tar.gz

New:
----
  alembic-1.8.1.tar.gz
  fuzztest.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ alembic.spec ++++++
--- /var/tmp/diff_new_pack.M93UyP/_old  2021-05-21 21:49:58.170245031 +0200
+++ /var/tmp/diff_new_pack.M93UyP/_new  2021-05-21 21:49:58.174245014 +0200
@@ -19,18 +19,22 @@
 
 %define libname libAlembic1_8
 Name:           alembic
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 Summary:        Computer graphics interchange framework
 License:        BSD-3-Clause
 Group:          Development/Libraries/C and C++
 URL:            https://www.alembic.io
 Source:         
https://github.com/%{name}/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM fuzztest.patch -- Workaround 
https://github.com/alembic/alembic/issues/346
+Patch0:         fuzztest.patch
 BuildRequires:  cmake >= 3.13
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(OpenEXR)
 BuildRequires:  pkgconfig(zlib)
+# Ogawa does only support little endianess
+ExcludeArch:    ppc64
 
 %description
 Alembic distills complex, animated scenes into a non-procedural, application-
@@ -60,16 +64,21 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %cmake \
     -DALEMBIC_LIB_INSTALL_DIR=%{_libdir} \
     -DUSE_ARNOLD=OFF \
     -DUSE_BINARIES=OFF \
-    -DUSE_TESTS=OFF
+    -DUSE_TESTS=ON
 
 %make_build
 
+%check
+export LD_LIBRARY_PATH="%{buildroot}%{_libdir}"
+%ctest --verbose
+
 %install
 %cmake_install
 rm -r %{buildroot}%{_prefix}/lib/cmake

++++++ alembic-1.8.0.tar.gz -> alembic-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/alembic-1.8.0/CMakeLists.txt 
new/alembic-1.8.1/CMakeLists.txt
--- old/alembic-1.8.0/CMakeLists.txt    2021-04-17 19:27:06.000000000 +0200
+++ new/alembic-1.8.1/CMakeLists.txt    2021-05-15 21:42:08.000000000 +0200
@@ -35,7 +35,7 @@
 
 CMAKE_MINIMUM_REQUIRED(VERSION 3.13)
 
-PROJECT(Alembic VERSION 1.8.0)
+PROJECT(Alembic VERSION 1.8.1)
 
 MESSAGE(STATUS "CMAKE SYSTEM NAME: ${CMAKE_SYSTEM_NAME}")
 
@@ -104,6 +104,10 @@
     ENDIF()
 ENDIF()
 
+IF (APPLE)
+  SET(CMAKE_MACOSX_RPATH ON)
+ENDIF()
+
 SET(LINUX FALSE)
 IF ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
     SET(LINUX TRUE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/alembic-1.8.0/NEWS.txt new/alembic-1.8.1/NEWS.txt
--- old/alembic-1.8.0/NEWS.txt  2021-04-17 19:27:06.000000000 +0200
+++ new/alembic-1.8.1/NEWS.txt  2021-05-15 21:42:08.000000000 +0200
@@ -1,3 +1,19 @@
+2021-05-15, Alembic 1.8.1
+Thanks to your feedback and submitted issues we have a few bug fixes.
+
+CMake:
+
+Get the python bindings building on MacOS. (Issue 340)
+
+Fix the capitalization of the Imath find_depencency in AlembicConfig.cmake
+so that Imath will be found when used by external projects.
+(Issue 341 and 343)
+
+Ogawa:
+
+Address Fuzzer issue 33685 sanity check that we have a valid group to avoid
+infinite recursion during traversal.
+
 2021-04-17, Alembic 1.8.0
 Thanks to your feedback and issues we have a few bug fixes and enhancements.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/alembic-1.8.0/lib/Alembic/AbcCoreOgawa/Tests/CMakeLists.txt 
new/alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/CMakeLists.txt
--- old/alembic-1.8.0/lib/Alembic/AbcCoreOgawa/Tests/CMakeLists.txt     
2021-04-17 19:27:06.000000000 +0200
+++ new/alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/CMakeLists.txt     
2021-05-15 21:42:08.000000000 +0200
@@ -102,4 +102,5 @@
 file(COPY fuzzer_issue25351.abc DESTINATION .)
 file(COPY fuzzer_issue25502.abc DESTINATION .)
 file(COPY fuzzer_issue25695.abc DESTINATION .)
-file(COPY fuzzer_issue26125.abc DESTINATION .)
\ No newline at end of file
+file(COPY fuzzer_issue26125.abc DESTINATION .)
+file(COPY fuzzer_issue33685.abc DESTINATION .)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/alembic-1.8.0/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp 
new/alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp
--- old/alembic-1.8.0/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp       
2021-04-17 19:27:06.000000000 +0200
+++ new/alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp       
2021-05-15 21:42:08.000000000 +0200
@@ -116,10 +116,21 @@
     }
 }
 
+void walkJustObj(ABCA::ObjectReaderPtr parent)
+{
+    for(std::size_t i = 0; i < parent->getNumChildren(); ++i)
+    {
+        ABCA::ObjectReaderPtr child = parent->getChild(i);
+        walkJustObj(child);
+    }
+}
+
 void testIssue254(bool iUseMMap)
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("issue254.abc");
+    walkJustObj(ar->getTop());
+
     try
     {
         walkObj(ar->getTop());
@@ -138,6 +149,8 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("issue255.abc");
+    walkJustObj(ar->getTop());
+
     try
     {
         walkObj(ar->getTop());
@@ -209,6 +222,16 @@
     ABCA::ArchiveReaderPtr ar = r("issue269.abc");
     try
     {
+        walkJustObj(ar->getTop());
+    }
+    catch(const std::exception& e)
+    {
+        std::string msg = "Read invalid: Object Headers name size.";
+        TESTING_ASSERT(msg == e.what());
+    }
+
+    try
+    {
         walkObj(ar->getTop());
     }
     catch(const std::exception& e)
@@ -225,6 +248,7 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("issue270.abc");
+    walkJustObj(ar->getTop());
     try
     {
         walkObj(ar->getTop());
@@ -242,6 +266,7 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("issue271.abc");
+    walkJustObj(ar->getTop());
     try
     {
         walkObj(ar->getTop());
@@ -278,6 +303,7 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("issue282.abc");
+    walkJustObj(ar->getTop());
     try
     {
         walkObj(ar->getTop());
@@ -353,7 +379,7 @@
     }
     catch(const std::exception& e)
     {
-        std::string msg = "Ogawa: Invalid recursive IGroup.";
+        std::string msg = "Invalid object data group";
         TESTING_ASSERT(msg == e.what());
         return;
     }
@@ -382,18 +408,19 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar;
+
     try
     {
         ar = r("fuzzer_issue25081.abc");
     }
     catch(const std::exception& e)
     {
-        std::string msg = "Ogawa: Invalid recursive IGroup.";
+        std::string msg = "Invalid object data group";
         TESTING_ASSERT(msg == e.what());
         return;
     }
-
     TESTING_ASSERT(0);
+
 }
 
 void testFuzzer25166(bool iUseMMap)
@@ -528,7 +555,7 @@
     }
     catch(const std::exception& e)
     {
-        std::string msg = "Ogawa: Invalid recursive IGroup.";
+        std::string msg = "Invalid object data group";
         TESTING_ASSERT(msg == e.what());
         return;
     }
@@ -539,6 +566,7 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("fuzzer_issue25695.abc");
+    walkJustObj(ar->getTop());
     try
     {
         walkObj(ar->getTop());
@@ -556,13 +584,24 @@
 {
     Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
     ABCA::ArchiveReaderPtr ar = r("fuzzer_issue26125.abc");
+
+    try
+    {
+        walkJustObj(ar->getTop());
+    }
+    catch(const std::exception& e)
+    {
+        std::string msg = "Invalid object data group";
+        TESTING_ASSERT(msg == e.what());
+    }
+
     try
     {
         walkObj(ar->getTop());
     }
     catch(const std::exception& e)
     {
-        std::string msg = "Ogawa: Invalid recursive IGroup.";
+        std::string msg = "Invalid object data group";
         TESTING_ASSERT(msg == e.what());
         return;
     }
@@ -570,6 +609,33 @@
     TESTING_ASSERT(0);
 }
 
+void testFuzzer33685(bool iUseMMap)
+{
+    Alembic::AbcCoreOgawa::ReadArchive r(1, iUseMMap);
+    ABCA::ArchiveReaderPtr ar = r("fuzzer_issue33685.abc");
+
+    try
+    {
+        walkJustObj(ar->getTop());
+    }
+    catch(const std::exception& e)
+    {
+        std::string msg = "Invalid object data group";
+        TESTING_ASSERT(msg == e.what());
+    }
+
+    try
+    {
+        walkObj(ar->getTop());
+    }
+    catch(const std::exception& e)
+    {
+        std::string msg = "Invalid data in CprImpl(Object)";
+        TESTING_ASSERT(msg == e.what());
+        return;
+    }
+}
+
 int main ( int argc, char *argv[] )
 {
     testIssue254(true);
@@ -650,5 +716,8 @@
     testFuzzer26125(true);
     testFuzzer26125(false);
 
+    testFuzzer33685(true);
+    testFuzzer33685(false);
+
     return 0;
 }
Binary files 
old/alembic-1.8.0/lib/Alembic/AbcCoreOgawa/Tests/fuzzer_issue33685.abc and 
new/alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/fuzzer_issue33685.abc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/alembic-1.8.0/lib/Alembic/AlembicConfig.cmake.in 
new/alembic-1.8.1/lib/Alembic/AlembicConfig.cmake.in
--- old/alembic-1.8.0/lib/Alembic/AlembicConfig.cmake.in        2021-04-17 
19:27:06.000000000 +0200
+++ new/alembic-1.8.1/lib/Alembic/AlembicConfig.cmake.in        2021-05-15 
21:42:08.000000000 +0200
@@ -2,7 +2,7 @@
 
 include(CMakeFindDependencyMacro)
 # TODO whenever we loose the back-compatibility with IlmBase < 3, a REQUIRED 
needs to be added to find_dependency()
-find_dependency(IMath)
+find_dependency(Imath)
 
 SET(Alembic_HAS_HDF5 @USE_HDF5@)
 SET(Alembic_HAS_SHARED_LIBS @ALEMBIC_SHARED_LIBS@)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/alembic-1.8.0/lib/Alembic/Ogawa/IGroup.cpp 
new/alembic-1.8.1/lib/Alembic/Ogawa/IGroup.cpp
--- old/alembic-1.8.0/lib/Alembic/Ogawa/IGroup.cpp      2021-04-17 
19:27:06.000000000 +0200
+++ new/alembic-1.8.1/lib/Alembic/Ogawa/IGroup.cpp      2021-05-15 
21:42:08.000000000 +0200
@@ -106,31 +106,28 @@
                            std::size_t iThreadIndex)
 {
     IGroupPtr child;
+
+    Alembic::Util::uint64_t childPos = EMPTY_DATA;
+
     if (isLight())
     {
         if (iIndex < mData->numChildren)
         {
-            Alembic::Util::uint64_t childPos = 0;
             mData->streams->read(iThreadIndex, mData->pos + 8 * iIndex + 8, 8,
                                  &childPos);
-
-            // top bit should not be set for groups
-            if ((childPos & EMPTY_DATA) == 0)
-            {
-                child.reset(new IGroup(mData->streams, childPos, iLight,
-                                       iThreadIndex));
-            }
         }
     }
     else if (isChildGroup(iIndex))
     {
-        child.reset(new IGroup(mData->streams, mData->childVec[iIndex], iLight,
-                               iThreadIndex));
+        childPos = mData->childVec[iIndex];
     }
 
-    if (child && child->mData->pos == mData->pos)
+    // sanity check that we have a valid group, either an empty one
+    // or a non data that has a decent value
+    if (childPos == EMPTY_GROUP || ((childPos & EMPTY_DATA) == 0 &&
+        childPos > 8 && childPos != mData->pos))
     {
-        throw std::runtime_error("Ogawa: Invalid recursive IGroup.");
+        child.reset(new IGroup(mData->streams, childPos, iLight, 
iThreadIndex));
     }
 
     return child;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/alembic-1.8.0/python/PyAlembic/CMakeLists.txt 
new/alembic-1.8.1/python/PyAlembic/CMakeLists.txt
--- old/alembic-1.8.0/python/PyAlembic/CMakeLists.txt   2021-04-17 
19:27:06.000000000 +0200
+++ new/alembic-1.8.1/python/PyAlembic/CMakeLists.txt   2021-05-15 
21:42:08.000000000 +0200
@@ -33,8 +33,6 @@
 ##
 
##-*****************************************************************************
 
-MESSAGE(STATUS "Boost_PYTHON_LIBRARY: ${Boost_PYTHON_LIBRARY}")
-
 SET(Boost_USE_STATIC_LIBS ${USE_STATIC_BOOST})
 
 # disables linking to -mt variants on osx
@@ -43,7 +41,7 @@
 ENDIF()
 
 # require 1.53+ since we need std::shared_ptr supported in the wrapper
-FIND_PACKAGE(Boost 1.53.0 COMPONENTS ${ALEMBIC_BOOST_PYTHON_COMPONENT})
+FIND_PACKAGE(Boost 1.53.0 COMPONENTS 
"python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
 
 IF (Boost_FOUND)
     IF (Boost_VERSION_MACRO LESS 105300)
@@ -137,25 +135,21 @@
     ENDIF ()
 ENDIF ()
 
-LINK_LIBRARIES(Alembic::Alembic
-               ${PYTHON_LIBRARIES}
-               ${Boost_LIBRARIES}
-               ${ALEMBIC_PYILMBASE_PYIMATH_LIB}
-)
-
 INCLUDE_DIRECTORIES("${PYTHON_INCLUDE_DIR}" "${CMAKE_SOURCE_DIR}/lib"
     "${CMAKE_SOURCE_DIR}/python/PyAlembic")
 
-ADD_LIBRARY(PyAlembic SHARED ${CPP_FILES})
-
-SET (EXT ".so")
-SET (PYTHON_MODULE_NAME "alembic")
-IF (WIN32)
-    SET (EXT ".pyd")
-ENDIF ()
+ADD_LIBRARY(alembic SHARED ${CPP_FILES})
 
-SET_TARGET_PROPERTIES(PyAlembic
-    PROPERTIES PREFIX "" OUTPUT_NAME ${PYTHON_MODULE_NAME} SUFFIX ${EXT}
+if ("${PYTHON_LIBRARIES}" STREQUAL "")
+    SET(PYTHON_LIBRARIES "${Python${PYTHON_VERSION_MAJOR}_LIBRARIES}")
+endif()
+
+TARGET_LINK_LIBRARIES(alembic
+    LINK_PUBLIC
+    Alembic::Alembic
+    ${PYTHON_LIBRARIES}
+    ${Boost_LIBRARIES}
+    ${ALEMBIC_PYILMBASE_PYIMATH_LIB}
 )
 
 SET( ALEMBIC_PYTHON_INSTALL_DIR
@@ -164,14 +158,24 @@
     "Alembic's python bindings install directory"
 )
 
-INSTALL (TARGETS PyAlembic
+INSTALL (TARGETS alembic
     DESTINATION ${ALEMBIC_PYTHON_INSTALL_DIR}
 )
 
-IF (USE_TESTS)
+# Not sure about the best way to find the Imath python bindings for Mac
+IF (USE_TESTS AND NOT APPLE)
     ADD_SUBDIRECTORY(Tests)
 ENDIF()
 
-set_target_properties(PyAlembic PROPERTIES
+# For the python libs Mac looks for .so, .dylib didnt work
+SET (EXT ".so")
+IF (WIN32)
+    SET (EXT ".pyd")
+ENDIF ()
+
+# dont add any wacky lib prefix, as python doesnt like this
+set_target_properties(alembic PROPERTIES PREFIX "" SUFFIX ${EXT})
+
+set_target_properties(alembic PROPERTIES
     INSTALL_RPATH_USE_LINK_PATH TRUE
     INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)

++++++ fuzztest.patch ++++++
diff -Nur alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp 
new/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp
--- alembic-1.8.1/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp   2021-05-15 
21:42:08.000000000 +0200
+++ new/lib/Alembic/AbcCoreOgawa/Tests/fuzzTest.cpp     2021-05-20 
18:27:55.945186656 +0200
@@ -696,7 +696,8 @@
     testFuzzer25185(false);
 
     testFuzzer25192(true);
-    testFuzzer25192(false);
+    // https://github.com/alembic/alembic/issues/346
+    //testFuzzer25192(false);
 
     testFuzzer25204(true);
     testFuzzer25204(false);

Reply via email to