Bug 696866

Summary: rpmlint demands renaming non-lib package into lib-name
Product: [openSUSE] openSUSE 12.1 Reporter: Ilya Chernykh <anixx>
Component: BasesystemAssignee: Dirk Mueller <dmueller>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: ismail
Version: Factory   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Ilya Chernykh 2011-05-30 06:43:56 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.19) Gecko/20110420 SUSE/2.0.14-2.1 SeaMonkey/2.0.14

I faced the following problem with Factory: rpmlint demands to rename 
kxmleditor into libkxmleditorpart1 even though the package is not a library 
but a full-featured application with .desktop entry in the menu.

Maybe the rpmlint policy should be changed so it at least not to attack 
packages which have .desktop file inside?

The package link is here: https://build.opensuse.org/package/show?package=kxmleditor&project=KDE%3AKDE3

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
Comment 1 Ilya Chernykh 2011-05-30 06:48:09 UTC
The package also has a binary launcher inside /opt/kde3/bin/kxmleditor and multiple icon, doc and translation files so this is even more strange.
Comment 2 Dirk Mueller 2011-08-26 07:47:17 UTC
Hi Ilya,

I agree that the error message is not very understandable, but it is correct. The algorithm ignores libraries that are required by the package itself, but libkxmleditorpart.so.1 is not required by bin/kxmleditor, so the check is satisfying the shared lib policy. 

The underlying problem is however something different: the library is not actually a library, but it is a KPart (as the name implies). So the correct fix is to install it into the module path. you can do that easily with a one liner change to the Makefile.am: 

- lib_LTLIBRARIES = ...
+ kde_module_LTLIBRARIES = ...


therefore resolving as invalid. hope the comment above helps you already.
Comment 3 Ilya Chernykh 2011-08-29 18:01:10 UTC
I did as you suggested, but this does not help.
Comment 4 Ilya Chernykh 2011-08-29 18:04:00 UTC
This is my change:

sed 's|lib_LTLIBRARIES =|kde_module_LTLIBRARIES =|g' Makefile.am

And after removing rpmlintrc it still reports 

kxmleditor.i586: E: shlib-policy-name-error (Badness: 10000) libkxmleditorpart1
Your package contains a single shared library but is not named after its
SONAME.
Comment 5 Ismail Dönmez 2011-10-20 11:44:08 UTC
You need to do "sed -i" to actually change the value. Please close this bug if this fixes the problem. Thanks.
Comment 6 Ilya Chernykh 2011-10-20 14:23:53 UTC
No, fixing sed does not solve the problem.
Comment 7 Ismail Dönmez 2011-10-20 14:33:14 UTC
Just tested locally, should fix the part/Makefile.am file, ie.

+sed -i 's|lib_LTLIBRARIES =|kde_module_LTLIBRARIES =|g' part/Makefile.am

Closing as invalid.