No edit summary |
No edit summary |
||
Line 44: | Line 44: | ||
been updated to track the latest upstream changes, as detailed in this [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 comment] on the tracking issue. | been updated to track the latest upstream changes, as detailed in this [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 comment] on the tracking issue. | ||
This proposal is part of a pair of proposals that aim to provide a way to modernize the TBB | This proposal is part of a [https://fedoraproject.org/wiki/Changes/F39TBB2020.3 pair] of proposals that aim to provide a way to modernize the TBB packge version for Fedora while providing stability for those packages which are dependent on the older TBB library version. | ||
Fedora while providing stability for those packages which are dependent on the older TBB library version. | |||
It will be possible to install both devel and runtime versions of both TBB packages, but 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 == | == Feedback == | ||
Line 51: | Line 52: | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Fedora 39 will include a current version of Thread Building Blocks, specifically version 2021.7. | |||
Fedora will stay relevant, as far as Thread Building Blocks clients are concerned, including GCC's support for Standard C++, as ships with an embedded version of the C++17 parallel algorithms, based on code that is also part of the upstream TBB, and currently requires TBB to be present on the system. | |||
Fedora 39 will continue to include the older 2020.3 version of TBB to ensure stability for Thread Building Blocks clients which are not currently able to move to a newer version of TBB. | |||
== Scope == | == Scope == | ||
* Proposal owners: | * 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 | |||
[https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] suggests the majority of current TBB clients will need to | |||
move to the compat package. | |||
** Request a "f39-tbb" [https://docs.pagure.org/releng/sop_adding_side_build_targets.html build system tag] | |||
** Build TBB into that tag. | |||
** 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 rawhide. | |||
** Watch fedora-devel and assist in rebuilding broken TBB clients. | |||
* Other developers: | * 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: [https://pagure.io/releng/issues #Releng issue number] | * Release engineering: TODO <!-- [https://pagure.io/releng/issues #Releng issue number] --> | ||
* Policies and guidelines: N/A (not needed for this Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Policies and guidelines: N/A (not needed for this Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
** Apart from scope, this is business as usual, so no new policies, no new guidelines. | |||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
* No manual configuration or data migration needed. | |||
* Some impact on other packages needing code changes to rebuild. | |||
== How To Test == | == 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. See [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1] for an analysis of impacted packages. | |||
== User Experience == | == 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 == | == Dependencies == | ||
< | Packages that must be rebuilt: | ||
<code>& dnf repoquery -s --releasever=rawhide --whatrequires libtbb\* --enablerepo=fedora | sort -u</code> | |||
The tracking [https://bugzilla.redhat.com/show_bug.cgi?id=2036372 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 proposed [https://fedoraproject.org/wiki/Changes/F39TBB2020.3 2020.3 compat] package. | |||
== Contingency Plan == | == 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. | |||
* Contingency mechanism: | |||
== Documentation == | == Documentation == | ||
* Notes on the scope of change, motivation, and likely impacts are in the comments on the tracking [https://bugzilla.redhat.com/show_bug.cgi?id=2036372 issue]. | |||
* https://github.com/oneapi-src/oneTBB/releases/tag/v2021.7.0 (Released 2nd October 2022) | |||
* https://github.com/oneapi-src/oneTBB/releases/tag/v2020.3 (Released 10th July 2020) | |||
== Release Notes == | == Release Notes == | ||
<!-- | <!-- TODO --> | ||
--> |
Revision as of 00:52, 6 February 2023
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.7 (released October 28, 2022). The Fedora community has expressed interest in moving the TBB package to track a more modern version of the upstream.
Owner
- Name: Thomas Rodgers
- Email: trodgers@redhat.com
Current status
- Targeted release: Fedora 39
- Last updated: 2023-02-06
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
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 this release. As packages have moved to match the upstream's changes it has become more difficult to continue to defer updating the Fedora packaging for TBB. The situation is further complicated by not all dependent packages having been updated to track the latest upstream changes, as detailed in this comment on the tracking issue.
This proposal is part of a pair of proposals that aim to provide a way to modernize the TBB packge version for Fedora while providing stability for those packages which are dependent on the older TBB library version.
It will be possible to install both devel and runtime versions of both TBB packages, but 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, specifically version 2021.7. Fedora will stay relevant, as far as Thread Building Blocks clients are concerned, including GCC's support for Standard C++, as ships with an embedded version of the C++17 parallel algorithms, based on code that is also part of the upstream TBB, and currently requires TBB to be present on the system.
Fedora 39 will continue to include the older 2020.3 version of TBB to ensure stability for Thread Building Blocks clients which are not currently able to move to a newer version of TBB.
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.
- Request a "f39-tbb" build system tag
- Build TBB into that tag.
- 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 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. See [1] for an analysis of impacted 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 proposed 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
- Notes on the scope of change, motivation, and likely impacts are in the comments on the tracking issue.
- https://github.com/oneapi-src/oneTBB/releases/tag/v2021.7.0 (Released 2nd October 2022)
- https://github.com/oneapi-src/oneTBB/releases/tag/v2020.3 (Released 10th July 2020)