5.6 KiB
12to11 for Fedora and Enterprise Linux
This repository contains the RPM packaging for 12to11, a Wayland-to-X11 protocol translator. Packages are built in the andersrh/12to11 COPR project.
What is 12to11?
12to11 is a small Wayland compositor that runs as a regular X11 client. It creates a Wayland socket and displays Wayland applications as normal X11 windows. This makes it possible to run Wayland-only applications, such as Waydroid, from an X11 session without running Weston as a nested compositor.
The package is built with EGL/OpenGL ES 2.0 rendering enabled. 12to11 also implements the Wayland data-device and X11 selection handling needed for clipboard integration between Wayland applications and the X11 desktop.
This package tracks the actively developed fish4terrisa-MSDSM fork and is licensed under GPL-3.0-only.
Example: Waydroid running through 12to11
The following screenshot shows Waydroid running as a Wayland application through 12to11 on an X11 desktop:
Supported targets
The COPR project currently provides builds for:
- Fedora 43, Fedora 44, Fedora 45, and Fedora Rawhide
- EPEL 9 and EPEL 10
- AlmaLinux 10 with EPEL (x86_64-v2)
The COPR builds are unofficial and are provided as-is.
Installation from COPR
The dnf copr command is provided by dnf-plugins-core. Install it first if it is not already available.
Fedora
sudo dnf install -y dnf-plugins-core
sudo dnf copr enable andersrh/12to11
sudo dnf install -y 12to11
AlmaLinux, RHEL-compatible distributions, and EPEL
The EL builds use libXpresent from the xlibre/xlibre-xserver COPR, because libXpresent is not available in the standard EL repositories.
On AlmaLinux, install and enable EPEL if necessary, then enable both COPR repositories:
sudo dnf install -y epel-release dnf-plugins-core
sudo dnf copr enable @xlibre/xlibre-xserver
sudo dnf copr enable andersrh/12to11
sudo dnf install -y 12to11
On RHEL-compatible distributions where epel-release is not available directly, enable EPEL using the distribution's documented procedure before installing 12to11.
Running 12to11 with Waydroid
Start 12to11 in an X11 session. The -printsocket option prints the Wayland socket name while the compositor continues running:
RENDERER=egl 12to11 -printsocket
For example, it may print:
wayland-1
Keep that process running. In another terminal, use the socket name printed by 12to11:
export WAYLAND_DISPLAY=wayland-1
waydroid show-full-ui
If 12to11 prints a different socket name, use that name instead. Do not assume that the socket is always wayland-1.
If the Waydroid session is not already running, start it before showing the UI:
waydroid session start
The exact Waydroid setup still depends on the Android image, kernel support, graphics driver, and whether Google Apps are installed.
Building the RPM locally
The spec file uses the upstream GitHub snapshot and the project's legacy imake/xmkmf build system. The package is built with EGL support enabled by the upstream 12to11.conf.
1. Install packaging tools
Fedora:
sudo dnf install -y rpm-build rpmdevtools dnf-plugins-core
AlmaLinux, RHEL-compatible distributions, and EPEL:
sudo dnf install -y epel-release rpm-build rpmdevtools dnf-plugins-core
sudo dnf copr enable @xlibre/xlibre-xserver
2. Install the build dependencies
Run this from the repository checkout:
sudo dnf builddep -y 12to11.spec
On EL systems, the xlibre COPR must be enabled first so that libXpresent-devel can be resolved.
3. Build the package
rpmdev-setuptree
cp 12to11.spec ~/rpmbuild/SPECS/
spectool -g --directory ~/rpmbuild/SOURCES ~/rpmbuild/SPECS/12to11.spec
rpmbuild -ba ~/rpmbuild/SPECS/12to11.spec
The resulting files are written to:
~/rpmbuild/RPMS/$(uname -m)/
~/rpmbuild/SRPMS/
Install the locally built package with:
sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/12to11-0-*.rpm
Building in COPR
COPR reads 12to11.spec, downloads the source archive specified by Source0, installs the BuildRequires, and builds the package in a clean chroot for each enabled target. The EL builds also have the xlibre/xlibre-xserver COPR configured as an external repository so that libXpresent-devel is available during the build.
To update the source snapshot, change the commit and snapdate macros in 12to11.spec, update the changelog, and submit the changed spec file to the COPR project.
Known limitations
12to11 is not a complete Wayland compositor. According to the upstream project:
- Touchscreen support is not implemented.
- Device switching in DMA-BUF feedback is not implemented.
- It requires X.Org Server 1.20 or later.
- It works best with a compositing window manager that supports the EWMH frame-synchronization protocol.
- Upstream testing has primarily been done with GNOME Shell; other window managers may have compatibility issues.
For Waydroid controlled with a mouse on an X11 desktop, the missing touchscreen support is usually not a problem.
