Package Details: ceres-solver 1.12.0-1

Git Clone URL: (read-only)
Package Base: ceres-solver
Description: Solver for nonlinear least squares problems
Upstream URL:
Licenses: LGPL
Submitter: dtag
Maintainer: dtag
Last Packager: dtag
Votes: 4
Popularity: 0.737043
First Submitted: 2015-11-27 09:36
Last Updated: 2016-12-18 17:28

Latest Comments

dtag commented on 2016-12-18 17:29

@maggeych: Done.

maggeych commented on 2016-12-17 17:40

This needs an update to version 1.12.
Version 1.11 fails to build against the latest eigen3.

dtag commented on 2016-10-30 15:33

@arcnmx: I have gflags installed and I am not getting any errors. Can you elaborate on what the issue is?

arcnmx commented on 2016-10-28 19:02

Fails to build if the gflags package is installed on the system.

dtag commented on 2016-10-21 10:20

@bartus: Fixed.

bartus commented on 2016-10-20 22:48

The protobuf seams to not be needed at all for compiling the package.

dtag commented on 2016-08-16 12:36

I am (of course) using a 64-bit system. I have done some research and found this piece of code in internal/ceres/CMakeLists.txt:

# Heuristic for determining LIB_SUFFIX. FHS recommends that 64-bit systems
# install native libraries to lib64 rather than lib. Most distros seem to
# follow this convention with a couple notable exceptions (Debian-based and
# Arch-based distros) which we try to detect here.
NOT EXISTS "/etc/debian_version" AND
NOT EXISTS "/etc/arch-release")
set(LIB_SUFFIX "64")
endif ()

I do not see how this can result in LIB_SUFFIX being set to "64" on an Arch system. It would require the /etc/arch-release file to be non-existent. Since it does not happen for me, I am unable to debug what exactly is going on for you guys.

@korken89, @kertase: I have pushed an update that explictly sets LIB_SUFFIX to "". Maybe you can try and see if it fixes things for you.

kertase commented on 2016-08-15 16:15


I do have the same issue on my machine I do not think that it is a problem with just @korken89 machine.

I checked the package it has /usr/lib64 folder which has a libceres.a inside, @dtag maybe you do not have a 64 bit machine?

I hope this problem can be solved


dtag commented on 2016-07-04 07:57

Hi @korken89,

I have tried to reinstall the package and did not encounter any issues. I also checked the contents of the package via pacman -Ql ceres-solver. It only contains /usr/lib/libceres.a as a library. Nothing inside lib64. Maybe something is wrong on your machine?

korken89 commented on 2016-07-02 08:33


With the changes in Arch the install might need to be updated:
error: failed to commit transaction (conflicting files)
ceres-solver: /usr/lib64 exists in filesystem
Errors occurred, no packages were upgraded.
I think should install to /usr/lib now, if I have understood the news correctly.

Could you have a look into this?

dtag commented on 2016-05-18 17:35

@srivats2 I have added -Wno-error=nonnull-compare -Wno-error=address, which - despite generally treating warnings as errors - treats nonnull-compare and address as warnings. The flags are added via sed to the CMakeLists.txt file. See the PKGBUILD.

srivats2 commented on 2016-05-18 17:10

Thanks for the fix. Works perfectly now. Just curious since I didn't see the GCC 6 patch in the filelist. How was this patched? The authors removed the Werror flags in the code in the original repo.

dtag commented on 2016-05-18 10:09

Thank you. Fixed the GCC 6 issue.

srivats2 commented on 2016-05-17 17:33

Need GCC 6 patch to compile :



dtag commented on 2016-03-10 08:14

Thank you for your comment. I have addressed the issue with -j9. As for the license: The PKGBUILD uses EIGENSPARSE=ON. If you read it says:

EIGENSPARSE [Default: OFF]: By default, Ceres will not use Eigen’s sparse Cholesky factorization. The is because this part of the code is licensed under the LGPL and since Eigen is a header only library, including this code will result in an LGPL licensed version of Ceres.

So LGPL is the correct license for this specific PKGBUILD, I think.

bchretien commented on 2016-03-10 07:14

Oh, and the license is New BSD, see

bchretien commented on 2016-03-10 07:12

Just a simple remark on the PKGBUILD: "make -j9" should be changed to "make". MAKEFLAGS defined in /etc/makepkg.conf are automatically used, and this is where you should define how many simultaneous jobs you want to run with make.