It’s been a while since the last post here. And it’s been even a longer while since I’ve made an open-source contribution. However, during this summer vacation I had some free time to finally figure out how git send-email works and upstream some things I’ve fixed for Sulka. So, it’s time to toot my own horn a bit and share what I’ve contributed to Yocto.

Contributions
So, what did I fix then? Mostly minor build warnings, and one slightly more “real” issue. All quite small changes, but it’s a good idea to start small. Here’s a summary of each changeset.
systemd-timesyncd on read-only root file system
This was actually the biggest fixed issue. systemd-timesyncd wants to write under /var/lib when it starts. When using a read-only rootfs, the location is mounted as read-write by a service file created by volatile-binds recipe. However, there’s no ordering that ensures that the required location is mounted before systemd-timesyncd starts. The commit simply adds that ordering for the /var/lib service.
Fixing uutils-coreutils build warnings on Scarthgap
The uutils-coreutils build on Scarthgap had some issues with build path polluting the binaries. This was actually two separate issues, despite the warning message being the same for two different binaries. The first commit was a cherry-pick of a fix that was already present in Walnascar. The second commit was an adaptation of a fix from another recipe that had the same issue.
Fixing linux-yocto CVE checker warnings on Scarthgap
This was just a matter of running a command that regenerated the CVE exclusion list, and then formatting a patch from the output and sending that. This was actually the first patch I submitted, as it was quite a small change. Well, the diff was large, but the change in a way was trivial. And yeah, that commit has already been obsoleted since the kernel version has been updated. That’s progress.
Fixing linux-yocto build warning on Scarthgap when IMA is enabled
This patch got merged just a few hours ago. It fixes a build warning on Scarthgap Linux build. The warning occurs when IMA KERNEL_FEATURE is enabled. Scarthgap uses 6.6 series kernel, but the IMA feature enabled a configuration flag that’s been removed in 6.5 series, so there’s a build warning related to that. The commit simply removes that config, as the replacement configuration seems to be active already.
How to Contribute
Hopefully this inspired you to upstream some patch you’ve been maintaining for ages and that could benefit others. But how to actually contribute to Yocto project? There are quite a lot of useful resources that you can check out:
- Yocto Project and OpenEmbedded Contributor Guide: This is the official guide for contributing to Yocto, so obviously it’s a good resource to read. I found especially the fourth chapter, Contributing Changes to a Component, useful for figuring out how to format the patch and send it.
- How do I start contributing to Yocto Project? & How to Contribute: These are two presentations from Yocto Summit, both presented by Michael Opdenacker. They build on one another, and cover slightly different topics, so it’s a good idea to watch them both if you have time.
- Git send-email using Gmail: Maybe one of the biggest hurdles is actually configuring the Git e-mail settings, as this depends a lot on what e-mail provider you’re using. At least Gmail should be simple, I haven’t used it myself though.
The process of contributing was quite easy when following the instructions carefully. I didn’t get asked difficult questions in the mailing list (which is good, because I don’t know how to respond yet). The biggest gotcha for me in the e-mail patch submission flow is that the e-mail header is defined in the git format-patch command, not in the git send-email, and I always seem to get it wrong.
And I really, really recommend using send-email, trying to manually format an e-mail in some fancy graphical editor and then verifying it is still correct before sending is a lot of wasted effort. Maybe the best tip I’ve heard is that you should send the patches first to yourself to ensure they look correct. Overall, it’s not maybe the most modern way of doing things, but it is still a very functional way of doing things.

Thanks for reading, I’m hoping to see you in the mailing list in the future!
