From Fedora Project Wiki
(Change accepted by FESCo on 2014-04-16 meeting)
 
(5 intermediate revisions by 4 users not shown)
Line 2: Line 2:


== Summary ==
== Summary ==
This change brings Boost 1.56.0 (or, failing that, Boost 1.55.0) to Fedora 21.
This change brings Boost 1.55.0 (as, Boost 1.56.0 was not ready in time) to Fedora 21.


== Owner ==
== Owner ==
Line 8: Line 8:
* Name: [[User:pmachata| Petr Machata]]
* Name: [[User:pmachata| Petr Machata]]
* Email: pmachata redhat com
* Email: pmachata redhat com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes owner: [[User:Pbokoc| Petr Bokoc]] pbokoc at redhat dot com


* Backup contact, co-maintainer: [[User:Denisarnaud| Denis Arnaud]]
* Backup contact, co-maintainer: [[User:Denisarnaud| Denis Arnaud]]
Line 18: Line 18:
* Targeted release: [[Releases/21 | Fedora 21]]  
* Targeted release: [[Releases/21 | Fedora 21]]  
* Last updated: 2014-04-07
* Last updated: 2014-04-07
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1089268 #1089268]


== Detailed Description ==
== Detailed Description ==
Line 37: Line 37:
* Proposal owners:
* Proposal owners:
** Build will be done with Boost.Build v2 (which is upstream-sanctioned way of building Boost)
** Build will be done with Boost.Build v2 (which is upstream-sanctioned way of building Boost)
** Request a "boost" build system tag ([http://lists.fedoraproject.org/pipermail/devel/2011-November/159908.html discussion]) ([https://fedorahosted.org/rel-eng/ticket/5691 tag request ticket])
** Request a "boost" build system tag ([http://lists.fedoraproject.org/pipermail/devel/2011-November/159908.html discussion]) ([https://fedorahosted.org/rel-eng/ticket/5910 tag request ticket])
** Build boost into that tag (e.g., [http://koji.fedoraproject.org/koji/buildinfo?buildID=344226 build])
** Build boost into that tag ([http://koji.fedoraproject.org/koji/buildinfo?buildID=518229 build])
** Post a request for rebuilds to fedora-devel (e.g., [https://lists.fedoraproject.org/pipermail/devel/2012-July/170272.html message])
** Post a request for rebuilds to fedora-devel ([https://lists.fedoraproject.org/pipermail/devel/2014-May/199333.html message])
** Work on rebuilding dependent packages in the tag.
** Work on rebuilding dependent packages in the tag.
** When most is done, re-tag all the packages to rawhide
** When most is done, re-tag all the packages to rawhide
Line 94: Line 94:


== Documentation ==
== Documentation ==
 
* http://www.boost.org/users/history/version_1_55_0.html (released the 11 November, 2013)
http://www.boost.org/users/history/version_1_55_0.html
* 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)
1.56 wasn't released yet.


== Release Notes ==
== Release Notes ==

Latest revision as of 15:48, 5 November 2014

Fedora 21 Boost 1.56 Uplift

Summary

This change brings Boost 1.55.0 (as, Boost 1.56.0 was not ready in time) to Fedora 21.

Owner

Current status

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.56 doesn't have firm schedule yet. Current provisional schedule (published here) talks about May 5 2014, which would give us enough time to package Boost 1.56. But we may have to package Boost 1.55 instead.

Here is the Fedora 20 Change, should you need it.

Benefit to Fedora

Fedora will stay relevant, as far as Boost clients are concerned. Boost 1.55 brings a new library Boost.Predef.

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 largely the same for Fedora 21.

  • 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) (tag request ticket)
    • Build boost into that tag (build)
    • Post a request for rebuilds to fedora-devel (message)
    • 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 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

Historically, coordination was necessary for Python 3 packages that Boost depends on. Similarly if there are deep changes to MPI packages (openmpi, mpich2), we should coordinate.

Contingency Plan

  • clean 1.56 (if everything works)
  • patch 1.56 (the likely outcome)
  • clean 1.55
  • patch 1.55 (the likely fallback outcome)
  • 1.54 as in F20 (the likely contingency plan)
  • patch 1.54 (if new GCC rejects code in F20 boost)
  • 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

Release Notes

Boost has been upgraded to version 1.56.0. Apart from a number of bugfixes, this XXX fill in later when 1.56 is actually out XXX