Opened 2 years ago

Closed 18 months ago

#66280 closed defect (fixed)

Dependents of TBB should depend on onetbb or tbb, whatever installed

Reported by: barracuda156 Owned by: catap (Kirill A. Korinsky)
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: Cc: cooljeanius (Eric Gallager)
Port: blender, bowtie, bowtie2, deal.ii, embree, gerbil, oidn, openimageio, opensubdiv, openvdb, opencascade, py-mkl, py-pytorch, qore, root6, usd

Description

Otherwise this happens:

36-84:~ svacchanda$ sudo port -v -n install qore -universal
--->  Computing dependencies for qore..
Error: Can't install tbb because conflicting ports are active: onetbb
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port qore failed

tbb and onetbb conflict.

Change History (10)

comment:1 Changed 2 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:2 Changed 2 years ago by barracuda156

Owner: set to catap
Status: newassigned

comment:3 Changed 2 years ago by reneeotten (Renee Otten)

according to the internet these ports are not drop-in replacements so I doubt that will work for all ports and for sure should be investigate on an individual basis.

comment:4 in reply to:  3 Changed 2 years ago by barracuda156

Replying to reneeotten:

according to the internet these ports are not drop-in replacements so I doubt that will work for all ports and for sure should be investigate on an individual basis.

Then maybe it is worth implementing a parallel installation.

comment:5 Changed 2 years ago by catap (Kirill A. Korinsky)

Base on https://oneapi-src.github.io/oneTBB/main/tbb_userguide/Migration_Guide/Mixing_Two_Runtimes.html it seems possible not only install both, but also load both into the same application.

comment:6 Changed 2 years ago by catap (Kirill A. Korinsky)

After some digging I'd like to point that OneTBB is updated version for TBB.

Unfortunately API isn't compatible. For example oce port depends on old TBB, because OneTBB drops tbb::atomic in favor of std::atomic.

Also, an author of oce points that it shouldn't be used https://github.com/tpaviot/oce/issues/745, and better to switch OCCT: https://github.com/Open-Cascade-SAS/OCCT

=> I feel that we should start to switching ports from TBB to OneTBB when it is possible. Sergey, are you ready for it? :)

comment:7 Changed 2 years ago by catap (Kirill A. Korinsky)

Oh, OneTBB is also conflicts with Qt: https://github.com/oneapi-src/oneTBB/issues/547

That makes such update much harder

comment:8 Changed 2 years ago by catap (Kirill A. Korinsky)

I've opened a PR which switched some ports from TBB to OneTBB: https://github.com/macports/macports-ports/pull/16835

I don't think it is possible to use both, we should choise which one.

Frankly, tbb port should be legacy for some old ports. For now I found only one that really depends on it: oce.

comment:9 in reply to:  8 Changed 2 years ago by barracuda156

Replying to catap:

I've opened a PR which switched some ports from TBB to OneTBB: https://github.com/macports/macports-ports/pull/16835

I don't think it is possible to use both, we should choise which one.

Frankly, tbb port should be legacy for some old ports. For now I found only one that really depends on it: oce.

I am fine with switching most of ports to oneTBB and keeping old TBB for compatibility. (We need my fixes for oneTBB to make it build on PPC now, otherwise all TBB dependencies will be left broken on PPC.)

comment:10 Changed 18 months ago by catap (Kirill A. Korinsky)

Resolution: fixed
Status: assignedclosed

In 0ad407e50efc491ce84034dced19ec714b57cac6/macports-ports (master):

onetbb, tbb: install into libexec

Closes: #66280

Note: See TracTickets for help on using tickets.