FS#79278 - [perf] Missing dependency for libsframe.so

Attached to Project: Arch Linux
Opened by Jarmo (JATothrim) - Wednesday, 02 August 2023, 12:01 GMT
Last edited by freswa (frederik) - Friday, 04 August 2023, 20:28 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Sébastien Luttringer (seblu)
freswa (frederik)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No

Details

Description:
perf-6.3-2 package is missing dependencies: libsframe.so.0 => not found

Additional info:
* Install perf-6.3-2
* "perf: error while loading shared libraries: libsframe.so.0: cannot open shared object file: No such file or directory"
* "ldd /usr/bin/perf" shows: `libsframe.so.0 => not found`

Steps to reproduce:
* Install/Upgrade to extra/perf-6.3-2

the package has missing dependency for `libsframe.so.0` and perf cannot be run at all.
I cannot find any package that would provide sframe shared library
so I'm unable to easily fix the problem.
It is not available from base, extra or even AUR either.

perf-6.3-3 is apparently in testing, is this fixed in that version?
This task depends upon

Closed by  freswa (frederik)
Friday, 04 August 2023, 20:28 GMT
Reason for closing:  Fixed
Additional comments about closing:  perf-6.3-4
Comment by Doug Newgard (Scimmia) - Wednesday, 02 August 2023, 13:20 GMT
Not missing, it just needs a rebuild for the new binutils, where this lib had an soname bump.
Comment by Jarmo (JATothrim) - Wednesday, 02 August 2023, 14:01 GMT
I booted into snapshot of the system before upgrade and found out
pacman -Qo /lib/libsframe.so.0
/usr/lib/libsframe.so.0 is owned by binutils 2.40-6
And back on the normal system:
/usr/lib/libsframe.so is owned by binutils 2.41-1

Like @Doug said /usr/lib/libsframe.so.1 does exist.
So the library is not missing and I upgraded at bad time before perf was built against binutils 2.41-1
I guess I have to temporally build the package myself to fix it until new build arrives?

Edit: Built perf-6.3-3 package and got it working...
Comment by Enrico Guiraud (codekobold) - Wednesday, 02 August 2023, 16:48 GMT
Another (hacky) workaround is to create a symlink called libsframe.so.0 somewhere and make it point to /usr/lib/libsframe.so (and add the location of the symlink to LD_LIBRARY_PATH if it's not a standard location).

Waiting for a rebuild then.

But maybe this is a case of a missing dependency if perf could get out of sync w.r.t. binutils?
Comment by Doug Newgard (Scimmia) - Wednesday, 02 August 2023, 16:55 GMT
DO NOT make symlinks between libraries with different ABIs. Terrible idea.

No, it's not a missing dep. Check the deps yourself, the dep being there or not has nothing to do with it getting 'out of sync'.
Comment by Enrico Guiraud (codekobold) - Wednesday, 02 August 2023, 17:37 GMT
No need for the aggressive tone?

> DO NOT make symlinks between libraries with different ABIs. Terrible idea.

I know, but I needed to use perf and it happened to not crash :)

I only suggest it as a quick hack until we get the update package.

> the dep being there or not has nothing to do with it getting 'out of sync'.

Ah I see, sorry. I thought there were some safeguards to make sure a fully updated Arch be "self-consistent", if you see what I mean.
Comment by Jarmo (JATothrim) - Friday, 04 August 2023, 11:22 GMT
Another identical bug: https://bugs.archlinux.org/task/79291

Is it just that the package(s) did not have version restrictions on binutils dependency?
I.e. pacman -Syu was allowed upgrading binutils to 2.41 (has the soname bump) and
keeping installed linux-tools packages at their current version?

Would have "depends=(... 'binutils<2.41' ... )" on perf and related packages prevented this 'silent' breakage?
Comment by freswa (frederik) - Friday, 04 August 2023, 18:27 GMT
Dependency to soname added, but build fails atm.
Comment by Alex Pyattaev (alex.pyattaev) - Friday, 04 August 2023, 19:01 GMT
If you need it working "today" you can do:
/usr/lib # ln -s libsframe.so.1 libsframe.so.0

which will make it run just fine (but be aware it is a massive hack)
Comment by loqs (loqs) - Friday, 04 August 2023, 19:23 GMT
@freswa does applying the patch from https://lore.kernel.org/all/ZMj8+bvN86D0ZKiB%40kernel.org/ allow the build to succeed?
Comment by freswa (frederik) - Friday, 04 August 2023, 20:25 GMT
@loqs it's a mystery to me how you come up with these patches so quickly. Great job!

Loading...