Package Details: alice-vision 2.4.0-4

Git Clone URL: https://aur.archlinux.org/alice-vision.git (read-only, click to copy)
Package Base: alice-vision
Description: Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms
Upstream URL: https://alicevision.github.io/
Licenses: MIT, MPL2
Submitter: bartus
Maintainer: bartus
Last Packager: bartus
Votes: 5
Popularity: 0.004741
First Submitted: 2018-08-02 16:50 (UTC)
Last Updated: 2022-08-06 23:05 (UTC)

Pinned Comments

bartus commented on 2022-03-14 10:30 (UTC)

Sorry lads, I'm at the Polish Ukraine border helping allocate refugees. Expect no update until this hell is over, wish us luck. Have no time nor access to my rig and AUR keys to test/post updates. If you have a patch, ping me on email - I'll add you as co-maintainer. Posted with my old script - https://github.com/bartoszek/aur-post

bartus commented on 2019-04-10 11:40 (UTC) (edited on 2021-08-12 13:19 (UTC) by bartus)

This is a package is also hosted on GitHub.
Use env vars to control build process:
  • CUDA_ARCH="xx;yy" to build for a specific Cuda arch, supports multiple values (note: escape semicolon when passing as argument)
  • DISABLE_CUDA=1 disable cuda depth map module. (also disables cctag,popsift and ute)
  • DISABLE_CCTAG=1 disable detection of CCTags made of concentric circles.
  • DISABLE_POPSIFT=1 disable GPU accelerated feature matching.
  • DISABLE_UTE=1 disable GPU accelerated SFM uncertainty calculation.
  • DISABLE_ALEMBIC=1 disable alembic mesh support.
  • DISABLE_OPENGV=1 disable camera rig calibration and localization.
  • DISABLE_OPENCV=1 disable camera lens calibration.
  • BUILD_DOC=1 build documentation for command line utilities.
  • BUILD_DOXYGEN=1 build documentation for code developers.
Usage cases:
  • makepkg CUDA_ARCH=52\;60 DISABLE_CCTAG=1
  • export CUDA_ARCH=52\;60 DISABLE_CCTAG=1 before build
  • {yay,paru} -S alice-vision --mflags "CUDA_ARCH=52\;60,DISABLE_CCTAG=1"
  • CUDA_ARCH=52\;60 DISABLE_CCTAG=1 ~your-aur-helper~
Notice for Yay users:

Since yay relies solely on aur-rpc to solve dependencies instead of calling makepkg --sync it can't follow dependencies logic defined in PKGBUILD. That's why it's up to the user to provide dependencies to enable optional features, otherwise yay will throw a missing dependency error.

Optional features:
  • cuda: GPU accelerated depth map calculation.
  • cctag : GPU accelerated detection of CCTags made of concentric circles.
  • popsift: GPU accelerated feature matching.
  • ute: GPU accelerated SFM uncertainty calculation.
  • opengv : camera rig calibration and localization.

Latest Comments

petronny commented on 2022-07-21 08:37 (UTC) (edited on 2022-07-22 14:53 (UTC) by petronny)

Hi, I think there might be some syntax error at line 25.

Because the process will exit 1 at that line when sourcing the PKGBUILD.

Here is the script to source the PKGBUILD:

set -ex
. /usr/share/makepkg/util.sh
. ./PKGBUILD

bartus commented on 2022-03-14 10:30 (UTC)

Sorry lads, I'm at the Polish Ukraine border helping allocate refugees. Expect no update until this hell is over, wish us luck. Have no time nor access to my rig and AUR keys to test/post updates. If you have a patch, ping me on email - I'll add you as co-maintainer. Posted with my old script - https://github.com/bartoszek/aur-post

bartus commented on 2021-02-12 09:58 (UTC)

@ultramango : As further disclaimer, building with SFM uncertainty calculation that yields community/magma as dependency. This will break build against cuda:10 as magma packages are build against community/cuda:11 resulting in missing symbols during linking.

ultramango commented on 2021-02-11 21:35 (UTC)

@bartus: I tried with DISABLE_POPSIFT=1 and ALICEVISION_USE_POPSIFT=0 and both gave the same error. BUT...

You had a good hunch with PopSift, I recompiled it (using CUDA 10), then build AV again - success. Looks like my PopSift was compiled against CUDA 10 which caused this problem.

Thanks for helping finding the root of it.

