Bug 2036372 - Update tbb to latest release
Summary: Update tbb to latest release
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: tbb
Version: 38
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Thomas Rodgers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2156800 (view as bug list)
Depends On:
Blocks: 2137719
TreeView+ depends on / blocked
 
Reported: 2021-12-31 13:28 UTC by Ian McInerney
Modified: 2023-02-28 13:45 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug


Attachments (Terms of Use)

Description Ian McInerney 2021-12-31 13:28:02 UTC
The current version of tbb packaged in all Fedora versions is 2020.3 (from July 2020), but upstream has released version 2021.5.0 now. Please update the version in Fedora.

Comment 1 Jerry James 2021-12-31 15:47:48 UTC
Unfortunately, this is not a simple matter.  The 2021.1.1 release introduced backwards incompatible changes, notably the complete removal of commonly used interfaces.  See https://www.intel.com/content/www/us/en/developer/articles/technical/tbb-revamp.html for details.  Simply updating to the latest tbb release would break many Fedora packages.

On the other hand, some Fedora packages could move to the latest release were it available.  I've got a COPR repo at https://copr.fedorainfracloud.org/coprs/jjames/TBB2021/ that can be used to check compatibility.  We could introduce a tbb 2020 compatibility package, and then move the main package forward to 2021.5.0.  The danger then is that some application might end up with both the old and the new versions of the library due to some dependencies moving forward and others not.  I have tried to map out the space of Fedora tbb-using packages.  I believe these are the blocks of packages that need to move forward simultaneously to avoid trouble:

- fawkes, gazebo
- opencascade
- pmemkv
- root
- 4ti2, blender, bowtie2, coin-or-Cbc, coin-or-Cgl, coin-or-Clp, coin-or-CoinUtils, coin-or-Osi, dyninst, embree, gap-pkg-hapcryst, gap-pkg-happrime, gap-pkg-polymaking, gap-pkg-singular, gegl04, giac, gimp, glpk, gnome-photos, gutenprint, latte-integrale, luxcorerender, Macaulay2, mathicgb, oidn, opencv, OpenImageIO, opensubdiv, openvdb, polymake, prusa-slicer, pynac, python-cvxopt, python-jupymake, python-jupyter-kernel-singular, python-jupyter-polymake, python-pysingular, qepcad-B, sagemath, Singular, suitesparse, systemtap, xsane-gimp

That last group is, of course, the main issue.  The dependencies are so intertwined that none of them can move to the new version of tbb until all of them can.  That means that we can have at most 5 packages move to the new version right away: fawkes, gazebo, opencascade, pmemkv, and root.  That hardly seems worth the effort.

What we need to do is start going through all of these packages to find which are able to upgrade and which are not, then start filing upstream bugs on those that are not.  Some of the upstreams have not been active for quite awhile, so we may find ourselves needing to the the ports ourselves, which does not appear to be a trivial task.

At one point, I intended to do all this work myself.  But see my recent email to fedora-devel-list about retiring from the mathematical packages I have been tending.  I am trying to move away from the packages I maintain that use tbb, which is a demotivator to put a lot of work into tbb.  Volunteers are welcome.

Comment 2 Thomas Rodgers 2022-01-26 02:08:25 UTC
I think I'd like to explore moving forward with a tbb-compat package based on 2020.3 but I don't have a timeframe yet for when I might undertake that work.

Comment 3 Ben Cotton 2022-05-12 16:39:41 UTC
This message is a reminder that Fedora Linux 34 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 34 on 2022-06-07.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '34'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 34 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 4 Ben Cotton 2022-08-09 13:12:24 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle.
Changing version to 37.

Comment 5 Jerry James 2022-11-03 22:29:05 UTC
For anyone interested, I have updated my COPR of tbb for version 2021.7.0: https://copr.fedorainfracloud.org/coprs/jjames/TBB2021/

Comment 6 Richard Shaw 2022-12-29 13:45:17 UTC
I think at this point we don't have a choice, we need a parallel installable compat package. I don't have a lot of time and I'm not familiar with the building of TBB, but I can carve out some cycles to help work on this.

Comment 7 Richard Shaw 2022-12-29 13:45:43 UTC
*** Bug 2156800 has been marked as a duplicate of this bug. ***

