F43 Change Proposal: TBB2022.2.0 (self-contained)

:link: TBB2022.2.0

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Wiki
Announced

:link: Summary

Update the tbb package in Fedora from version 2022.0.0 to 2022.2.0.

:link: Owner

:link: Detailed Description

In tbb 2022.0.0 and earlier, certain macros expanded to code that accessed internal elements of the API. Some of those internal elements were removed in tbb versions 2022.1.0 and 2022.2.0. Although the public API has not changed, ELF objects in some Fedora packages refer to symbols that are not provided by the newer versions. Thus, a rebuild of all tbb-using packages is needed.

Evidence that the API has not changed is available in a COPR repository containing the new version of TBB and builds of consuming packages. Three packages (embree3, rkcommon, and root) could not be built because they currently fail to build from source in Rawhide, but all others were successfully built unmodified.

The proposed changes to the tbb package are visible in this pull request.

Besides tbb itself, the packages that must be rebuilt (with maintainers) are:

  • blake3 (sicherha)
  • dyninst (fche, mcermak, lberk, orion, wcohen)
  • easyeffects (vascom)
  • embree (luya, aekoroglu, slaanesh)
  • embree3 (luya)
  • gfan (jjames, pcpa)
  • ispc (luya, aekoroglu, slaanesh, tstellar)
  • Macaulay2 (rdieter)
  • mathicgb (jjames)
  • mold (sicherha)
  • oidn (luya, aekoroglu, slaanesh)
  • opae (trix)
  • opencascade (hobbes1069)
  • opencv (kwizart, jridky, jkucera, hhorak)
  • openpgl (luya, aekoroglu)
  • openvino (aekoroglu)
  • openvkl (aekoroglu)
  • pagmo2 (topazus)
  • papilo (jjames)
  • polymake (jjames, rmattes)
  • prusa-slicer (tibbs, spot, jstanek, adelton, churchyard)
  • ptl (topazus)
  • rkcommon (aekoroglu)
  • root (ellert, @r-maint-sig)
  • scip (jjames)
  • soplex (jjames)
  • TOPCOM (jjames)
  • usd (luya, aekoroglu, slaanesh, music, @multimedia-sig)

Some of those packages take many hours to build, and some of the very long builds must be done sequentially due to dependencies between packages on the list. Approximately 2 to 3 days will be needed to do all of the builds.

:link: Feedback

:link: Benefit to Fedora

We will be able to take advantage of improvements in tbb versions 2022.1.0 and 2022.2.0, as well as unblocking our ability to continue updating to newer releases.

:link: Scope

  • Proposal owners:

We will contact owners of the affected packages and negotiate a time when the rebuilds can be done. Once a time has been arranged, we will announce it on fedora-devel-list and do all of the builds in a side tag at the arranged time.

  • Other developers: N/A

  • Release engineering: N/A

  • Policies and guidelines: N/A (not needed for this Change)

  • Trademark approval: N/A (not needed for this Change)

  • Alignment with the Fedora Strategy: This proposal supports the First foundation

:link: Upgrade/compatibility impact

Third-party applications linked with tbb may need to be rebuilt.

:link: How to Test

N/A

:link: User Experience

:link: Dependencies

:link: Contingency Plan

  • Contingency mechanism: N/A
  • Contingency deadline: N/A
  • Blocks release? No

:link: Documentation

:link: Release Notes

Last edited by @amoloney 2025-07-24T23:17:10Z

Last edited by @amoloney 2025-07-24T23:17:10Z

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

TBB stands for “Threading Building Blocks”. Its package description reads:

Threading Building Blocks (TBB) is a C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance. It uses common C++ templates and coding style to eliminate tedious threading implementation work.

TBB requires fewer lines of code to achieve parallelism than other threading models. The applications you write are portable across platforms. Since the library is also inherently scalable, no code maintenance is required as more processor cores become available.

And the fact that this is never once mentioned in the proposal is… something of an inconvenience.

The idea behind even the self-contained proposals, after all — and the reason they’re announced publicly to the entire community — is that all of us have an opportunity to consider the change, and can voice any thoughts we may have about it. And while it’s true that the majority of users won’t have any thoughts on any given proposal, it’s much harder to make that determination if we don’t know what the package is in the first place. (Unless we’re comfortable assuming that anything we don’t recognize is automatically of no interest. Which I’m sure works just fine for some people.)

Anyway, now that I’ve taken the time to find out what TBB is, I can definitively state that it doesn’t really affect me and I have no thoughts whatsoever about the proposed upgrade. Hopefully this will save someone else a bit of time reaching that same conclusion.

2 Likes

While outside of the scope of this proposal, would it make sense to also add a Provides: oneTBB (and oneTBB-devel for the -devel package) to match the current upstream naming and allow easier installs for those not familiar with the fedora naming?

In any case, I support the proposal.

Sorry about that @ferdnyc . The purpose of this change proposal is to coordinate rebuilds. I was thinking of those with whom I would need to coordinate when I wrote this proposal, rather than the larger community. I will make a note to myself to not make that mistake if I write any Change proposals in the future.

That is a reasonable request. Thanks for bringing it up.

This change proposal has now been submitted to FESCo with ticket #3463 for voting.

To find out more, please visit our Changes Policy documentation.