[This bug is NOT targeted to the upcoming trixie release]
Please keep this issue open in the bug tracker for the package it
was filed for. If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.
The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.
The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/litecoin_0.21.4-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.
To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html
[...]
from /usr/include/boost/system/detail/error_category_impl.hpp:101,
from /usr/include/boost/system/error_category.hpp:11,
from /usr/include/boost/filesystem/detail/path_traits.hpp:25,
from /usr/include/boost/filesystem/path.hpp:21,
from /usr/include/boost/filesystem.hpp:16,
from ./fs.h:14,
from ./addrdb.h:9,
from addrdb.cpp:6:
/usr/include/c++/15/bits/unique_lock.h:156:7: note: declared here
156 | try_lock()
| ^~~~~~~~
In file included from ./addrman.h:14,
from addrman.cpp:6:
./sync.h: In instantiation of ‘bool UniqueLock<Mutex, Base>::TryEnter(const char*, const char*, int) [with Mutex = AnnotatedMixin<std::recursive_mutex>; Base = std::unique_lock<std::recursive_mutex>]’:
./sync.h:162:13: required from ‘UniqueLock<Mutex, Base>::UniqueLock(Mutex&, const char*, const char*, int, bool) [with Mutex = AnnotatedMixin<std::recursive_mutex>; Base = std::unique_lock<std::recursive_mutex>]’
162 | TryEnter(pszName, pszFile, nLine);
| ^~~~~~~~
./util/system.h:333:9: required from here
230 | #define LOCK(cs) DebugLock<decltype(cs)> PASTE2(criticalblock, __COUNTER__)(cs, #cs, __FILE__, __LINE__)
| ^
./sync.h:152:23: warning: ignoring return value of ‘bool std::unique_lock<_Mutex>::try_lock() [with _Mutex = std::recursive_mutex]’, declared with attribute ‘nodiscard’ [-Wunused-result]
152 | Base::try_lock();
| ~~~~~~~~~~~~~~^~
In file included from /usr/include/c++/15/mutex:50,
from ./threadsafety.h:9,
from ./sync.h:9:
/usr/include/c++/15/bits/unique_lock.h:156:7: note: declared here
156 | try_lock()
| ^~~~~~~~
make[4]: *** [Makefile:16299: litecoind-bitcoind.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from ./txmempool.h:23,
from blockencodings.cpp:13:
./sync.h: In instantiation of ‘bool UniqueLock<Mutex, Base>::TryEnter(const char*, const char*, int) [with Mutex = AnnotatedMixin<std::recursive_mutex>; Base = std::unique_lock<std::recursive_mutex>]’:
./sync.h:162:13: required from ‘UniqueLock<Mutex, Base>::UniqueLock(Mutex&, const char*, const char*, int, bool) [with Mutex = AnnotatedMixin<std::recursive_mutex>; Base = std::unique_lock<std::recursive_mutex>]’
162 | TryEnter(pszName, pszFile, nLine);
| ^~~~~~~~
./txmempool.h:645:52: required from here
230 | #define LOCK(cs) DebugLock<decltype(cs)> PASTE2(criticalblock, __COUNTER__)(cs, #cs, __FILE__, __LINE__)
| ^
./sync.h:152:23: warning: ignoring return value of ‘bool std::unique_lock<_Mutex>::try_lock() [with _Mutex = std::recursive_mutex]’, declared with attribute ‘nodiscard’ [-Wunused-result]
152 | Base::try_lock();
| ~~~~~~~~~~~~~~^~
In file included from /usr/include/c++/15/mutex:50,
from /usr/include/boost/system/detail/mutex.hpp:68,
from /usr/include/boost/system/detail/error_category_impl.hpp:101,
from /usr/include/boost/system/error_category.hpp:11,
from /usr/include/boost/filesystem/detail/path_traits.hpp:25,
from /usr/include/boost/filesystem/path.hpp:21,
from /usr/include/boost/filesystem.hpp:16,
from ./libmw/include/mw/file/FilePath.h:16,
from ./libmw/include/mw/file/File.h:4,
from ./libmw/include/mw/file/AppendOnlyFile.h:3,
from ./libmw/include/mw/mmr/MMR.h:8,
from ./libmw/include/mw/node/CoinsView.h:9,
from ./coins.h:13,
from ./txmempool.h:17:
/usr/include/c++/15/bits/unique_lock.h:156:7: note: declared here
156 | try_lock()
| ^~~~~~~~
make[4]: Leaving directory '/build/reproducible-path/litecoin-0.21.4/src'
make[3]: *** [Makefile:20603: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/litecoin-0.21.4/src'
make[2]: *** [Makefile:820: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/litecoin-0.21.4'
dh_auto_build: error: make -j8 returned exit code 2
make[1]: *** [debian/rules:33: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/litecoin-0.21.4'
make: *** [debian/rules:12: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2