Thank you! Test XLibre for us! Unfortunately I don’t have spare time to test OM Cooker. Thank you so much.
Is cooker stable enough for production use?
Cooker is the development branch, so it’s not stable by design.
If your paycheck depends on it being reliable, then I would say no, stick with Rock6.0 or ROME. If you can tolerate occasional downtime to figure out bugs with us, then by all means, lend assistance.
Alright.
Here is the script that compiles Xlibre and installs it in /usr/local:
#!/bin/bash
# The input driver is almost always required.
INPUT_DRIVER_URL="https://github.com/X11Libre/xf86-input-libinput.git"
# !!! IMPORTANT: EDIT THE LINE BELOW BASED ON YOUR HARDWARE !!!
# Find the correct URL from the XLibre README. I have provided common examples.
#
# For AMD:
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-amdgpu.git"
#
# For Intel:
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-intel.git"
#
# For NVIDIA (Open Source):
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-nouveau.git"
VIDEO_DRIVER='amdgpu'
VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-$VIDEO_DRIVER" # <-- PASTE THE CORRECT URL FOR YOUR VIDEO CARD HERE
VERSION='25.0.0.8'
EXTENSION_ARCHIVE='tar.gz'
URL_SOURCE="https://codeload.github.com/X11Libre/xserver/tar.gz/refs/tags/xlibre-xserver-$VERSION"
FILE_SOURCE="./source.$EXTENSION_ARCHIVE"
FOLDER_SOURCE="xserver-xlibre-xserver-$VERSION"
COMPILE_PATH="/tmp"
# --- DRIVER DEFINITIONS ---
# The input driver is almost always required.
INPUT_DRIVER_URL="https://github.com/X11Libre/xf86-input-libinput.git"
# !!! IMPORTANT: EDIT THE LINE BELOW BASED ON YOUR HARDWARE !!!
# Find the correct URL from the XLibre README. I have provided common examples.
#
# For AMD:
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-amdgpu.git"
#
# For Intel:
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-intel.git"
#
# For NVIDIA (Open Source):
# VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-nouveau.git"
VIDEO_DRIVER='amdgpu'
VIDEO_DRIVER_URL="https://github.com/X11Libre/xf86-video-$VIDEO_DRIVER" # <-- PASTE THE CORRECT URL FOR YOUR VIDEO CARD HERE
VERSION='25.0.0.8'
EXTENSION_ARCHIVE='tar.gz'
URL_SOURCE="https://codeload.github.com/X11Libre/xserver/tar.gz/refs/tags/xlibre-xserver-$VERSION"
FILE_SOURCE="./source.$EXTENSION_ARCHIVE"
FOLDER_SOURCE="xserver-xlibre-xserver-$VERSION"
COMPILE_PATH="/tmp"
set -e
echo
echo
echo "IMPORTANT: HAVE YOU EDITED THE SCRIPT TO HAVE CORRECT DEVICE DRIVER URLS AND OTHER PARAMS??"
echo
echo "This script is to compile the drivers for your specific hardware."
echo "The script will now pause. In another terminal, please run the following command:"
echo ""
echo " lspci -k | grep -A 3 -i vga"
echo ""
echo "Look at the 'Device' line to see if you have AMD, Intel, or NVIDIA."
echo "You will need to edit this script and set the VIDEO_DRIVER_URL variable below."
echo "If you have already edited and saved the script, press Enter to continue, or Ctrl+C to stop if you still need to edit it."
read
sudo dnf clean all
sudo dnf distro-sync --refresh --allowerasing 2>&1 | tee dsync2-log.txt
echo "Will now install required packages. Press Enter to continue or Ctrl+C to stop."
read
sudo dnf install -y \
git \
gcc \
gcc-c++ \
make \
autoconf \
automake \
libtool \
pkgconf \
lib64md-devel \
x11-server-devel \
libx11-devel \
libxkbfile-devel \
libinput-devel \
libudev-devel \
lib64GL-devel \
lib64gbm-devel \
mesa-common-devel \
pixman-devel \
libepoxy-devel \
x11-xtrans-devel \
lib64xcvt-devel \
lib64xslt-devel \
lib64xcb-util-devel \
lib64xshmfence-devel \
lib64bsd-devel \
xkbcomp \
x11-util-macros \
lib64fontenc-devel \
lib64selinux-devel \
lib64audit-devel \
lib64xcb-util-wm-devel \
xmlto \
meson \
ninja
cd "$COMPILE_PATH"
curl "$URL_SOURCE" -o "$FILE_SOURCE"
echo "Will now download and compile the source code. Press Enter to continue or Ctrl+C to stop."
read
tar -xf "$FILE_SOURCE"
cd "$FOLDER_SOURCE"
rm -rf build
CFLAGS="-O3 -march=native" \
CXXFLAGS="-O3 -march=native" \
meson setup build \
--prefix=/usr/local \
-Ddocs=auto
ninja -C build
# ==============================================================================
# PART 2: INSTALL THE SERVER AND COMPILE DRIVERS
# ==============================================================================
sudo ninja -C build install
sudo chmod u+s /usr/local/bin/Xorg
echo "XLibre server has been installed."
# --- DRIVER COMPILATION FUNCTION ---
# This function will handle compiling and installing a driver for us.
compile_x_driver() {
DRIVER_URL=$1
DRIVER_NAME=$(basename "$DRIVER_URL" .git)
echo "--------------------------------------------------"
echo "Compiling driver: $DRIVER_NAME"
echo "--------------------------------------------------"
cd "$COMPILE_PATH"
if [ -d "$DRIVER_NAME" ]; then
echo "Driver directory already exists. Skipping download."
else
git clone "$DRIVER_URL"
fi
cd "$DRIVER_NAME"
# Clean any previous build attempt
rm -rf build
# Check if the driver uses Meson or Autotools and compile accordingly
if [ -f "meson.build" ]; then
echo "Meson build system detected."
CFLAGS="-O3 -march=native" \
CXXFLAGS="-O3 -march=native" \
meson setup build \
--prefix=/usr/local
ninja -C build
sudo ninja -C build install
else
echo "Autotools build system detected."
# Clear old build files if they exist
if [ -f "Makefile" ]; then
make distclean
fi
./autogen.sh || true
# --- The Definitive Fix ---
# 1. Manually query pkg-config with the correct path to get the definitive flags.
# This is the command you proved works.
XORG_CFLAGS_VAL=$(PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig" pkg-config --cflags xorg-server)
XORG_LIBS_VAL=$(PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig" pkg-config --libs xorg-server)
# 2. Pass these values directly into the variables the configure script is hardcoded
# to look for first. This overrides its internal pkg-config calls.
XORG_CFLAGS="$XORG_CFLAGS_VAL" \
XORG_LIBS="$XORG_LIBS_VAL" \
CFLAGS="-O3 -march=native" \
CXXFLAGS="-O3 -march=native" \
./configure \
--prefix=/usr/local \
--with-xorg-module-dir=/usr/local/lib64/xorg/modules
make -j$(nproc)
sudo make install
fi
echo "Finished with driver: $DRIVER_NAME"
}
# --- COMPILE THE DRIVERS ---
# Now we call the function for each driver we need.
compile_x_driver "$INPUT_DRIVER_URL"
if [ -n "$VIDEO_DRIVER_URL" ]; then
compile_x_driver "$VIDEO_DRIVER_URL"
else
echo "WARNING: VIDEO_DRIVER_URL is not set. Your system may not have a working display driver for XLibre."
fi
# ==============================================================================
# PART 3: CREATE THE LOGIN SESSION
# ==============================================================================
echo "Will now create the necessary session files. Press Enter."
read
# Create the wrapper script that starts Plasma on the XLibre server
sudo tee /usr/local/bin/start-plasma-xlibre.sh > /dev/null <<EOF
#!/bin/sh
# Wrapper to launch a Plasma session with the XLibre server
# Force the dynamic linker to look in /usr/local/lib64 first.
# This ensures all applications in the session use our new XLibre libraries,
# preventing the library conflict crash.
export LD_LIBRARY_PATH="/usr/local/lib64"
# Ensure /usr/local/bin is in the path, so we find Xlibre and its drivers
export PATH="/usr/local/bin:$PATH"
# Use xinit to start the plasma session on the Xlibre server.
# The -- tells xinit that the rest of the line is the server command.
# We now explicitly tell Xorg where to write its log file, solving the final crash.
exec xinit /usr/bin/startplasma-x11 -- /usr/local/bin/Xorg -logfile "$HOME/.local/share/xorg/Xorg.libre.log" :1 vt1 "$@"
EOF
# Make the wrapper script executable
sudo chmod +x /usr/local/bin/start-plasma-xlibre.sh
# Create the .desktop file that the login manager SDDM will see
sudo tee /usr/share/xsessions/plasma-xlibre.desktop > /dev/null <<EOF
[Desktop Entry]
Name=Plasma (XLibre)
Comment=Plasma by KDE on the XLibre server
Exec=/usr/local/bin/start-plasma-xlibre.sh
Type=Application
EOF
# ==============================================================================
# FINAL MESSAGE
# ==============================================================================
echo ""
echo "--------------------------------------------------"
echo "ALL DONE!"
echo "--------------------------------------------------"
echo "The XLibre server and drivers have been compiled and installed."
echo "A new session entry has been created."
echo ""
echo "Please REBOOT your system now."
echo "At the login screen, look for the 'Session' menu (usually in a corner)"
echo "and select 'Plasma (XLibre)' before entering your password."
echo
Problem?
It is only the Xlibre and nothing else.
You can run it then with:
startx xterm -- /usr/local/bin/Xnest :2 -geometry 1280x720 -xkbdir /usr/share/X11/xkb -ac
But it only opens a black screen with a terminal inside it inside your wayland!
Why is that so?
This error:
Process 5107 (konsole) of user 1000 terminated abnormally with signal 6/ABRT, processing...
Basically the entire “nation” of KDE needs to be compiled against Xlibre and installed in /usr/local
AI told me it can take days to figure out and roll.
I give up. For now…
What is a wayland?
Wayland J. Smithers?
As long as we’re talking about Wayland:
https://rumble.com/v6x6kpo-counter-strike-2-switched-to-wayland-for-one-day.html
Gnome 49 is shipping with X11 disabled by default. Rumor is that Gnome 50 will be wayland only.
Gnome = RedHat = IBM = woke corporate slop.
Agreed
I tried out Gnome when I was testing Debian and I hated it completely so I switched to XFCE. I had no idea the politics of it at the time. Gnome fought me every step of the way every time I tried to do something.
I switched to Devuan on my super low end laptop with XFCE and I love it. KDE is fine, but XFCE is a joy to use.
Earlier on in this thread, it is mentioned that there are plans to ship the next release of Rock with xLibre. Since KDE is planning to ditch X11 from KWin with the release of Plasma 7, I wonder what desktop environment Rock/xLibre will use? I wonder how long Plasma 6 will be maintained. As far as I know, Plasma 5.27 is still maintained by KDE, so will a version of Plasma 6 be maintained through, say, 2027 or longer?
So many questions!
In the 2010’s I used CDE every week day for 7 years and am not afraid to do so again if need be.
It sounds more like when Plasma7 arrives there just won’t be any new features added to the kwin-x11 session.
Its already feature frozen.
Maintenance/bug fixes will end with Plasma7. Kwin-Wayland will be named kwin.
Ach - this makes me sad.
Xfce is okay I guess but I really don’t want to use gtk - the Gnome accolytes’ design decisions are definitely generated whilst on crack.
Is LXQt any good?
LXQt is good as far as functionality. I haven’t used it enough to see if I actually like it or if it is as easily customizable as KDE or XFCE.
Gotta love the people at xLibre:
https://rumble.com/v6yue9o-xlibre-trolls-leftists-renames-firstscreenptr-to-masterscreen.html
Does this mean we get to watch smoke and flames coming out of their ears?
Do I need to call the local fire department?