Blob Blame History Raw
%global _docdir_fmt %{name}

Name: bullet
Version: 2.87
Release: 6%{?dist}
Summary: 3D Collision Detection and Rigid Body Dynamics Library
License: zlib and MIT and BSD and Boost
URL: http://www.bulletphysics.com

Source0: %{name}3-%{version}-free.tar.xz
# bullet contains non-free code that we cannot ship.  Therefore we use
# this script to remove the non-free code before shipping it.
# Download the upstream tarball and invoke this script while in the
# tarball's directory:
# ./generate-tarball.sh 2.87
Source1: generate-tarball.sh

# Build against system tinyxml
Patch0: %{name}-2.87-tinyxml.patch

BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires: cmake
BuildRequires: dos2unix
BuildRequires: doxygen
BuildRequires: freeglut-devel
BuildRequires: libICE-devel
BuildRequires: tinyxml-devel

%description
Bullet is a 3D Collision Detection and Rigid Body Dynamics Library for games
and animation.


%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: cmake
%description devel
Development headers and libraries for %{name}.


%package devel-doc
Summary: Documentation for developing programs that will use %{name}-devel
License: zlib and LGPLv2+
Requires: %{name}-extras%{?_isa} = %{version}-%{release}

%description devel-doc
Documentation (PDF) for developing programs that will use %{name}-devel.


%package extras
Summary: Extra libraries for %{name}
License: zlib and LGPLv2+

%description extras
Extra libraries for %{name}.


%package extras-devel
Summary: Development files for %{name} extras
License: zlib and LGPLv2+
Requires: %{name}-extras%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}

%description extras-devel
Development headers and libraries for %{name} extra libraries.


%prep
%setup -q -n %{name}3-%{version}
%patch0 -p0 -b .tinyxml
# 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

# BulletRobotics and obj2sdf require several bundled libs not yet packaged in the distribution
sed -i 's|BulletRobotics||' Extras/CMakeLists.txt
sed -i 's|obj2sdf||' Extras/CMakeLists.txt

# Fix up file permissions and formats
dos2unix README.md
chmod -x src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
chmod -x src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp

%build
mkdir build
pushd build
%cmake .. \
  -DCLSOCKET_DEP_ONLY=ON \
  -DBUILD_BULLET2_DEMOS=OFF \
  -DBUILD_EXTRAS=ON \
  -DBUILD_OPENGL_DEMOS=OFF \
  -DBUILD_CPU_DEMOS=OFF \
  -DBUILD_UNIT_TESTS=OFF \
  -DINSTALL_EXTRA_LIBS=ON \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DINCLUDE_INSTALL_DIR=%{_includedir}/bullet/

%make_build
popd

doxygen Doxyfile

%install
%make_install -C build


%ldconfig_scriptlets

%ldconfig_scriptlets extras


%files
%license LICENSE.txt
%doc README.md AUTHORS.txt VERSION
%{_libdir}/libBullet3Collision.so.*
%{_libdir}/libBullet3Common.so.*
%{_libdir}/libBullet3Dynamics.so.*
%{_libdir}/libBullet3Geometry.so.*
%{_libdir}/libBullet3OpenCL_clew.so.*
%{_libdir}/libBulletCollision.so.*
%{_libdir}/libBulletDynamics.so.*
%{_libdir}/libBulletInverseDynamics.so.*
%{_libdir}/libBulletSoftBody.so.*
%{_libdir}/libLinearMath.so.*