bartus commented on 2021-02-11 18:19 (UTC) (edited on 2021-02-11 18:20 (UTC) by bartus)

@ultramango: Yep it looks like grander issue then I thought at first. Looks like PopSift gets dropped by default and that's why this error doesn't pop up on my system. Will dig further tomorrow (passing DISABLE_POPSIFT=1 to makepkg should build fine)

ultramango commented on 2021-02-11 18:04 (UTC)

@bartus: not sure if get it right. Try with CUDA version 10 and 11? For 11 I did:

CUDA_PATH=/opt/cuda makepkg

No change - same error.

And for CUDA version 10 (installed from AUR, separate build path from 11):

CUDA_PATH=/opt/cuda-10.2 makepkg

Fails with some a different error compilation error - /usr/include/c++/10.2.0/type_traits(1396): error: type name is not allowed.

I'll recheck after a reboot just to be sure.

bartus commented on 2021-02-11 17:02 (UTC) (edited on 2021-02-11 17:06 (UTC) by bartus)

@ultramango: I was able to reproduce this with cuda:10 but with cuda:11 everything builds fine, could you confirm.

Edit: symbol is defined in popsift

scanelf -ARs __fatbinwrap_38_cuda_device_runtime_compute_86_cpp1_ii_8b1a5d37 -q . /opt/cuda/ /usr/lib
__fatbinwrap_38_cuda_device_runtime_compute_86_cpp1_ii_8b1a5d37  ./Linux-x86_64/libaliceVision_feature.so.2.3
__fatbinwrap_38_cuda_device_runtime_compute_86_cpp1_ii_8b1a5d37  /usr/lib/libpopsift.a:popsift_intermediate_link.o

ultramango commented on 2021-02-11 14:09 (UTC) (edited on 2021-02-11 16:59 (UTC) by ultramango)

@bartus: thanks, indeed nowhere to find. I'll keep digging, as I mentioned, must be something specific. I'll check for some global (build) options that might have set in the past.

Edit: after disabling parallel make (MAKEFLAGS) in /etc/makepkg.conf it fails at different step with the same error.

Edit 2: submitted to upstream: https://github.com/alicevision/AliceVision/issues/974

bartus commented on 2021-02-11 11:38 (UTC) (edited on 2021-02-11 11:46 (UTC) by bartus)

@ultramango: Can't find this symbol on my system.

Try scanning you system with scanelf both for /opt/cuda and for alice-vision build dir.

scanelf -qRs +__fatbinwrap_38_cuda_device_runtime_compute_75_cpp1_ii_8b1a5d37 /opt/cuda ((alice vision build path))

ultramango commented on 2021-02-11 09:36 (UTC) (edited on 2021-02-11 09:37 (UTC) by ultramango)

Anyone else having a problem with linking? If fails for me at this stage:

[283/465] Linking CXX executable Linux-x86_64/aliceVision_panoramaWarping-1.0

With undefined reference to __fatbinwrap_38_cuda_device_runtime_compute_75_cpp1_ii_8b1a5d37. I suspect there's something specific to my system that it fails to add CUDA libraries to linking (at least -lcudart).

ehmish commented on 2020-12-14 11:03 (UTC)

FYI there's an upstream issue with zen 3 cpus where it can't identify the CPU type and falls back to generic which disables sse2 which causes it to fail to build

bartus commented on 2019-10-22 22:27 (UTC)

@hrehfeld, @kureta: patched

kureta commented on 2019-10-22 17:11 (UTC) (edited on 2019-10-22 17:12 (UTC) by kureta)

@bartus @hrehfeld only problem is a single line of code for info level logging. I just wrote a patch that comments that out. Here it is for reference:

diff --git a/src/software/convert/main_convertLDRToHDR.cpp b/src/software/convert/main_convertLDRToHDR.cpp
index 68204b61..bf287451 100644
--- a/src/software/convert/main_convertLDRToHDR.cpp
+++ b/src/software/convert/main_convertLDRToHDR.cpp
@@ -288,7 +288,7 @@ void recoverSourceImage(const image::Image<image::RGBfColor>& hdrImage, hdr::rgb
     float offset[3];
     for(int i=0; i<3; ++i)
         offset[i] = std::abs(meanRecovered[i] - meanVal[i]);
-    ALICEVISION_LOG_INFO("Offset between target source image and recovered from hdr = " << offset);
+    // ALICEVISION_LOG_INFO("Offset between target source image and recovered from hdr = " << offset);
 }

