On 02/06/20 16:24 +0100, Jonathan Wakely wrote:
On 28/05/20 09:44 +0100, Jonathan Wakely wrote:
>I'm starting the rebuilds for Boost 1.73.0 and packages that depend on
>it, using the f33-boost side tag.
>
>If you see "Rebuilt for Boost 1.73.0" in the changelog for one of your
>packages, please do not make another update. Instead co-ordinate with
>me to use the side tag for your update (if your package also depends
>on Python then also talk to Miro Hrončok).
>
>If your package depends on Boost and you don't see "Rebuilt for Boost
>1.73.0" in the %changelog yet, it might be worth checking with me
>anyway, as I'll probably be starting it soon.
The rebuilds are done and being merged from f33-boost into f33 now.
As usual lots of packages failed to build. Unlike in previous years, I
didn't fix most of them myself.
### Boost.Endian
Several packages fail because they were using an implementation detail
of Boost, the <boost/detail/endian.hpp> header. That no longer exists,
but nobody should have been using it anyway :-P The Boost.Endian
library exists now, and provides <boost/endian/endian.hpp> which
should work instead.
This Boost.Endian issue affects:
openscad
supercollider
### Boost.Bind
Several packages failed to build because the Boost.Bind placeholders
_1, _2, _3 etc. are no longer in the global namespace. See the message
in <boost/bind.hpp>:
BOOST_PRAGMA_MESSAGE(
"The practice of declaring the Bind placeholders (_1, _2, ...) "
"in the global namespace is deprecated. Please use "
"<boost/bind/bind.hpp> + using namespace boost::placeholders, "
"or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior."
)
This Boost.Bind issue affects:
bear-factory
domoticz
gazebo
hpx
liblas
luxcorerender
pdns
pdns-recursor
uhd
widelands
### C++ <algorithm> includes
Several packages failed to build because they couldn't find C++
Standard Library algorithms:
dolfin: error: 'min_element' is not a member of 'std'; did you mean
'tuple_element'?
freeopcua: error: 'for_each' is not a member of 'std'
gnucash: error: 'for_each' is not a member of 'std'
mir: error: 'find' is not a member of 'std'
openms: error: 'sort' is not a member of 'std'
All of these function templates are declared in <algorithm> so it
means the packages are failing to include what they use. They need to
be patched to include <algorithm>.
### qt5-devel
Several packages failed to build due to BuildRequires: qt5-devel which
is nothing to do with the Boost update, and was already broken on
rawhide.
### stdair etc.
The stdair, airinv, airrac suite had some problems generating
documentation, which doesn't look related to Boost. I didn't
investigate.
### Misc
There were some other failures unique to individual packages, not all
look like they're caused by the boost update:
IQmol: error: no matching function for call to
'IQmol::Layer::Group::Group(IQmol::Layer::PrimitiveList&)'
aqsis: error: 'shared_ptr' in namespace 'boost' does not name a template
type
blender: error: unknown type name 'PyNoArgsFunction'; did you mean
'PyCFunction'?
dynafed: error: macro "Error" requires 2 arguments, but only 1 given
espresso: fatal error: in "pack_pair_test": std::out_of_range:
vector::_M_range_check: __n (which is 1) >= this->size() (which is 1)
freecad: error: 'Int' in namespace 'Py' does not name a type
libzypp: error: reference to 'filesystem' is ambiguous
mapnik: error: ‘ref’ is not a member of ‘boost::phoenix’
ompl: error: invalid initialization of reference of type
pokerth: error: 'class std::reference_wrapper<boost::asio::io_context>' has
no member named 'context'
scram: error: 'BOOST_THROW_EXCEPTION_CURRENT_FUNCTION' was not declared in this
scope
>The new Boost will include the following changes:
>
>- rename boost-jam package to boost-b2, and /usr/bin/bjam with
> /usr/bin/b2 (it looks nothing in Fedora uses this anyway)
>
>- obsolete the separate boost-nowide package, as Boost 1.73.0 includes
> the Boost.Nowide library now
>
>jhogarth, please confirm you're aware of the nowide change. The
>existing boost-nowide package will need to be retired in rawhide.
I never heard back about this. The 'leatherman' package (which uses
boost-nowide) FTBFS with the new boost (which provides a new
boost-nowide subpackage) because the <boost/nowide/cenv.hpp> header is
in the standalone Nowide library, but *not* in the version added to
the main Boost project.
The cenv.hpp header was removed and its contents added to cstdlib.hpp,
so I'll update the packages using it.