@dack: I've got to apologise paru devs, as paru --rebuild --chroot=/tmp/paru --mflags="BUILD_CUDA=ON CUDA_ARCH=80" --fm vifm --chrootpkgs='ccache,makepkg-optimize' --chrootflags="-d /mnt/ccache:/build/.ccache" colmap besides resolving dependencies according to makepkg -s preserving the intended behaviour of the control env vars, also allows to edit the source PKBGUILD with vifm while building in a clean ephemeral chroot entirely in tmpfs with my ccache build cache bind mounted and custome optimization script applied 👍
Search Criteria
Package Details: colmap 4.1.0-3
Package Actions
| Git Clone URL: | https://aur.archlinux.org/colmap.git (read-only, click to copy) |
|---|---|
| Package Base: | colmap |
| Description: | General-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. |
| Upstream URL: | https://colmap.github.io/ |
| Licenses: | GPL |
| Submitter: | bartus |
| Maintainer: | bartus |
| Last Packager: | bartus |
| Votes: | 7 |
| Popularity: | 0.24 |
| First Submitted: | 2019-03-27 07:15 (UTC) |
| Last Updated: | 2026-07-07 08:29 (UTC) |
Dependencies (23)
- boost-libs
- ceres-solver (ceres-solver-legacyAUR, ceres-solver-cuda-gitAUR, ceres-solver-gitAUR, ceres-solver-cudaAUR, ceres-solver-lgplAUR)
- cgal (cgal-gitAUR)
- flann
- fmt (fmt-gitAUR)
- freeglut (freeglut-x11-gitAUR, freeglut-wayland-gitAUR)
- gflags (gflags-gitAUR)
- glew (glew-libepoxyAUR, glew-wayland-gitAUR, glew-gitAUR)
- google-glog (ng-logAUR, glog-gitAUR, glog-gitAUR)
- libjpeg (mozjpeg-gitAUR, mozjpegAUR)
- metisAUR (metis-gitAUR)
- onnxruntime-cpu
- openimageio (openimageio-gitAUR)
- protobuf (protobuf-gitAUR)
- qt5-base (qt5-base-gitAUR, qt5-base-headlessAUR)
- qt5-svg (qt5-svg-gitAUR)
- suitesparse
- boost (boost-gitAUR) (make)
- cmake (cmake3AUR, cmake-gitAUR) (make)
- eigen (eigen-gitAUR, eigen3) (make)
- Show 3 more dependencies...
Required by (0)
Sources (4)
bartus commented on 2026-06-13 10:56 (UTC) (edited on 2026-06-13 11:08 (UTC) by bartus)
bartus commented on 2026-06-08 16:48 (UTC) (edited on 2026-06-13 13:52 (UTC) by bartus)
@caellion, @dack: It's a paru dev decision to break compatibility with makepkg -s already tried to nag them to conform to the intended makepkg behaviour, without result.
I can't be bothered to maintain different versions of the package to work against each distro/aur-helper combo 😁
caellian commented on 2026-04-20 02:46 (UTC) (edited on 2026-04-20 02:47 (UTC) by caellian)
So I think to fix onnxruntime breaking in paru, you can simply use the metapackage and let the user decide what to do instead of trying to infer it based on the system:
diff --git a/PKGBUILD b/PKGBUILD
index c316f8e..bf72864 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,6 @@ check_option "debug" "y" && BUILD_TYPE=Debug || BUID_TYPE=Release
## Configuration env vars:
_ver=4.0.1
-_BUILD_CUDA="${BUILD_CUDA:-ON}"
_CUDA_ARCH="${CUDA_ARCH:-native}"
_fragment=${FRAGMENT:-#tag=$_ver}
# Use CMAKE_FLAGS=xxx:yyy:zzz to define extra CMake flags
@@ -21,15 +20,9 @@ arch=('i686' 'x86_64')
url="https://colmap.github.io/"
license=('GPL')
groups=()
-depends=('cgal' 'ceres-solver' 'gflags' 'openimageio' 'suitesparse' 'freeglut' 'glew' 'google-glog' 'libjpeg' 'boost-libs' 'qt5-base' 'metis' 'flann')
+depends=('cgal' 'ceres-solver' 'gflags' 'openimageio' 'suitesparse' 'freeglut' 'glew' 'google-glog' 'libjpeg' 'boost-libs' 'qt5-base' 'metis' 'flann' 'onnxruntime' 'protobuf')
makedepends=('boost' 'cmake' 'eigen' 'git' 'ninja' 'python-sphinx')
-if [ "$_BUILD_CUDA" == "ON" ] ; then
- depends+=('onnxruntime-cuda' 'protobuf')
- makedepends+=('cuda')
- optdepends+=('libcudart.so: required for dense reconstruction')
-else
- depends+=('onnxruntime-cpu' 'protobuf')
-fi
+optdepends+=('libcudart.so: CUDA support for dense reconstruction')
source=("${pkgname}::git+https://github.com/colmap/colmap.git${_fragment}"
"vocabulary-tree-32K.bin::https://demuc.de/colmap/vocab_tree_flickr100K_words32K.bin"
"vocabulary-tree-256K.bin::https://demuc.de/colmap/vocab_tree_flickr100K_words256K.bin"
@@ -46,8 +39,8 @@ prepare() {
build() {
# determine whether we can precompile CUDA kernels
- _CUDA_PKG=$(pacman -Qsq cuda 2>/dev/null) || true
- if [[ -n "$_CUDA_PKG" && "$_BUILD_CUDA" == "ON" ]]; then
+ _CUDA_PKG=$(pacman -Qq cuda 2>/dev/null) || true
+ if [[ -n "$_CUDA_PKG" ]]; then
# determine whether we need to define cuda host compiler
if _cuda_gcc=$(readlink /opt/cuda/bin/gcc) ; then
[ -f "$_cuda_gcc" ] && export CUDAHOSTCXX="$_cuda_gcc"
dack commented on 2026-03-30 04:46 (UTC)
A couple of suggestions:
Please add a dependency for fmt. Build in clean chroot fails without it.
Using environment variables to change the dependencies for cuda/cpu builds seems to cause issues for paru. I believe this is because paru queries aur for dependencies, rather than executing the PKGBUILD to determine them. I think it would be better to split the package into two separate ones (such as "colmap" and "colmap-cuda"), rather than use environment variables. That way, the dependencies seen in aur web/api are correct and builds with paru work, and any other automated build tools should have consistent/reproducible results. This seems a pretty standard way other packages have dealt with different builds for cuda and cpu as well.
As a workaround for paru users, you can "paru -G colmap" to download the PKGBUILD and then "paru -B colmap" to build it from the local copy.
nvdx commented on 2026-03-20 16:49 (UTC) (edited on 2026-03-20 16:50 (UTC) by nvdx)
resolving dependencies...
looking for conflicting packages...
:: onnxruntime-cpu-1.24.4-1 and onnxruntime-cuda-1.24.4-1 are in conflict (onnxruntime). Remove onnxruntime-cuda? [y/N] N
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: onnxruntime-cpu-1.24.4-1 and onnxruntime-cuda-1.24.4-1 are in conflict
Can't have onnxruntime-cpu and onnxruntime-cuda at same time as dependencies.
Can the PKGBUILD be updated ?
bartus commented on 2026-02-16 17:19 (UTC)
@sorn: yap 😁
sorn commented on 2026-02-09 20:30 (UTC)
Hi, Any chance of an update, here? It'd be lovely to have this package up to date. Thanks in advance. :-)
zhou13 commented on 2024-12-19 23:45 (UTC) (edited on 2024-12-19 23:47 (UTC) by zhou13)
For people have problem:
Error downloading object: doc/images/dense.png (3392380): Smudge error: Error downloading doc/images/dense.png (3392380e167a935dd309afb8e2e61b03bd53437152f6dc98482df4b13fc13e87): error transferring "3392380e167a935dd309afb8e2e61b03bd53437152f6dc98482df4b13fc13e87": [0] remote missing object 3392380e167a935dd309afb8e2e61b03bd53437152f6dc98482df4b13fc13e87
You can workaround it by GIT_LFS_SKIP_SMUDGE=1 yay -S colmap-git.
@bartus: Please add export GIT_LFS_SKIP_SMUDGE=1 to the PKGBUILD so it can compile.
robtor commented on 2024-06-09 15:07 (UTC)
Might it not be better setting the default cuda architecture to 'all' so that when building with no specific options a kind of "general" package will be built that is more portable?
I would really appreciate that because I'm currently building a small custom repository with some prebuilt AUR packages that will be distributed to different hardware PC's
bazza commented on 2024-05-25 03:49 (UTC)
Error in make
-- Found GMP: /usr/lib/libgmp.so
-- Found MPFR: /lib/libmpfr.so
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found suitable version "1.83.0", minimum required is "1.66")
-- Boost include dirs: /usr/include
-- Boost libraries:
-- Using gcc version 4 or later. Adding -frounding-math
-- Found CGAL
-- Includes : /usr/include
-- Libraries : CGAL
CMake Error at /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:814 (message):
Compiling the CUDA compiler identification source file
"CMakeCUDACompilerId.cu" failed.
Compiler: /opt/cuda/bin/nvcc
Pinned Comments
bartus commented on 2019-04-10 11:42 (UTC) (edited on 2026-06-13 13:47 (UTC) by bartus)
Please report
issuesandpatchesat GitHub: https://github.com/bartoszek/AUR-colmapThere are flags in the PKGBUILD that control the
cudaandfreeimagebuild:BUILD_CUDA=ONbuildcudadanse mesh solver (defaultON, set toOFFto disablecuda)CUDA_ARCH=nativedefinecudacompute arch (defaultnativeto autodetect current system GPU arch, can be set to e.g,sm_70for specific arch)FRAGMENT=#{tag,commit,branch}=###for bisec build.Use with your AUR helper or directly with the
makepkg:yay/paru --mflags=BUILD_CUDA=ON --mflags=CUDA_ARCH=sm_52makepkg BUILD_CUDA=ON FRAGMENT=#branch=devel