# The naming scheme in non-Mandriva-based distros %if 0%{!?mklibname:1} %define mklibname(ds) lib%{1}%{?2:%{2}}%{-s:-static}%{-d:-devel} %endif %if 0%{!?mkrel:1} %define mkrel(c) %{1}%{?dist} %endif %global major 0 %global gmajor 1.0 %global libname %mklibname %{name} %{major} %global girname %mklibname gtk4layershell-gir %{gmajor} %global devname %mklibname %{name} -d Name: gtk4-layer-shell Version: 1.3.0 Release: %mkrel 1 Summary: A library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4 License: LGPLv3+ and MIT Group: System/Libraries URL: https://github.com/wmww/gtk4-layer-shell Source0: https://github.com/wmww/gtk4-layer-shell/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: meson >= 0.54 BuildRequires: pkgconfig(vapigen) BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk4-wayland) BuildRequires: pkgconfig(wayland-client) >= 1.10.0 BuildRequires: pkgconfig(wayland-scanner) >= 1.10.0 BuildRequires: pkgconfig(wayland-protocols) >= 1.16 %description A library for using the Layer Shell and Session Lock Wayland protocols with GTK4. This Library is compatible with C, C++ and any language that supports GObject introspection files (Python, Vala, etc). The Layer Shell protocol allows building desktop shell components such as panels, notifications and wallpapers. It can be used to anchor your windows to a corner or edge of the output, or stretch them across the entire output. The Session Lock protocol allows building lock screens. %package -n %{libname} Summary: Library to create components for Wayland using the Layer Shell Group: System/Libraries %description -n %{libname} A library for using the Layer Shell and Session Lock Wayland protocols with GTK4. This Library is compatible with C, C++ and any language that supports GObject introspection files (Python, Vala, etc). The Layer Shell protocol allows building desktop shell components such as panels, notifications and wallpapers. It can be used to anchor your windows to a corner or edge of the output, or stretch them across the entire output. The Session Lock protocol allows building lock screens. %package -n %{girname} Summary: GObject Introspection interface description for Gtk4LayerShell and Gtk4SessionLock Group: System/Libraries %description -n %{girname} %{summary}. %package -n %{devname} Summary: Development files for %{name} Group: Development/Other Requires: %{libname} = %{version}-%{release} Requires: %{girname} = %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} %description -n %{devname} Development files for %{name}. %prep %autosetup %build %global optflags %optflags -ldl %meson %meson_build %install %meson_install %files -n %{libname} %license LICENSE %doc README.md CHANGELOG.md %{_libdir}/lib%{name}.so.%{major}{,.*} %{_libdir}/lib%{name}.so.%{version}{,.*} %{_libdir}/liblayer-shell-preload.so %files -n %{girname} %{_libdir}/girepository-1.0/Gtk4LayerShell-%{gmajor}.typelib %{_libdir}/girepository-1.0/Gtk4SessionLock-%{gmajor}.typelib %files -n %{devname} %{_includedir}/%{name}/ %{_libdir}/pkgconfig/*.pc %{_libdir}/lib%{name}.so %{_datadir}/gir-1.0/Gtk4LayerShell-%{gmajor}.gir %{_datadir}/gir-1.0/Gtk4SessionLock-%{gmajor}.gir %{_datadir}/vala/vapi/%{name}-%{major}.{deps,vapi}