File xorg-x11-Xwayland.spec of Package xorg-x11-Xwayland

%define realname xwayland
%define realver  23.1.0
%define srcext   tar.xz

# turn off the generation of debuginfo rpm  (RH9) ??
%global debug_package %{nil}

# Common info
Name:          xorg-x11-server-%{?rhel:X}wayland
Version:       %{realver}
Release:       wiz%{?extraver:0.}1%{?dist}
License:       GPL-2.0 and MIT
Group:         System/X11/Servers/XF86_4
URL:           https://wayland.freedesktop.org/xserver.html
Summary:       X11 layer for wayland

# Install-time parameters
Provides:      %{realname} = %{realver}-%{release}
Provides:      xorg-x11-Xwayland = %{version}-%{release}
Obsoletes:     %{realname} < %{realver}-%{release}
Obsoletes:     xorg-x11-Xwayland < %{version}-%{release}

# Build-time parameters
BuildRequires: meson >= 0.46.0 ninja
BuildRequires: pkg-config
BuildRequires: pkgconfig(xorg-macros)
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glproto) >= 1.4.17
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(presentproto)
BuildRequires: pkgconfig(xf86driproto)
BuildRequires: pkgconfig(wayland-eglstream-protocols)
BuildRequires: pkgconfig(libtirpc)
# See output from
#  sed -r "/dependency/ s/^.*\('([^']+)'(, version: '([^']+)')?.*\).*$/BuildRequires: pkgconfig(\1) \3/p;d" meson.build | sort -u
BuildRequires: pkgconfig(bigreqsproto) >= 1.1.0
BuildRequires: pkgconfig(compositeproto) >= 0.4
BuildRequires: pkgconfig(damageproto) >= 1.1
BuildRequires: pkgconfig(dbus-1) >= 1.0
BuildRequires: pkgconfig(dri2proto) >= 2.8
BuildRequires: pkgconfig(dri3proto) >= 1.2
BuildRequires: pkgconfig(epoxy) >= 1.5.0
BuildRequires: pkgconfig(fixesproto) >= 5.0
BuildRequires: pkgconfig(fontsproto) >= 2.1.3
BuildRequires: pkgconfig(fontutil)
BuildRequires: pkgconfig(gbm) >= 10.2
BuildRequires: pkgconfig(inputproto) >= 2.3.99.1
BuildRequires: pkgconfig(kbproto) >= 1.0.3
BuildRequires: pkgconfig(libbsd)
BuildRequires: pkgconfig(libdrm) >= 2.4.89
BuildRequires: pkgconfig(libudev) >= 143
BuildRequires: pkgconfig(nettle)
BuildRequires: pkgconfig(pixman-1)
BuildRequires: pkgconfig(randrproto) >= 1.6.0
BuildRequires: pkgconfig(recordproto) >= 1.13.99.1
BuildRequires: pkgconfig(renderproto) >= 0.11
BuildRequires: pkgconfig(resourceproto) >= 1.2.0
BuildRequires: pkgconfig(scrnsaverproto) >= 1.1
BuildRequires: pkgconfig(videoproto)
BuildRequires: pkgconfig(wayland-client) >= 1.3.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.18
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xau)
BuildRequires: pkgconfig(xcmiscproto) >= 1.2.0
BuildRequires: pkgconfig(xdmcp)
BuildRequires: pkgconfig(xext) >= 1.0.99.4
BuildRequires: pkgconfig(xextproto) >= 7.2.99.901
BuildRequires: pkgconfig(xf86bigfontproto) >= 1.2.0
BuildRequires: pkgconfig(xf86dgaproto) >= 2.0.99.1
BuildRequires: pkgconfig(xf86vidmodeproto) >= 2.2.99.1
BuildRequires: pkgconfig(xfont2) >= 2.0
BuildRequires: pkgconfig(xineramaproto)
BuildRequires: pkgconfig(xkbcomp)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: pkgconfig(xproto) >= 7.0.31
BuildRequires: pkgconfig(xshmfence) >= 1.1
BuildRequires: pkgconfig(xtrans) >= 1.3.5
BuildRequires: systemd-devel
BuildRoot:     %{_tmppath}/%{name}-root
Source:        https://xorg.freedesktop.org/archive/individual/xserver/%{realname}-%{realver}%{?extraver}.%{srcext}

%description
Wayland is a complete window system in itself, but even so, if we're migrating
away from X, it makes sense to have a good backwards compatibility story. With
a few changes, the Xorg server can be modified to use wayland input devices for
input and forward either the root window or individual top-level windows as
wayland surfaces. The server still runs the same 2D driver with the same
acceleration code as it does when it runs natively. The main difference is that
wayland handles presentation of the windows instead of KMS.

# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-%{realver}%{?extraver}

%build
_CFLAGS='%{optflags}'
_LDFLAGS='-Wl,--strip-all -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro'
meson setup build \
 --buildtype=release \
 --strip \
 --optimization=2 \
 \
 --prefix=%{_prefix} \
 --default-library=shared \
 \
 -Dxwayland_eglstream=true \
 -Dxvfb=false \
 \
 -Db_lto=true \
 -Db_ndebug=if-release \
 -Dc_args="$_CFLAGS" \
 -Dc_link_args="$_LDFLAGS"
ninja -v -C build %{?_smp_mflags}

%install
DESTDIR=%{buildroot} ninja -v -C build install

%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files
%defattr(-,root,root)
%license COPYING
%doc README.md
%{_bindir}/Xwayland
%doc %{_mandir}/man1/Xwayland.1*
%exclude %{_libdir}/pkgconfig/xwayland.pc
%exclude %{_libdir}/xorg/protocol.txt
%exclude %{_datadir}/X11/xkb/compiled/README.compiled
%exclude %{_mandir}/man1/Xserver.1*

%changelog
openSUSE Build Service is sponsored by