Fedora 22 Boost 1.58 Uplift
Summary
This change brings Boost 1.57.0 or later to Fedora 21. We generally aim to ship 1.58.0, as that seems likely to make it (hence the Change name), but 1.57.0 is out and available now.
Owner
- Name: Petr Machata
- Email: pmachata redhat com
- Release notes owner:
Current status
- Targeted release: Fedora 22
- Last updated: 2015-01-05
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
The aim is to synchronize Fedora with the most recent Boost release. Because ABI stability is one of explicit Boost non-goals, this entails rebuilding of all dependent packages. This has also always entailed yours truly assisting maintainers of client packages in decoding cryptic boostese seen in output from g++. Such care is to be expected this time around as well.
Boost 1.58 doesn't have firm schedule yet. I don't think there is even a provisional schedule at this point. We may have to package Boost 1.57 instead.
Here is the Fedora 21 Change, should you need it.
Benefit to Fedora
Fedora will stay relevant, as far as Boost clients are concerned. It seems like Boost 1.58 will bring a new library Boost.Convert. There are no new libraries in Boost 1.57.
Scope
Rebasing Boost has a fairly large impact on Fedora. For Fedora 20, the scope was: about 130 packages _must_ be rebuilt due to ABI breakage inherent in bumping Boost sonames. There were almost 250 client packages total. I expect these numbers to stay in the same ballpark for Fedora 22.
- Proposal owners:
- Build will be done with Boost.Build v2 (which is upstream-sanctioned way of building Boost)
- Request a "boost" build system tag (discussion) (XXX link to tag request ticket here)
- Build boost into that tag (XXX link to built boost package here)
- Post a request for rebuilds to fedora-devel (XXX link to fedora-devel message here)
- Work on rebuilding dependent packages in the tag.
- When most is done, re-tag all the packages to rawhide
- Watch fedora-devel and assist in rebuilding broken Boost clients (by fixing the client, or Boost).
- Other developers: Those who depend on Boost DSO's will have to rebuild their packages. Feature owners will alleviate some of this work as indicated above, and will assist those whose packages fail to build in debugging them.
- Release engineering: Side tag creation.
- Policies and guidelines: Apart from scope, this is business as usual, so no policies, no guidelines.
Upgrade/compatibility impact
No impact on system upgrade.
Some impact on other packages. Historically this hasn't been too big of a problem and could always be resolved before deadline.
How To Test
- No special hardware is needed.
- Integration testing simply consists of installing Boost packages (
yum install boost
) on Fedora and checking that it does not break other packages (see below for a way to obtain a list of boost clients).
User Experience
Expected to remain largely the same.
Dependencies
Packages that must be rebuilt:
$ repoquery -s --releasever=rawhide --whatrequires libboost\* --disablerepo=* --enablerepo=fedora | sort -u
All clients:
$ repoquery --releasever=rawhide --archlist=src --whatrequires boost-devel --disablerepo='*' --enablerepo=fedora-source
Contingency Plan
- clean 1.58 (if everything works)
- patch 1.58 (the likely outcome)
- clean 1.57
- patch 1.57 (the likely fallback outcome)
- fedora 1.56 (the likely contingency plan)
- fedora 1.56 + patches (if new GCC rejects code in 1.56)
- remove Boost and its dependencies from Fedora
Boost's own test suite will likely catch many instances of what would otherwise bite us during rebuilds, so many of the wrinkles can be smoothed off-line.
- Contingency deadline: We will know within days after side-tag is created.
- Blocks release? Yes if there are client packages that are on installation media.
Documentation
- http://www.boost.org/users/history/version_1_56_0.html (released the 7 August, 2014)
- http://www.boost.org/users/history/version_1_57_0.html (released the 3 November, 2014)
Release Notes
Boost has been upgraded to version XXX. Apart from a number of bugfixes, this brings XXX.