[arch-dev-public] Debug packages for Arch Linux

Morten Linderud foxboron at archlinux.org
Sun Jan 30 11:08:15 UTC 2022

I'm very happy to announce that debug packages in Arch Linux has been deployed :)

This work began after FOSDEM 2020 and was announced in November 2020. However
because of time constraints it took quite a while before we managed to deploy

Currently we have a debuginfod service which is capable of delivering source
listings and debug symbols to users with gdb, delve and other debuggers. This
can be enabled by installing the `debuginfod` package and setting the
environment variable `DEBUGINFOD_URLS="https://debuginfod.archlinux.org"`. The
`debuginfod` package is also going to be providing this variable :)

The debug package repositories themself are not publicly accessible nor
distributed to our mirrors. This is because there is a general concern around
the repository size increase. The goal is to take a look at distributing them
and/or making them accessible in the future. 

Packages are being rebuilt for debug symbols where deemed needed by the packager
and I suspect we should have a discussion around enabling the debug option by
default or not. However see the section below around creating debug packages as
there are some caveats of the current approach.

I have added some links to the work that has been done to accomplish all of this
at the bottom of this email.

For general information about the instance one can look at the service itself:

Previous emails on this topic:
* https://lists.archlinux.org/pipermail/arch-dev-public/2020-November/030222.html
* https://lists.archlinux.org/pipermail/arch-dev-public/2021-December/030583.html

# archlinux.org news announcement

Suggestion for the news announcement on archweb. I'll post it in a day or two
unless there are any objections.

Subject: Debug packages and debuginfod
We are very happy to announce that debug packages are now available in Arch

Debug symbols and source listing are provided through our debuginfod instance
which can be utilized by debuggers such as gdb and delve. In the future we are
planning to make these repositories public on our mirrors.

For more information on this please visit the
[archwiki](https://wiki.archlinux.org/title/Debuginfod) article, Or the
debuginfod service.


# Creating debug packages

Currently with pacman 6.0.1-3 debug package only works on C/C++ projects. This
is mostly because pacman utilizes a fairly ugly awk hack to extract sources and
if it encounters a binary from Go or Rust (as an example) it is simply unable to
deal with them and produces invalid packages.

This is fixed with a patch i wrote which replaces the AWK hack with debugedit.

Until this patch is backported, or a pacman release is done, I would advise us
to not build debug packages for anything that isn't using gcc/clangd.

Saying that, I'm unsure how we should be documenting debug packages across our
distro. They probably belong in package guidelines sections of each package, or
we make a common wiki page for this. Generally Rust needs a environment variable
and Golang needs a bit of work to disable decompressed DWARF headers.

We can probably work something out as we go along, currently I think we should
try enable debug packages on our [core] packages.

When we have pacman with the above patch I can try compile a list of available
methods to get debug packages from Rust, Go and other languages. Obviously I'd
need some help with that :)

Morten Linderud

# infrastructure

# dbscripts

# devtools
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.archlinux.org/pipermail/arch-dev-public/attachments/20220130/405ff70c/attachment.sig>

More information about the arch-dev-public mailing list