Bug 13286 - kid3 has libraries in wrong place
Summary: kid3 has libraries in wrong place
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Damien Lallement
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-29 23:45 CEST by Nikita Krupenko
Modified: 2015-05-19 20:28 CEST (History)
2 users (show)

See Also:
Source RPM: kid3
CVE:
Status comment:


Attachments

Description Nikita Krupenko 2014-04-29 23:45:42 CEST
kid3 has libraies installed into /usr/lib/kid3 instead of just kid3. This results in a following error:

kid3: error while loading shared libraries: libkid3-gui.so.3.0.2: cannot open shared object file: No such file or directory

If I set LD_LIBRARY_PATH, it starts successfully.
David Walser 2014-04-30 19:57:58 CEST

CC: (none) => juan.baptiste
Assignee: bugsquad => mageia

Stéphane Pontier 2014-07-03 13:14:31 CEST

CC: (none) => stephane.pontier

Nikita Krupenko 2014-08-11 20:38:33 CEST

Hardware: i586 => All

Comment 1 Juan Luis Baptiste 2014-08-13 00:26:46 CEST
Libraries are fine, they are where they should be: /usr/lib for x86 and /usr/lib64 for x86_64 systems. The problem is that the kid3 binary can't find its own libs.
Comment 2 Nikita Krupenko 2014-08-13 00:38:19 CEST
No. The libraries are in /usr/lib64/kid3 instead of /usr/lib64.
Comment 3 Juan Luis Baptiste 2014-08-13 00:46:00 CEST
Many other programs put their libs in a subdir under /usr/lib{64} like kid3 is doing, just take a look at those dirs, so I don't think that it's really the problem.
Comment 4 Nikita Krupenko 2014-08-13 01:46:42 CEST
If libraries not in lib, dynamic linker cannot find them without some tricks (setting LD_LIBRARY_PATH, using RPATH etc).
Also, in OpenSUSE, plugins placed into kid3 folder and libraries into lib: http://pkgs.org/opensuse-13.1/packman/libkid3_3-3.1-1.32.x86_64.rpm.html
Comment 5 Juan Luis Baptiste 2014-08-13 05:12:58 CEST
The problem is because kid3 sets the path to the private lib in the binary with RPATH, but it seems that RPATH is disbled in mga, that's why it can't find it. I opened a bug upstream for this:

https://sourceforge.net/p/kid3/bugs/91/

So there are three options to fix this:

1. Reenable rpath on the spec file: no go because if was disabled it was for a reason.
2. Set a custom launch script that sets LD_LIBRARY_PATH pointing to the correct dir and then launches the program.
3. Move the lib outside the kid3 directory.

So I'm going with option 3 which seems to be the cleanest of all.

Status: NEW => ASSIGNED

Comment 6 Juan Luis Baptiste 2014-08-18 03:24:04 CEST
Pushed a fixed version, please test.
Comment 7 Samuel Verschelde 2015-05-19 20:28:21 CEST
Closing as per comment #6

Status: ASSIGNED => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.