From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
To: 72828@debbugs.gnu.org
Subject: bug#72828: Grafting breaks libcamera signatures
Date: Mon, 2 Sep 2024 10:37:58 +0200 [thread overview]
Message-ID: <2zsqyfesu5qldhngmls7owv4aweuc5gjr5ugyurxco5bmtw3nc@vli7jiwfqf5g> (raw)
In-Reply-To: <87h6b6b5v3.fsf@trop.in>
Hi, I hope this mail reaches the issue tracker.
I'm one of the libcamera developer, and while I cant share any useful
opinions on the guix build issue, I would like to clarify some points
from the discussion above in order to help better understand the
context on why we sign libraries and load unsigned modules in a separate
context (as Ludo put it: why all this sophistication)
Quiting again Ludo
> This probably makes sense in the context that the copyright owner,
> Google, envisioned: presumably Android programs loading random
> proprietary modules coming from the app store. But I wonder what the
> point is in the context of a free GNU/Linux distro.
Not exactly. In libcamera, apart from creating a library to ease all
the camera stack plumbing, we're creating an ecosystem of open-source
3A algorithms (what we call the IPA modules).
Camera vendors and ODMs which invested in products with specific
camera features, consider 3A algorithms and their tuning their secret
sauce and are usually not willing to consider releasing them as open
source with, fortunately, notable exceptions such as RaspberryPi
Please note that all the platforms libcamera supports have an
open-source 3A algorithm module available part of the main code base,
and we consider open source 3A modules our 'first class citizens' and
we're willing to develop and maintain them in libcamera mainline
branch as free software, but at this point we have to provide a way for
third-parties to load binary modules if they want to.
The alternative is to have them continue developing camera stacks
fully behind closed doors as it has been done so far.
As said, modules not built against the libcamera sources will not be
signed, as they are distributed by other means by a vendor in binary
form. To establish if a module has been built with the libcamera
sources or not, we sign it during the build with a volatile key and
validate the signature at run-time, when the IPA module is loaded.
IPA modules for which the signature is not valid (either because they
are distributed as binaries or, as in this case, because the build
system strips symbols before installing the objects) are loaded in an
isolated process and instead of being operated with direct function
calls, we have implemented an IPC mechanism to communicate with them.
This path is way less tested by our regular users and in our daily
work on libcamera. Vendors that are running their binaries as isolated
might have fixed issues here and there but maybe they have not
reported the issue and the associated fix upstream (we have no control
over this).
For this reason I don't suggest running modules as isolated, even more
if you have no reasons to do so. If all it takes is re-signing IPA modules
after stripping them as Andrew did I would really consider doing that.
next prev parent reply other threads:[~2024-09-02 11:39 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-27 10:46 bug#72828: Grafting breaks libraries signatures Andrew Tropin via Bug reports for GNU Guix
2024-08-31 19:36 ` bug#72828: libcamera module signatures Ludovic Courtès
2024-09-02 6:45 ` Andrew Tropin via Bug reports for GNU Guix
2024-09-02 8:37 ` Jacopo Mondi [this message]
2024-09-04 16:42 ` bug#72828: Grafting breaks libcamera signatures Ludovic Courtès
2024-09-04 17:42 ` Andrew Tropin via Bug reports for GNU Guix
2024-09-05 6:46 ` Andrew Tropin via Bug reports for GNU Guix
2024-09-05 6:56 ` Jacopo Mondi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2zsqyfesu5qldhngmls7owv4aweuc5gjr5ugyurxco5bmtw3nc@vli7jiwfqf5g \
--to=jacopo.mondi@ideasonboard.com \
--cc=72828@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.