[Debian-med-packaging] Bug#909766: rapmap FTBFS with spdlog 1:1.1.0-1

Andreas Tille andreas at an3as.eu
Fri Sep 28 10:20:18 BST 2018


Control: tags -1 help

On Thu, Sep 27, 2018 at 11:38:55PM +0300, Adrian Bunk wrote:
> Source: rapmap
> Version: 0.5.0+dfsg-3
> Severity: serious
> Tags: ftbfs
> 
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/rapmap.html
> 
> ...
> In file included from /build/1st/rapmap-0.5.0+dfsg/src/RapMapUtils.cpp:26:
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp: In function 'void rapmap::utils::writeSAMHeader(IndexT&, std::shared_ptr<spdlog::logger>)':
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:86:18: error: 'MemoryWriter' is not a member of 'fmt'
>              fmt::MemoryWriter hd;
>                   ^~~~~~~~~~~~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:87:6: error: 'hd' was not declared in this scope
>       hd.write("@HD\tVN:1.0\tSO:unknown\n");
>       ^~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp: In function 'void rapmap::utils::writeSAMHeader(IndexT&, std::ostream&)':
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:106:18: error: 'MemoryWriter' is not a member of 'fmt'
>              fmt::MemoryWriter hd;
>                   ^~~~~~~~~~~~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:107:6: error: 'hd' was not declared in this scope
>       hd.write("@HD\tVN:1.0\tSO:unknown\n");
>       ^~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp: At global scope:
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:125:43: error: expected template-name before '<' token
>      class FixedBuffer : public fmt::Buffer<char> {
>                                            ^
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:125:43: error: expected '{' before '<' token
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:125:43: error: expected unqualified-id before '<' token
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:136:44: error: expected class-name before '{' token
>      class FixedWriter : public fmt::Writer {
>                                             ^
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:138:25: error: field 'buffer_' has incomplete type 'rapmap::utils::FixedBuffer'
>              FixedBuffer buffer_;
>                          ^~~~~~~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:125:11: note: forward declaration of 'class rapmap::utils::FixedBuffer'
>      class FixedBuffer : public fmt::Buffer<char> {
>            ^~~~~~~~~~~
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp: In constructor 'rapmap::utils::FixedWriter::FixedWriter(char*, std::size_t)':
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:141:30: error: expected class-name before '(' token
>                  : fmt::Writer(buffer_), buffer_(array, size) {}
>                               ^
> /build/1st/rapmap-0.5.0+dfsg/include/RapMapUtils.hpp:141:30: error: expected '{' before '(' token
> ...

I admit my limited knowledge in C++ does not enable me to see a
conncetion between the update of spdlog and these errors but a test
build with libspdlog from testing passed flawlessly.  However, later in
the log there are also

...
In file included from /usr/include/c++/8/memory:81,
                 from /usr/include/c++/8/thread:39,
                 from /build/rapmap-0.5.0+x/src/RapMapSAMapper.cpp:33:
/usr/include/c++/8/bits/shared_ptr.h:719:5: note: candidate: 'template<class _Tp, class ... _Args> std::shared_ptr<_Tp> std::make_shared(_Args&& ...)'
     make_shared(_Args&&... __args)
     ^~~~~~~~~~~
/usr/include/c++/8/bits/shared_ptr.h:719:5: note:   template argument deduction/substitution failed:
/build/rapmap-0.5.0+x/src/RapMapSAMapper.cpp:588:80: error: template argument 1 is invalid
   auto consoleSink = std::make_shared<spdlog::sinks::ansicolor_stderr_sink_mt>();
                                                                                ^
/build/rapmap-0.5.0+x/src/RapMapSAMapper.cpp:589:62: error: no matching function for call to 'create(const char [10], <brace-enclosed initializer list>)'
   auto consoleLog = spdlog::create("stderrLog", {consoleSink});
                                                              ^


which are looking similar to the problem in #909763 (thus I again took
the freedom to set Gert in CC).

I see another option to work around the current issue since rapmap comes
with its own copy of spdlog (in latest Git version 0.16.3).  I could
revert the exclusion from the rapmap source code as long as upstream has
not yet switched to spdlog 1.1. (and ask in an issue for the migration).

Kind regards

      Andreas.

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list