EasyOS built with Xlibre
site<br>contact
news
TITLEWITHLINK--><br>EasyOS built with Xlibre
June 02, 2026 —<br>BarryK
Xlibre is a fork of x11, keeping it alive, for those who do not<br>want to go the Wayland route. Xlibre webpage:
https://x11libre.net/
More information about Xlibre in my blog post in October 2025:
https://bkhome.org/news/202510/xlibre-is-rocketing-ahead.html
Some of the guys on the forum who build Puppy-variants have<br>experimented with Xlibre, for example fredx181:
https://forum.puppylinux.com/viewtopic.php?t=15924
Also rockedge:
https://forum.puppylinux.com/viewtopic.php?t=16966
fredx181 used a Xlibre repository for Debian here, showing the<br>devuan folder:
https://github.com/xlibre-deb/devuan
Unfortunately, it is a bit out of date. rockedge used this<br>repository, again showing devuan folder:
https://github.com/xlibre-debian/devuan
...very active and up-to-date, so I am using this one for EasyOS.
There is one problem with the xlibre-debian repository; it<br>requires packages to be obtained from "stable-backports".<br>Discovered this when building the 'xserver-xlibre-video-amdgpu'<br>package; package versions in Debian-stable were too old.
There is potentially a problem building with stable-backports,<br>actually excalibur-backports; these are packages backported from<br>the "testing" branch and potentially introducing instability or<br>undesirable behaviour. It is possible to pick out certain packages<br>from excalibur-backports and for the rest of the build only use<br>excalibur-stable; however, I got into a mess with the dependency<br>chain. Instead, have enabled excalibur-backports globally as first<br>choice when building.
EasyOS is built with woofQ2. The script that creates the basic<br>rootfs is woofq2/rootfs/1create-rootfs. Now building with Xlibre,<br>but don't want to "burn the bridges", so there is a new variable<br>in woofq2/configure/x86_64/build-choices:
BUILD_X_XLIBRE='yes'<br>Here are changes made to 1create-rootfs:
. ${L1}/configure/${xARCH}/build-choices #20260602 has BUILD_X_XLIBRE=yes
Add keyfile for Xlibre repository, also download Packages.gz for<br>later use:
#20260601 add xlibre repo keyfile...<br>if [ "$BUILD_X_XLIBRE" == "yes" ];then #20260602<br>cd $SB<br>if [ -f Packages-xlibre ];then rm -f Packages-xlibre; fi<br>if [ -f Packages.gz ];then rm -f Packages.gz; fi<br>if [ -f Packages-xlibre.gz ];then rm -f Packages-zlibre.gz; fi<br>download_file https://github.com/xlibre-debian/devuan/raw/refs/heads/master/dists/main/stable/binary-amd64/Packages.gz<br>mv -f Packages.gz Packages-xlibre.gz<br>gunzip Packages-xlibre.gz<br>if [ ! -f /usr/share/keyrings/NexusSfan.pgp ];then<br>#download_file https://github.com/xlibre-debian/devuan/raw/refs/heads/master/pool/stable/n/nexussfan-archive-keyring/nexussfan-archive-keyring_1.0.0-1_all.deb<br>KEYdeb="$(grep '^Filename: pool/stable/n/nexussfan-archive-keyring/nexussfan-archive-keyring_' Packages-xlibre)"<br>KEYdeb="${KEYdeb##*/}" #ex: nexussfan-archive-keyring_1.0.0-1_all.deb<br>if [ -f ./${KEYdeb} ];then rm -f ./${KEYdeb}; fi<br>download_file https://github.com/xlibre-debian/devuan/raw/refs/heads/master/pool/stable/n/nexussfan-archive-keyring/${KEYdeb}<br>dpkg -i ${KEYdeb}<br>fi<br>if [ ! -s /usr/share/keyrings/NexusSfan.pgp ];then<br>echo "Failed to install NexusSfan.pgp"<br>exit 1<br>fi<br>cd $L0<br>fi
The excalibur-backports and xlibre repositories added:
#20260601 add xlibre repo...<br>echo -n '' > ${SB}/rootfs/etc/apt/sources.list<br>if [ "$BUILD_X_XLIBRE" == "yes" ];then #20260602<br>mkdir -p ${SB}/rootfs/etc/apt/sources.list.d<br>echo 'deb [signed-by=/usr/share/keyrings/NexusSfan.pgp] https://xlibre-debian.github.io/devuan main stable' > ${SB}/rootfs/etc/apt/sources.list.d/repo-xlibre-debian.list<br>#ref: http://deb.devuan.org/merged/dists/<br>echo 'deb http://pkgmaster.devuan.org/merged excalibur-backports main' >> ${SB}/rootfs/etc/apt/sources.list<br>#20260601 set priority...<br>mkdir -p ${SB}/rootfs/etc/apt/preferences.d<br>echo 'Package: *<br>Pin: release a=excalibur-backports<br>Pin-Priority: 501' > ${SB}/rootfs/etc/apt/preferences.d/backports-priority.pref<br>echo 'Package: *<br>Pin: origin xlibre-debian.github.io<br>Pin-Priority: 502' > ${SB}/rootfs/etc/apt/preferences.d/xlibre-priority.pref<br>fi
echo -n 'deb http://pkgmaster.devuan.org/merged excalibur main contrib non-free non-free-firmware<br>deb http://pkgmaster.devuan.org/merged excalibur-updates main contrib non-free non-free-firmware<br>deb http://pkgmaster.devuan.org/merged excalibur-security main<br>' >> ${SB}/rootfs/etc/apt/sources.list
...notice the "Pin-Priority" to give these new repositories<br>first-choice when building.
Alternative sources.list files for URLs elsewhere in the world.<br>Take out excalibur-backports if not required:
if [ "$BUILD_X_XLIBRE" != "yes" ];then #20260602<br>#get rid of excalibur-backports repo...<br>sed -i '/excalibur-backports/d' ${SB}/rootfs/etc/apt/sources.list*<br>fi
Further down, building from a list of Devuan packages, exclude<br>these:
for aPKG in ${PKGLIST}<br>do<br>[ "$aPKG" == "" ] && continue<br>if [ "${aPKG:0:1}" == "#" ];then continue; fi<br>if [ "$BUILD_X_XLIBRE" == "yes" ];then...