Building labwc for RHEL10 and Clones

This was written in mid-December, 2024, while RHEL10 only has a beta release. It's quite possible that there will be, at least through EPEL, official packages for these programs by the time you see this. However, at the time I wanted to have this setup, I had to build much of it.

I don't think I'm that unique--I think many of us who work with RedHat or a clone might want a system at home for our own workstation or desktop, to be become more familiar with it, and of that group, I doubt I'm the only one who prefers a more minimalistic window manager to a Gnome Desktop, which is what you get if you choose the default Server With GUI option at installation time. As RHEL10 is not including xorg-x11 server (though they are including Xwayland), I thought I'd try to see if I could get an everyday workstation to my liking. At time of writing there is not yet rpmfusion packaging for RHEL10, which means it might be more difficult to play various encountered on the web, but youtube did work.

I was, the first few times, able to get labwc, wmenu, and foot working, however, as time went on, the Fedora srpms became different versions, and would no longer build properly. I started, as you'll see, uploading a few older ones that I had on hand, but as I tried again and again on various VMs, it began failing. I'm leaving this page up, because fc40 and el10 srpms might, once again, start working. However, please note, at time of putting this page online, it is not building the latest labwc, though it, as well as foot and wmenu, might get into EPEL.

At time of writing, I am able to get labwc to work by using an older version of wlroots and of labwc. I've gotten wmenu installed, also using an older version. .I'm using wlroots 0.17.2-1, labwc-0.7.1-3, and wmenu-0.7.1. I'm using them in VirtualBox and and a KVM virtual machine. It's working, but not well, it tends to freeze. However, when on bare metal (a multiboot laptop), it runs quite well.

Now, the odd thing was that if I used a newer version of wmenu for fc40, 0.1.9-1, there was no srpm for it. But if I just installed the rpm with rpm -ivh and the later rpm it worked, whereas the 0.7.1, installed by installing the srpm, running rpmbuild -ba

and installing the rpm created from that would not work. The swaybg rpm, used for displaying background images, also works when I just install the FC40 rpm, without building from the srpm.

The reader should take a look at my building rpms page as much of this involves rebuilding rpms. Most can be found at rpmfind. To make the search easier choose Fedora for the system and x86_64 for the Arch, which will cut down the number of results for (using wlroots as an example from 36 to 8.) In most cases, rpmfind gave me a link to the srpm. When it didn't, I was usually able to find it, though in some cases, such as wmenu, I didn't look, I just tried installing the rpm for Fedora 40, which installed in RHEL10 without me having to do anything but run rpm -ivh. You can also look with CentOS as the system, you might get lucky and find an el10 srpm file. At time of writing I did find el10 srpms for libdrm and xdg-desktop-portal.

The first thing to do is enable the crb repo. As I used an official RH Beta, I found the name by running
sudo subscription-manager repos --list|grep codeready

and then, once I found the name, running
sudo subscription-manager repos --enable codeready-builder-beta-for-rhel-10-x86_64-rpms

I also wanted epel-release but it wasn't available through dnf. So, I went to dl.fedoraproject's epel page, downloaded epel-release-latest-10.no.arch.rpm, and installed it with rpm -ivh. There is then a message that one should run /usr/bin/crb enable to enable the CRB repo, so I did, though I think it was already enabled.

I was now ready to start getting my srpms from rpmfind. I had already set up my buildtree as described in my building rpms page linked above. After some trial and error, I found that I needed the following packages in this order--as if I used a different order, one package might complain about missing another. Most spec files created not only a program's rpm, but also debug rpms. I didn't install those, but if a spec file created a devel rpm, I would install that (after the program one, as if you try to install the devel rpm first, it complains that it needs the program file.

So after installing each SRPM, cd to SPECS run dnf -y builddep, rpmbuild -ba and then go to RPMS/x86_64 and install any rpms (save for debug ones) that have been created.

At various points, I've found the wlroots srpm to be hard to find, so I've put an srpm up here. I also had trouble with xdg-desktop-portal-wlr. It worked with an older version, 0.7.1, but not with the most recent. Therefore, I've also uplolded the older srpm here. At any rate, these are the packages I need to build. I stuck to Fedora 40 srpms, but not always the latest version. Sometimes, rpmfind didn't have the latest srpms, and other times, the latest version wouldn't work, needing some other dependency. In all cases except wmenu, I would build the rpm from the srpm. In wmenu's case, I took just the rpm and installed it. (If I built from the older version, it wouldn't work and didn't seem to install the needed /bin/wmenu-run).

  • tllist (this creates only one rpm,a tllist-dev one).
  • fcft (which also created a devel rpm), from fcft-3.1.8-1.fc40.src.rpm
  • libdrm (which also created a devel rpm and a drm-utils file--however, ignore the drm-utils as it will cause conflict when you install libliftoof) from libdrm-0.4.1-4.fc40.src.rpm
  • grim from grim-1.4.1-3.fc40.src.rpm
  • xcb-util-errors (which also created a devel rpm) from xcb-util-errors-1.0.1-3.fc40.src.rpm
  • libliftoff (which also created a devel rpm) from libliftoff-0.4.1-4.fc40.src.rpm
  • wlroots (which also created a devel rpm) from wlroots-0.17.2-1.fc40.src.rpm
  • xdg-desktop-portal-wlr from 0.7.1-1.fc4.src.rpm
  • labwc (the window manager itself) from labwc-0.7.1-3.fc40.src.rpm
  • foot (a terminal that works well with labwc from foot-1.16.1-3.fc40.src.rpm
  • wmenu from from the 0.1.9-1 rpm, without building the srpm