Since joining Red Hat in 2019, I’ve been sending weekly email reports. At first, I found the process odd. But it has grown on me. These are the things I did or happened to me that I can (or want to) publicly share.

Fedora

Delve

This is one of those embarrassing moments and, at the same time, relieving. Delve, the Go debugger, is available in Fedora!

Delve was already orphaned as a Package in Fedora when I joined my current team. Usually, Fedora retires packages when it fails to rebuild in the mass rebuild phase of a new release. After a few weeks as retired, it becomes an orphaned package.

The process to un-orphan a package is simple; it is the same as a new package with the distinction that the repository already exists. Nothing special.

I’ve been interested in taking the package since 2019. I maintain Delve on RHEL and contribute upstream to the project, so why not in the Linux distribution I use daily? But it was never a priority for different reasons. And the longer you leave the package, the harder it becomes to bring it back to life due to new dependencies.

Thankfully, all the current dependencies are packaged in Fedora; I own some of them.

It took a few weeks to nail down all of the issues. First, the package review process could have been faster. Christmas, the reviewer was busy with the more important stuff, and I was busy with more important stuff… Then, the problems. A macro in the build phase hid a minor issue in one of the dependencies:

/usr/lib/golang/pkg/tool/linux_amd64/compile -o $WORK/b142/_pkg_.a -trimpath
"$WORK/b142=>" -p github.com/go-delve/delve/pkg/terminal -complete
-installsuffix shared -buildid KPpXltkO9VyNrTOMIj6K/KPpXltkO9VyNrTOMIj6K
-goversion go1.20.2 -shared -c=4 -nolocalimports -importcfg
$WORK/b142/importcfg -pack
./_build/src/github.com/go-delve/delve/pkg/terminal/command.go
./_build/src/github.com/go-delve/delve/pkg/terminal/config.go
./_build/src/github.com/go-delve/delve/pkg/terminal/disasmprint.go
./_build/src/github.com/go-delve/delve/pkg/terminal/docgen.go
./_build/src/github.com/go-delve/delve/pkg/terminal/groups.go
./_build/src/github.com/go-delve/delve/pkg/terminal/out.go
./_build/src/github.com/go-delve/delve/pkg/terminal/starlark.go
./_build/src/github.com/go-delve/delve/pkg/terminal/terminal.go
./_build/src/github.com/go-delve/delve/pkg/terminal/terminal_other.go
/usr/lib/golang/pkg/tool/linux_amd64/buildid -w $WORK/b142/_pkg_.a # internal
cp $WORK/b142/_pkg_.a
/builddir/.cache/go-build/e1/e1917152db09abfc41dd3587653465d92fce02d014db41a252beecc2a3d51972-d
# internal

The problem was related to a different version in one of the dependencies. Go, as in 1.20.1, ships with go-dap 0.6 but in Fedora, we have 0.7, and there’s a change in a return object. I found the real problem after overriding the %gobuild macro. The solution: I patched the offending line. You can see the patch here. This patch will go away in the next release of Delve.

By the way, I nice flag for this situation was the -work: go build -work. It prints the name of the temporary work directory and doesn’t delete it when exiting. This allowed me to move around in the mock environment.

Another relevant thing about this package is that it doesn’t provide a -devel package.

Go

Thanks to mroche and buckaroogeek for their pull requests. I was immersed in the Delve package and forgot to update Go to 1.20.2 and 1.19.7.

This reminds me that this week there was a security announcement. That means I will probably do a few updates next week.

Personal stuff

Dotfiles

For an extended period, I’ve been doing, and, like everybody else, custom solutions to my dotfiles. I only have a little stuff because I’m used to only customizing my tools as little as possible. I’ve been working on NeoVim a lot recently and did some modifications on my bashrc, so I wanted a better solution. Enters stow. Now I can run make, and it will link all the dotfiles to my repository. Elegant and simple.

Books

I finished Learning to Pray in the Age of Technique by Gonçalo M. Tavares. It was a recommendation from a close friend, and it just blew my mind. It’s a hard-to-sallow book. But what caught my attention is not the story but how it is narrated. It might seem like the author is doing everything considered a lousy narrative technique. But it works. Every single sentence is as strong as the one before. Short chapters that drill your brain with the ideas of a twisted man.

Movies and tv shows

I had the opportunity to watch John Wick 4 and Tetris (really enjoyed this one). Almost finished The Simpsons (I’ve been watching the whole show in English, from season 1 to now, 32). I’ve been suffering since season 20.

Videogames

Played Kirby’s Return to Dream Land and Ghost of Tsushima.

Training

I stopped running a few months ago due to an injury on my right leg (periostitis). I ran a short and absolutely horrible run this week. But it was the first one in months. No pain at all. I plan to start training again in the mornings like I used to before the injury in a few days if everything goes as planned.