Mailinglist Archive: opensuse-packaging (107 mails)

< Previous Next >
Re: [opensuse-packaging] Need help by Fixing Bugreports
  • From: Michael Matz <matz@xxxxxxx>
  • Date: Thu, 14 May 2009 00:03:27 +0200 (CEST)
  • Message-id: <Pine.LNX.4.64.0905132353140.29566@xxxxxxxxxxxxx>
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.

I'm using the following:

%files -n libskgbasegui1
%defattr(-, root, root)
%{_libdir}/libskgbasegui.so.*

%files devel
%defattr(-, root, root)
%{_libdir}/libskgbankgui.so
%{_libdir}/libskgbankmodeler.so
%{_libdir}/libskgbasegui.so
%{_libdir}/libskgbasemodeler.so
%{_libdir}/kde4/plugins/designer/libskgbasegui.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.

That will fix the immediate problem.

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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups