From: Benjamin Robin <benjamin.robin@bootlin.com>
To: openembedded-core@lists.openembedded.org, Paul Barker <paul@pbarker.dev>
Cc: jpewhacker@gmail.com, antonin.godard@bootlin.com,
mathieu.dubois-briand@bootlin.com, thomas.petazzoni@bootlin.com,
daniel.turull@ericsson.com
Subject: Re: [PATCH 2/2] package: fix source path in save_debugsources_info()
Date: Sun, 16 Aug 2026 14:19:07 +0200 [thread overview]
Message-ID: <deTZ1aVaTSi1lGA0cUFFsw@bootlin.com> (raw)
In-Reply-To: <31833741ed68de2878234d906c2a1cfe680c4508.camel@pbarker.dev>
On Sunday, August 16, 2026 at 1:37 PM, Paul Barker wrote:
> On Sun, 2026-08-16 at 13:25 +0200, Benjamin Robin wrote:
> > On Sunday, August 16, 2026 at 1:12 PM, Benjamin Robin wrote:
> > > On Sunday, August 16, 2026 at 12:46 PM, Paul Barker wrote:
> > > > On Mon, 2026-08-10 at 09:11 +0200, Benjamin Robin wrote:
> > > > > Previously, except for a kernel recipe, the source file paths were never
> > > > > "resolved" since the KERNEL_SRC_PATH variable is always defined. So in
> > > > > the ${PN}-debugsources.json.zstd file the source file paths always started
> > > > > with /usr/src/debug/${PN}/${PV} (which is the value of TARGET_DBGSRC_DIR).
> > > > >
> > > > > Currently the debugsources.json file is only used by the spdx generation.
> > > > > - In `get_patched_src()` the sources of the recipe are extracted (again).
> > > > > The unpack task is executed from a modified local context with UNPACKDIR
> > > > > set to the value of `${SPDXWORK}`. So in summary the sources are
> > > > > extracted in a sub-directory of `${SPDXWORK}`.
> > > > > - In `add_package_files()`, with topdir equal to `${SPDXWORK}`, all the
> > > > > files (recursively) found in topdir are listed. For each source file,
> > > > > if the file path (relative to topdir) is in the list of source files
> > > > > retrieved by save_debugsources_info, then the file is added to the SPDX
> > > > > SBoM.
> > > > >
> > > > > So try to handle that by replacing ${TARGET_DBGSRC_DIR} by the relative
> > > > > path of ${S} relative to ${UNPACKDIR}. If ${S} is not relative to
> > > > > ${UNPACKDIR}, do nothing.
> > > > >
> > > > > Signed-off-by: Benjamin Robin <benjamin.robin@bootlin.com>
> > > >
> > > > The paths in ${PN}-debugsources.json currently match where the files
> > > > will be installed on the target. If we change these to be relative
> > > > paths within ${UNPACKDIR} then we would break other ways that the
> > > > debugsources json files may be used.
> > >
> > > Hello Paul,
> > >
> > > This was never the purpose of ${PN}-debugsources.json if I am not mistaken.
> > > If you look at the code (before my patches) the path should have been
> > > modified to be somewhat relative to WORKDIR. But the code had a bug, and
> > > the paths were never modified.
> > >
> > > Also, for the kernel, the kernel sources paths were already modified to be
> > > the same as the path in SPDX, so starting with ${BP}. This part was
> > > mostly working for the "main" use case. In a previous RFC series that was
> > > merged, I fix that to be working for any kernel recipe.
> > >
> > > > What is currently broken?
> > >
> > > SPDX_INCLUDE_COMPILED_SOURCES for a normal recipe (not the kernel) is not
> > > working.
> > >
> > > > Can this be fixed at the point where the
> > > > debugsources json file is parsed instead of where it is generated?
> >
> > Yes, I guess we could modify how oe.spdx_common.get_compiled_sources() is
> > implemented. In that case I would recommend to no longer modify the paths
> > of kernel sources in save_debugsources_info(). We would keep the paths as is,
> > we would only filter for "<internal>", "<built-in>", ...
> >
> > In any cases, this is kind of a breaking change since the
> > ${PN}-debugsources.json is not going to contain the same paths as before.
> >
> > But what you are "proposing" (modifying get_compiled_sources()) is a bit
> > cleaner from my point of view. This is a bit more work, that is why I did
> > not do that.
> > Joshua do you have an option on that?
> >
> > > > Sorry if I'm missing some context here.
> > >
> > > For the full context see:
> > > https://lore.kernel.org/all/20260727-fix-get-patched-src-v1-0-f5054ca10e14@bootlin.com/
> > > https://github.com/bootlin/yocto-kiss/pull/26#discussion_r3626224833
>
> Hi Benjamin,
>
> Yes, I was missing some context! I was replying based off discussions we
> had on the patch review call on Thursday.
>
> If the paths in debugsources.json files are currently inconsistent
> between kernel and non-kernel recipes then we should fix that. So
> perhaps your patch is correct after all. I'll let Joshua give an
> opinion.
Be aware that with all my patches, the content of debugsources.json will
still contain paths starting with /usr/src/debug/ since there are paths
from others recipes (header files from glibc for example, ...).
I am not sure I will have time this week to take a look at the second
solution (modifying get_compiled_sources which is a bit cleaner from my
point of view). I'll let Joshua give his opinion first :)
--
Benjamin Robin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2026-08-16 12:19 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 7:11 [PATCH 0/2] package: improve save_debugsources_info() Benjamin Robin
2026-08-10 7:11 ` [PATCH 1/2] package: Fix source info when PACKAGE_DEBUG_STATIC_SPLIT is set Benjamin Robin
2026-08-10 7:11 ` [PATCH 2/2] package: fix source path in save_debugsources_info() Benjamin Robin
2026-08-16 10:46 ` Paul Barker
2026-08-16 11:12 ` Benjamin Robin
2026-08-16 11:25 ` Benjamin Robin
2026-08-16 11:37 ` Paul Barker
2026-08-16 12:19 ` Benjamin Robin [this message]
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=deTZ1aVaTSi1lGA0cUFFsw@bootlin.com \
--to=benjamin.robin@bootlin.com \
--cc=antonin.godard@bootlin.com \
--cc=daniel.turull@ericsson.com \
--cc=jpewhacker@gmail.com \
--cc=mathieu.dubois-briand@bootlin.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=paul@pbarker.dev \
--cc=thomas.petazzoni@bootlin.com \
/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.
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.