When to Ansible? When to Shell?

Any new technology requires a mental effort to understand. When trying to automate the boring stuff, one decision I have to make is whether to use straight shell scripting or whether to perform that operation using Ansible. What I want to do is look at a simple Ansible playbook I have written, and then compare what the comparable shell script would look like to determine if it would help my team to use Ansible or not in this situation.

Continue reading

Building a Kernel RPM with the Built-in Makefile target

Note that you need to have a .config file that will be included in the build. It will also use the Version as specified in your Makefile. Then run

make rpm-pkg

Which will use the RPM build infra set up for your user to put the rpm in $HOME/rpmbuild/

Edit: Note that a bunch of dependencies are needed to get the Kernel to build. If you run the above command and it fails out with a message that you are missing a dependency, you can use this pair of commands to get the yum-build dep tool installed, and use that to install the dependencies as listed by the generated kernel.spec file.


wget https://src.fedoraproject.org/rpms/kernel/raw/rawhide/f/kernel.spec
yum install dnf-utils
yum-builddep ./kernel.spec

Converting an OpenGL project to use Autotools

In a science fiction game I play, we often find ourselves asking “which side of the Sun is Mars from the Earth right now?” Since this is for a game, the exact distance is not important, just “same side” or “90 degrees ahead” is a sufficient answer. But “right now” actually means a couple hundred years in the future.

Perfect problem to write a little code to solve. Here’s what it looks like.

Continue reading

Building the Linux Kernel in a GitLab Runner

Git Lab provides a mechanism to run workloads triggered by a git commit. We try to let the automation do as much work as possible before interrupting a human code reviewer. We want to know if the code is right in as objective a manner as possible before we take the expensive context switch to perform a code review.

Continue reading

Upgrading QGo to QT5

My Day job has me messing around with QT5. We’rer building various RPMs for different RHEL and CentOS versions, and I wanted to get a little more experience on this. Specifically, I wanted to be able to do trial and error on a package that would not pollute our work stream. I wanted it to be something QT based. And I wanted it to be fun.

So I am working on repackaging QGo for Fedora 34 using QT5. Here’s what I am learning.

Continue reading

Unifying Audio with Pipewire

ALSA. Jack. PulseAudio. MIDI. Musescore. Jamulus.

My musical interactions with Linux are not the most complex in the world, but they ain’t trivial. The complexity of the Linux audio landscape has been a stumbling block so far. Pipewire has just gotten me past that.

The title of this article implies that you need to do something other than install Pipewire. So far, this is not true. On my system, at least, it Just works.

Continue reading

Syncing and Serving Yum Repos on RHEL 8

My Lab machines do not have direct access to the internet. This mirrors how my customers tend to run their environments. Instead, I run a single bastion host that can connect to the internet, and use that to perform all operations on my lab machines.

While it is great to be able to use the Install media to add packlages to PXE booted systems, after some time, the set of packages available is older than you want. For example, I hit a bug that required an update of Network Manager. So, I want to make a local yum repo from my RHEL 8 subscription. RHEL 8 makes this fairly easy.

Continue reading