Interesting situation.
On 3/6/23 12:49, Ewoud Kohl van Wijngaarden wrote:
While rubygem-openscap is retired in Fedora, the Foreman project still
packages it.
For context: rubygem-openscap can load libopenscap.so.8 and
libopenscap.so.25 through FFI. Today we depend on a specific version,
but every time it's bumped we go through a verification to see if the
SO version hasn't been bumped.
A bit of a tangent first.
This sounds like it could be checked via a "simple" FFI load check in
%check section, in ruby, something like:
~~~
require 'ffi'
module Check
extend FFI::Library
ffi_lib 'libopenscap.so.25'
end
~~~
This will throw an exception if the .so is not available.
At first I started with a trivial Requires: libopenscap.so.25 but that
pulls in both openscap for i686 and x86_64. Directly depending on
libopenscap.so.25()(64bit) feels wrong, so what is the correct
approach here? Is there some helper macro here?
There are *some*, but nothing universal it seems. JFTR other packages
that require libs like this are (and make use of some _isa macros):
cross-gcc.spec
ghdl.spec
glib2.spec
julia.spec
libreoffice.spec
redhat-lsb.spec
systemd.spec
asahi-installer.spec
You can grep through all specfiles using this tar:
https://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz
I'd recommend reading the systemd and Julia files as inspiration, those
2 seem to be doing what you are speaking of.
tl;dr those spec files indicate you need to conditionally depend on
both, depending on whether it is 32 or 64bit build.
Technically speaking I think it should depend on what rubygem-ffi can
load, but on x86_64 that's probably 64 bit only. However, this is a
bit out of my knowledge area.
This could, in theory, be checked in the %check section of the package
as I indicated above, if you add the same to BuildRequires, even if it
won't help if openscap changes the .so version.
Regards,
Jarek
For completeness, the discussion started in a PR:
https://github.com/theforeman/foreman-packaging/pull/9051
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue