Skip to content

Building "tools/osmium" failed on Debian Trixie environment #323

@sanak

Description

@sanak

Problem
I encountered tools/osmium build error on Debian Trixie environment during docker-pgrouting side PR #75 work.
(Note that building root osm2pgrouting was no problem on the same Debian Trixie environment.)
https://github.com/pgRouting/docker-pgrouting/actions/runs/19781649485/job/56682677457#step:3:2589

#5 45.46 -- Build files have been written to: /usr/local/src/osm2pgrouting-3.0.0/tools/osmium/build
#5 45.50 [ 25%] Building CXX object CMakeFiles/getrestrictions.dir/src/collectors/turn_restriccions.cpp.o
#5 45.82 In file included from /usr/include/osmium/osm/object.hpp:36,
#5 45.82                  from /usr/include/osmium/osm/node.hpp:39,
#5 45.82                  from /usr/include/osmium/handler/node_locations_for_ways.hpp:41,
#5 45.82                  from /usr/local/src/osm2pgrouting-3.0.0/tools/osmium/include/collectors/turn_restrictions.h:34,
#5 45.82                  from /usr/local/src/osm2pgrouting-3.0.0/tools/osmium/src/collectors/turn_restriccions.cpp:26:
#5 45.82 /usr/include/osmium/memory/collection.hpp:52:36: error: ‘conditional_t’ in namespace ‘std’ does not name a template type; did you mean ‘conditional’?
#5 45.82    52 |             using data_type = std::conditional_t<std::is_const<TMember>::value, const unsigned char*, unsigned char*>;
#5 45.82       |                                    ^~~~~~~~~~~~~
#5 45.82       |                                    conditional
#5 45.82 /usr/include/osmium/memory/collection.hpp:54:13: error: ‘data_type’ does not name a type
#5 45.82    54 |             data_type m_data;
#5 45.82       |             ^~~~~~~~~
#5 45.82 /usr/include/osmium/memory/collection.hpp:68:50: error: expected ‘)’ before ‘data’
#5 45.82    68 |             explicit CollectionIterator(data_type data) noexcept :
#5 45.82       |                                        ~         ^~~~~
#5 45.82       |                                                  )
#5 45.82 /usr/include/osmium/memory/collection.hpp: In constructor ‘osmium::memory::CollectionIterator<TMember>::CollectionIterator()’:
#5 45.82 /usr/include/osmium/memory/collection.hpp:65:17: error: class ‘osmium::memory::CollectionIterator<TMember>’ does not have any field named ‘m_data’
#5 45.82    65 |                 m_data(nullptr) {
#5 45.82       |                 ^~~~~~
#5 45.82 /usr/include/osmium/memory/collection.hpp: In member function ‘osmium::memory::CollectionIterator<TMember>& osmium::memory::CollectionIterator<TMember>::operator++()’:
#5 45.82 /usr/include/osmium/memory/collection.hpp:73:17: error: ‘m_data’ was not declared in this scope; did you mean ‘data’?
#5 45.82    73 |                 m_data = reinterpret_cast<TMember*>(m_data)->next();
#5 45.82       |                 ^~~~~~
#5 45.82       |                 data
#5 45.83 /usr/include/osmium/memory/collection.hpp: In member function ‘bool osmium::memory::CollectionIterator<TMember>::operator==(const osmium::memory::CollectionIterator<TMember>&) const’:
:

CI log text: docker-pgrouting-ci-18-3.6-develop-osm2pgrouting-tools-osmium-error.txt

To Reproduce
Build tools/osmium on Debian Trixie environment.

cd ./tools/osmium/
mkdir build
cd build
cmake ..
make

Expectation
The error should not happen.

Platform/versions
OS: Debian Trixie (amd64)
Version: 3.0.0

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions