F20 System Wide Change: Boost 1.54 Uplift

Jaroslav Reznik jreznik at redhat.com
Mon Jul 8 08:12:40 UTC 2013

= Proposed System Wide Change: Fedora 20 Boost 1.54 Uplift =

Change owner(s): Petr Machata <pmachata redhat com>, Denis Arnaud 
<denis.arnaud_fedora m4x org>, Benjamin De Kosnik <bkoz redhat com>

This change brings Boost 1.54.0 to Fedora 20.

== 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 (or just packaging soon enough that a mass rebuild, if 
any, takes care of this for free). 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.

As a side note, there are currently two broad Boost-related ongoing projects: 
repository modularization, and conversion to CMake. The first doesn't need to 
concern us, as it's purely upstream issue. Boost will keep being released in a 
single super-tarball for time to come. The latter may concern us eventually in 
that will require adjustment of packaging, but that's nowhere near ready yet.

As another side-note, I am considering packaging boost-devel in modules. 
Frankly, boost-devel is unwieldy. Shipping dozens of libraries totaling 
1.8MLOC in a single package defies the purpose of packaging. Unlike the above-
mentioned modularization effort, which is purely upstream, this one is purely 
in packaging, and wholly separate from upstream. I expect this to be part of 
Change for Fedora 21. 

== Scope ==
Rebasing Boost has a fairly large impact on Fedora.  About 130 packages _must_ 
be rebuilt due to ABI breakage inherent in bumping Boost sonames.  There are 
almost 250 client packages total.

Proposal owners: Build will be done with Boost.Build v2 (which is upstream-
sanctioned way of building Boost)

Roughly in parallel:
* Either:
** If there is mass rebuild for Fedora 20, package Boost before it starts.
** Otherwise:
*** Request a "boost" build system tag 
*** Build boost into that tag
*** Post a request for rebuilds to fedora-devel
*** 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 (unless there is a mass rebuild, then 
no assistance).

Policies and guidelines: Apart from scope, this is business as usual, so no 
policies, no guidelines.

More information about the devel-announce mailing list