NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
16.7k stars 13.15k forks source link

rtabmap: build fails #216919

Open davidak opened 1 year ago

davidak commented 1 year ago

Describe the bug

...
[ 40%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/toro3d/treeoptimizer3_iteration.cpp.o
/build/source/corelib/src/MarkerDetector.cpp: In constructor 'rtabmap::MarkerDetector::MarkerDetector(const rtabmap::ParametersMap&)':
/build/source/corelib/src/MarkerDetector.cpp:43:58: error: 'create' is not a member of 'cv::aruco::DetectorParameters'
   43 |         detectorParams_ = cv::aruco::DetectorParameters::create();
      |                                                          ^~~~~~
/build/source/corelib/src/MarkerDetector.cpp:48:98: error: invalid conversion from 'int' to 'cv::aruco::CornerRefineMethod' [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-fpermissive-fpermissive8;;]
   48 |         detectorParams_->cornerRefinementMethod = Parameters::defaultMarkerCornerRefinementMethod();
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                                                  |
      |                                                                                                  int
/build/source/corelib/src/MarkerDetector.cpp: In member function 'void rtabmap::MarkerDetector::parseParameters(const rtabmap::ParametersMap&)':
/build/source/corelib/src/MarkerDetector.cpp:74:101: error: cannot bind non-const lvalue reference of type 'int&' to a value of type 'cv::aruco::CornerRefineMethod'
   74 |         Parameters::parse(parameters, Parameters::kMarkerCornerRefinementMethod(), detectorParams_->cornerRefinementMethod);
      |                                                                                    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from /build/source/corelib/src/../include/rtabmap/core/MarkerDetector.h:31,
                 from /build/source/corelib/src/MarkerDetector.cpp:28:
/build/source/corelib/src/../include/rtabmap/core/Parameters.h:824:88: note:   initializing argument 3 of 'static bool rtabmap::Parameters::parse(const rtabmap::ParametersMap&, const std::string&, int&)'
  824 |     static bool parse(const ParametersMap & parameters, const std::string & key, int & value);
      |                                                                                  ~~~~~~^~~~~
/build/source/corelib/src/MarkerDetector.cpp:107:69: error: 'PREDEFINED_DICTIONARY_NAME' is not a member of 'cv::aruco'
  107 |         dictionary_ = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId_));
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
[ 40%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/toro3d/treeoptimizer3.cpp.o
[ 41%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/toro3d/posegraph2.cpp.o
[ 41%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/toro3d/treeoptimizer2.cpp.o
[ 41%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/vertigo/g2o/edge_se2Switchable.cpp.o
In file included from /build/source/corelib/src/optimizer/toro3d/dmatrix.hh:92,
                 from /build/source/corelib/src/optimizer/toro3d/transformation3.hh:42,
                 from /build/source/corelib/src/optimizer/toro3d/posegraph3.hh:47,
                 from /build/source/corelib/src/optimizer/toro3d/posegraph3.cpp:42:
In destructor 'DMatrix<X>::~DMatrix() [with X = double]',
    inlined from 'virtual void AISNavigation::TreePoseGraph3::collapseEdge(AISNavigation::TreePoseGraph<AISNavigation::Operations3D<double> >::Edge*)' at /build/source/corelib/src/optimizer/toro3d/posegraph3.cpp:352:5:
/build/source/corelib/src/optimizer/toro3d/dmatrix.hxx:95:3: warning: pointer used after 'void operator delete(void*, std::size_t)' [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuse-after-free-Wuse-after-free8;;]
   95 |   if (--(*shares)) return;
      |   ^~
In destructor 'DMatrix<X>::~DMatrix() [with X = double]',
    inlined from 'DMatrix<X>::~DMatrix() [with X = double]' at /build/source/corelib/src/optimizer/toro3d/dmatrix.hxx:94:20,
    inlined from 'virtual void AISNavigation::TreePoseGraph3::collapseEdge(AISNavigation::TreePoseGraph<AISNavigation::Operations3D<double> >::Edge*)' at /build/source/corelib/src/optimizer/toro3d/posegraph3.cpp:352:5:
/build/source/corelib/src/optimizer/toro3d/dmatrix.hxx:98:3: note: call to 'void operator delete(void*, std::size_t)' here
   98 |   delete shares;
      |   ^~~~~~~~~~~~~
make[2]: *** [corelib/src/CMakeFiles/rtabmap_core.dir/build.make:1378: corelib/src/CMakeFiles/rtabmap_core.dir/MarkerDetector.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 42%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/optimizer/vertigo/g2o/edge_se3Switchable.cpp.o
make[1]: *** [CMakeFiles/Makefile2:826: corelib/src/CMakeFiles/rtabmap_core.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
error: builder for '/nix/store/5n5swdhzjk550vpcpclxlfvqbhsa9mzg-rtabmap-unstable-2022-09-24.drv' failed with exit code 2;

Steps To Reproduce

Steps to reproduce the behavior:

  1. nix-build . -A rtabmap

Expected behavior

successful build

Additional context

Tested at 18b30ed2a3d596c7ba7d5adc7b231a470fb519a5

Notify maintainers

@ckiee

Metadata

ckiee commented 1 year ago

Current suspect: https://github.com/NixOS/nixpkgs/commit/021eed6b752f466e7931fc1e63071a7a0ebe85d5 | will triage further later

https://hydra.nixos.org/job/nixpkgs/trunk/rtabmap.x86_64-linux/all https://hydra.nixos.org/build/205610272