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.

As of March, 2025, most of the srpms I've mentioned no longer seem to be around on rpmfind, but sometimes, the rpm, both the full rpm, and the srpm, can be found on pkgs.org under Fedora 40. At this point, I think it's going to be a gamble, unless EPEL gets most of this into its repos. It's also probably worth trying to install desired rpms without building because many of them will work.

The package versions I have at the bottom were correct in December 2024, but in late February 2025, it seems at least some of the rpms mentioned, e.g., wmenu, will just install with rpm -ivh, no build needed. On the other hand, others may just have to be built from their site, rather than using an rpm. In my latest attempt, on CentOS stream latest, I just went to labwc's github site and installed it using their instructions. I also have changed from using foot to using alacritty, which I also got from its site. I followed the instructions on its site to install, using the recommending dependencies for RHEL8. I didn't need to install, however the recommending 'Development Tools' package group. Prior to that I'd installed several packages that I put in a minimal install where I think I may need to build rpms. This is described on my rpm build page, but in short I run(some of this overlaps with what the Alacritty people recommend),
dnf -y install gcc gcc-c++ make automake cmake kernel-devel tar bzip2 rpm-build rpmdevtools dnf-plugins-core 

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. As of March, 2025, swaybg is in EPEL which, of course, makes it easier.

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

    I have submitted various feature requests for labwc to bugzilla. As a lot of this depends on wlroots, here is the one for wlroots.

    A newer rpm has been built. At present it's only up at bhodi and can be downloaded here. With this installed I was then able to grab the rpm for labwc at rpmfind, and install version 0.8.2-1, once I'd installed (also gotten from rpmfind) libsfdo-0.1.3-1. So, hopefully, it will get into EPEL before too much longer.

    As of February, 2025, many of the srpms I mention above are no longer at rpmfind. So, the hope is that EPEL gets labwc in their repo soon. I don't know if the reader can still build it with what's available.

    As of March, 2025, dwl, a Wayland version of dwm, can be built on RHEL10, by downloading the version 0.7 tarball from codeberg.org's dwl site.