12to11-rpm/12to11.spec

124 lines
4.9 KiB
RPMSpec
Raw Permalink Normal View History

2026-09-03 17:08:00 +02:00
# SPDX-License-Identifier: GPLv3+
#
# 12to11 - Wayland to X11 protocol translator
# Active fork by fish4terrisa-MSDSM (original SourceForge project is unmaintained).
#
# On Fedora: libXpresent-devel is in the main repositories.
# On EL9/EL10: libXpresent-devel is NOT in the main repos. Enable the
# xlibre COPR first:
# dnf copr enable @xlibre/xlibre-xserver
# or build/install libXpresent from source (https://gitlab.freedesktop.org/xorg/lib/libxpresent).
# On EL9: libXi-devel >= 1.8 is also not in the main repos (EL9 ships
# 1.7.10, which lacks the XI 2.4 gesture event types). A newer libXi
# is built in this COPR project; enable it for local builds.
2026-09-03 17:08:00 +02:00
#
# Since v1.0.0 the build uses a plain Makefile; the legacy imake/xmkmf
# build system is no longer needed.
2026-09-03 17:08:00 +02:00
Name: 12to11
Version: 1.0.0
Release: 3%{?dist}
2026-09-03 17:08:00 +02:00
Summary: Wayland to X11 protocol translator
License: GPL-3.0-only
URL: https://github.com/fish4terrisa-MSDSM/12to11
Source0: %{url}/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz
2026-09-03 17:08:00 +02:00
# EL9 ships wayland 1.21, which lacks WL_SUBCOMPOSITOR_ERROR_BAD_PARENT
# (added in wayland 1.22). Patch0 must be declared unconditionally:
# COPR's SRPM import parses this spec on Fedora (where %%{?rhel} is
# undefined), so a conditional Patch tag would never be collected.
# The patch is only applied on EL9 (see %%prep).
Patch0: 12to11-1.0.0-wayland-1.21-compat.patch
2026-09-03 17:08:00 +02:00
# Build dependencies
BuildRequires: make
BuildRequires: gcc
BuildRequires: pkgconf-pkg-config
2026-09-03 17:08:00 +02:00
BuildRequires: gawk
BuildRequires: wayland-devel
BuildRequires: libX11-devel
BuildRequires: libXext-devel
2026-09-03 17:27:57 +02:00
BuildRequires: libXrandr-devel
BuildRequires: libXrender-devel
BuildRequires: libXfixes-devel
# libXi >= 1.8 for the XIGesturePinchEvent/XIGestureSwipeEvent types.
# On EL9 a newer libXi is provided by this COPR project itself.
BuildRequires: libXi-devel >= 1.8
2026-09-03 17:08:00 +02:00
BuildRequires: libxcb-devel
BuildRequires: pixman-devel
BuildRequires: libdrm-devel
BuildRequires: libXcursor-devel
BuildRequires: libxshmfence-devel
BuildRequires: libxkbfile-devel
# libXpresent-devel: in Fedora main; in the xlibre COPR on EL9/EL10.
BuildRequires: libXpresent-devel
# EGL + GLESv2 development files (libglvnd-devel provides the headers
# and .so symlinks; mesa-libEGL-devel provides Mesa-specific EGL headers).
BuildRequires: mesa-libEGL-devel
BuildRequires: libglvnd-devel
Requires: libglvnd-egl%{?_isa}
Requires: libglvnd-gles%{?_isa}
%description
12to11 is a Wayland compositor that runs as a regular X11 client,
displaying Wayland applications as normal X windows. It implements a
broad set of Wayland protocols including wl_data_device_manager (clipboard),
zwp_linux_dmabuf_v1, xdg_wm_base, zwp_text_input_manager_v3, and more.
When built with EGL support (the upstream default), it uses
2026-09-03 17:08:00 +02:00
OpenGL ES 2.0 for rendering, enabling YUV video format support and
hardware-accelerated compositing.
This is particularly useful for running Wayland-only applications
(such as Waydroid) under X11 without a nested compositor like Weston.
Clipboard sharing between Wayland clients and the X11 session is
handled natively, without requiring external bridge scripts.
This package tracks the actively maintained fork by
fish4terrisa-MSDSM; the original SourceForge project has been
unmaintained since 2022.
%prep
%autosetup -N
%if 0%{?rhel} == 9
%patch0 -p1
%endif
2026-09-03 17:08:00 +02:00
%build
# Export the RPM build flags: the Makefile uses CFLAGS ?= / LDFLAGS +=
# so exported values are picked up (and -pthread is still appended).
export CFLAGS="%{optflags}"
export LDFLAGS="%{?build_ldflags}"
# ANALYZE=0 disables GCC's -fanalyzer (on by default upstream); it only
# produces diagnostics and slows the build down considerably.
%make_build ANALYZE=0
2026-09-03 17:08:00 +02:00
%install
%{make_install} DESTDIR=%{buildroot} PREFIX=%{_prefix} BINDIR=%{_bindir} MANDIR=%{_mandir}
2026-09-03 17:08:00 +02:00
%files
%license COPYING
%doc README.md
2026-09-03 17:08:00 +02:00
%{_bindir}/12to11
%{_mandir}/man1/12to11.1*
%changelog
* Tue Sep 15 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 1.0.0-3
- Add patch defining WL_SUBCOMPOSITOR_ERROR_BAD_PARENT for wayland < 1.22;
applied only on EL9 (which ships wayland 1.21).
* Tue Sep 15 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 1.0.0-2
- Require libXi-devel >= 1.8 for the XI 2.4 gesture event types; on EL9
the newer libXi is supplied by this COPR project (EL9 ships 1.7.10).
* Tue Sep 15 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 1.0.0-1
- Update to v1.0.0, the first stable release of the fork.
- Switch from imake/xmkmf to the new upstream Makefile build system.
- Add libXrender-devel, libXfixes-devel and pkgconf-pkg-config BuildRequires.
2026-09-03 17:08:00 +02:00
* Thu Sep 03 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 0-0.1.20260824gitb6745cc
- Initial RPM package for 12to11 (fish4terrisa-MSDSM fork).
- Built with EGL/GLESv2 rendering support.
- Snapshot from commit b6745cc (2026-08-24).