diff --git a/.gitignore b/.gitignore index dc1f6ec..8587488 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ bullet-2.75-free.tar.gz /bullet-2.82-r2704-free.tar.gz /bullet3-2.83-free.tar.xz /bullet3-2.87-free.tar.xz +/bullet3-3.08-free.tar.xz diff --git a/bullet-3.08-fix-c++-one-definition-rule-violation.patch b/bullet-3.08-fix-c++-one-definition-rule-violation.patch new file mode 100644 index 0000000..d8cb70b --- /dev/null +++ b/bullet-3.08-fix-c++-one-definition-rule-violation.patch @@ -0,0 +1,60 @@ +diff -up bullet3-3.08/src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp.fix-odr bullet3-3.08/src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp +--- bullet3-3.08/src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp.fix-odr 2021-02-11 11:17:29.417618076 -0500 ++++ bullet3-3.08/src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp 2021-02-11 11:18:01.669770577 -0500 +@@ -177,7 +177,7 @@ void btSoftMultiBodyDynamicsWorld::debug + } + } + +-struct btSoftSingleRayCallback : public btBroadphaseRayCallback ++struct btSoftMultiBodySingleRayCallback : public btBroadphaseRayCallback + { + btVector3 m_rayFromWorld; + btVector3 m_rayToWorld; +@@ -188,7 +188,7 @@ struct btSoftSingleRayCallback : public + const btSoftMultiBodyDynamicsWorld* m_world; + btCollisionWorld::RayResultCallback& m_resultCallback; + +- btSoftSingleRayCallback(const btVector3& rayFromWorld, const btVector3& rayToWorld, const btSoftMultiBodyDynamicsWorld* world, btCollisionWorld::RayResultCallback& resultCallback) ++ btSoftMultiBodySingleRayCallback(const btVector3& rayFromWorld, const btVector3& rayToWorld, const btSoftMultiBodyDynamicsWorld* world, btCollisionWorld::RayResultCallback& resultCallback) + : m_rayFromWorld(rayFromWorld), + m_rayToWorld(rayToWorld), + m_world(world), +@@ -256,7 +256,7 @@ void btSoftMultiBodyDynamicsWorld::rayTe + BT_PROFILE("rayTest"); + /// use the broadphase to accelerate the search for objects, based on their aabb + /// and for each object with ray-aabb overlap, perform an exact ray test +- btSoftSingleRayCallback rayCB(rayFromWorld, rayToWorld, this, resultCallback); ++ btSoftMultiBodySingleRayCallback rayCB(rayFromWorld, rayToWorld, this, resultCallback); + + #ifndef USE_BRUTEFORCE_RAYBROADPHASE + m_broadphasePairCache->rayTest(rayFromWorld, rayToWorld, rayCB); +diff -up bullet3-3.08/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp.fix-odr bullet3-3.08/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp +--- bullet3-3.08/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp.fix-odr 2021-02-11 11:16:19.157285864 -0500 ++++ bullet3-3.08/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp 2021-02-11 11:16:44.220404370 -0500 +@@ -172,7 +172,7 @@ void btSoftRigidDynamicsWorld::debugDraw + } + } + +-struct btSoftSingleRayCallback : public btBroadphaseRayCallback ++struct btSoftRigidSingleRayCallback : public btBroadphaseRayCallback + { + btVector3 m_rayFromWorld; + btVector3 m_rayToWorld; +@@ -183,7 +183,7 @@ struct btSoftSingleRayCallback : public + const btSoftRigidDynamicsWorld* m_world; + btCollisionWorld::RayResultCallback& m_resultCallback; + +- btSoftSingleRayCallback(const btVector3& rayFromWorld, const btVector3& rayToWorld, const btSoftRigidDynamicsWorld* world, btCollisionWorld::RayResultCallback& resultCallback) ++ btSoftRigidSingleRayCallback(const btVector3& rayFromWorld, const btVector3& rayToWorld, const btSoftRigidDynamicsWorld* world, btCollisionWorld::RayResultCallback& resultCallback) + : m_rayFromWorld(rayFromWorld), + m_rayToWorld(rayToWorld), + m_world(world), +@@ -251,7 +251,7 @@ void btSoftRigidDynamicsWorld::rayTest(c + BT_PROFILE("rayTest"); + /// use the broadphase to accelerate the search for objects, based on their aabb + /// and for each object with ray-aabb overlap, perform an exact ray test +- btSoftSingleRayCallback rayCB(rayFromWorld, rayToWorld, this, resultCallback); ++ btSoftRigidSingleRayCallback rayCB(rayFromWorld, rayToWorld, this, resultCallback); + + #ifndef USE_BRUTEFORCE_RAYBROADPHASE + m_broadphasePairCache->rayTest(rayFromWorld, rayToWorld, rayCB); diff --git a/bullet-3.08-tinyxml2.patch b/bullet-3.08-tinyxml2.patch new file mode 100644 index 0000000..0bbf7b5 --- /dev/null +++ b/bullet-3.08-tinyxml2.patch @@ -0,0 +1,76 @@ +diff -up bullet3-3.08/CMakeLists.txt.tinyxml bullet3-3.08/CMakeLists.txt +--- bullet3-3.08/CMakeLists.txt.tinyxml 2020-12-22 20:29:33.000000000 -0500 ++++ bullet3-3.08/CMakeLists.txt 2021-02-11 10:42:15.135608499 -0500 +@@ -349,6 +349,8 @@ ENDIF(BUILD_PYBULLET) + OPTION(BUILD_ENET "Set when you want to build apps with enet UDP networking support" ON) + OPTION(BUILD_CLSOCKET "Set when you want to build apps with enet TCP networking support" ON) + ++include(FindPkgConfig) ++pkg_check_modules(tinyxml2 REQUIRED tinyxml2) + + IF(BUILD_PYBULLET) + FIND_PACKAGE(PythonLibs) +diff -up bullet3-3.08/Extras/BulletRobotics/CMakeLists.txt.tinyxml bullet3-3.08/Extras/BulletRobotics/CMakeLists.txt +--- bullet3-3.08/Extras/BulletRobotics/CMakeLists.txt.tinyxml 2021-02-11 10:42:15.136608503 -0500 ++++ bullet3-3.08/Extras/BulletRobotics/CMakeLists.txt 2021-02-11 10:46:27.929805933 -0500 +@@ -1,5 +1,6 @@ + + INCLUDE_DIRECTORIES( ++ ${tinyxml2_INCLUDE_DIRS} + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${BULLET_PHYSICS_SOURCE_DIR}/examples + ${BULLET_PHYSICS_SOURCE_DIR}/examples/SharedMemory +@@ -60,7 +61,6 @@ SET(BulletRobotics_INCLUDES + ../../examples/Utils/b3ERPCFMHelper.hpp + ../../examples/Utils/b3ReferenceFrameHelper.hpp + +- ../../examples/ThirdPartyLibs/tinyxml2/tinyxml2.h + ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.h + ../../examples/ThirdPartyLibs/stb_image/stb_image.h + ../../examples/ThirdPartyLibs/BussIK/Jacobian.h +@@ -129,7 +129,6 @@ SET(BulletRobotics_SRCS ${BulletRobotics + ../../examples/Utils/b3ResourcePath.cpp + ../../examples/Utils/ChromeTraceUtil.cpp + +- ../../examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp + ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp + ../../examples/ThirdPartyLibs/stb_image/stb_image.cpp + ../../examples/ThirdPartyLibs/BussIK/Jacobian.cpp +@@ -245,7 +244,7 @@ SET_TARGET_PROPERTIES(BulletRobotics PRO + SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES SOVERSION ${BULLET_VERSION}) + + IF (BUILD_SHARED_LIBS) +- TARGET_LINK_LIBRARIES(BulletRobotics BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common) ++ TARGET_LINK_LIBRARIES(BulletRobotics BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common ${tinyxml2_LIBRARIES}) + ENDIF (BUILD_SHARED_LIBS) + + +diff -up bullet3-3.08/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt.tinyxml bullet3-3.08/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt +--- bullet3-3.08/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt.tinyxml 2020-12-22 20:29:33.000000000 -0500 ++++ bullet3-3.08/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt 2021-02-11 10:47:36.997133090 -0500 +@@ -1,8 +1,8 @@ + INCLUDE_DIRECTORIES( ++ ${tinyxml2_INCLUDE_DIRS} + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletFileLoader + ${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletWorldImporter +- ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/tinyxml2 + ) + + ADD_LIBRARY( +@@ -11,14 +11,13 @@ ADD_LIBRARY( + btBulletXmlWorldImporter.h + string_split.cpp + string_split.h +- ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp + ) + + SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES VERSION ${BULLET_VERSION}) + SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES SOVERSION ${BULLET_VERSION}) + + IF (BUILD_SHARED_LIBS) +- TARGET_LINK_LIBRARIES(BulletXmlWorldImporter BulletWorldImporter BulletDynamics BulletCollision BulletFileLoader LinearMath) ++ TARGET_LINK_LIBRARIES(BulletXmlWorldImporter BulletWorldImporter BulletDynamics BulletCollision BulletFileLoader LinearMath ${tinyxml2_LIBRARIES}) + ENDIF (BUILD_SHARED_LIBS) + + IF (INSTALL_EXTRA_LIBS) diff --git a/bullet.spec b/bullet.spec index 2e6a6ef..5a26dee 100644 --- a/bullet.spec +++ b/bullet.spec @@ -1,10 +1,11 @@ %global _docdir_fmt %{name} Name: bullet -Version: 2.87 -Release: 8%{?dist} +Version: 3.08 +Release: 15%{?dist} Summary: 3D Collision Detection and Rigid Body Dynamics Library -License: zlib and MIT and BSD and Boost +# Automatically converted from old format: zlib and MIT and BSD and Boost - review is highly recommended. +License: Zlib AND LicenseRef-Callaway-MIT AND LicenseRef-Callaway-BSD AND BSL-1.0 URL: http://www.bulletphysics.com Source0: %{name}3-%{version}-free.tar.xz @@ -16,7 +17,10 @@ Source0: %{name}3-%{version}-free.tar.xz Source1: generate-tarball.sh # Build against system tinyxml -Patch0: %{name}-2.87-tinyxml.patch +Patch0: %{name}-3.08-tinyxml2.patch + +# Fix C++ One Definition Rule violation +Patch1: %{name}-3.08-fix-c++-one-definition-rule-violation.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -25,7 +29,8 @@ BuildRequires: dos2unix BuildRequires: doxygen BuildRequires: freeglut-devel BuildRequires: libICE-devel -BuildRequires: tinyxml-devel +BuildRequires: tinyxml2-devel +BuildRequires: libglvnd-devel %description Bullet is a 3D Collision Detection and Rigid Body Dynamics Library for games @@ -42,7 +47,8 @@ Development headers and libraries for %{name}. %package devel-doc Summary: Documentation for developing programs that will use %{name}-devel -License: zlib and LGPLv2+ +# Automatically converted from old format: zlib and LGPLv2+ - review is highly recommended. +License: Zlib AND LicenseRef-Callaway-LGPLv2+ Requires: %{name}-extras%{?_isa} = %{version}-%{release} %description devel-doc @@ -51,7 +57,8 @@ Documentation (PDF) for developing programs that will use %{name}-devel. %package extras Summary: Extra libraries for %{name} -License: zlib and LGPLv2+ +# Automatically converted from old format: zlib and LGPLv2+ - review is highly recommended. +License: Zlib AND LicenseRef-Callaway-LGPLv2+ %description extras Extra libraries for %{name}. @@ -59,7 +66,8 @@ Extra libraries for %{name}. %package extras-devel Summary: Development files for %{name} extras -License: zlib and LGPLv2+ +# Automatically converted from old format: zlib and LGPLv2+ - review is highly recommended. +License: Zlib AND LicenseRef-Callaway-LGPLv2+ Requires: %{name}-extras%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release} @@ -69,15 +77,16 @@ Development headers and libraries for %{name} extra libraries. %prep %setup -q -n %{name}3-%{version} -%patch0 -p0 -b .tinyxml +%patch -P0 -p1 -b .tinyxml +%patch -P1 -p1 -b .fix-odr # The examples directory isn't needed for building rm -r examples # Fix the pkg-config module so it doesn't list the prefix twice in the include install dir. -sed -i 's|-I@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@|-I@INCLUDE_INSTALL_DIR@|' bullet.pc.cmake +sed -i 's|${prefix}/@INCLUDE_INSTALL_DIR@|@INCLUDE_INSTALL_DIR@|' bullet.pc.cmake -# BulletRobotics and obj2sdf require several bundled libs not yet packaged in the distribution -sed -i 's|BulletRobotics||' Extras/CMakeLists.txt +# BulletRobotics, BulletRoboticsGUI and obj2sdf require several bundled libs not yet packaged in the distribution +sed -i 's|BulletRoboticsGUI BulletRobotics||' Extras/CMakeLists.txt sed -i 's|obj2sdf||' Extras/CMakeLists.txt # Fix up file permissions and formats @@ -86,9 +95,7 @@ chmod -x src/BulletDynamics/ConstraintSolver/btSliderConstraint.h chmod -x src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp %build -mkdir build -pushd build -%cmake .. \ +%cmake \ -DCLSOCKET_DEP_ONLY=ON \ -DBUILD_BULLET2_DEMOS=OFF \ -DBUILD_EXTRAS=ON \ @@ -97,15 +104,15 @@ pushd build -DBUILD_UNIT_TESTS=OFF \ -DINSTALL_EXTRA_LIBS=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DOpenGL_GL_PREFERENCE=GLVND \ -DINCLUDE_INSTALL_DIR=%{_includedir}/bullet/ -%make_build -popd +%cmake_build doxygen Doxyfile %install -%make_install -C build +%cmake_install %ldconfig_scriptlets @@ -188,6 +195,61 @@ doxygen Doxyfile %{_libdir}/libBulletXmlWorldImporter.so %changelog +* Sat Aug 23 2025 Benjamin A. Beasley - 3.08-15 +- Rebuilt for tinyxml2 11.0.0 + +* Wed Jul 23 2025 Fedora Release Engineering - 3.08-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 3.08-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Nov 12 2024 Dominik Mierzejewski - 3.08-12 +- rebuilt for tinyxml2 + +* Wed Aug 28 2024 Miroslav Suchý - 3.08-11 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 3.08-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jan 23 2024 Fedora Release Engineering - 3.08-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 3.08-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 3.08-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 3.08-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Sep 25 2022 Rich Mattes - 3.08-5 +- Rebuild for tinyxml2-9.0.0 + +* Wed Jul 20 2022 Fedora Release Engineering - 3.08-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 3.08-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 3.08-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Feb 11 2021 Tom Callaway - 3.08-1 +- update to 3.08 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.87-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 01 2020 Fedora Release Engineering - 2.87-10 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.87-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Jan 28 2020 Fedora Release Engineering - 2.87-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index 0719e2b..e4abbb6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bullet3-2.87-free.tar.xz) = 391fd2cdfe0932f4bf7e78555d56c2de5c5051cc251d3a3c7d72d942a3f764330295ae207cf670294157fe9508e8a667faf6b75099a282f8c2e2757f01c56b47 +SHA512 (bullet3-3.08-free.tar.xz) = 33f4b187a643e046eda6c2b5dd7ae77743000802105b5ec4324883c5e148917809dfd819dd7b0b6687e03a114a5a66e3ef876e423d58e9f4b7101b550942de33