--- date: 2022-08-14T00:00:00-05:00 title: "Debuginfod is coming to Ubuntu" tags: [en_us, english, 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.