hrehfeld commented on 2019-10-21 21:30 (UTC) (edited on 2019-10-21 21:31 (UTC) by hrehfeld)

Are you aware that the build is currently broken? https://travis-ci.org/bartoszek/AUR-alice-vision

[ 35%] Building CXX object src/aliceVision/feature/CMakeFiles/aliceVision_feature.dir/svgVisualization.cpp.o
In file included from /tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/software/convert/main_convertLDRToHDR.cpp:9:
/tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/software/convert/main_convertLDRToHDR.cpp: In function ‘void recoverSourceImage(const aliceVision::image::Image<aliceVision::image::Rgb<float> >&, aliceVision::hdr::rgbCurve&, float, float*, aliceVision::image::Image<aliceVision::image::Rgb<float> >&)’:
/tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/software/convert/main_convertLDRToHDR.cpp:291:89: error: ambiguous overload for ‘operator<<’ (operand types are ‘boost::log::v2_mt_posix::basic_record_ostream<char>’ and ‘float [3]’)
  291 |     ALICEVISION_LOG_INFO("Offset between target source image and recovered from hdr = " << offset);
      |                                                                                         ^~ ~~~~~~
      |                                                                                            |
      |                                                                                            float [3]
/tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/aliceVision/system/Logger.hpp:30:42: note: in definition of macro ‘ALICEVISION_LOG’
   30 | #define ALICEVISION_LOG(MODE, a) MODE << a
      |                                          ^
/tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/software/convert/main_convertLDRToHDR.cpp:291:5: note: in expansion of macro ‘ALICEVISION_LOG_INFO’
  291 |     ALICEVISION_LOG_INFO("Offset between target source image and recovered from hdr = " << offset);
      |     ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/log/trivial.hpp:24,
                 from /tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/aliceVision/system/Logger.hpp:13,
                 from /tmp/makepkg/alice-vision/src/AliceVision-2.2.0/src/software/convert/main_convertLDRToHDR.cpp:9:
/usr/include/boost/log/sources/record_ostream.hpp:263:27: note: candidate: ‘boost::log::v2_mt_posix::basic_record_ostream<CharT>& boost::log::v2_mt_posix::basic_record_ostream<CharT>::operator<<(bool) [with CharT = char]’
  263 |     basic_record_ostream& operator<< (bool value)
      |                           ^~~~~~~~
/usr/include/boost/log/sources/record_ostream.hpp:371:1: note: candidate: ‘typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, true, StreamT&>::type boost::log::v2_mt_posix::operator<<(StreamT&, T) [with StreamT = boost::log::v2_mt_posix::basic_record_ostream<char>; T = float*; typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, true, StreamT&>::type = boost::log::v2_mt_posix::basic_record_ostream<char>&]’
  371 | operator<< (StreamT& strm, T value)
      | ^~~~~~~~
/usr/include/boost/log/sources/record_ostream.hpp:380:1: note: candidate: ‘typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, false, StreamT&>::type boost::log::v2_mt_posix::operator<<(StreamT&, const T&) [with StreamT = boost::log::v2_mt_posix::basic_record_ostream<char>; T = float [3]; typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, false, StreamT&>::type = boost::log::v2_mt_posix::basic_record_ostream<char>&]’
  380 | operator<< (StreamT& strm, T const& value)
      | ^~~~~~~~
/usr/include/boost/log/sources/record_ostream.hpp:389:1: note: candidate: ‘typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, false, StreamT&>::type boost::log::v2_mt_posix::operator<<(StreamT&, T&) [with StreamT = boost::log::v2_mt_posix::basic_record_ostream<char>; T = float [3]; typename boost::log::v2_mt_posix::aux::enable_record_ostream_generic_operator<StreamT, T, false, StreamT&>::type = boost::log::v2_mt_posix::basic_record_ostream<char>&]’
  389 | operator<< (StreamT& strm, T& value)
      | ^~~~~~~~
make[2]: *** [src/software/convert/CMakeFiles/aliceVision_convertLDRToHDR.dir/build.make:63: src/software/convert/CMakeFiles/aliceVision_convertLDRToHDR.dir/main_convertLDRToHDR.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3687: src/software/convert/CMakeFiles/aliceVision_convertLDRToHDR.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 35%] Building CXX object src/aliceVision/feature/CMakeFiles/aliceVision_feature.dir/sift/ImageDescriber_SIFT_popSIFT.cpp.o
[ 35%] Linking CXX shared library ../../../Linux-x86_64/libaliceVision_feature.so
[ 35%] Built target aliceVision_feature
make: *** [Makefile:130: all] Error 2
==> ERROR: A failure occurred in build().

