Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 936267 - media-libs/libsdl2-2.28.5-r1: binpkg library broken due to libdecor automagic: (was media-video/ffmpeg wont emerge when sdl use flag is set with error "sdl2 requested but not found")
Summary: media-libs/libsdl2-2.28.5-r1: binpkg library broken due to libdecor automagic...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on: 936073 936319
Blocks:
  Show dependency tree
 
Reported: 2024-07-18 21:30 UTC by Serafine Karayan
Modified: 2024-07-19 23:08 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Log of the installlation (emerge ffmpeg) (emerge_ffmpeg_log.txt,10.27 KB, text/plain)
2024-07-18 21:33 UTC, Serafine Karayan
Details
emerge --info (emerge_--info.txt,6.53 KB, text/plain)
2024-07-18 21:33 UTC, Serafine Karayan
Details
emerge --info media-libs/libsdl2 (emerge_--info_.media-libs-libsdl2txt,7.69 KB, text/plain)
2024-07-18 22:49 UTC, Serafine Karayan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Serafine Karayan 2024-07-18 21:30:25 UTC
When trying to install ffmpeg it fails with the error "ERROR: sdl2 requested but not found" during the configure phase even tho media-libs/libsdl2 is present on the system
possibbly related to bug nr 865907


Reproducible: Always

Steps to Reproduce:
1. set use flag sdl for media-video/ffmpeg
2. emerge media-video/ffmpeg
3. emerge fails with "ERROR: sdl2 requested but not found"
Actual Results:  
emerge fails with "ERROR: sdl2 requested but not found"

