XLiberating Alpine Linux #290
Replies: 7 comments 30 replies
-
![]() Current status |
Beta Was this translation helpful? Give feedback.
-
not messing with you. just replying to the questions using the link in the email. i prefer this thread, since it's shorter, and github's discussions are overwrought garbage, so the massive screenshots thread now takes 10 seconds to load completely over my connection. 40 megabytes! if you have a way to shovel the back-and-forth i've had with @stefan11111 to this thread, go for it! |
Beta Was this translation helpful? Give feedback.
-
i only use alpine headless for servers, so i'm probably not an important part of this thread. built xlibre with alpine PXE as a way to ensure that i was building from "zero" (i.e. not piggy-backing off of any pre-installeds from a more batteries-included distro like debian). the things i intend to clean up are more general issues like compiler & automake warnings & sorting out the shitshow of a QXL driver. |
Beta Was this translation helpful? Give feedback.
-
@BourgeoisBear Do you still have issues with |
Beta Was this translation helpful? Give feedback.
-
@jonhermansen It was very good to get X11Libre/xf86-video-qxl working on Alpine Linux. Would you like to share what you tried so far? |
Beta Was this translation helpful? Give feedback.
-
I think the posts of this kind and quality should be added to the wiki as guides. ESPECIALLY this one. |
Beta Was this translation helpful? Give feedback.
-
I am using xlibre on Alpine and pmOS there I also needed If something depends on xorg you can use the convenient
Those will replace the originals that conflict with xlibre files.
xlibre-xf86-input-libinput
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
WORK IN PROGRESS
FIXME: Add a nice screenshot here of the final result
This thread is about how to xliberate Alpine Linux. We will use qemu for the showcase since Alpine is very often used as a lighweight operating system (OS) for containers and virtual machines. Throughout this post therefore is a distinction between the host OS which runs the container and Alpine Linux which runs inside the container as the guest OS.
The prerequisites are
qemu >=v9.2.3
installed on the host with preferably KVM support in your Linux kernel and qemu to give you a nice performance boost for the things to come. It is assumed that the installed qemu roughly supports the following features:X gtk pam usb vte
.aio io-uring slirp vhost-net xattr
are considered as nice to have.Installing Alpine on qemu
We will basicly follow the steps of Install Alpine in QEMU - Alpine Linux. So create a qemu disk image, download the Alpine Linux ISO for virtual systems and boot into Alpine:
At the first login prompt enter
root
for the user name and no password.Initial Configuration of Alpine
Go and setup Alpine with the interactive configuration script:
Use the default settings for the most part, but adjust the configuration in the following areas:
First enter the letter
c
for the APK Mirror which enables the community repository. Then being asked again for the APK Mirror enterf
to find the fastest mirror near you. Also create a userxlibre
to later setup the Alpineabuild
environment and compile XLibre. At Disk & Install opt for disksda
with the usage type ofsys
. Give it ay
when being asked to erase the disk.Configure anything that doesn't fit by default to make it fit your specific setup. Once done, go for a reboot of the container.
Running Alpine on qemu
Back on the host, run the freshly installed and configured Alpine guest without the installation media (ISO).
As again up and prompted, log in to the Alpine guest as
root
and your password of choice.Installing a GUI and the Development Tools
Next we are going to install some packages needed for the compilation and testing of XLibre on Alpine. This boils down to the X.Org Server, a basic XFCE desktop environment and some development tools like
abuild
,git
and the development versions of the required libraries.apk update setup-xorg-base apk add xfce4 xfce4-terminal font-dejavu apk add vim # or any other text editor apk add alpine-sdk doas xorg-server-dev
Test the correct functionality of the GUI provided by X.Org Server and XFCE:
... and then log out of XFCE via the XFCE panel menu item “Applications > Log Out”:
Now edit the file
/etc/doas.conf
to enable users of thewheel
group to run commands as superuser. This is needed when generating and adding the public key for thexlibre
user to theapk key list
in/etc/apk/keys
.Add the
xlibre
user to the required groups forabuild
, enable writing to/var/cache/distfiles
and log out of theroot
user account afterwards:addgroup xlibre abuild addgroup xlibre wheel chown root:abuild /var/cache/distfiles exit
Setting Up the Build Environment
Log in again as user
xlibre
. Generate your public/private RSA key pair forabuild
, configuregit
and clone the XLibre repository for Alpine ports into the directoryaports
:Because the package sources momentarily live in a draft pull request only, we have to tell
git
that we want to be able to check out these pull request branches as well. Therefore open the file.git/config
in your text editor and add the following line:Then fetch the pull request branches from
origin
and checkout the XLibre Xserver 25.0.0.7 and libinput 1.5.0.1 · Pull Request #3 containing the drafts of the APKBUILD files:Building and Runnig XLibre
Build and install the XLibre Xserver:
Build and install the
libinput
driver for XLibre:Put the whole thing to the test and start XFCE on XLibre:
It works? Enjoy!
What Still Needs To Be Done
At the moment the
xlibre-server
package is still internally namedxorg-server
to fullfill the existing dependencies. The name attribute should be changed toxlibre-server
and there should be a secound meta-package calledxorg-server
which under the hood pulls inxlibre-server
and at the same time fullfills the outside dependencies. Maybe the XLibre drivers packages could be prefixed withxlibre-
instead ofxf86-
.Also starting Firefox ESR forces qemu to segfault. This needs to be resolved before making the final screenshot missing above.
What Else Could Be Done
It was nice to package more XLibre drivers and especially add support for SPICE and the X11Libre/xf86-video-qxl driver. Some 3D acceleration is certainly already possible but should be payed more attention to as well.
Closing Comments
This one goes out to the marginalized group of Alpine Linux users which would like to package XLibre but is threatened by a Code of Conduct violation filing because the XLibre project is claimed to, quote: "represent an unacceptable ideology". We are aware of this threat and we will not close our eyes to it.
Do not dispair. There is the third party repository at X11Libre/ports-alpine soon providing you with source APKBUILDs. We are also looking into generating ready-to-use binary packages. If you would like to join us in this effort: by all means go for it!
References
Beta Was this translation helpful? Give feedback.
All reactions