blog/content/posts/debuginfod-is-coming-to-ubuntu.md

83 lines
3.5 KiB
Markdown

---
date: 2022-08-14T00:00:00-05:00
title: "Debuginfod is coming to Ubuntu"
tags: [en_us, debian, ubuntu, free-software, debuginfod, gdb]
---
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.