Comment 8 Thomas Rodgers 2023-01-02 00:56:50 UTC
(In reply to Richard Shaw from comment #6)
> I think at this point we don't have a choice, we need a parallel installable
> compat package. I don't have a lot of time and I'm not familiar with the
> building of TBB, but I can carve out some cycles to help work on this.

I agree. I have recently been looking into doing this. My current thinking is to continue to publish the 2020.3 version as a tbb2020.3 package, and move the tbb package to track upstream.

The complication is that it does not appear that I can do this in a way that would allow parallel installation of both packages.

Comment 9 Thomas Rodgers 2023-01-03 01:22:01 UTC
(In reply to Thomas Rodgers from comment #8)
> (In reply to Richard Shaw from comment #6)
> > I think at this point we don't have a choice, we need a parallel installable
> > compat package. I don't have a lot of time and I'm not familiar with the
> > building of TBB, but I can carve out some cycles to help work on this.
> 
> I agree. I have recently been looking into doing this. My current thinking
> is to continue to publish the 2020.3 version as a tbb2020.3 package, and
> move the tbb package to track upstream.
> 
> The complication is that it does not appear that I can do this in a way that
> would allow parallel installation of both packages.

In terms of 'when' this could land in a Fedora release, the deadline for system-wide chnage proposals
for Fedora 38 has passed. This would need to target f39.

Comment 10 Richard Shaw 2023-01-03 02:41:03 UTC
If we can come up with a parallel installable package, I don't think this requires any sort of "system wide change" proposal/approval. It should "just work".

Comment 11 Thomas Rodgers 2023-01-03 19:22:46 UTC
(In reply to Richard Shaw from comment #10)
> If we can come up with a parallel installable package, I don't think this
> requires any sort of "system wide change" proposal/approval. It should "just
> work".

The deadline for self-contained changes is Jan 17, so that doesn't leave a lot of time to get the change proposal in and approved by fesco. I already have
an approved system-wide change (boost 1.81) targeting f38 which has to take priority, so I don't practically see how I can get this done for f38.

Comment 12 Orion Poplawski 2023-01-10 01:56:09 UTC
I don't see how you can possibly make a compat package if tbb hasn't bumped the soname of the library.  Can you get upstream to bump the soname if they really have changed the ABI?

Comment 13 Thomas Rodgers 2023-01-10 06:56:25 UTC
(In reply to Orion Poplawski from comment #12)
> I don't see how you can possibly make a compat package if tbb hasn't bumped
> the soname of the library.  Can you get upstream to bump the soname if they
> really have changed the ABI?

They bumped the soname of tbb .so, just not the tbbmalloc.so...so "worst of all possible choices", though logical, the ABI of tbbmalloc hasn't changed.

Comment 14 Thomas Rodgers 2023-01-10 07:02:52 UTC
(In reply to Thomas Rodgers from comment #13)
> (In reply to Orion Poplawski from comment #12)
> > I don't see how you can possibly make a compat package if tbb hasn't bumped
> > the soname of the library.  Can you get upstream to bump the soname if they
> > really have changed the ABI?
> 
> They bumped the soname of tbb .so, just not the tbbmalloc.so...so "worst of
> all possible choices", though logical, the ABI of tbbmalloc hasn't changed.

So to answer the original question, sure, I can ask. I work with the TBB team on other things. I prefer that this all be parallel-installable. Gettting from here...to...there... will take work, also time, I'm going to target, tentatively, f39.

Comment 15 Jonathan Wakely 2023-01-11 12:19:28 UTC
Can we split libtbbmalloc.so into a separate package, and make tbb-compat depend on it?

So libtbbmalloc.so would come from the newer TBB package, and both tbb and tbb-compat would depend on it.

Comment 16 Jonathan Wakely 2023-01-11 12:20:26 UTC
(In reply to Jonathan Wakely from comment #15)
> Can we split libtbbmalloc.so into a separate package, and make tbb-compat
> depend on it?

I mean subpackage, of course. It would come from the same SRPM as the 'tbb' RPM.

Comment 17 Jonathan Wakely 2023-01-11 12:30:32 UTC
Strictly speaking we don't even need a subpackage, because 'tbb-compat' could just depend on 'tbb' and get libtbbmalloc.so and libtbbmalloc_proxy.so that way.

It might be slightly cleaner to split 'tbb' into 'tbb' and 'tbb-libtbbmalloc' (or another name) but it's not actually necessary to make it work.

Comment 18 Orion Poplawski 2023-01-11 14:21:42 UTC
I've put my stab at a compat package here: https://copr.fedorainfracloud.org/coprs/orion/tbb-compat/   Tests appear to be hanging on ppc64le for some unknown reason.

Strategy is to just build libtbb and depend on the rest from the tbb package as Jonathan Wakely suggests.  Probably should also drop the python package from it as well because it conflicts and doesn't really

Comment 19 Orion Poplawski 2023-01-11 15:02:22 UTC
I've dropped the python package and the ppc64le hang seems to be intermittent - haven't seen it again.

Comment 20 Ben Cotton 2023-02-07 14:52:43 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 38 development cycle.
Changing version to 38.

Comment 21 Thomas Rodgers 2023-02-13 23:16:02 UTC
(In reply to Thomas Rodgers from comment #2)
> I think I'd like to explore moving forward with a tbb-compat package based
> on 2020.3 but I don't have a timeframe yet for when I might undertake that
> work.

(In reply to Orion Poplawski from comment #18)
> I've put my stab at a compat package here: https://copr.fedorainfracloud.org/coprs/orion/tbb-compat/   Tests appear to be hanging on ppc64le for some unknown reason.

> Strategy is to just build libtbb and depend on the rest from the tbb package as Jonathan Wakely suggests.  
> Probably should also drop the python package from it as well because it conflicts and doesn't really

I am about to mark this Fedora change proposal "ready for wrangler" -

https://fedoraproject.org/wiki/Changes/F39ModernizeTBB


Note You need to log in before you can comment on or make changes to this bug.