import sources
This commit is contained in:
commit
38d5fdeca7
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/ceres-solver-1.13.0.tar.gz
|
264
ceres-solver.spec
Normal file
264
ceres-solver.spec
Normal file
@ -0,0 +1,264 @@
|
||||
Name: ceres-solver
|
||||
Version: 1.13.0
|
||||
# Release candidate versions are messy. Give them a release of
|
||||
# e.g. "0.1.0%%{?dist}" for RC1 (and remember to adjust the Source0
|
||||
# URL). Non-RC releases go back to incrementing integers starting at 1.
|
||||
Release: 2%{?dist}
|
||||
Summary: A non-linear least squares minimizer
|
||||
|
||||
Group: Development/Libraries
|
||||
License: BSD
|
||||
|
||||
URL: http://ceres-solver.org/
|
||||
Source0: http://%{name}.org/%{name}-%{version}.tar.gz
|
||||
# Temporary workaround for bogus gflags-config.cmake, see #1359776
|
||||
Patch1: ceres-solver_gflags.patch
|
||||
# Partial backport of bbe790e0f3ba9e9565862067198d2760ab669ec8: fix possible
|
||||
# out of bounds array access
|
||||
Patch2: ceres-solver_bounds.patch
|
||||
%if 0%{?rhel} > 0 && 0%{?rhel} < 7
|
||||
# Exclude ppc64 because suitesparse is not available on ppc64
|
||||
# https://lists.fedoraproject.org/pipermail/epel-devel/2015-May/011193.html
|
||||
ExcludeArch: ppc64
|
||||
%endif
|
||||
|
||||
%if (0%{?rhel} && 0%{?rhel} <= 7)
|
||||
BuildRequires: cmake3 >= 2.8.0
|
||||
%else
|
||||
BuildRequires: cmake >= 2.8.0
|
||||
%endif
|
||||
|
||||
# Need -static package per guidelines for handling dependencies on header-only
|
||||
# libraries.
|
||||
# http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Header_Only_Libraries
|
||||
BuildRequires: eigen3-static >= 3.2.1
|
||||
|
||||
# suitesparse < 3.4.0-9 ships without *.hpp C++ headers
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1001869
|
||||
BuildRequires: suitesparse-devel >= 3.4.0-9
|
||||
|
||||
# If the suitesparse package was built with TBB then we need TBB too
|
||||
BuildRequires: tbb-devel
|
||||
|
||||
# Use atlas for BLAS and LAPACK
|
||||
BuildRequires: atlas-devel
|
||||
BuildRequires: gflags-devel
|
||||
# Build against miniglog on RHEL6 until glog package is added to EPEL6
|
||||
%if (0%{?rhel} != 06)
|
||||
BuildRequires: glog-devel >= 0.3.1
|
||||
%endif
|
||||
|
||||
%description
|
||||
|
||||
Ceres Solver is an open source C++ library for modeling and solving
|
||||
large, complicated optimization problems. It is a feature rich, mature
|
||||
and performant library which has been used in production at Google
|
||||
since 2010. Notable use of Ceres Solver is for the image alignment in
|
||||
Google Maps and for vehicle pose in Google Street View. Ceres Solver
|
||||
can solve two kinds of problems.
|
||||
|
||||
1. Non-linear Least Squares problems with bounds constraints.
|
||||
2. General unconstrained optimization problems.
|
||||
|
||||
Features include:
|
||||
|
||||
- A friendly API: build your objective function one term at a time
|
||||
- Automatic and numeric differentiation
|
||||
- Robust loss functions
|
||||
- Local parameterizations
|
||||
- Threaded Jacobian evaluators and linear solvers
|
||||
- Trust region solvers with non-monotonic steps (Levenberg-Marquardt and
|
||||
Dogleg (Powell & Subspace))
|
||||
- Line search solvers (L-BFGS and Nonlinear CG)
|
||||
- Dense QR and Cholesky factorization (using Eigen) for small problems
|
||||
- Sparse Cholesky factorization (using SuiteSparse) for large sparse problems
|
||||
- Specialized solvers for bundle adjustment problems in computer vision
|
||||
- Iterative linear solvers for general sparse and bundle adjustment problems
|
||||
- Runs on Linux, Windows, Mac OS X, Android, and iOS
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: A non-linear least squares minimizer
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: eigen3-devel
|
||||
Requires: glog-devel
|
||||
|
||||
%description devel
|
||||
The %{name}-devel package contains libraries and header files for
|
||||
developing applications that use %{name}.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
mkdir build
|
||||
pushd build
|
||||
|
||||
%if (0%{?rhel} == 06)
|
||||
%{cmake28} .. -DMINIGLOG:BOOL=ON \
|
||||
%else
|
||||
%{cmake} .. \
|
||||
%endif
|
||||
-DCXSPARSE_INCLUDE_DIR:PATH=%{_includedir}/suitesparse \
|
||||
-DBLAS_LIBRARIES:PATH=%{_libdir}/atlas/libsatlas.so \
|
||||
-DGFLAGS_INCLUDE_DIR=%{_includedir}
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
make -C build install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%check
|
||||
CTEST_OUTPUT_ON_FAILURE=1 make -C build test
|
||||
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
|
||||
%files
|
||||
%if (0%{?rhel} == 06)
|
||||
%doc README.md LICENSE
|
||||
%else
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%endif
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/*
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/cmake/Ceres
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Aug 02 2018 Jiri Kucera <jkucera@redhat.com> - 1.13.0-1
|
||||
- Backport patch to fix CompressedRowSparseMatrixTest.AppendRows test failure
|
||||
(see https://github.com/ceres-solver/ceres-solver/issues/383)
|
||||
Resolves: #1609969
|
||||
|
||||
* Mon Aug 07 2017 Rich Mattes <richmattes@gmail.com> - 1.13.0-1
|
||||
- Update to release 1.13.0 (rhbz#1470895)
|
||||
|
||||
* Sun Aug 06 2017 Björn Esser <besser82@fedoraproject.org> - 1.12.0-8
|
||||
- Rebuilt for AutoReq cmake-filesystem
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
|
||||
|
||||
* Wed Feb 22 2017 Sandro Mani <manisandro@gmail.com> - 1.12.0-4
|
||||
- Rebuild for eigen3-3.3.3
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Sun Jan 22 2017 Sandro Mani <manisandro@gmail.com> - 1.12.0-2
|
||||
- Rebuild for eigen3-3.3.2
|
||||
|
||||
* Wed Dec 28 2016 Rich Mattes <richmattes@gmail.com> - 1.12.0-1
|
||||
- Update to 1.12.0 (rhbz#1385268)
|
||||
|
||||
* Tue Oct 04 2016 Sandro Mani <manisandro@gmail.com> - 1.11.0-9
|
||||
- Rebuild for eigen3-3.2.10
|
||||
|
||||
* Thu Sep 22 2016 Jerry James <loganjerry@gmail.com> - 1.11.0-8
|
||||
- Rebuild for tbb 2017
|
||||
- tbb is available on all arches in Fedora and RHEL > 6
|
||||
|
||||
* Tue Jul 19 2016 Sandro Mani <manisandro@gmail.com> - 1.11.0-7
|
||||
- Rebuild for eigen3-3.2.9
|
||||
|
||||
* Tue Mar 01 2016 Rich Mattes <richmattes@gmail.com> - 1.11.0-6
|
||||
- Rebuild for eigen3-3.2.8 (rhbz#1288505)
|
||||
|
||||
* Sun Feb 14 2016 Rich Mattes <richmattes@gmail.com> - 1.11.0-5
|
||||
- Remove -Werror from package CMAKE_CXX_CFLAGS
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Mon Jan 25 2016 Rich Mattes <richmattes@gmail.com> - 1.11.0-4
|
||||
- Add missing Requires to devel sub-package (rhbz#1300055)
|
||||
- Move CeresConfig.cmake to arch-dependent path
|
||||
|
||||
* Fri Jan 15 2016 Jerry James <loganjerry@gmail.com> - 1.11.0-3
|
||||
- Rebuild for tbb 4.4u2
|
||||
|
||||
* Sat Dec 05 2015 Rich Mattes <richmattes@gmail.com> - 1.11.0-2
|
||||
- Rebuild for eigen 3.2.7
|
||||
|
||||
* Mon Oct 12 2015 Rich Mattes <richmattes@gmail.com> - 1.11.0-1
|
||||
- Update to release 1.11.0
|
||||
|
||||
* Fri Jul 10 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-8
|
||||
- Increase epsilon tolerance for one unit test. Needed for new gcc-5 changes.
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Thu Jun 11 2015 Nils Philippsen <nils@redhat.com> - 1.10.0-6
|
||||
- rebuild for suitesparse-4.4.4
|
||||
|
||||
* Sat May 9 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-5
|
||||
- Exclude ppc64
|
||||
|
||||
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.10.0-4
|
||||
- Rebuilt for GCC 5 C++11 ABI change
|
||||
|
||||
* Fri Apr 3 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-3
|
||||
- Add upstream patch to fix failing unit test small_blas_test.
|
||||
|
||||
* Thu Mar 12 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-3
|
||||
- Incorporate package review suggestions from Alex Stewart, Christopher Meng,
|
||||
and Rich Mattes.
|
||||
|
||||
* Wed Mar 11 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-2
|
||||
- Address comments from Rich Mattes' package review.
|
||||
|
||||
* Mon Jan 12 2015 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.10.0-1
|
||||
- Bump version and merge .spec updates from latest upstream release.
|
||||
|
||||
* Wed Nov 13 2013 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.8.0-1
|
||||
- New upstream release.
|
||||
|
||||
* Mon Nov 04 2013 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.8.0-0.1.0
|
||||
- New upstream release candidate.
|
||||
|
||||
* Wed Sep 04 2013 Taylor Braun-Jones <taylor.braun-jones@ge.com> - 1.7.0-1
|
||||
- Bump version
|
||||
|
||||
* Thu Aug 29 2013 Taylor Braun-Jones <taylor@braun-jones.org> - 1.7.0-0.3.0
|
||||
- Bump version
|
||||
|
||||
* Mon Aug 26 2013 Sameer Agarwal <sameeragarwal@google.com> - 1.7.0-0.2.0
|
||||
- Bump version
|
||||
|
||||
* Thu Jul 18 2013 Sameer Agarwal <sameeragarwal@google.com> - 1.7.0-0.1.0
|
||||
- Bump version
|
||||
|
||||
* Mon Apr 29 2013 Sameer Agarwal <sameeragarwal@google.com> - 1.6.0-1
|
||||
- Bump version
|
||||
|
||||
* Mon Apr 29 2013 Sameer Agarwal <sameeragarwal@google.com> - 1.6.0-0.2.0
|
||||
- Bump version
|
||||
|
||||
* Mon Apr 29 2013 Sameer Agarwal <sameeragarwal@google.com> - 1.6.0-0.1.0
|
||||
- Bump version
|
||||
|
||||
* Sun Feb 24 2013 Taylor Braun-Jones <taylor@braun-jones.org> - 1.5.0-0.1.0
|
||||
- Bump version.
|
||||
|
||||
* Sun Oct 14 2012 Taylor Braun-Jones <taylor@braun-jones.org> - 1.4.0-0
|
||||
- Initial creation
|
15
ceres-solver_bounds.patch
Normal file
15
ceres-solver_bounds.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff -rupN ceres-solver-1.13.0/internal/ceres/compressed_row_sparse_matrix.cc ceres-solver-1.13.0-new/internal/ceres/compressed_row_sparse_matrix.cc
|
||||
--- ceres-solver-1.13.0/internal/ceres/compressed_row_sparse_matrix.cc 2017-08-03 09:10:55.000000000 +0200
|
||||
+++ ceres-solver-1.13.0-new/internal/ceres/compressed_row_sparse_matrix.cc 2018-07-28 22:31:51.989682309 +0200
|
||||
@@ -196,6 +196,11 @@ CompressedRowSparseMatrix* CompressedRow
|
||||
CompressedRowSparseMatrix* output =
|
||||
new CompressedRowSparseMatrix(num_rows, num_cols, input.num_nonzeros());
|
||||
|
||||
+ if (num_rows == 0) {
|
||||
+ // No data to copy.
|
||||
+ return output;
|
||||
+ }
|
||||
+
|
||||
// Copy the contents of the cols and values array in the order given
|
||||
// by index and count the number of entries in each row.
|
||||
int* output_rows = output->mutable_rows();
|
12
ceres-solver_gflags.patch
Normal file
12
ceres-solver_gflags.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -rupN ceres-solver-1.11.0/cmake/FindGflags.cmake ceres-solver-1.11.0-new/cmake/FindGflags.cmake
|
||||
--- ceres-solver-1.11.0/cmake/FindGflags.cmake 2015-10-11 22:57:44.000000000 +0200
|
||||
+++ ceres-solver-1.11.0-new/cmake/FindGflags.cmake 2016-07-25 14:45:21.720524347 +0200
|
||||
@@ -384,7 +384,7 @@ if (GFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_
|
||||
if (FOUND_INSTALLED_GFLAGS_CMAKE_CONFIGURATION)
|
||||
message(STATUS "Detected gflags version: ${gflags_VERSION}")
|
||||
set(GFLAGS_FOUND ${gflags_FOUND})
|
||||
- set(GFLAGS_INCLUDE_DIR ${gflags_INCLUDE_DIR})
|
||||
+ set(GFLAGS_INCLUDE_DIR "/usr/include")
|
||||
set(GFLAGS_LIBRARY ${gflags_LIBRARIES})
|
||||
|
||||
# gflags does not export the namespace in their CMake configuration, so
|
Loading…
Reference in New Issue
Block a user