%global debug_package %{nil} # Wayfire vendors wf-config, wf-json, wf-touch, and wf-utils as git # submodules (not fetched by meson wraps), so GitHub's release tarball # ships them as empty directories. Pull each pinned submodule commit as # an extra source and unpack it into place in %%prep. wlroots itself is # taken from the system package (Fedora ships pkgconfig(wlroots-0.20)), # so its submodule is unused and not fetched here. %global wfconfig_commit 85cca14ac889b2f8bbd53569d9751ed2e8f5c079 %global wfjson_commit 70039e13cdeaebd8ec498ed30bf5ab91c2e313ec %global wftouch_commit d7ae5e7fa4de9536e2de2af74f168f981eb8a77a %global wfutils_commit 329c3ff01724d82947f61c45332f75d3534e8454 # Commit that the v%{version} tag points to (used only for --version output). %global release_shortcommit d399023 Name: wayfire Version: 0.11.0 Release: 2%{?dist} Summary: 3D Wayland compositor built on wlroots License: MIT URL: https://github.com/WayfireWM/wayfire Source0: %{url}/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz Source1: https://github.com/WayfireWM/wf-config/archive/%{wfconfig_commit}/wf-config-%{wfconfig_commit}.tar.gz Source2: https://github.com/WayfireWM/wf-json/archive/%{wfjson_commit}/wf-json-%{wfjson_commit}.tar.gz Source3: https://github.com/WayfireWM/wf-touch/archive/%{wftouch_commit}/wf-touch-%{wftouch_commit}.tar.gz Source4: https://github.com/WayfireWM/wf-utils/archive/%{wfutils_commit}/wf-utils-%{wfutils_commit}.tar.gz ExclusiveArch: x86_64 aarch64 BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: systemd-rpm-macros BuildRequires: glm-devel BuildRequires: libevdev-devel BuildRequires: libxml2-devel BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) >= 1.7.0 BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-protocols) >= 1.37 BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(wlroots-0.20) >= 0.20.1 BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(yyjson) Requires: hicolor-icon-theme %description Wayfire is a 3D Wayland compositor, inspired by Compiz and built on top of wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance, using plugins to provide effects, animations, and window rules on top of a minimal core. %package devel Summary: Development files for wayfire Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Headers, pkgconfig files, and static/unversioned libraries for building third-party Wayfire plugins against wf-config, wf-utils, and wf-touch. %prep %autosetup -n %{name}-%{version} # The tarball has no .git dir, so vcs_tag() can't run `git rev-parse` and # falls back to reporting "unknown" for both the commit and branch in # `wayfire --version`. Report the v%{version} tag's actual commit and a # fixed "release" branch name instead. sed -i "/git-commit.cpp.in/,/fallback: 'unknown'/s/fallback: 'unknown'/fallback: '%{release_shortcommit}'/" src/meson.build sed -i "/git-branch.cpp.in/,/fallback: 'unknown'/s/fallback: 'unknown'/fallback: 'release'/" src/meson.build for sub in wf-config:%{wfconfig_commit} wf-json:%{wfjson_commit} wf-touch:%{wftouch_commit} wf-utils:%{wfutils_commit}; do name="${sub%%:*}" commit="${sub#*:}" rm -rf "subprojects/${name}" mkdir -p "subprojects/${name}" tar -xzf "%{_sourcedir}/${name}-${commit}.tar.gz" --strip-components=1 -C "subprojects/${name}" done %build %meson \ -Duse_system_wlroots=enabled \ -Duse_system_wfconfig=disabled \ -Dvulkan_effects=false \ -Dtests=disabled \ -Dwf-config:tests=disabled \ -Dwf-touch:tests=disabled %meson_build %install %meson_install %check LD_LIBRARY_PATH="%{buildroot}%{_libdir}" %{buildroot}%{_bindir}/wayfire --version %files %license LICENSE %doc README.md %{_bindir}/wayfire %{_bindir}/wayfire-plugin %{_libdir}/wayfire/ %{_libdir}/libwf-config.so.* %{_libdir}/libwf-utils.so.* %{_libdir}/libwayfire-blur-base.so %{_datadir}/wayfire/ %{_datadir}/locale/*/LC_MESSAGES/wf-plugin-*.mo %{_datadir}/wayland-sessions/%{name}.desktop %{_datadir}/xdg-desktop-portal/%{name}-portals.conf %{_mandir}/man1/wayfire.1* %files devel %{_includedir}/wayfire/ %{_libdir}/libwf-config.so %{_libdir}/libwf-utils.so %{_libdir}/libwayfire-move-drag-interface.a %{_libdir}/libwayfire-workspace-wall.a %{_libdir}/libwftouch.a %{_libdir}/pkgconfig/wayfire.pc %{_libdir}/pkgconfig/wf-config.pc %{_libdir}/pkgconfig/wf-utils.pc %changelog * Fri Sep 18 2026 sachesi - 0.11.0-2 - Split headers, pkgconfig files, static libraries, and unversioned .so symlinks into a -devel subpackage. Shipping the .pc files in the main package made RPM's pkgconfig-requires generator pull the full devel toolchain (67 packages) into a plain runtime install. * Fri Sep 18 2026 sachesi - 0.11.0-1 - Initial package for Copr.