File wayland.spec of Package wayland

Name:           wayland
Version:        1.24.0
Epoch:          1
Release:        %mkrel 1.mga9
Summary:        Wayland core protocol libraries
License:        MIT
URL:            https://wayland.freedesktop.org/
Source0:        wayland-%{version}.tar.xz
Source1:        meson-1.3.1.tar.gz

BuildRequires:  gcc
BuildRequires:  meson
BuildRequires:  ninja
BuildRequires:  pkgconfig(expat)
BuildRequires:  pkgconfig(libffi)
BuildRequires:  pkgconfig(libxml-2.0)

%description
Wayland is a protocol for a compositor to talk to its clients as well as a C
library implementation of that protocol. It provides the fundamental building
blocks for a Wayland compositor and clients.

%prep
%autosetup -p1
tar -xf %{SOURCE1}

%build
python3 meson-1.3.1/meson.py setup builddir \
  --prefix=%{_prefix} \
  --libdir=%{_libdir} \
  -Ddocumentation=false
ninja -C builddir

%install
DESTDIR=%{buildroot} ninja -C builddir install

# --- Main package: docs + pkgconfig only ---
%files
%license COPYING
%doc README.md
%{_libdir}/pkgconfig/wayland-*.pc

# --- Runtime libraries split into subpackages ---

%package -n lib64wayland-client0
Summary: Wayland client library
Group: System/Libraries
Provides: lib64wayland-client0 = %{epoch}:%{version}
Obsoletes: lib64wayland-client0 < %{epoch}:%{version}

%description -n lib64wayland-client0
This package contains the Wayland client runtime library.

%files -n lib64wayland-client0
%{_libdir}/libwayland-client.so.*

%package -n lib64wayland-server0
Summary: Wayland server library
Group: System/Libraries
Provides: lib64wayland-server0 = %{epoch}:%{version}
Obsoletes: lib64wayland-server0 < %{epoch}:%{version}

%description -n lib64wayland-server0
This package contains the Wayland server runtime library.

%files -n lib64wayland-server0
%{_libdir}/libwayland-server.so.*

%package -n lib64wayland-egl1
Summary: Wayland EGL library
Group: System/Libraries
Provides: lib64wayland-egl1 = %{epoch}:%{version}
Obsoletes: lib64wayland-egl1 < %{epoch}:%{version}

%description -n lib64wayland-egl1
This package contains the Wayland EGL runtime library.

%files -n lib64wayland-egl1
%{_libdir}/libwayland-egl.so.*

%package -n lib64wayland-cursor0
Summary: Wayland cursor library
Group: System/Libraries
Provides: lib64wayland-cursor0 = %{epoch}:%{version}
Obsoletes: lib64wayland-cursor0 < %{epoch}:%{version}

%description -n lib64wayland-cursor0
This package contains the Wayland cursor runtime library.

%files -n lib64wayland-cursor0
%{_libdir}/libwayland-cursor.so.*

# --- Development files ---
%package devel
Summary: Development files for Wayland
Requires: lib64wayland-client0 = %{epoch}:%{version}-%{release}
Requires: lib64wayland-server0 = %{epoch}:%{version}-%{release}
Requires: lib64wayland-egl1 = %{epoch}:%{version}-%{release}
Requires: lib64wayland-cursor0 = %{epoch}:%{version}-%{release}

%description devel
This package contains the development files for Wayland, including headers,
protocol XML files, pkgconfig files, and the wayland-scanner tool.

%files devel
%{_bindir}/wayland-scanner
%{_includedir}/wayland-*.h
%{_libdir}/libwayland-*.so
%{_libdir}/pkgconfig/wayland-*.pc
%{_datadir}/aclocal/wayland-scanner.m4
%{_datadir}/wayland/wayland-scanner.mk
%{_datadir}/wayland/wayland.dtd
%{_datadir}/wayland/wayland.xml

%changelog
* Sat Dec 06 2025 You <you@example.com> - 1:1.24.0-1
- Packaged Wayland 1.24.0 for Mageia 9 OBS
- Split runtime libraries into lib64wayland-client0, lib64wayland-server0,
  lib64wayland-egl1, lib64wayland-cursor0
- Added Provides/Obsoletes with epoch for clean upgrade path
- Disabled documentation build (-Ddocumentation=false) to avoid Graphviz dependency
openSUSE Build Service is sponsored by