obsproject / obsproject/obs-studio
libobs is underlinked
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 76.4k
- Forks
- 10.2k
- Avg merge
- 4d 23h
- Merged PRs (30d)
- 12
Description
Operating System Info
Other
Other OS
Debian
OBS Studio Version
29.1.3
OBS Studio Version (Other)
No response
OBS Studio Log URL
n.n.
OBS Studio Crash Log URL
n.n.
Expected Behavior
obs explicitly encodes all runtime dependencies to dynamic libraries.
Current Behavior
building obs results in a libobs.so which uses symbols from libm but fails to link against the library.
Steps to Reproduce
$ wget https://github.com/obsproject/obs-studio/releases/download/29.1.3/obs-studio_29.1.3-0obsproject1.focal_amd64.deb
$ dpkg -x obs-studio_29.1.3-0obsproject1.focal_amd64.deb OBS
$ strings OBS/usr/lib/x86_64-linux-gnu/libobs.so.29 | grep asinf
asinf
$ readelf -d OBS/usr/lib/x86_64-linux-gnu/libobs.so.29 | grep lib
0x0000000000000001 (NEEDED) Shared library: [libavcodec.so.58]
0x0000000000000001 (NEEDED) Shared library: [libavformat.so.58]
0x0000000000000001 (NEEDED) Shared library: [libavutil.so.56]
0x0000000000000001 (NEEDED) Shared library: [libswscale.so.5]
0x0000000000000001 (NEEDED) Shared library: [libswresample.so.3]
0x0000000000000001 (NEEDED) Shared library: [libjansson.so.4]
0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
0x0000000000000001 (NEEDED) Shared library: [libX11-xcb.so.1]
0x0000000000000001 (NEEDED) Shared library: [libxcb.so.1]
0x0000000000000001 (NEEDED) Shared library: [libuuid.so.1]
0x0000000000000001 (NEEDED) Shared library: [libpulse.so.0]
0x0000000000000001 (NEEDED) Shared library: [libgio-2.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwayland-client.so.0]
0x0000000000000001 (NEEDED) Shared library: [libxkbcommon.so.0]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
0x000000000000000e (SONAME) Library soname: [libobs.so.0]
0x000000000000001d (RUNPATH) Library runpath: [/usr/lib/x86_64-linux-gnu]
$ readelf -d OBS/usr/lib/x86_64-linux-gnu/libobs.so.29 | grep libm
$
Anything else we should know?
typically this is not a very big deal, as libm is pulled in via various other libraries.
nevertheless i think that any direct dependency should be expressed explicitly (rather than implicitly trusting that somebody else will do the work)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the libobs shared-library build configuration and reproduce the report using the provided dpkg, strings, and readelf commands on the OBS 29.1.3 package. Done means the built libobs.so explicitly reports libm as a runtime dependency, while the existing dependency checks remain intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100