wlmaker/wlmaker.spec
Michel Lind f77ce58f80
Update to 0.8.1
Signed-off-by: Michel Lind <salimma@fedoraproject.org>
2026-08-21 15:44:32 +01:00

140 lines
3.8 KiB
RPMSpec

# libbase is a utility library from the same upstream that is only used by this
# project and is statically linked into the build
%global libbase_commit 2663444797981b11ade10e23813ada407e3b24b4
%global libbase_url https://github.com/phkaeser/libbase
%bcond docs 1
# wlmclock fails to link against libbase when using gcc
%global toolchain clang
Name: wlmaker
Version: 0.8.1
Release: %autorelease
Summary: Wayland compositor inspired by Window Maker
License: Apache-2.0
URL: https://github.com/phkaeser/wlmaker
Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1: %{libbase_url}/archive/%{libbase_commit}/libbase-%{libbase_commit}.tar.gz
# Replace google-chrome with firefox in the application menu
# Drop chromium from the default dock placement
Patch: remove-google-chrome-chromium.patch
# i686: https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: cmake
BuildRequires: bison
BuildRequires: clang
BuildRequires: desktop-file-utils
BuildRequires: flex
BuildRequires: hicolor-icon-theme
BuildRequires: libappstream-glib
BuildRequires: sed
%if %{with docs}
BuildRequires: doxygen
BuildRequires: plantuml
%endif
# For libbase
BuildRequires: ncurses-devel
BuildRequires: pkgconfig(cairo) >= 1.16.0
# For wlmaker
BuildRequires: pkgconfig(wayland-client) >= 1.22.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.32
BuildRequires: pkgconfig(wayland-server) >= 1.22.0
BuildRequires: pkgconfig(wlroots-0.20) >= 0.20
BuildRequires: pkgconfig(xcb) >= 1.15
BuildRequires: pkgconfig(libxdg-basedir) >= 1.2
BuildRequires: pkgconfig(xkbcommon) >= 1.5.0
BuildRequires: pkgconfig(xwayland) >= 22.1.9
Requires: hicolor-icon-theme
# These are hardcoded in the stock config
Recommends: firefox
Recommends: foot
Recommends: wdisplays
%if %{with docs}
Suggests: %{name}-doc = %{version}-%{release}
%endif
%description
Wayland Maker is a Wayland compositor inspired by Window Maker.
Key features:
- Compositor for windows in stacking mode.
- Supports multiple workspaces.
- Appearance inspired by Window Maker, following the look and feel of NeXTSTEP.
- Easy to use, lightweight, low gimmicks and fast.
- Dock and clip, to be extended for dockable apps.
%package doc
Summary: Developer documentation for %{name}
BuildArch: noarch
%description doc
This package provides additional developer documentation for %{name}.
%prep
%autosetup -p1 -b 1
# Drop bundled dependencies
rm -r dependencies
# Ensure libbase can be found; we move instead of symlinking because the build
# uses relative paths for the includes and that confuses things
rm -r submodules/libbase
mv ../libbase-%{libbase_commit}/ submodules/libbase
# Do not abort on warnings
sed -i 's/-Werror//' CMakeLists.txt submodules/libbase/CMakeLists.txt
%conf
%cmake -Dconfig_OPTIM=ON
%build
%cmake_build
%if %{with docs}
%cmake_build --target doc
%endif
%install
%cmake_install
%check
%ctest
desktop-file-validate %{buildroot}%{_datadir}/applications/{%{name},%{name}.wlmclock,%{name}.wlmeyes}.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.wlmaker.wlmaker.metainfo.xml
%files
%license LICENSE
%doc README.md
%{_bindir}/%{name}
%{_bindir}/wlmbattery
%{_bindir}/wlmcpugraph
%{_bindir}/wlmclock
%{_bindir}/wlmeyes
%{_bindir}/wlmmemgraph
%{_bindir}/wlmnetgraph
%{_bindir}/wlmtool
%{_sysconfdir}/xdg/%{name}/
%{_datadir}/applications/
%{_datadir}/icons/hicolor/*/apps/*
%{_metainfodir}/org.wlmaker.wlmaker.metainfo.xml
%{_datadir}/wayland-sessions/
%{_datadir}/%{name}/icons/
%{_datadir}/%{name}/Themes/
%if %{with docs}
%files doc
%license LICENSE
%doc CODE_OF_CONDUCT.md CONTRIBUTING.md doc/ROADMAP.md %{_vpath_builddir}/doc/html/
%endif
%changelog
%autochangelog