Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1006920: please split out a libtbbmalloc2 package, both in tbb and onetbb

171 views
Skip to first unread message

Matthias Klose

unread,
Mar 8, 2022, 4:40:04 AM3/8/22
to
Source: tbb,onetbb
Severity: important
Tags: patch

currently libtbb2 and libtbb12 break each other, making a tbb transition hard.
please split out a libtbbmalloc2 package, both in tbb and onetbb, such that the
transition can happen smoothly, and the both the old and the new tbb/onetbb can
co-exist for a while.

patch for the tbb and onetbb splitouts are attached (please check the final
versions for the breaks/replaces).

the onetbb patch also includes the patch from upstream issue #776 to build on
other architectures.

For Ubuntu, I'm going to rename the old libtbb-dev and libtbb-doc packages to
libtbb2-dev and libtbb2-doc, not sure if that's something you also want to do in
Debian, but for the next Ubuntu release we need to ship both versions, or we
need to remove packages like numba.
tbb.diff
onetbb.diff

Jose Luis Rivero

unread,
Mar 21, 2022, 1:10:03 PM3/21/22
to
On Tue, 8 Mar 2022 10:30:53 +0100 Matthias Klose <do...@debian.org> wrote:
>
> For Ubuntu, I'm going to rename the old libtbb-dev and libtbb-doc packages to
> libtbb2-dev and libtbb2-doc, not sure if that's something you also want to do in
> Debian, but for the next Ubuntu release we need to ship both versions, or we
> need to remove packages like numba.

Following this up, the split of the libraries is breaking some common use cases in the robotics community, see https://github.com/ros-planning/navigation2/pull/2852#issuecomment-1072789270.

I think that it will handle nicely in Debian, for the next Ubuntu I've requested a sync from the experimental version (which is able to use new tbb)

Thanks.

M. Zhou

unread,
Mar 24, 2022, 3:10:03 PM3/24/22
to
Hi Jose,

Could you please provide more details on "the split of the libraries
is breaking some common use cases"?

I cannot figure out what could happen if we split the library packages
from the links provided.

Andrius Merkys

unread,
Apr 22, 2022, 10:30:03 AM4/22/22
to
Hello,

For me tbb 2020.3-1 fails to build in sid chroot with tbb.diff applied.
First of all, build runs into missing symbols. I managed to get past
this by removing them:

--- a/debian/libtbbmalloc2.symbols.amd64
+++ b/debian/libtbbmalloc2.symbols.amd64
@@ -2,8 +2,6 @@ libtbbmalloc.so.2 libtbbmalloc2 #MINVER#
MallocInitializeITT@Base 2017~U7
_Z9parseFileILi100ELi1EEvPKcRAT0__K13parseFileItem@Base 2018~U6
_Z9parseFileILi100ELi2EEvPKcRAT0__K13parseFileItem@Base 2018~U6
- (optional)_ZN11MallocMutex11scoped_lockD1Ev@Base 2020.3
- (optional)_ZN11MallocMutex11scoped_lockD2Ev@Base 2020.3
_ZN3rml10pool_msizeEPNS_10MemoryPoolEPv@Base 2019~U4
_ZN3rml10pool_resetEPNS_10MemoryPoolE@Base 2017~U7
_ZN3rml11pool_createElPKNS_13MemPoolPolicyE@Base 2017~U7

After that, build fails at dh_shlibdeps step:

