public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
From: Guillem Jover <guillem@debian.org>
To: Luca Boccassi <bluca@debian.org>
Cc: "SystemD Devel" <systemd-devel@lists.freedesktop.org>,
	"elfutils-devel@sourceware.org" <elfutils-devel@sourceware.org>,
	binutils@sourceware.org, debhelper@packages.debian.org,
	debian-dpkg@lists.debian.org, devel@lists.fedoraproject.org,
	"Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>,
	"Lennart Poettering" <lennart@poettering.net>
Subject: Re: Storing package metadata in ELF objects
Date: Fri, 14 May 2021 12:41:07 +0200	[thread overview]
Message-ID: <YJ5Tw4TVRcBajS7o@thunder.hadrons.org> (raw)
In-Reply-To: <2b91ec1654b6c07cca2b5c113df772c85c0dd22c.camel@debian.org>

On Sat, 2021-04-10 at 13:38:31 +0100, Luca Boccassi wrote:
> On Sat, 2021-04-10 at 13:29 +0100, Luca Boccassi wrote:
> > After an initial discussion [0], recently we have been working on a new
> > specification [0] to encode rich package-level metadata inside ELF
> > objects, so that it can be included automatically in generated coredump
> > files. The prototype to parse this in systemd-coredump and store the
> > information in systemd-journal is ready for testing and merged
> > upstream. We are now seeking further comments/opinions/suggestions, as
> > we have a few months before the next release and thus there's plenty of
> > time to make incompatible changes to the format and implementation, if
> > required.

I've skimmed over the discussion at [0], and while having this data
seems like it might be "nice", I've to agree with the comments there
voicing that there does not really seem to be an actual need and the
overhead and additional work do not seem worth it, TBH, at least
in the Debian context.

> > The Fedora Wiki and the systemd.io document have more details, but to
> > make a long story short, a new .notes.package section with a JSON
> > payload will be included in ELF objects, encoding various package-
> > build-time information like distro name&version, package name&version,
> > etc.
> > 
> > To summarize from the discussion, the main reasons why we believe this
> > is useful are as following:
> > 
> > 1) minimal containers: the rpm database is not installed in the
> > containers. The information about build-ids needs to be stored
> > externally, so package name information is not available immediately,
> > but only after offline processing. The new note doesn't depend on the
> > rpm db in any way.

In the Debian context, the build-ids data is going to be available
in the affected executables, and in debug symbols packages and the
Packages metaindices listing them, so there's no need for access to
any local dpkg database. Given that someone needing to install debug
packages will need access to those indices (either with outgoing network
access or with a repository mirror), these can be queried at that time.
Not to mention that AFAIR the Debian debug symbol servers make it
possible to query for specific build-ids.

> > 2) handling of a core from a container, where the container and host
> > have different distros

How each distribution handles debug packages and debug symbols is
going to be different, so it seems there will be a need for explicit
handling of these, at which point the above mentioned querying can be
implemented as well, w/o the need to encode the packaging data inside
the executable.

> > 3) self-built and external packages: unless a lot of care is taken to
> > keep access to the debuginfo packages, this information may be lost.
> > The new note is available even if the repository metadata gets lost.
> > Users can easily provide equivalent information in a format that makes
> > sense in their own environment. It should work even when rpms and debs
> > and other formats are mixed, e.g. during container image creation.

I'm not sure I see the problem here. Either these self-built 3rd-party
packages are kept in repos that also provide the debug symbols
somewhere for all historically released versions or these will not be
accessible anyway. If they are, they can as well be located as per
above from the Packages metaindices, and even if the repository
metadata gets lost, as long as the debug symbol packages are present
(if they are not what's the point anyway) the build-ids can always be
re-scanned from them as they are part of the Build-Ids field in the
.deb control file.

> > Other than in Fedora, we are already making the required code changes
> > at Microsoft to use the same format&specification for internally-built
> > binaries, and for tools that parse core files and logs.
> > 
> > Tools for RPM and DEB (debhelper) integration are also available [3].

So, to conclude, I don't really see the point of this in the Debian
context. (Not to mention the problems with encoding binary versions
that might be wrong, and the busy work involved.)

> > [0] https://github.com/systemd/systemd/issues/18433
> > [1] https://systemd.io/COREDUMP_PACKAGE_METADATA/
> > [2] https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects
> > [3] https://github.com/systemd/package-notes

Thanks,
Guillem

  parent reply	other threads:[~2021-05-14 10:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-10 12:29 Luca Boccassi
2021-04-10 12:38 ` Luca Boccassi
2021-04-10 18:44   ` Zbigniew Jędrzejewski-Szmek
2021-04-30 17:57     ` Mark Wielaard
2021-05-04 13:43       ` Luca Boccassi
2021-05-06  1:17         ` Mark Wielaard
2021-05-06 11:43           ` Luca Boccassi
2021-05-14 10:41   ` Guillem Jover [this message]
2021-05-14 13:41     ` Luca Boccassi
2021-05-19  0:19       ` Guillem Jover
2021-05-19 14:58         ` Mark Wielaard
2021-05-24 10:17           ` Luca Boccassi

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=YJ5Tw4TVRcBajS7o@thunder.hadrons.org \
    --to=guillem@debian.org \
    --cc=binutils@sourceware.org \
    --cc=bluca@debian.org \
    --cc=debhelper@packages.debian.org \
    --cc=debian-dpkg@lists.debian.org \
    --cc=devel@lists.fedoraproject.org \
    --cc=elfutils-devel@sourceware.org \
    --cc=lennart@poettering.net \
    --cc=systemd-devel@lists.freedesktop.org \
    --cc=zbyszek@in.waw.pl \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).