Installation of LXDE Desktop on Rocky8.6-minimal

Testing Hardware

The test PC was a HP Compaq DC5800 which primarily has Intel device
controllers, so that there were no graphics card or SATA disk controller
problems.


LXDE Desktop Software

There are current third-party LXDE component packages available for
Rocky/AlmaLinux/Springdale 8.n, but time-proven Fedora 29 software
was used for this installation.


REQUIRED EXTRAS


Signing Key Collection

From https://archives.fedoraproject.org, Fedora 29 updates,
the package fedora-gpg-keys-29-6.noarch.rpm, when installed, loads a
large number of fedora-version keys into /etc/pki/rpm-gpg. From there,
the Fedora 29 required-one can be imported into the rpm database:

sudo rpm --import RPM-GPG-KEY-fedora-29-x86_64 

When the EPEL repo is activated, sudo yum install epel-release,
the EPEL public key, RPM-GPG-KEY-EPEL-8, is placed in /etc/pki/rpm-gpg.

The RPM-GPG-KEY-rockyofficial public key is in /etc/pki/rpm-gpg as
part of the Rocky8.6 installation.


LXDE Desktop Libraries

The packages in this list are downloaded from
https://archives.fedoraproject.org, Fedora 29 Updates and Release packages.
They should be collected on a USB stick in a separate directory, e.g.
LXDEDesktopLibs.
They satisfy the dependencies of the main LXDE Desktop components:

f29-backgrounds-base-29.1.3-1.fc29.noarch.rpm
gtk3-3.24.1-3.fc29.x86_64.rpm
keybinder-0.3.1-12.fc29.x86_64.rpm
libappindicator-12.10.0-20.fc29.x86_64.rpm
libdbusmenu-16.04.0-8.fc29.x86_64.rpm
libdbusmenu-gtk2-16.04.0-8.fc29.x86_64.rpm
libfm-1.3.1-1.fc29.x86_64.rpm
libfm-gtk-1.3.1-1.fc29.x86_64.rpm
libfm-gtk2-1.3.1-1.fc29.x86_64.rpm
libfm-gtk-utils-1.3.1-1.fc29.x86_64.rpm
libindicator-12.10.1-13.fc29.x86_64.rpm
libwnck-2.31.0-11.fc29.x86_64.rpm
lxmenu-data-0.1.5-5.fc29.noarch.rpm
menu-cache-1.1.0-1.fc29.2.x86_64.rpm
openbox-libs-3.6.1-10.fc29.x86_64.rpm
unique-1.1.6-21.fc29.x86_64.rpm
vte-0.28.2-26.fc29.x86_64.rpm
wireless-tools-29-21.fc29.x86_64.rpm

LXDE Desktop Components

The packages in this list are downloaded from
https://archives.fedoraproject.org, Fedora 29 Updates and Release packages.
(mousepad is an extra addition, for convenience, from the current EPEL
repository.)
They should be collected on a USB stick in a separate directory,
e.g. LXDEDesktop.

They are the main LXDE Desktop Components:

desktop-backgrounds-compat-29.0.0-1.fc29.noarch.rpm
leafpad-0.8.18.1-22.fc29.x86_64.rpm
lxappearance-0.6.3-7.fc29.x86_64.rpm
lxde-common-0.99.2-6.fc29.noarch.rpm
lxdm-0.5.3-11.D20161111gita548c73e.fc29.x86_64.rpm
lxinput-0.3.5-6.fc29.x86_64.rpm
lxpanel-0.10.0-2.D20190301gitb9ad6f2a.fc29.x86_64.rpm
lxpolkit-0.5.4-1.fc29.x86_64.rpm
lxrandr-0.3.2-1.fc29.x86_64.rpm
lxsession-0.5.4-1.fc29.x86_64.rpm
lxsession-edit-0.5.4-1.fc29.x86_64.rpm
lxtask-0.1.9-1.fc29.x86_64.rpm
lxterminal-0.3.2-1.fc29.x86_64.rpm
mousepad-0.5.6-1.el8.x86_64.rpm
openbox-3.6.1-10.fc29.x86_64.rpm
pcmanfm-1.3.1-2.D20181227git0619a81f.fc29.x86_64.rpm

INSTALLATION PROCEDURE


The Initial Hard Drive Installation is routine. When installing the Rocky8.6-
minimal .iso, the Server option with basic Development Tools is selected.

The majority of software installs are from the command line without a GUI,
because the GUI is activated only near the end of the procedure.

sudo yum group install ‘RPM Development Tools’, installs 68 packages.
sudo yum group install Fonts, installs 41 packages.

From the USB stick, sudo mount /dev/sdb1 /mnt, upload the LXDE Desktop
Component and LXDE Desktop Libraries directories, (egs. create
/usr/share/LXDEDesktop and /usr/share/LXDEDesktopLibs).
From the USB stick, upload and localinstall fedora-gpg-keys-29-6.noarch.rpm.
sudo yum install epel-release → activate EPEL repository

