Building AwesomeWM 4.3 for Qubes 4.0

Hello, brand new user here

I recently got a laptop with Qubes 4.0 preinstalled. Long time linux user, used xen for a few years some years back, but new to qubes and fedora.

Also, a long time awesomeWM user. The only version I’ve found in the qubes-dom0 repos is 3.5.9, which is ancient. I have plenty of custom stuff written for awesome, and it took a lot of rewriting for the 3.5->4.0 upgrade back in the day. I’d rather not revert a lot of that stuff, and while it’s been a while since I’ve used it, from memory the API in 4 is a whole lot nicer.

Anyway, there’s this: GitHub - QubesOS/qubes-desktop-linux-awesome but the build instructions seem out of date. Last update to the readme was five years ago, and it references files that does not exist in the repo. awesome.spec is seemingly now called awesome.spec.in, so there is some missing configuration step there? I don’t know anything about the build tools of fedora. I’d use the issue tracker, but it seems disabled.

I also assume that the rpm should be built in a fedora25 vm to match dom0. I don’t have any such template as is. I read briefly about the Salt stack yesterday, where you can manage vms declaratively in config files, which I’d much prefer over fiddling with some gui. I haven’t had much time to look at it though.

So, can anyone inform me what the proper build process for the Awesome 4.3 rpm should look like? And if someone has a Salt conf to spin up a 4.0 dom0 rpm builder, that would be greatly appreciated.

Tangentially, in this graphic Qubes-Whonix ™ Overview it looks like the gui/X is running in a vm separate from dom0. Is that some custom setup?

Cheers

Welcome!

Qubes tracks the upstream Fedora repos and since Fedora 25 is in 4.0 dom0, you’ll get the 3.5 awesome version that was shipped back then.

You may try to upgrade to a newer version yourself, but that might get you into dependency hell, idk.

Anyway Qubes 4.1 is based on Fedora 32 or so which has awesome 4.3. Qubes 4.1 is currently in beta mode, but I guess it’ll be released in the next 3-6 months. Upgrading should only be done with a working backup and can already be done by adventurous users.

[1] are just Qubes OS-specific customizations to awesome (colored borders etc.), 90% in rc.lua nowadays. The master branch is for Qubes 4.1, i.e. awesome 4.3.
A few additional conf tweaks can be found at [2, 3].

[1] GitHub - QubesOS/qubes-desktop-linux-awesome
[2] AwesomeWM (window manager) | Qubes OS
[3] awesomewm: updated instructions for awesome 4.3 in Qubes 4.1 by 3hhh · Pull Request #1190 · QubesOS/qubes-doc · GitHub

1 Like

Thanks for your reply

Maybe, maybe not, awesome deps are stable and not bleeding edge for the most part. I wouldn’t be surprised if 4.3 has the same dep versions as 3.5. I’ll cross that bridge when I get there.

But the question is really how, as the build instructions in QubesOS/qubes-desktop-linux-awesome is lagging 5 years behind the repo and doesn’t seem to reflect the current state

Hm probably the repo instructions still work.

But yes, in general Qubes packages are built via [qubes-builder]. That’s why no dev cares about repo-specific instructions and why they mostly don’t exist.

It may also be worth having a look at how the Qubes devs build their stuff (e.g. [2]).

[qubes-builder] Qubes builder | Qubes OS
[2] Pipeline · QubesOS / qubes-desktop-linux-awesome · GitLab

Side note: If you’re right and the deps didn’t change you might be able to just install the 4.1 rpm in 4.0.