hrehfeld commented on 2019-10-21 19:25 (UTC)

I don't know why, but my magma was installed to /opt/magma as well. Reinstalling the package helped, now it's in /usr/share

bartus commented on 2019-09-25 12:34 (UTC)

@fruitywelsh: Yes, and it is described in the pinned comment

fruitywelsh commented on 2019-09-25 00:52 (UTC)

I had to manually install opengv-git, popsift, and uncertainty-framework . Is that intended?

kureta commented on 2019-08-25 13:00 (UTC)

@bartus thank you very much for your efforts!

bartus commented on 2019-08-25 12:58 (UTC) (edited on 2019-08-25 13:01 (UTC) by bartus)

@kureta: Finlay find the culprit. By default ALICEVISION_BUILD_DOC is set to AUTO, which determine if build doc base on sphinx and doxygen availablity in build env. I've tested PKGBUILD in chroot with sphinx/doxygen installed and found the same bug.

I've added -DALICEVISION_BUILD_DOC=OFF to _CMAKE_FLAGS to mitigate this issue.

For the future, I'm strongly suggesting building packages in clean-chroot to disassociate from locally installed packages, I can not test every edge case out there ;)

kureta commented on 2019-08-25 12:27 (UTC)

I tried to build it without yay, just checked out the repo and used mkpkg. Didn't work. So I added -DALICEVISION_BUILD_DOC=OFF cmake flag and everything went fine.

bartus commented on 2019-08-25 06:11 (UTC) (edited on 2019-08-25 09:54 (UTC) by bartus)

@kureta Is this again a yay related problem :cold_sweat: ? I've just rebuild the package in chroot with yay and it works fine.

Could you please provide build logs: yay -S alice-vision --mflags "--log" (log location: ~/.cache/yay/alice-vision/)

kureta commented on 2019-08-24 23:03 (UTC)

@bartus the "/opt/magma" problem is solved but as I mentioned before, now there is another problem regarding missing doc files or something.

CMake Error at src/cmake_install.cmake:45 (file):
file INSTALL cannot find "/tmp/makepkg/alice-vision/src/build/src/doc".

bartus commented on 2019-08-23 06:01 (UTC) (edited on 2019-08-23 10:54 (UTC) by bartus)

@kureta: I've got through magma CMakeLists.txt and found this one:

build-shared/cmake_install.cmake:if(NOT DEFINED CMAKE_INSTALL_PREFIX)
build-shared/cmake_install.cmake:  set(CMAKE_INSTALL_PREFIX "/opt/magma")

Looks like you could have CMAKE_INSTALL_PREFIX set in your build env to /usr/local which messes up magma build configuration (in clean chroot this var is empty). I've added this as exception to magma PKGBUILD. Now it should build fine for you also ;)

kureta commented on 2019-08-22 22:04 (UTC)

@bartus I don't have an alice-vision package because compilation fails.

bartus commented on 2019-08-22 06:37 (UTC) (edited on 2019-08-22 06:44 (UTC) by bartus)

@kureta: show me what you've got in .BUILDINFO for alice-vision

tar xf alice-vision-2.2.0-1-x86_64.pkg.tar.zst .BUILDINFO -O|vim -

You should find installed = magma-2.5.0-2-x86_64 there.

And .MTREE for magma

tar xf magma-2.5.0-2-x86_64.pkg.tar.zst .MTREE -O|gunzip |vim -

It should look like this:

1    #mtree
   1 /set type=file uid=0 gid=0 mode=644
   2 ./.BUILDINFO time=1566455115.0 size=7065 md5digest=da064aa4a009f8186ff3ef1c9e6c6693 sha256digest=f1fc1c110a04ede3134283df20011fd70a17a2739601b94985a040f6a6f5abb9
   3 ./.PKGINFO time=1566455115.0 size=550 md5digest=0a94f033a40a26f100dc189d4f1f9df7 sha256digest=baa22392bbba670ecb6a439cd6cfa2f21ac0780cd72323aace9882e9239bcaf9
   4 ./opt time=1566455115.0 mode=755 type=dir
   5 /set mode=755
   6 ./opt/magma time=1566455115.0 type=dir
   7 /set mode=644

