I went to follow my old AUR way of installing Xlibre, and it broke my system. I had to use an Endeavor OS Live USB drive to arch-chroot into my old install to install the old X.Org packages and sddm to get it booting. And looking through the AUR comments, I found the one for the new Xlibre Repo. It’s not a complete repo where you can just add it and install packages, as you need to follow the instructions below to clone the Github repo and use the PKGBUILD scripts to compile and install the packages. Then the repo once added will work for keeping it up to date with the exception of major version changes that require the PKGBUILD of xlibre-xf86-input-libinput again. But this will make installing updates a lot easier, and you won’t have to use the ARCH AUR.
jcrowell commented on 2025-08-03 12:29 (UTC)
We have our own separate repository if any of you want to use XLibre while avoiding all the issues from these AUR packages.
https://github.com/X11Libre/binpkg-arch-based
Also, here are our official package builds: https://github.com/X11Libre/pkgbuilds-arch-based
Please read the instructions on the repo carefully for switching to the repo.
https://github.com/X11Libre/pkgbuilds-arch-based
Arch Derivative PKGBUILDS for Xlibre
Note: these official Xlibre PKGBUILD files are also being made available in the Arch User Repostory (AUR) by the maintainer named ‘xlibre’.
This repository provides PKBUILD files for building Xlibre packages on Arch Linux derivative distributions and Arch Linux itself.
The procedure to do this is documented here and meant for package users and maintainters.
Artix Linux users should not use this procedure but use the packages provided by their distribution.
Important notices
- In the Xorg repository the ‘TearFree’ option was been enabled by default quite some time ago, but this code was never released.
Xlibre did release the code, so it does have the ‘TearFree’ option enabled by default. - The scope of the Xlibre project is only to replace the xorg-server and xf86 driver packages, not other xorg packages like eg. xorg-xwayland.
Repository layout and usage
Each directory contains the PKGBUILD and related files to build the installable package as .zst file. This can be done with eg. command makepkg
.
The procedure is the same for all packages:
- change directory into the one of the package
- install the required (make)depends
- build the package
- install the package or add it to a repository so subsequent package builds can use it
Conditions related to the order of building xlibre packages
Note that an xlibre-xserver update from 25.0.0.x to 26.0.0.x is considered a major version updade; an update from 25.0.0.3 to 25.0.0.4 is not as this just a minor version update, also known as hotfix.
- A major update will increase the Module ABI versions in the Xlibre packages.
- Before a major updade of xlibre-xserver – and only then – a new version of the xlibre-xf86-input-libinput PKGBUILD file must be downloaded and this package built; this to acommodate for the increased ABI versions while building the xlibre-xserver and xlibre-xf86 packages.
- The major update is done by building the new version of the xlibre-xserver base package which builds the 6 xlibre-xserver packages.
- After a major updade of xlibre-xserver, all xlibre-xf86 driver packages need to be rebuilt.
- Once an Xlibre package has been built it should be used to replace its xorg counterpart, if installed.
Packages build procedure
Note: when asked to remove conflicting xorg and xf86 packages when building, answer with: y
When conflicting xf86 packages cannot be removed, use pacman -Rdd
to force remove these.
Keep a note of all removed xf86 packages and install the corresponding xlibre-xf86 ones during step 4!
1. Build package xlibre-xf86-input-libinput v1.5.0.0 – this is only required after a major version update as explained above.
Note this is a placeholder and will be replaced later in this procedure with a newer version.
- change directory into xlibre-xf86-input-libinput
- make sure xorg-server-devel is installed and also other dependencies from the PKGBUILD file
- build the package using eg.
makepkg
- install the package:
sudo pacman -U xlibre-xf86-input-libinput-1.5.0.0-1-x86_64.pkg.tar.zst
2. Build the xlibre-xserver packages
- change directory into xlibre-xserver
- make sure to install all dependencies from the PKGBUILD file like eg. xtrans, libxaw, xorg-font-util and meson
- remove conflicting packages that pacman cannot delete, eg.:
sudo pacman -Rdd xf86-video-vmware xf86-input-vmmouse xf86-input-elographics xf86-input-evdev xf86-input-void xf86-input-wacom
- build the package using eg.
makepkg
- install these packages:
sudo pacman -U xlibre-xserver-25.0.0.4-1-x86_64.pkg.tar.zst xlibre-xserver-common-25.0.0.4-1-x86_64.pkg.tar.zst xlibre-xserver-devel-25.0.0.4-1-x86_64.pkg.tar.zst
3. Build the actual xlibre-xf86-input-libinput package
- change directory once more into xlibre-xf86-input-libinput
- replace the PKGBUILD file with the final one for this package:
mv PKGBUILD-1.5.0.1 PKGBUILD
- build the package using eg.
makepkg
- install the package:
sudo pacman -U xlibre-xf86-input-libinput-1.5.1.0-1-x86_64.pkg.tar.zst
4. Build and install all xlibre packages of which the corresponding xorg one has been removed
This is done with the same procedure as in the previous steps.
These packages might have to be installed when building:
- xlibre-xf86-input-wacom: gobject-introspection
- xlibre-xf86-video-qxl: spice-protocol libcacard spice
- xlibre-xf86-video-intel: libxvmc
Perform checks
- check there are no more xorg packages that need to be replaced:
pacman -Q | grep 'xorg-server\|xf86-'
- check that all required xlibre packages are installed:
pacman -Q | grep 'xlibre-'
- make SURE xlibre-xf86-input-libinput-1.5.0.1 or higher is installed!
Xlibre binary packages repository
These are available in a separate xlibre repository which can be enabled with the following actions:
- Run commands:
sudo curl -sS https://raw.githubusercontent.com/X11Libre/binpkg-arch-based/refs/heads/main/0x73580DE2EDDFA6D6.gpg | gpg --import -
sudo pacman-key --lsign-key 73580DE2EDDFA6D6
- Add the xlibre repository by adding this section to file /etc/pacman.conf:
[xlibre]
Server = https://github.com/X11Libre/binpkg-arch-based/raw/refs/heads/main/
# List of available packages: https://github.com/artist4xlibre/packages-arch-based
Closed source drivers
Closed source drivers might not have an updated ABI version to match that of the updated xlibre-xserver. This can be overcome by creating a file named eg. /etc/X11/xorg.conf.d/xlibre.conf containing:
Section "ServerFlags"
Option "IgnoreABI" "true"
EndSection
Questions and answers
- Q. How to check which X server and drivers are installed?
A1. Check the X11 vendor string using:sudo Xorg -version
A2. List the installed X packages with:pacman -Q | grep 'xlibre-xserver\|xorg-server\|xf86-'