Expected Results:  
emerge installs media-video/ffmpeg with support for sdl
Comment 1 Serafine Karayan 2024-07-18 21:33:22 UTC
Created attachment 897948 [details]
Log of the installlation (emerge ffmpeg)
Comment 2 Serafine Karayan 2024-07-18 21:33:36 UTC
Created attachment 897949 [details]
emerge --info
Comment 3 Alfred Wingate 2024-07-18 22:31:32 UTC
Could you share the output from `emerge --info media-libs/libsdl2`?
Comment 4 Serafine Karayan 2024-07-18 22:46:19 UTC
(In reply to Alfred Wingate from comment #3)
> Could you share the output from `emerge --info media-libs/libsdl2`?

Sure, I'll add it as an attachment
Comment 5 Serafine Karayan 2024-07-18 22:49:52 UTC
Created attachment 897950 [details]
emerge --info media-libs/libsdl2
Comment 6 Alfred Wingate 2024-07-18 23:19:10 UTC
Reproduced issue in a container by using a binary for libsdl2.

Relevant output from config.log:

test_pkg_config sdl2 sdl2 >= 2.0.1 sdl2 < 3.0.0 SDL_events.h SDL_PollEvent
x86_64-pc-linux-gnu-pkg-config --exists --print-errors sdl2 >= 2.0.1 sdl2 < 3.0.0
check_func_headers SDL_events.h SDL_PollEvent -I/usr/include/SDL2 -D_REENTRANT -lSDL2
test_ld cc -I/usr/include/SDL2 -D_REENTRANT -lSDL2
test_cc -I/usr/include/SDL2 -D_REENTRANT
BEGIN /var/tmp/portage/media-video/ffmpeg-6.1.1-r5/temp/ffconf.LwZ0eejY/test.c
    1   #include <SDL_events.h>
    2   #include <stdint.h>
    3   long check_SDL_PollEvent(void) { return (long) SDL_PollEvent; }
    4   int main(void) { int ret = 0;
    5    ret |= ((intptr_t)check_SDL_PollEvent) & 0xFFFF;
    6   return ret; }
END /var/tmp/portage/media-video/ffmpeg-6.1.1-r5/temp/ffconf.LwZ0eejY/test.c
x86_64-pc-linux-gnu-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -O2 -pipe -std=c11 -fPIC -pthread -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include
/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -D_REENTRANT -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/lib64/libffi/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr
/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/pixman-1 -DX264_API_IMPORTS -I/usr/include/SDL2 -D_REENTRANT -c -o /var/tmp/portage/media-video/ffmpeg-6.1.1
-r5/temp/ffconf.LwZ0eejY/test.o /var/tmp/portage/media-video/ffmpeg-6.1.1-r5/temp/ffconf.LwZ0eejY/test.c
x86_64-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--as-needed -Wl,-z,noexecstack -I/usr/include/SDL2 -D_REENTRANT -o /var/tmp/portage/media-video/ffmpeg-6.1.1-r5/temp/ffconf.LwZ0eejY/test /var/tmp/porta
ge/media-video/ffmpeg-6.1.1-r5/temp/ffconf.LwZ0eejY/test.o -lSDL2
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: warning: libdecor-0.so.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so, not found (try using -rpath or -rpath-link)
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_app_id'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_get_xdg_toplevel'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_max_content_size'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_get_min_content_size'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_unset_maximized'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_unref'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_move'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_is_visible'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_commit'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_state_free'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_get_max_content_size'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_configuration_get_content_size'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_has_capability'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_min_content_size'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_decorate'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_maximized'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_unset_capabilities'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_capabilities'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_fullscreen'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_parent'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_resize'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_is_floating'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_title'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_map'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_unset_fullscreen'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_dispatch'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_visibility'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_state_new'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_unref'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_get_xdg_surface'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_configuration_get_window_state'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_frame_set_minimized'
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64/libSDL2.so: undefined reference to `libdecor_new'
collect2: error: ld returned 1 exit status

This looks like a binary package issue with libsdl2 as it links against libdecor which isnt stated as a dependency.
Comment 7 Alfred Wingate 2024-07-18 23:25:47 UTC
So the solution as a end user is to either install gui-libs/libdecor, avoid the binpkg or use a newer libsdl2 with libdecor properly configured in the buildsystem + deps (no binpkg available).
Comment 8 Eli Schwartz gentoo-dev 2024-07-19 16:37:20 UTC
This is the same root cause as the confusion in bug 936020 due to the fact that it uses automagic.
Comment 9 Larry the Git Cow gentoo-dev 2024-07-19 22:57:55 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c19cb386709780fc23cd1141684e32efe585492

commit 9c19cb386709780fc23cd1141684e32efe585492
Author:     Eli Schwartz <eschwartz@gentoo.org>
AuthorDate: 2024-07-19 16:31:23 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-07-19 22:56:42 +0000

    media-libs/libsdl2: fix automagic dependency on libdecor
    
    It is enabled and depended on for the 2.30 ebuilds which use cmake,
    although the cmake builds default to not building with libdecor support.
    
    It is not enabled for the stable 2.28 ebuild which uses autotools,
    although the autotools builds default to detecting libdecor and using
    it.
    
    Closes: https://bugs.gentoo.org/936020
    Closes: https://bugs.gentoo.org/936267
    Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libsdl2/libsdl2-2.28.5-r1.ebuild | 1 +
 1 file changed, 1 insertion(+)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f63e002c7e0de47436702f03aebe6a94f58b8dc

commit 9f63e002c7e0de47436702f03aebe6a94f58b8dc
Author:     Eli Schwartz <eschwartz@gentoo.org>
AuthorDate: 2024-07-19 16:41:24 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-07-19 22:57:20 +0000

    media-libs/libsdl2: wire up libdecor support for stable series too
    
    [sam: add Bug: tags.]
    
    Bug: https://bugs.gentoo.org/936020
    Bug: https://bugs.gentoo.org/936267
    Fixes: 1b5e09a485a7c7f756af30aae248aeed5082a877
    Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libsdl2/libsdl2-2.28.5-r2.ebuild | 266 ++++++++++++++++++++++++++++
 1 file changed, 266 insertions(+)