V Sun, Jun 09, 2024 at 08:35:05AM -0000, Mattia Verga napsal(a):
- rpmlint warning
supernovas-cio-data.x86_64: W: only-non-binary-in-usr-lib Is the cio_ra.bin an executable? Or it's just a resource? If the latter, maybe it can be moved under %{_datadir}/%{name}?
It is a resource but it is a platform-dependent one -- so it has an 'arch' dependence. %{_datadir} has no arch-dependence, but %{_libdir} does, which is why I thought this resource might fit there best. Or do you think it's better to put arch-dependent data into {%_datadir}, perhaps under a %{name}/%{_isa} directory instead?
I'm not sure here: is it expected that {%_datadir} should not contain arch dependent code? Where it is best to provide such resources?
/usr/share is called "share" because it's sharable between architectures. That's why %{_datadir} should not contain architecture specific files.
Those files should go to %{_libdir} if it is a dynamic shared object, i.e. a library, or a plugin), otherwise, there is a catch-all %{_libexecdir} directory for all the other cases, especially for standalone executables.
Another decision factor between %{_libdir} and %{_libexecdir} is whether the file is expected to be installed multiple times for more architectures at the same time (multi-lib). Then %{_libdir} is more suitable because it already embeds the architecture in its path prefix.
-- Petr