from /etc/pki/rpm-gpg,

sudo rpm --import RPM-GPG-KEY-EPEL-8,
sudo rpm --import RPM-GPG-KEY-rockyofficial,
sudo rpm --import RPM-GPG-KEY-fedora-29-x86_64.

from /usr/share/LXDEDesktopLibs,

sudo yum localinstall *.rpm,   installs 116 packages.

from /usr/share/LXDEDesktop.

sudo yum localinstall *.rpm,   installs  43 packages.

NB – at this point, what is still required is the installation of
xorg-x11-server-Xorg and other graphics driver components.

Normally, one would sudo group install base-x, to satisfy this
requirement, but it didn’t work properly in this case.

What did work, (and I don’t know why), is to sudo yum install sddm
from the EPEL repository, which installs fewer packages than the
installation of base-x, but did include xorg-x11-server-Xorg and some
other driver components.


sudo systemctl set-default graphical.target  --->  enable graphics on reboot
sudo reboot

IMMEDIATE POST-INSTALL REQUIREMENTS

Locking in some packages

The Fedora 29 packages that have been used are specific to the LXDE
Desktop, and shouldn’t be inadvertently pre-empted by newer el8 versions.
Fortunately, such changes are prevented by locking the versions on only 4 packages.

sudo yum install python3-dnf-plugin-versionlock   --> install the 
                                                                                version-locking plugin

sudo dnf versionlock add libdbusmenu-16.04.0-8.fc29.x86_64
      (the el8 version doesn’t have a separate gtk2 package)

sudo dnf versionlock add openbox-3.6.1-10.fc29.x86_64
sudo dnf versionlock add openbox-libs-3.6.1-10.fc29.x86_64
      (EPEL has newer versions for newer Fedora support)

sudo dnf versionlock add 
desktop-backgrounds-compat-29.0.0-1.fc29.noarch.rpm
      (EPEL has a newer version for newer Fedora support)

The command sudo dnf versionlock list shows which packages
are locked.

Enable root login on lxdm

edit /etc/pam.d/lxdm file, comment out the 2nd line:

### auth required pam_succeed_if.so user!=root quiet

Len E.

Is this able to use Wayland, as opposed to x.org?

Hi gerry:

I know nothing about Wayland.

In response to your query, I can make 2 generalized comments:

i) From https://archives.fedoraproject.org, Fedora 29 Release packages, the
following modules are available:

 wayland-1.16.0-1.fc29.src.rpm
 wayland-devel-1.16.0-1.fc29.x86_64.rpm
 waylandpp-0.2.3-2.fc29.x86_64.rpm
 waylandpp-devel-0.2.3-2.fc29.x86_64.rpm
 waylandpp-doc-0.2.3-2.fc29.noarch.rpm
 wayland-protocols-devel-1.16-1.fc29.noarch.rpm 

ii) From a cursory perusal of some web articles, it seems that
Wayland will ultimately supplant x.org, but it is still a work
in progress.

 Given that Rocky 8.n is to be supported until 2029,  Wayland
 will likely become important to Rocky development.
 If you now have, or will have,  more comments and/or test
 results on Wayland,  I encourage you to add them to this post
 if you so choose.

Len E.

The Wayland rpms above are used by Gnome, and have been since RHEL 8.0, but I don’t know if LXDE has been updated to use them?

Hi gerry: I have an answer to your original query.

I booted up a copy of Rocky-Workstation-Lite-8, which uses a minimal Gnome desktop,
and noted that it uses a transitional approach to Wayland.
All the xorg packages are retained, and it simply adds the xorg-x11-server-Xwayland
package.

On the test configuration I’ve described herein, I added that package,
sudo yum install xorg-x11-server-Xwayland, and rebooted.
I didn’t perceive any difference in behaviour, which is probably a good sign: at least
nothing was broken with the addition.

Len E.

As a warning: Mixing packages from Fedora to an Enterprise Linux machine could cause problematic behavior or unforeseen issues and it is never recommended to do this. It is highly recommended to rebuild the packages using mock. If users wish to have LXDE as an option to Rocky Linux (8 or 9), they can request it be branched to the EPEL branches by the Fedora maintainer or be co-maintainers.

“Transitional” as in:

  • Both Wayland and X11 servers exists. GDM itself defaults to Wayland session, but each user session can choose either server
  • The XWayland is a mediator in a Wayland session that allows running X11 clients within (user) Wayland session

Yes, it’s not really about which packages are installed, but more about which packages are being used in a specific desktop session. On Rocky 8.6 the quickest way to check is using environment variables, but what’s really needed is a way to trace through the display stack and prove that it’s bypassing the x org server.

Wayland has less overhead, and some say x org is not as secure, due to lack of isolation.