dh_shlibdeps
dpkg-shlibdeps: error: cannot find library libtbbmalloc.so.2 needed by
debian/libtbbmalloc2/usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so.2
(ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
dpkg-shlibdeps: error: cannot continue due to the error above
Note: libraries are not searched in other binary packages that do not
have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to use -l.
dh_shlibdeps: error: dpkg-shlibdeps -Tdebian/libtbbmalloc2.substvars
debian/libtbbmalloc2/usr/lib/\${DEB_HOST_MULTIARCH}/libtbbmalloc.so.2
debian/libtbbmalloc2/usr/lib/\${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so.2
returned exit code 2
dh_shlibdeps: error: Aborting due to earlier error
make: *** [debian/rules:49: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit
status 2

onetbb 2021.5.0-7 builds fine with onetbb.diff in sid chroot.

Best,
Andrius

Andreas Metzler

unread,
Apr 23, 2022, 7:30:03 AM4/23/22
to
On 2022-04-22 Andrius Merkys <mer...@debian.org> wrote:
> Hello,

> For me tbb 2020.3-1 fails to build in sid chroot with tbb.diff applied.
> First of all, build runs into missing symbols. I managed to get past
> this by removing them:

> --- a/debian/libtbbmalloc2.symbols.amd64
> +++ b/debian/libtbbmalloc2.symbols.amd64
> @@ -2,8 +2,6 @@ libtbbmalloc.so.2 libtbbmalloc2 #MINVER#
> MallocInitializeITT@Base 2017~U7
> _Z9parseFileILi100ELi1EEvPKcRAT0__K13parseFileItem@Base 2018~U6
> _Z9parseFileILi100ELi2EEvPKcRAT0__K13parseFileItem@Base 2018~U6
> - (optional)_ZN11MallocMutex11scoped_lockD1Ev@Base 2020.3
> - (optional)_ZN11MallocMutex11scoped_lockD2Ev@Base 2020.3
> _ZN3rml10pool_msizeEPNS_10MemoryPoolEPv@Base 2019~U4
> _ZN3rml10pool_resetEPNS_10MemoryPoolE@Base 2017~U7
> _ZN3rml11pool_createElPKNS_13MemPoolPolicyE@Base 2017~U7

Hello Andrius,

That is unnecessary. - The whole point of (optional) is that
dpkg-gensymbols will not *fail* when if these symbols are missing. It
only warns about them. See deb-src-symbols(5).

> After that, build fails at dh_shlibdeps step:

> dh_shlibdeps
> dpkg-shlibdeps: error: cannot find library libtbbmalloc.so.2 needed by
> debian/libtbbmalloc2/usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so.2
> (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')

You need to
chmod +x debian/libtbbmalloc2.install
after applying the patch to activate dh_exec.

cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'

Andrius Merkys

unread,
Apr 25, 2022, 5:50:04 AM4/25/22
to
Hi Andreas,

On 2022-04-23 14:21, Andreas Metzler wrote:
>> After that, build fails at dh_shlibdeps step:
>> dh_shlibdeps
>> dpkg-shlibdeps: error: cannot find library libtbbmalloc.so.2 needed by
>> debian/libtbbmalloc2/usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so.2
>> (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '')
> You need to
> chmod +x debian/libtbbmalloc2.install
> after applying the patch to activate dh_exec.

This worked, thanks! I can confirm libtbb2 and libtbb12 are
co-installable now, thus I can work on packaging pufferfish (#944785),
which transitively depends on both of these libs packages.

Best,
Andrius

Andrius Merkys

unread,
May 12, 2022, 2:40:05 AM5/12/22
to
Hello,

Can we proceed with splitting out libtbbmalloc2 if there are no
blockers? tbb/onetbb transition is blocking quite some packages, it
would be nice to deal with all of them until the freeze.

Best,
Andrius

M. Zhou

unread,
May 12, 2022, 6:40:03 PM5/12/22
to
Yes. If you have time to handle it please go ahead.
I'm suffering from a recent paper submission deadline,
so I'm only able to build and upload some small packages
that can be built on my weak laptop.
The paper deadline is May 19. After that I should be
able to handle this with a proper build machile.

Andrius Merkys

unread,
May 13, 2022, 4:00:03 AM5/13/22
to
Hi,

On 2022-05-13 01:32, M. Zhou wrote:
> Yes. If you have time to handle it please go ahead.
> I'm suffering from a recent paper submission deadline,
> so I'm only able to build and upload some small packages
> that can be built on my weak laptop.
> The paper deadline is May 19. After that I should be
> able to handle this with a proper build machile.

Thanks. I will see if I can get do this sooner. I have successfully
built both packages on my machine.

Best,
Andrius
0 new messages