From Fedora Project Wiki
(Announcing the Change proposal)
(dropped, per https://pagure.io/fesco/issue/3059#comment-875144)
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{admon/important|Change dropped|Per [https://pagure.io/fesco/issue/3059#comment-875144 2023-09-21 FESCo meeting], this Change has been dropped.}}
= Modernize Thread Building Blocks for Fedora 39 =
= Modernize Thread Building Blocks for Fedora 39 =
{{Change_Proposal_Banner}}


== Summary ==
== Summary ==
Line 15: Line 15:


== Current status ==
== Current status ==
[[Category:ChangeAnnounced]]
[[Category:ChangePageIncomplete]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 23: Line 23:
<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]
* Targeted release: [[Releases/39 | Fedora 39 ]]
* Targeted release:  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 32: Line 32:
-->
-->
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/D7AL35H5LRR6WRIQB6DZOTP3FFKR67JZ/ devel thread]
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/D7AL35H5LRR6WRIQB6DZOTP3FFKR67JZ/ devel thread]
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2959 #2959]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2175941 #2175941]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/969 #969]


== Detailed Description ==
== Detailed Description ==

Latest revision as of 18:11, 21 September 2023

Change dropped
Per 2023-09-21 FESCo meeting, this Change has been dropped.

Modernize Thread Building Blocks for Fedora 39

Summary

Fedora is currently shipping version 2020.3 (released July 10, 2020) of the Thread Building Blocks library. The current upstream version is 2021.8 (released December 22, 2022). The Fedora community has expressed interest in moving the TBB package to track a more modern version of the upstream.

Owner


Current status

Detailed Description

Fedora has shipped with version 2020.3 of the Thread Building Blocks library since Fedora 33. The upstream project made a decision to break backward compatibility after that version was released. As packages move to match the upstream's changes it becomes more difficult to defer updating the Fedora packaging for TBB. The situation is further complicated as there are currently a majority of TBB dependent packages which have not been updated to track a new upstream release, as detailed in this analysis on the tracking issue.

This proposal aims to provide a way to modernize the TBB packge version for Fedora while providing stability for those packages which continue to depend on the older TBB library version.

It will be possible to install both devel and runtime versions of both TBB packages, however the devel compat package for version 2020.3 will require clients to point to a new include path where the legacy headers will be found.

Feedback

Benefit to Fedora

Fedora 39 will include a current version of Thread Building Blocks (version 2021.8) while continuing to support clients dependent on an older version of TBB (version 2020.3). Fedora will stay relevant as far as Thread Building Blocks clients are concerned.

Scope

  • Proposal owners:
    • A compat package based on the current 2020.3 version of the existing TBB package will be created.
    • Evaluate TBB dependent packages to identify those which need to move to the compat version of the TBB package. An initial analysis suggests the majority of current TBB clients will need to move to the compat package.
    • Post a request for rebuilds to fedora-devel
    • Create patches for those packages affected by this change to adjust their includes to point the compat package's headers as necessary, work with affected package owners to update package specs to account for the change.
    • When most packages are done, re-tag all the packages in rawhide.
    • Watch fedora-devel and assist in rebuilding broken TBB clients.
  • Other developers:
    • Those who depend on Thread Building Blocks 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: TODO
  • Policies and guidelines: N/A (not needed for this Change)
    • Apart from scope, this is business as usual, so no new policies, no new guidelines.

Upgrade/compatibility impact

  • No manual configuration or data migration needed.
  • Some impact on other packages needing code changes to rebuild.

How To Test

  • No special hardware is needed.
  • Parallel install of the 2020.3 TBB compat packages and the updated TBB packages and checking that it does not break other packages.

User Experience

  • Expected to remain largely the same.
  • Developers building third-party software on Fedora may need to rebuild against the new TBB packages, and may need to adjust their code to either remain on the compat TBB version or move to the new version supplied by the updated TBB package.

Dependencies

Packages that must be rebuilt: & dnf repoquery -s --releasever=rawhide --whatrequires libtbb\* --enablerepo=fedora | sort -u

The tracking issue's analysis suggests that only the following packages will be able to move to a newer TBB -

  • fawkes
  • gazebo
  • opencascade
  • pmemkv
  • root

While the remaining clients of TBB will need to have their spec's include paths adjusted to use the 2020.3 compat package.

Contingency Plan

  • Contingency mechanism: Worst case scenario is to abandon the update and simply ship F39 with the existing TBB package, which is already in rawhide.

Documentation

Release Notes