Bug#1001760: FTBFS: 'placeholders' is ambiguous

Steve Langasek steve.langasek at canonical.com
Wed Dec 15 16:13:10 GMT 2021


Package: dart
Version: 6.9.5-4
Severity: serious
Tags: patch
Justification: ftbfs
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu jammy ubuntu-patch

Hi José Luís,

In rebuilding packages in Ubuntu for the liburdfdom-model package rename, I
found that dart currently fails to build from source:

/tmp/dart-6.9.5/unittests/unit/test_Signal.cpp: In member function 'virtual void
 Signal_NonStaticMemberFunction_Test::TestBody()':
/tmp/dart-6.9.5/unittests/unit/test_Signal.cpp:118:9: error: reference to 'placeholders' is ambiguous
  118 |   using placeholders::_1;
      |         ^~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/Core:265,
                 from /tmp/dart-6.9.5/obj-x86_64-linux-gnu/dart/config.hpp:5,
                 from /tmp/dart-6.9.5/dart/dart.hpp:33,
                 from /tmp/dart-6.9.5/unittests/unit/test_Signal.cpp:36:
/usr/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h:174:11: note: candidates are: 'namespace Eigen::placeholders { }'
  174 | namespace placeholders {
      |           ^~~~~~~~~~~~
In file included from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /tmp/dart-6.9.5/unittests/gtest/include/gtest/internal/gtest-port.h:284,
                 from /tmp/dart-6.9.5/unittests/gtest/include/gtest/internal/gtest-internal.h:40,
                 from /tmp/dart-6.9.5/unittests/gtest/include/gtest/gtest.h:59,
                 from /tmp/dart-6.9.5/unittests/unit/test_Signal.cpp:34:
/usr/include/c++/11/functional:219:13: note:                 'namespace std::placeholders { }'
  219 |   namespace placeholders
      |             ^~~~~~~~~~~~

Please find attached a patch that disambiguates and lets the package build.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru dart-6.9.5/debian/patches/series dart-6.9.5/debian/patches/series
--- dart-6.9.5/debian/patches/series	2021-10-08 07:07:34.000000000 -0700
+++ dart-6.9.5/debian/patches/series	2021-12-14 21:44:11.000000000 -0800
@@ -5,3 +5,4 @@
 0007-fix-soversion.patch
 0006-Reduce-test-result-accuracy-to-fix-i386.patch
 0008-fix-cmake-example.patch
+stdc++.patch
diff -Nru dart-6.9.5/debian/patches/stdc++.patch dart-6.9.5/debian/patches/stdc++.patch
--- dart-6.9.5/debian/patches/stdc++.patch	1969-12-31 16:00:00.000000000 -0800
+++ dart-6.9.5/debian/patches/stdc++.patch	2021-12-15 07:49:05.000000000 -0800
@@ -0,0 +1,22 @@
+Description: disambiguate 'placeholders' namespace
+ Eigen now has a 'placeholders' namespace, so specify that we're after
+ std::placeholders
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Last-Update: 2021-12-15
+Forwarded: no
+
+Index: dart-6.9.5/unittests/unit/test_Signal.cpp
+===================================================================
+--- dart-6.9.5.orig/unittests/unit/test_Signal.cpp
++++ dart-6.9.5/unittests/unit/test_Signal.cpp
+@@ -115,8 +115,8 @@
+   signal2.connect(&Viewer::onSignal2Static);
+ 
+   // Connect non-static member function
+-  using placeholders::_1;
+-  using placeholders::_2;
++  using std::placeholders::_1;
++  using std::placeholders::_2;
+   signal1.connect(bind(&Viewer::onSignal1, &viewer, _1));
+   signal2.connect(bind(&Viewer::onSignal2, &viewer, _1, _2));
+ 


More information about the debian-science-maintainers mailing list