2023-04-17 15:54:12 +00:00
|
|
|
---
|
|
|
|
date: 2022-08-14T00:00:00-05:00
|
|
|
|
title: "Debuginfod is coming to Ubuntu"
|
2023-04-18 16:16:48 +00:00
|
|
|
tags: [en_us, english, debian, ubuntu, free-software, debuginfod, gdb]
|
2023-04-17 15:54:12 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
These past couple of months I have been working to bring
|
|
|
|
[debuginfod](https://sourceware.org/elfutils/Debuginfod.html) to
|
|
|
|
Ubuntu. I thought it would be a good idea to make this post and
|
|
|
|
explain a little bit about what the service is and how I'm planning to
|
|
|
|
deploy it.
|
|
|
|
|
|
|
|
A quick recap: what's debuginfod?
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
Here's a good summary of what `debuginfod` is:
|
|
|
|
|
|
|
|
debuginfod is a new-ish project whose purpose is to serve
|
|
|
|
ELF/DWARF/source-code information over HTTP. It is developed under the
|
|
|
|
elfutils umbrella. You can find more information about it here:
|
|
|
|
|
|
|
|
https://sourceware.org/elfutils/Debuginfod.html
|
|
|
|
|
|
|
|
In a nutshell, by using a debuginfod service you will not need to
|
|
|
|
install debuginfo (a.k.a. dbgsym) files anymore; the symbols will be
|
|
|
|
served to GDB (or any other debuginfo consumer that supports debuginfod)
|
|
|
|
over the network. Ultimately, this makes the debugging experience much
|
|
|
|
smoother (I myself never remember the full URL of our debuginfo
|
|
|
|
repository when I need it).
|
|
|
|
|
|
|
|
If you follow the Debian project, you might know that I run their
|
|
|
|
[debuginfod service](https://debuginfod.debian.org). In fact, the
|
|
|
|
excerpt above was taken from the
|
|
|
|
[announcement](https://lists.debian.org/debian-devel-announce/2021/02/msg00003.html)
|
|
|
|
I made last year, letting the Debian community know that the service
|
|
|
|
was available.
|
|
|
|
|
|
|
|
First stage
|
|
|
|
-----------
|
|
|
|
|
|
|
|
With more and more GNU/Linux distributions offering a `debuginfod`
|
|
|
|
service to their users, I strongly believe that Ubuntu cannot afford
|
|
|
|
to stay out of this "party" anymore. Fortunately, I have a
|
|
|
|
[manager](https://launchpad.net/~paelzer) who not only agrees with me
|
|
|
|
but also turned the right knobs in order to make this project one of
|
|
|
|
my priorities for this development cycle.
|
|
|
|
|
|
|
|
The deployment of this service will be made in stages. The first one,
|
|
|
|
whose results are due to be announced in the upcoming weeks,
|
|
|
|
encompasses indexing and serving all of the available debug symbols
|
|
|
|
from the [official Ubuntu repository](http://ddebs.ubuntu.com). In
|
|
|
|
other words, the service will serve everything from `main`, `universe`
|
|
|
|
and `multiverse`, from every supported Ubuntu release out there.
|
|
|
|
|
|
|
|
This initial (a.k.a. "alpha") stage will also allow us to have an
|
|
|
|
estimate of how much the service is used, so that we can better
|
|
|
|
determine the resources allocated to it.
|
|
|
|
|
|
|
|
More down the road
|
|
|
|
------------------
|
|
|
|
|
|
|
|
This is just the beginning. In the following cycles, I will be
|
|
|
|
working on a few interesting projects to expand the scope of the
|
|
|
|
service and make it even more useful for the broader Ubuntu community.
|
|
|
|
To give you an idea, here is what is on my plate:
|
|
|
|
|
|
|
|
- Working on the problem of indexing and serving **source code** as
|
|
|
|
well. This is an interesting problem and I already have some ideas,
|
|
|
|
but it's also challenging and may unfold into more sub-projects.
|
|
|
|
The good news is that a solution for this problem will also be
|
|
|
|
beneficial to Debian.
|
|
|
|
|
|
|
|
- Working with the snap developers to come up with a way to index and
|
|
|
|
serve debug symbols for snaps as well.
|
|
|
|
|
|
|
|
- Improve the integration of the service into Ubuntu. In fact, I have
|
|
|
|
already started working on this by making `elfutils` (actually,
|
|
|
|
`libdebuginfod`) install a customized shell snippet to automatically
|
|
|
|
setup access to Ubuntu's `debuginfod` instance.
|
|
|
|
|
|
|
|
As you can see, there's a lot to do. I am happy to be working on this
|
|
|
|
project, and I hope it will be helpful and useful for the Ubuntu
|
|
|
|
community.
|