kureta commented on 2019-08-21 23:31 (UTC) (edited on 2019-08-21 23:56 (UTC) by kureta)

@bartus I am having the same problem as @Miegl. Maybe your build environment is not clean and you have a copy of magma in /opt/magma

Edit: I have changed /opt/magma in PKGBUILD to /usr/local and it started compiling, but gave this error at the end

CMake Error at src/cmake_install.cmake:45 (file):
  file INSTALL cannot find "/tmp/makepkg/alice-vision/src/build/src/doc".
Call Stack (most recent call first):
  cmake_install.cmake:51 (include)


make: *** [Makefile:118: install] Error 1
==> ERROR: A failure occurred in package().
    Aborting...

bartus commented on 2019-08-21 20:48 (UTC)

@Miegl: Where's the problem with magma I'm maintaining both and can't see the issue.

Miegl commented on 2019-08-20 18:51 (UTC) (edited on 2019-08-20 19:05 (UTC) by Miegl)

Please could you redo the entire package and test it afterwards? For example -DMAGMA_ROOT isn't /opt/magma but it's /usr/local Thank you!

bartus commented on 2019-04-26 20:27 (UTC)

@qs9rx: there's a alice-vision-git package that builds fine against ceres-solver-git.

qs9rx commented on 2019-04-19 09:26 (UTC)

This will NOT build with ceres-solver-git due to https://github.com/alicevision/AliceVision/pull/403 I guess. Solver::Options::num_linear_solver_threads is not available anymore but this packages try to use it.

bartus commented on 2019-04-10 11:40 (UTC) (edited on 2021-08-12 13:19 (UTC) by bartus)

This is a package is also hosted on GitHub.
Use env vars to control build process:
  • CUDA_ARCH="xx;yy" to build for a specific Cuda arch, supports multiple values (note: escape semicolon when passing as argument)
  • DISABLE_CUDA=1 disable cuda depth map module. (also disables cctag,popsift and ute)
  • DISABLE_CCTAG=1 disable detection of CCTags made of concentric circles.
  • DISABLE_POPSIFT=1 disable GPU accelerated feature matching.
  • DISABLE_UTE=1 disable GPU accelerated SFM uncertainty calculation.
  • DISABLE_ALEMBIC=1 disable alembic mesh support.
  • DISABLE_OPENGV=1 disable camera rig calibration and localization.
  • DISABLE_OPENCV=1 disable camera lens calibration.
  • BUILD_DOC=1 build documentation for command line utilities.
  • BUILD_DOXYGEN=1 build documentation for code developers.
Usage cases:
  • makepkg CUDA_ARCH=52\;60 DISABLE_CCTAG=1
  • export CUDA_ARCH=52\;60 DISABLE_CCTAG=1 before build
  • {yay,paru} -S alice-vision --mflags "CUDA_ARCH=52\;60,DISABLE_CCTAG=1"
  • CUDA_ARCH=52\;60 DISABLE_CCTAG=1 ~your-aur-helper~
Notice for Yay users:

Since yay relies solely on aur-rpc to solve dependencies instead of calling makepkg --sync it can't follow dependencies logic defined in PKGBUILD. That's why it's up to the user to provide dependencies to enable optional features, otherwise yay will throw a missing dependency error.

Optional features:
  • cuda: GPU accelerated depth map calculation.
  • cctag : GPU accelerated detection of CCTags made of concentric circles.
  • popsift: GPU accelerated feature matching.
  • ute: GPU accelerated SFM uncertainty calculation.
  • opengv : camera rig calibration and localization.

bartus commented on 2018-08-30 20:18 (UTC) (edited on 2018-08-31 11:02 (UTC) by bartus)

@aslakstubsgaard: this is a pacaur specific warning, package itself is working fine. Just install it form pacaur cache folder (HOME/.cache/pacaur) with pacman -U, or use different AUR helper (pamac-aur,yaourt,aurutils,etc..)

~~I will create separate -git package asap ;)~~

Ok. now there're packages for git and release versions. Should work fine with pacaur.

aslakstubsgaard commented on 2018-08-30 14:42 (UTC)

i get the error: " :: Installing alice-vision package(s)... :: alice-vision package(s) failed to install. :: ensure package version does not mismatch between .SRCINFO and PKGBUILD :: ensure package name has a VCS suffix if this is a devel package "