Am Donnerstag, 14. Mai 2009 schrieb Michael Matz:
Hi,
On Wed, 13 May 2009, Sascha 'saigkill' Manns wrote:
in my packman package I worked around this problem with packaging both *.so and *.so.* in the lib-pacakges (because I'm too lazy to fix this ...)
Don't do this please. If you're too lazy that's okay, but don't advise this to others. <snip>
I didn't advise someone, I wanted just to show how it is done in my package and why this package works. That's also the reason why I marked this workaround with the comment: # to fix by upstream install addFilter("devel-file-in-non-devel-package .*/kde4/plugins/designer/lib.*.so") addFilter("devel-file-in-non-devel-package .*/lib.*.so")
You need to move the last file (the one in .../kde4/plugins/...) to the libskgbasegui1 package. It is an *.so file, so your initial intuition to put it into a -devel package was correct. But in this case it's a plugin, not a shared library, so it needs to be part of the base package as it's required at runtime, not to build against. A devel package in this case is "senseless" without headers. How could someone use those libs without knowledge about the interface ?
And the plugin should be part of the main package and/or part of a sub-package, not part of the lib-package so I put it in the main package. Just my 2 cent.
That will fix the immediate problem. yes.
But this whole skrooge thingy is highly dubious. Plugins are not supposed to be reachable from /usr/lib (which it here is via the versioned libskgbasegui.so.* links), they are not supposed to be linked against either (again possible here via the %{_libdir}/libskgbasegui.so link). They are supposed to be loaded via a plugin loader at runtime, and in that case those links in %{_libdir}/*.so.* are not required.
When I look at the other librararies in there, though, it seems as if also libskgbasegui.so isn't actually supposed to be a plugin from the start. This is also supported by the fact that the application actually links (in the ld.so sense) against this library/plugin/mixup. But this all needs to be sorted out by upstream. For now it's enough if you provide the plugin in the lib package (not the other *.so files, only the plugin). It is possible that you need to add an exception for rpmlint anyway, because it is named 'lib<something>'. Normally rpmlint should detect that this is only a plugin and not bitch about packaging *.so files in non-devel packages. But you'll need to try.
Ciao, Michael.
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org