Bug 219902
Summary: | SDL_image is missing dependencies on i386 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jason Tibbitts <j> |
Component: | SDL_image | Assignee: | Brian Pepple <bdpepple> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | extras-qa |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 1.2.5-4 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-12-19 21:11:22 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jason Tibbitts
2006-12-16 03:58:20 UTC
There's some weird breakage also with FC-6 i386. Check this out! The image library deps are missing, the audio library deps from SDL are duplicated: $ ldd /usr/lib/libSDL_image-1.2.so.0.1.4 linux-gate.so.1 => (0x00d93000) libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x02631000) libpthread.so.0 => /lib/libpthread.so.0 (0x00909000) libc.so.6 => /lib/libc.so.6 (0x0079b000) libdl.so.2 => /lib/libdl.so.2 (0x00903000) libesd.so.0 => /usr/lib/libesd.so.0 (0x07817000) libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x0787d000) libm.so.6 => /lib/libm.so.6 (0x008da000) /lib/ld-linux.so.2 (0x0077e000) libasound.so.2 => /lib/libasound.so.2 (0x076dd000) It loads the libraries at run-time via SDL and their SONAMEs. Hence no dependencies detected by rpmbuild: -- dynamic libtiff -> libtiff.so.3 -- dynamic libjpeg -> libjpeg.so.62 -- dynamic libpng -> libpng.so.3 -DLOAD_TIF_DYNAMIC=\"libtiff.so.3\" -DLOAD_JPG_DYNAMIC=\"libjpeg.so.62\" -DLOAD_PNG_DYNAMIC=\"libpng.so.3\" ./configure --help --enable-jpg-shared dynamically load JPG support [default=yes] --enable-png-shared dynamically load PNG support [default=yes] --enable-tif-shared dynamically load TIFF support [default=yes] (In reply to comment #2) > It loads the libraries at run-time via SDL and their SONAMEs. Hence > no dependencies detected by rpmbuild: > > -- dynamic libpng -> libpng.so.3 > Interesting that this is detecting (and I assume using) libpng.so.3. On x86_64: $ ldd libSDL_image-1.2.so.0.1.4 |grep png libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00002aaaaacdf000) This is starting to look like SDL_image on x86_64 is the one that's broken. from nazghul's build logs: /builddir/build/BUILD/nazghul-0.5.5/src/screen.c:872: undefined reference to `png_create_write_struct' It look like nazghul directly uses libpng. It has been relying on SDL_image pulling in libpng but should be doing its own configure check instead. Yes, it seems that nazghul is indeed broken; it should link against libpng itself. What confused me is that the normally problematic x86_64 build is the only one that worked. An official log is still available: http://buildsys.fedoraproject.org/logs/fedora-6-extras/22438-SDL_image-1.2.5-3.fc6/x86_64/build.log Somebody who's familiar with libpng is needed, since: * /usr/bin/libpng-config links to /usr/bin/libpng12-config * libpng-config --libs -lpng12 * /usr/lib/pkgconfig/libpng.pc links to libpng12.pc * /usr/lib/libpng.so links to libpng12.so So, in all these cases libpng12.so.0 is used, _not_ libpng.so.3 On i386, however, libpng.so.3 is detected and used and loaded at run-time only. On x86_64, the dynamic loading is not enabled (examining config.log might give a clue). And the reason for the difference between i386 and x86_64 is that /usr/lib is hardcoded in the configure script in code that searches for the png/jpeg/tiff libs. It also searches for $path/libpng.so.[0-9] which fails to find "libpng12.so.0". The configure options --disable-jpg-shared --disable-png-shared -disable-tif-shared disable the run-time loading of the libs and bring back the rpmbuild soname dependencies. Michael, thanks for investigating this will I was gone this weekend. Hopefully, later today I can get some time to work on this. |