# Based on Fedora's quickshell.spec (src.fedoraproject.org/rpms/quickshell). # Differences: # - always tracks the latest master snapshot from git.outfoxxed.me (the "git" # version required by Caelestia); the commit is bumped in CI via # scripts/update-quickshell-commit.sh # - Epoch 1 + Provides/Obsoletes to replace Fedora's quickshell package %bcond asan 0 %bcond breakpad 0 %bcond x11 %[%{undefined rhel}] %global commit 0fed22a2c47d9568ddf13cf61586b3f2ac4378a2 %global commitdate 20260822 %global shortcommit %{sub %{commit} 1 7} %global tarbasename quickshell-%{shortcommit} Name: quickshell-git Epoch: 1 Version: 0.2.1^git%{commitdate}.%{shortcommit} Release: 1%{?dist} Summary: Flexible QtQuick based desktop shell toolkit (git snapshot) # Code is LGPL, Hyprland protocols BSD-3-Clause, wlr protocols HPND-sell-variant License: LGPL-3.0-or-later and BSD-3-Clause and HPND-sell-variant URL: https://quickshell.org/ Source: https://git.outfoxxed.me/quickshell/quickshell/archive/%{commit}.tar.gz#/%{tarbasename}.tar.gz Source1: https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v1.0.4.tar.gz#/cpptrace-1.0.4.tar.gz # Replaces Fedora's quickshell package (tagged release) Provides: quickshell = %{epoch}:%{version}-%{release} Obsoletes: quickshell < 1:1 BuildRequires: cmake BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6CorePrivate) BuildRequires: cmake(Qt6QuickPrivate) BuildRequires: cmake(Qt6ShaderTools) BuildRequires: cmake(Qt6WaylandClient) BuildRequires: desktop-file-utils BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: pkgconfig(CLI11) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(jemalloc) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(pam) BuildRequires: pkgconfig(polkit-agent-1) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: spirv-tools BuildRequires: libunwind-devel BuildRequires: libdwarf-devel # Runtime dependencies that cannot be auto-detected Requires: (qt6-qtwayland%{?_isa} if qt6-qtbase%{?_isa} < 6.10) Requires: qt6-qtsvg%{?_isa} Provides: desktop-notification-daemon = %{version}-%{release} Provides: PolicyKit-authentication-agent = %{version}-%{release} %description Quickshell is a toolkit for building status bars, widgets, lockscreens, and other desktop components using QtQuick. This package tracks the latest git master (required by the Caelestia shell). %prep %autosetup -n quickshell # quickshell vendors cpptrace via FetchContent (pinned to v1.0.4 in # src/crash/CMakeLists.txt). Provide it as a source tarball and point # FETCHCONTENT_SOURCE_DIR_CPPTRACE at it so the COPR build needs no network. mkdir -p ../cpptrace tar -xf %{SOURCE1} -C ../cpptrace --strip=1 %conf %cmake -GNinja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DDISTRIBUTOR="Arcos COPR" \ -DDISTRIBUTOR_DEBUGINFO_AVAILABLE=YES \ -DINSTALL_QML_PREFIX=%{_lib}/qt6/qml \ -DASAN=%{?with_asan:ON}%{!?with_asan:OFF} \ -DCRASH_REPORTER=%{?with_breakpad:ON}%{!?with_breakpad:OFF} \ -DVENDOR_CPPTRACE=ON \ -DFETCHCONTENT_SOURCE_DIR_CPPTRACE=%{_builddir}/cpptrace \ -DFETCHCONTENT_FULLY_DISCONNECTED=ON \ -DCPPTRACE_USE_EXTERNAL_LIBDWARF=ON \ -DCPPTRACE_FIND_LIBDWARF_WITH_PKGCONFIG=ON \ -DCPPTRACE_BUILD_SHARED=OFF \ -DX11=%{?with_x11:ON}%{!?with_x11:OFF} \ -DGIT_REVISION=%{commit} \ %{nil} %build %cmake_build %install %cmake_install # cpptrace is vendored into the quickshell binaries; do not ship its files rm -rf %{buildroot}%{_includedir}/cpptrace \ %{buildroot}%{_includedir}/ctrace \ %{buildroot}%{_libdir}/cmake/cpptrace \ %{buildroot}%{_datadir}/cpptrace \ %{buildroot}%{_libdir}/libcpptrace.* # upstream installs qs as an absolute symlink; make it relative ln -sfn quickshell %{buildroot}%{_bindir}/qs %check desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files %license LICENSE* %doc BUILD.md CONTRIBUTING.md README.md changelog/ %{_bindir}/qs %{_bindir}/quickshell %{_datadir}/applications/org.quickshell.desktop %{_datadir}/icons/hicolor/scalable/apps/org.quickshell.svg %{_qt6_qmldir}/Quickshell/ %changelog * Sun Aug 16 2026 Arcos Developers - 1:0.2.1^git20260209.dacfa9d-1 - Vendor cpptrace v1.0.4 from a source tarball instead of cloning at build time - Use the system libdwarf (pkg-config) instead of cpptrace's vendored copy - Build cpptrace statically into quickshell and strip its install artifacts * Fri Aug 14 2026 Arcos Developers - 1:0.2.1^git20260209.dacfa9d-1 - Initial git snapshot package based on Fedora's quickshell.spec