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
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) |
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
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
@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.
@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.
@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)
@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.
@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
@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
@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))
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
).
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
@hrehfeld, @kureta: patched
@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);
}
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().
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
@fruitywelsh: Yes, and it is described in the pinned comment
I had to manually install opengv-git, popsift, and uncertainty-framework . Is that intended?
@bartus thank you very much for your efforts!
@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 ;)
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.
@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/
)
@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".
@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 ;)
@bartus I don't have an alice-vision package because compilation fails.
@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
@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...
@Miegl: Where's the problem with magma
I'm maintaining both and can't see the issue.
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!
@qs9rx: there's a alice-vision-git
package that builds fine against ceres-solver-git
.
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.
Please submit patches
and report issues
to AUR-alice-vision/github.com
Travis CI Status: <img alt="Build Status" src="https://travis-ci.org/bartoszek/AUR-alice-vision.svg?branch=master" />
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.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~
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.
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.@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
.
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 "
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.
Please submit
patches
and reportissues
to AUR-alice-vision/github.comTravis CI Status: <img alt="Build Status" src="https://travis-ci.org/bartoszek/AUR-alice-vision.svg?branch=master" />
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 callingmakepkg --sync
it can't follow dependencies logic defined inPKGBUILD
. That's why it's up to the user to provide dependencies to enable optional features, otherwiseyay
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.