%global abiver 3 Name: ignition-common Version: 3.14.0 Release: 1%{?dist} Summary: AV, Graphics, Events, and much more # Bundled gtest and python helper scripts are licensed BSD, but not included in installation # src/FilesystemBoost.cc is licensed under the Boost Software License 1.0 # graphics/src/tiny_obj_loader is licensed MIT # Remaining files are Apache 2 License: ASL 2.0 and Boost and MIT URL: http://www.ignitionrobotics.org Source0: https://osrf-distributions.s3.us-east-1.amazonaws.com/ign-common/releases/ignition-common%{abiver}-%{version}.tar.bz2 # Add missing header for std::memcpy # Fixed upstream: https://github.com/ignitionrobotics/ign-common/pull/230 Patch0: %{name}-3.14.0-gcc12.patch # Add a bounds check to the file path sanitation routine to mitigate unsigned wrapping # Reported as https://github.com/ignitionrobotics/ign-common/issues/301 Patch1: %{name}-3.14.0-boundscheck.patch BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: doxygen BuildRequires: freeimage-devel BuildRequires: gts-devel BuildRequires: ignition-cmake-devel >= 2 BuildRequires: ignition-math-devel >= 6 BuildRequires: libuuid-devel BuildRequires: make BuildRequires: protobuf-devel >= 3 BuildRequires: tinyxml2-devel # A modified version of tinyobjloader is built in the package Provides: bundled(tinyobjloader) = 1.4.0 %description Ignition Common, a component of Ignition Robotics, provides a set of libraries that cover many different use cases. An audio-visual library supports processing audio and video files, a graphics library can load a variety 3D mesh file formats into a generic in-memory representation, and the core library of Ignition Common contains functionality that spans Base64 encoding/decoding to thread pools. %package devel Summary: Development libraries and headers for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: ignition-math-devel Requires: protobuf-devel %description devel %{summary} %package doc Summary: Development documentation for ignition-common BuildArch: noarch %description doc Automatically generated API documentation for the ignition-common library %prep %autosetup -p1 # Default to C++17 for test builds sed -i 's/c++11/c++17/' test/CMakeLists.txt # Remove bundled/un-needed libraries and source files rm -fr graphics/src/tinyxml2/ rm -f src/win_dirent.h %build %cmake .. \ %ifnarch x86_64 -DSSE2_FOUND=FALSE \ %endif -DSSE3_FOUND=FALSE \ -DSSSE3_FOUND=FALSE \ -DSSE4_1_FOUND=FALSE \ -DSSE4_2_FOUND=FALSE \ -DCMAKE_BUILD_TYPE=Release \ -DSKIP_av=TRUE %cmake_build %cmake_build --target doc %install %cmake_install rm -fr %{buildroot}%{_libdir}/ruby rm -fr %{buildroot}%{_prefix}/lib/ruby %check # Run tests in series - test fail during parallel execution # UNIT_Console_TEST fails when run concurrently with other tests # UNIT_WorkerPool_TEST is known to be "flaky" and fails intermittently when system load is high: # https://github.com/ignitionrobotics/ign-common/issues/53 %ctest --parallel 1 %files %license COPYING LICENSE %doc AUTHORS NEWS README.md %{_bindir}/ign_remotery_vis %{_libdir}/*.so.%{version} %{_libdir}/*.so.%{abiver} %{_datadir}/ignition %files devel %{_libdir}/*.so %{_includedir}/ignition %{_libdir}/cmake/%{name}%{abiver} %{_libdir}/cmake/%{name}%{abiver}-all %{_libdir}/cmake/%{name}%{abiver}-events %{_libdir}/cmake/%{name}%{abiver}-graphics %{_libdir}/cmake/%{name}%{abiver}-profiler %{_libdir}/pkgconfig/*.pc %files doc %license COPYING LICENSE %doc %{_vpath_builddir}/doxygen/html %changelog * Sun Jan 23 2022 Rich Mattes - 3.14.0-1 - Update to releas 3.14.0 - Correct license field - Remove unused bundled dependencies during prep - Add bundled library virtual provides for the bundled, modified tiny_obj_loader * Sun Mar 07 2021 Rich Mattes - 3.10.1-1 - Initial package