[libcamera-devel] [PATCH v2 1/2] libcamera: ipa_manager: Only parse IPA modules

Javier Martinez Canillas javierm at redhat.com
Fri Feb 14 13:04:11 CET 2025


Kieran Bingham <kieran.bingham at ideasonboard.com> writes:

Hello Kieran,

[...]

>> > ```
>> > 
>> > So I think it's time to move the IPA modules to a subdirectory. I like
>> > that better than arbitrary filtering of the name.
>> 
>> It's really a distribution issue, by default IPA modules go to (on an
>> Arm64 system) /usr/local/lib64 (and only IPA modules are installed
>> there), and v4l2-compat.so go to /usr/local/libexec/libcamera/. We can
>> create a subdirectory for IPA modules, but will distributions then
>> decide to install v4l2-compat.so there ? :-)
>
> A distribution issue that's impacting multiple distributions ...
>
> So the question is /why/ ?
>

Maybe I'm misunderstanding what is the question but in Fedora at least
most packages don't have multi{lib,arch} support.

If the question is only about the IPA modules being moved to a ipa sub
directory then I think that it makes sense and shouldn't be an issue.

>
> https://salsa.debian.org/multimedia-team/libcamera/-/blob/debian/unstable/debian/libcamera-ipa.install?ref_type=heads
> shows:
>
>
> usr/lib/*/libcamera/ipa_*.so
> usr/lib/*/libcamera/ipa_*.so.sign
> usr/lib/*/libcamera/*_ipa_proxy
> usr/share/libcamera
>
> so it's capturing the ipa files into a package based on where they get
> installed.
>
> https://salsa.debian.org/multimedia-team/libcamera/-/blob/debian/unstable/debian/libcamera-v4l2.install?ref_type=heads
>
> shows
>
> usr/lib/*/libcamera/v4l2-compat.so
>
> for the V4L2 side.
>

In Fedora we have:

rpm -ql libcamera-ipa.x86_64 | grep "\.so"
/usr/lib64/libcamera/ipa_ipu3.so
/usr/lib64/libcamera/ipa_ipu3.so.sign
/usr/lib64/libcamera/ipa_soft_simple.so
/usr/lib64/libcamera/ipa_soft_simple.so.sign

rpm -ql libcamera-v4l2.x86_64 | grep "\.so"
/usr/libexec/libcamera/v4l2-compat.so

>
> And finally:
>
> https://salsa.debian.org/multimedia-team/libcamera/-/blob/debian/unstable/debian/rules?ref_type=heads
>
> Shows:
>
> override_dh_auto_configure:
> 	dh_auto_configure -- \
> 		--libexecdir=lib/${DEB_HOST_MULTIARCH} \
>
>
> Which is overridding the libexecdir for multiarch. 
>

[...]

>
> Javier, Do you know if this is happening on Fedora or if there is any
> requirements regarding /usr/libexec ?
>

In Fedora we don't override libexecdir, just use the distro default that
is /usr/libexec/. There are no requirements about libexec in this regard,
in fact libexec is used mostly for binaries and only have a few libraries.

The only requirement that Fedora has in its packaging guidelines is that
unversioned shared objects (which the v4l2-compact.so is IIRC) must not be
visible to the dynamic linker:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Unversioned_shared_objects/

Which I think was the reason why it was moved to libexecdir to start with?

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat



More information about the libcamera-devel mailing list