%files devel
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/*.h
%{_includedir}/%{name}/Bullet3Collision
%{_includedir}/%{name}/Bullet3Common
%{_includedir}/%{name}/Bullet3Dynamics
%{_includedir}/%{name}/Bullet3Geometry
%{_includedir}/%{name}/Bullet3OpenCL
%{_includedir}/%{name}/BulletCollision
%{_includedir}/%{name}/BulletDynamics
%{_includedir}/%{name}/BulletInverseDynamics
%{_includedir}/%{name}/BulletSoftBody
%{_includedir}/%{name}/InverseDynamics
%{_includedir}/%{name}/LinearMath
%{_libdir}/libBullet3Collision.so
%{_libdir}/libBullet3Common.so
%{_libdir}/libBullet3Dynamics.so
%{_libdir}/libBullet3Geometry.so
%{_libdir}/libBullet3OpenCL_clew.so
%{_libdir}/libBulletCollision.so
%{_libdir}/libBulletDynamics.so
%{_libdir}/libBulletInverseDynamics.so
%{_libdir}/libBulletSoftBody.so
%{_libdir}/libLinearMath.so
%{_libdir}/pkgconfig/bullet.pc
%{_libdir}/cmake/%{name}

%files devel-doc
%doc docs/Bullet_User_Manual.pdf
%doc docs/BulletQuickstart.pdf
%doc docs/GPU_rigidbody_using_OpenCL.pdf
%doc html

%files extras
%{_libdir}/libConvexDecomposition.so.*
%{_libdir}/libGIMPACTUtils.so.*
%{_libdir}/libHACD.so.*
%{_libdir}/libBulletFileLoader.so.*
%{_libdir}/libBullet2FileLoader.so.*
%{_libdir}/libBulletInverseDynamicsUtils.so.*
%{_libdir}/libBulletWorldImporter.so.*
%{_libdir}/libBulletXmlWorldImporter.so.*

%files extras-devel
%{_includedir}/%{name}/ConvexDecomposition
%{_includedir}/%{name}/GIMPACTUtils
%{_includedir}/%{name}/HACD
%{_includedir}/%{name}/BulletFileLoader
%{_includedir}/%{name}/Bullet2FileLoader
%{_includedir}/%{name}/BulletWorldImporter
%{_includedir}/%{name}/BulletXmlWorldImporter
%{_libdir}/libConvexDecomposition.so
%{_libdir}/libGIMPACTUtils.so
%{_libdir}/libHACD.so
%{_libdir}/libBulletFileLoader.so
%{_libdir}/libBullet2FileLoader.so
%{_libdir}/libBulletInverseDynamicsUtils.so
%{_libdir}/libBulletWorldImporter.so
%{_libdir}/libBulletXmlWorldImporter.so

%changelog
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.87-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Mon Aug 27 2018 Nicolas Chauvet <kwizart@gmail.com> - 2.87-5
- Spec clean-up

* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.87-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Mar 07 2018 Adam Williamson <awilliam@redhat.com> - 2.87-3
- Rebuild to fix GCC 8 mis-compilation
  See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.87-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Dec 18 2017 Rich Mattes <richmattes@gmail.com> - 2.87-1
- Update to release 2.87 (rhbz#1442838)

* Sun Aug 06 2017 Björn Esser <besser82@fedoraproject.org> - 2.83-6
- Rebuilt for AutoReq cmake-filesystem

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.83-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.83-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.83-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.83-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 04 2016 Rich Mattes <richmattes@gmail.com> - 2.83-1
- Update to release 2.83

* Sat Oct 03 2015 François Cami <fcami@fedoraproject.org> - 2.82-7
- Move Bullet_User_Manual.pdf to a separate devel-doc package.

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.82-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.82-5
- Rebuilt for GCC 5 C++11 ABI change

* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.82-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.82-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri May 16 2014 Rich Mattes <richmattes@gmail.com> - 2.82-2
- Install all of the bullet extras (rhbz#1097452)
- Spec file cleanup

* Sun Feb 09 2014 Rich Mattes <richmattes@gmail.com> - 2.82-1
- Update to version 2.82

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.81-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.81-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Sat Oct 13 2012 Rich Mattes <richmattes@gmail.com> - 2.81-1
- Update to version 2.81

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.80-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri May 25 2012 Rich Mattes <richmattes@gmail.com> - 2.80-1
- Update to version 2.80

* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.79-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Sun Dec 18 2011 Rich Mattes <richmattes@gmail.com> - 2.79-1
- Update to version 2.79

* Wed May 11 2011 Rich Mattes <richmattes@gmail.com> - 2.78-1
- Update to version 2.78
- Remove upstreamed patches

* Sat Feb 19 2011 Rich Mattes <richmattes@gmail.com> - 2.77-4
- Fix gcc 4.6 build error

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.77-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Oct 20 2010 Dan Horák <dan[at]danny.cz> - 2.77-3
- add extras subpackage with additional libs
- install headers into /usr/include/bullet

* Wed Sep 29 2010 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.77-2
- Added LibSuffix patch

* Wed Sep 29 2010 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.77-1
- Updatet to version 2.77
- Droped all patches because they are all in upstream

* Sat Aug 21 2010 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.75-4
- Hope fix (#599495)

* Sat Aug 21 2010 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.75-3
- Hope fix (#619885)

* Tue Mar 09 2010 Rex Dieter <rdieter@fedoraproject.org> - 2.75-2
- pkgconfig file not installed (#549051)

* Sat Oct 03 2009 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.75-1
- Updatet to new upstream version 2.75
- Updatet the patch file to work agian

* Thu Jun 25 2009 Thomas Kowaliczek <linuxdonald@linuxdonald.de> - 2.74-1
- Updatet to version 2.74
- Updatet the patch file to work agian

* Sun Feb 22 2009 Bruno Mahé <bruno at gnoll.org> - 2.73-5
- Shortened the description
- Fix directory ownership for directories BulletCollision and BulletDynamics
- Convert ChangeLog to UTF-8
- chmod generate-tarball.sh to 644

* Fri Feb 20 2009 Bruno Mahé <bruno at gnoll.org> - 2.73-4
- Remove gcc-g++ in BuildRequires
- Add option -DCMAKE_BUILD_TYPE=NONE to %%cmake. This will make CMake using default compiler flags
- Use %% instead of single % in %%changelog to prevent macros from being expanded
- Specify we are not shipping pristine source because of some non-free parts
- Change licence to "zlib and MIT and BSD"
- Make include directory being owned by this package
- Remove duplicate documents
- Convert spec file to UTF8
- Set some files permission to 644

* Sun Feb 15 2009 Bruno Mahé <bruno at gnoll.org> - 2.73-3
- Remove non-free directories Demos/, Extras/ and Glut/ from the source

* Sun Jan 18 2009 Bruno Mahé <bruno at gnoll.org> - 2.73-2
- Add "rm -rf $RPM_BUILD_ROOT" to the install target
- Moved unversioned shared libraries (e.g. libfoo.so) to the -devel package
- Update %%post and %%postrun
- Change %%description
- Reduce length of %%summary
- Changed %%group to Development/Libraries
- Changed Zlib licence to lowercase zlib
- %%description kept below 80 characters wide

* Sat Dec 13 2008 Bruno Mahé <bruno at gnoll.org> - 2.73-1
- Initial build.