%global commit 2ca59a1fbe7cd8c4b9c0b9fd960edca6788425c5 %global kwin_version 6.8.2 Name: nextkde Version: 0.1.1 Release: 1%{?dist} Summary: Quickshell desktop shell for KDE Plasma Wayland License: GPL-3.0-only AND GPL-2.0-or-later AND MIT AND BSD-3-Clause URL: https://github.com/NextKde/NextKde Source0: https://codeload.github.com/NextKde/NextKde/tar.gz/%{commit}#/nextkde-%{commit}.tar.gz Source1: nextkde-vendor.tar.gz Patch0: nextkde-system-paths.patch ExclusiveArch: aarch64 BuildRequires: cmake BuildRequires: ninja-build BuildRequires: gcc-c++ BuildRequires: golang >= 1.26 BuildRequires: extra-cmake-modules BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: python3 BuildRequires: systemd-rpm-macros BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-private-devel BuildRequires: qt6-qtdeclarative-devel BuildRequires: qt6-qtwayland-devel BuildRequires: kwin-devel = %{kwin_version} BuildRequires: kdecoration-devel BuildRequires: kf6-kcoreaddons-devel BuildRequires: kf6-kconfig-devel BuildRequires: kf6-kiconthemes-devel BuildRequires: kf6-kglobalaccel-devel BuildRequires: kf6-kio-devel BuildRequires: kf6-ki18n-devel BuildRequires: kf6-kguiaddons-devel BuildRequires: kf6-kcmutils-devel BuildRequires: pkgconfig(epoxy) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) Requires: quickshell%{?_isa} >= 0.3.2 Requires: quickshell%{?_isa} < 0.4 # KWin plugins use its private ABI; rebuild for each KWin version. Requires: kwin%{?_isa} = %{kwin_version} Requires: plasma-workspace%{?_isa} Requires: qt6-qt5compat%{?_isa} Requires: qt6-qtquick3d%{?_isa} Requires: qt6-qtsvg%{?_isa} Requires: qt6-qtimageformats%{?_isa} Requires: kpipewire%{?_isa} Requires: pulseaudio-utils Requires: wireplumber Requires: wl-clipboard Requires: cliphist Requires: systemd Recommends: spectacle Recommends: NetworkManager Recommends: bluez Provides: bundled(golang(github.com/fsnotify/fsnotify)) = 1.10.1 Provides: bundled(golang(golang.org/x/sys)) = 0.13.0 %description NextKDE (KOS Desktop Shell) provides a top bar, dock, launcher, search, notifications and settings on KDE Plasma Wayland. This is independent downstream packaging of upstream NextKDE, using Fedora's Plasma packages. User services are installed but are not enabled or started by the RPM. Optional standalone applications, the lock screen, SDDM theme and ONNX spatial wallpaper engine are not included. %prep %autosetup -n NextKde-%{commit} -p1 tar -xf %{SOURCE1} -C services/data-service %build export GOPROXY=off GOSUMDB=off GOTOOLCHAIN=local export GOFLAGS='-mod=vendor -trimpath -buildvcs=false' export GOCACHE="$PWD/.go-cache" %cmake -GNinja \ -DBUILD_TESTING=OFF \ -DKOS_BUILD_SPATIAL=OFF \ -DKOS_BUILD_KWIN_PLUGINS=ON \ -DCMAKE_SKIP_RPATH=ON %cmake_build cmake -S kwin/glass-effect -B glass-build -GNinja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DCMAKE_SKIP_RPATH=ON -DGLASS_X11=OFF cmake --build glass-build --parallel %{_smp_build_ncpus} (cd services/data-service && CGO_ENABLED=0 go build -o kos-data-service .) %install %cmake_install DESTDIR=%{buildroot} cmake --install glass-build install -Dm0755 services/data-service/kos-data-service %{buildroot}%{_libexecdir}/kos-data-service mkdir -p %{buildroot}%{_datadir}/nextkde cp -a shell shared %{buildroot}%{_datadir}/nextkde/ rm -rf %{buildroot}%{_datadir}/nextkde/shell/native find %{buildroot}%{_datadir}/nextkde \ \( -name CMakeLists.txt -o -name 'test_*.mjs' -o -name 'test_*.py' -o -name '*test*.cpp' \) -delete install -d %{buildroot}%{_userunitdir} %{buildroot}%{_datadir}/applications sed -e 's|%%h/.local/libexec|%{_libexecdir}|g' \ -e 's|%%h/.local/share|%{_datadir}|g' \ packaging/systemd/kos-platform.service > %{buildroot}%{_userunitdir}/kos-platform.service sed 's|@CMAKE_INSTALL_FULL_LIBEXECDIR@|%{_libexecdir}|g' \ services/data-service/systemd/kos-data.service.in > %{buildroot}%{_userunitdir}/kos-data.service sed -e 's|@QS_EXEC@ --no-duplicate -c kos|%{_bindir}/quickshell --no-duplicate --path %{_datadir}/nextkde/shell|g' \ -e 's|^Environment=QML2_IMPORT_PATH=.*|Environment=QML2_IMPORT_PATH=%{_datadir}/nextkde/shell:%{_libdir}/qt6/qml|' \ packaging/systemd/kos-shell.service.in > %{buildroot}%{_userunitdir}/kos-shell.service sed -i '/^\[Service\]/a Environment=KOS_SHELL_DIR=%{_datadir}/nextkde/shell' \ %{buildroot}%{_userunitdir}/kos-platform.service cp packaging/desktop/kos-settings.desktop.in %{buildroot}%{_datadir}/applications/kos-settings.desktop sed 's|@KOS_PLATFORM_EXEC@|%{_libexecdir}/kos-platform|g' \ packaging/desktop/org.kos.Platform.desktop.in > %{buildroot}%{_datadir}/applications/org.kos.Platform.desktop cat > %{buildroot}%{_datadir}/nextkde/release.json <<'EOF' {"version":"%{version}","revision":"%{commit}","dirty":false,"tag":"v%{version}"} EOF install -d %{buildroot}%{_licensedir}/%{name}/bundled cp services/data-service/vendor/github.com/fsnotify/fsnotify/LICENSE %{buildroot}%{_licensedir}/%{name}/bundled/fsnotify-LICENSE cp services/data-service/vendor/golang.org/x/sys/LICENSE %{buildroot}%{_licensedir}/%{name}/bundled/x-sys-LICENSE cp shared/qml/wallpapers/vendor/flow/LICENSE %{buildroot}%{_licensedir}/%{name}/bundled/flow-LICENSE cp shared/qml/wallpapers/vendor/black-hole/LICENSE %{buildroot}%{_licensedir}/%{name}/bundled/black-hole-LICENSE cp kwin/glass-effect/LICENSE %{buildroot}%{_licensedir}/%{name}/bundled/glass-LICENSE %check export GOPROXY=off GOSUMDB=off GOTOOLCHAIN=local export GOFLAGS='-mod=vendor -trimpath -buildvcs=false' export GOCACHE="$PWD/.go-cache" (cd services/data-service && go test ./...) desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop test -x %{buildroot}%{_libexecdir}/kos-platform test -x %{buildroot}%{_libexecdir}/kos-data-service test -x %{buildroot}%{_bindir}/kos-settings test -f %{buildroot}%{_libdir}/qt6/qml/Kos/SurfaceShape/libkos_surface_shape.so test -f %{buildroot}%{_libdir}/qt6/plugins/kwin/effects/plugins/libglass.so test -f %{buildroot}%{_datadir}/nextkde/shell/Kos/Ui/foundation/AppTheme.qml test -f %{buildroot}%{_datadir}/nextkde/apps/settings/main.qml test -z "$(find %{buildroot} -xtype l -print -quit)" ! grep -R -E '@QS_EXEC@|@KOS_PLATFORM_EXEC@|%%h/\.local|%%h/\.config' \ %{buildroot}%{_userunitdir}/kos-*.service %{buildroot}%{_datadir}/applications/*.desktop %files %license LICENSE %license %{_licensedir}/%{name}/bundled/ %doc README.md %{_bindir}/kos-settings %{_libexecdir}/kos-platform %{_libexecdir}/kos-data-service %{_libdir}/qt6/qml/Kos/SurfaceShape/ %{_libdir}/qt6/plugins/kwin/effects/plugins/*.so %{_libdir}/qt6/plugins/kwin/effects/configs/*.so %{_libdir}/qt6/plugins/org.kde.kdecoration3/*.so %{_datadir}/nextkde/ %{_datadir}/kos/platform/ %{_datadir}/applications/kos-settings.desktop %{_datadir}/applications/org.kos.Platform.desktop %{_userunitdir}/kos-platform.service %{_userunitdir}/kos-data.service %{_userunitdir}/kos-shell.service %{_datadir}/locale/*/LC_MESSAGES/kwin_effect_glass.mo %changelog * Sun Nov 01 2026 mcc45tr - 0.1.1-1 - Package upstream v0.1.1 for Fedora Rawhide AArch64, with opt-in user services