Bug 2384563

Summary: dssp: FTBFS in Fedora rawhide/f43
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: dsspAssignee: Jonathan Wakely <jwakely>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dave.love, jwakely
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: dssp-3.0.0-27.fc43 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-12-24 03:54:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2339432    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2025-07-30 08:49:21 UTC
dssp failed to build from source in Fedora rawhide/f43

https://koji.fedoraproject.org/koji/taskinfo?taskID=135164352


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
Please fix dssp at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
dssp will be orphaned. Before branching of Fedora 44,
dssp will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/

Comment 1 Fedora Release Engineering 2025-07-30 08:49:27 UTC
Created attachment 2099114 [details]
build.log

file build.log too big, will only attach last 32768 bytes

Comment 2 Fedora Release Engineering 2025-07-30 08:49:31 UTC
Created attachment 2099115 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2025-07-30 08:49:34 UTC
Created attachment 2099116 [details]
state.log

Comment 4 Jonathan Wakely 2025-12-15 17:40:35 UTC
I don't understand what's going on here, it looks like somebody has done something silly like `#define nullptr 0L`


In file included from /usr/include/c++/15/bits/exception_ptr.h:41,
                 from /usr/include/c++/15/exception:168,
                 from /usr/include/c++/15/ios:43:
/usr/include/c++/15/bits/move.h: In instantiation of ‘_Tp std::__exchange(_Tp&, _Up&&) [with _Tp = _List_node<boost::iostreams::detail::linked_streambuf<char, char_traits<char> >*>*; _Up = long int]’:
/usr/include/c++/15/bits/allocated_ptr.h:90:49:   required from ‘std::__allocated_ptr<_Alloc>::pointer std::__allocated_ptr<_Alloc>::release() [with _Alloc = std::allocator<std::_List_node<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*> >; pointer = std::_List_node<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>*]’
   90 |       pointer release() { return std::__exchange(_M_ptr, nullptr); }
      |                                  ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/stl_list.h:1108:26:   required from ‘std::__cxx11::list<_Tp, _Allocator>::_Node_ptr std::__cxx11::list<_Tp, _Allocator>::_M_create_node(_Args&& ...) [with _Args = {boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*}; _Tp = boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*; _Alloc = std::allocator<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>; _Node_ptr = std::_List_node<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>*]’
 1108 |           return __guard.release();
      |                  ~~~~~~~~~~~~~~~^~
/usr/include/c++/15/bits/stl_list.h:2472:35:   required from ‘void std::__cxx11::list<_Tp, _Allocator>::_M_insert(iterator, _Args&& ...) [with _Args = {boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*}; _Tp = boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*; _Alloc = std::allocator<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>; iterator = std::__cxx11::list<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*, std::allocator<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*> >::iterator]’
 2472 |          _Node_ptr __tmp = _M_create_node(std::forward<_Args>(__args)...);
      |                            ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/stl_list.h:1809:24:   required from ‘void std::__cxx11::list<_Tp, _Allocator>::push_back(value_type&&) [with _Tp = boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*; _Alloc = std::allocator<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>; value_type = boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*]’
 1809 |       { this->_M_insert(end(), std::move(__x)); }
      |         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/iostreams/chain.hpp:258:25:   required from ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push_impl(const T&, std::streamsize, std::streamsize) [with T = boost::iostreams::detail::mode_adapter<boost::iostreams::input, std::basic_istream<char> >; Self = boost::iostreams::chain<boost::iostreams::input, char, std::char_traits<char>, std::allocator<char> >; Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; Mode = boost::iostreams::input; std::streamsize = long int]’
  258 |         list().push_back(buf.get());
      |         ~~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/include/boost/iostreams/chain.hpp:205:5:   required from ‘void boost::iostreams::detail::chain_base<Self, Ch, Tr, Alloc, Mode>::push(const T&, std::streamsize, std::streamsize, typename boost::disable_if<boost::iostreams::is_std_io<T> >::type*) [with T = boost::iostreams::detail::mode_adapter<boost::iostreams::input, std::basic_istream<char> >; Self = boost::iostreams::chain<boost::iostreams::input, char, std::char_traits<char>, std::allocator<char> >; Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; Mode = boost::iostreams::input; std::streamsize = long int; typename boost::disable_if<boost::iostreams::is_std_io<T> >::type = void]’
  205 |     BOOST_IOSTREAMS_DEFINE_PUSH(push, mode, char_type, push_impl)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/iostreams/chain.hpp:496:19:   required from ‘void boost::iostreams::detail::chain_client<Chain>::push_impl(const T&, std::streamsize, std::streamsize) [with T = boost::iostreams::detail::mode_adapter<boost::iostreams::input, std::basic_istream<char> >; Chain = boost::iostreams::chain<boost::iostreams::input, char, std::char_traits<char>, std::allocator<char> >; std::streamsize = long int]’
  496 |     { chain_->push(t BOOST_IOSTREAMS_PUSH_ARGS()); }
      |       ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/iostreams/chain.hpp:484:5:   required from ‘void boost::iostreams::detail::chain_client<Chain>::push(std::basic_istream<_CharT2, _Traits2>&, std::streamsize, std::streamsize) [with CharType = char; TraitsType = std::char_traits<char>; Chain = boost::iostreams::chain<boost::iostreams::input, char, std::char_traits<char>, std::allocator<char> >; std::streamsize = long int]’
  484 |     BOOST_IOSTREAMS_DEFINE_PUSH(push, mode, char_type, push_impl)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mkdssp.cpp:138:12:   required from here
  138 |     in.push(infile);
      |     ~~~~~~~^~~~~~~~
/usr/include/c++/15/bits/move.h:191:13: error: invalid conversion from ‘long int’ to ‘std::_List_node<boost::iostreams::detail::linked_streambuf<char, std::char_traits<char> >*>*’ [-fpermissive]
  191 |       __obj = std::forward<_Up>(__new_val);
      |       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |
      |             long int

Comment 5 Jonathan Wakely 2025-12-15 22:12:40 UTC
Yes, that's exactly what's happening:

mas.h:#ifndef nullptr
mas.h:#define nullptr NULL

Comment 6 Jonathan Wakely 2025-12-15 22:14:13 UTC
Upstream dropped that 7 years ago:
https://github.com/cmbi/hssp/commit/2c9cff471d20477e027be4a78182d40f995bc78c

Comment 7 Jonathan Wakely 2025-12-15 22:37:35 UTC
(In reply to Fedora Release Engineering from comment #0)
> Please fix dssp at your earliest convenience and set the bug's status to
> ASSIGNED when you start fixing it. If the bug remains in NEW state for 8
> weeks,
> dssp will be orphaned. Before branching of Fedora 44,
> dssp will be retired, if it still fails to build.

I don't know why this wasn't orphaned, but I have a fix for it anyway.

Comment 8 Fedora Update System 2025-12-15 22:47:15 UTC
FEDORA-2025-5133e130ad (dssp-3.0.0-27.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-5133e130ad

Comment 9 Fedora Update System 2025-12-16 01:27:03 UTC
FEDORA-2025-5133e130ad has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-5133e130ad`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-5133e130ad

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2025-12-24 03:54:15 UTC
FEDORA-2025-5133e130ad (dssp-3.0.0-27.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.