Name: kmousetool Version: 26.08.0 Release: 1%{?dist} Summary: Automatic mouse click tool License: BSD-2-Clause AND CC0-1.0 AND GFDL-1.2-only AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://apps.kde.org/kmousetool Source0: https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz BuildRequires: desktop-file-utils BuildRequires: extra-cmake-modules BuildRequires: kf6-rpm-macros BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: cmake(KF6DBusAddons) BuildRequires: cmake(KF6I18n) BuildRequires: cmake(KF6IconThemes) BuildRequires: cmake(KF6XmlGui) BuildRequires: cmake(KF6WindowSystem) BuildRequires: cmake(KF6CoreAddons) BuildRequires: cmake(KF6StatusNotifierItem) BuildRequires: cmake(KF6Config) BuildRequires: cmake(KF6WidgetsAddons) BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6Gui) BuildRequires: cmake(Qt6Widgets) BuildRequires: libXt-devel BuildRequires: libXtst-devel %description KMouseTool is KDE's automatic mouse-click tool for accessibility. Full CMakeLists.txt read (top-level, kmousetool/, kmousetool/pics/). KF6DocTools is genuinely gated behind if(KF6DocTools_FOUND), no patch needed. X11 Xt and XTest components are real hard requirements (libXt-devel, libXtst-devel, both confirmed available) -- this app literally works by driving synthetic X11 mouse events, so this is core functionality, not something to work around. Qt6::Multimedia is unconditionally REQUIRED in the top-level find_package(Qt6 ...) call, but a full source grep confirmed it's used in exactly one narrow, self-contained place: kmousetool/kmousetool.cpp's playTickSound(), a single QMediaPlayer member that plays a short "tap" WAV on each simulated click. Removed via a tested source patch (same class of narrow removal as the Konsole/Gwenview precedents this session): Multimedia dropped from both the top-level find_package() component list and kmousetool/CMakeLists.txt's target_link_libraries, the QMediaPlayer/ QAudioOutput includes and member/constructor code removed, and playTickSound() left as a no-op stub (its mPlaySound early-return guard is preserved so the setting toggle still exists in the UI, it just no longer produces audio). %prep %autosetup -p1 python3 - <<'PYEOF' import re def sub_file(path, pattern, repl, count=1, flags=0): with open(path, encoding="utf-8") as f: content = f.read() new_content, n = re.subn(pattern, repl, content, count=count, flags=flags) assert n == count, f"{path}: expected {count} replacement(s) for pattern {pattern!r}, got {n}" with open(path, "w", encoding="utf-8") as f: f.write(new_content) sub_file( "CMakeLists.txt", r" Multimedia\n", "", ) sub_file( "kmousetool/CMakeLists.txt", r" Qt6::Multimedia\n", "", ) sub_file( "kmousetool/kmousetool.h", r"class QMediaPlayer;\n", "", ) sub_file( "kmousetool/kmousetool.h", r" QMediaPlayer \*mPlayer = nullptr;\n", "", ) sub_file( "kmousetool/kmousetool.cpp", r"#include \n", "", ) sub_file( "kmousetool/kmousetool.cpp", r"#include \n", "", ) sub_file( "kmousetool/kmousetool.cpp", r" mPlayer = new QMediaPlayer\(\);\n" r" QAudioOutput \*output = new QAudioOutput\(\);\n" r" mPlayer->setAudioOutput\(output\);\n" r" mPlayer->setParent\(this\);\n", "", ) sub_file( "kmousetool/kmousetool.cpp", r" mPlayer->setSource\(QUrl::fromLocalFile\(mSoundFileName\)\);\n" r" mPlayer->play\(\);\n", "", ) print("OK: Qt6Multimedia click-sound player removed cleanly") PYEOF %build %cmake_kf6 %cmake_build_kf6 %install %cmake_install_kf6 %find_lang %{name} --with-html %files -f %{name}.lang %license LICENSES/* %{_kf6_bindir}/kmousetool %{_datadir}/applications/org.kde.kmousetool.desktop %{_kf6_metainfodir}/org.kde.kmousetool.appdata.xml %{_kf6_datadir}/kmousetool/sounds/mousetool_tap.wav %{_datadir}/icons/hicolor/*/apps/kmousetool.png %{_datadir}/icons/hicolor/*/actions/kmousetool_*.png %changelog * Sun Aug 30 2026 Smech - 26.08.0-1 - Real upstream source. Qt6Multimedia removed via a tested source patch (see %%description) -- verified locally against a fresh extraction of this exact tarball before submitting, zero remaining QMediaPlayer/QAudioOutput/Multimedia references. %%files built from real install()/ecm_install_icons() call sites.