Name: ananicy-cpp Version: 1.2.0 Release: 11%{?dist} Summary: ANother Auto NICe daemon — rewrite in C++ License: GPLv3 URL: https://gitlab.com/ananicy-cpp/ananicy-cpp Source0: https://gitlab.com/ananicy-cpp/ananicy-cpp/-/archive/v%{version}/ananicy-cpp-v%{version}.tar.gz ExcludeArch: s390x i686 ppc64le BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: ninja-build BuildRequires: systemd-devel BuildRequires: systemd-rpm-macros BuildRequires: zlib-devel BuildRequires: nlohmann-json-devel BuildRequires: fmt-devel BuildRequires: spdlog-devel %description Rewrite of ananicy in C++ — ajustement automatique des priorités CPU/IO de tous les processus selon une base de règles. Complémentaire à GameMode : ananicy-cpp est permanent et surveille tous les processus, pas seulement les jeux qui utilisent gamemoderun. %prep %autosetup -n ananicy-cpp-v%{version} %build # GCC 16 : les targets cmake (nlohmann, spdlog, fmt) ajoutent -isystem /usr/include # ce qui déplace /usr/include AVANT les headers C++ de GCC dans l'ordre de recherche. # Le #include_next dans cstdlib ne trouve alors plus stdlib.h. # Fix : wrapper Python qui filtre -isystem /usr/include avant d'appeler g++. mkdir -p %{_builddir}/bin cat > %{_builddir}/bin/g++ << 'WRAPPER' #!/usr/bin/env python3 import sys, os args = sys.argv[1:] clean = [] i = 0 while i < len(args): if args[i] == '-isystem' and i + 1 < len(args) and args[i+1] == '/usr/include': i += 2 else: clean.append(args[i]) i += 1 os.execv('/usr/bin/g++', ['/usr/bin/g++'] + clean) WRAPPER chmod +x %{_builddir}/bin/g++ CXX=%{_builddir}/bin/g++ \ %cmake \ -GNinja \ -DENABLE_SYSTEMD=ON \ -DUSE_BPF_PROC_IMPL=OFF \ -DUSE_EXTERNAL_JSON=ON \ -DUSE_EXTERNAL_FMTLIB=ON \ -DUSE_EXTERNAL_SPDLOG=ON \ -DENABLE_ANANICY_TESTS=OFF \ -DBUILD_SHARED_LIBS=OFF \ -DVERSION=%{version} \ -DCMAKE_CXX_FLAGS="-include unistd.h" \ -Dfmt_DIR=/usr/lib64/cmake/fmt \ -Dspdlog_DIR=/usr/lib64/cmake/spdlog %ninja_build -C %{_vpath_builddir} %install %ninja_install -C %{_vpath_builddir} %post %systemd_post ananicy-cpp.service %preun %systemd_preun ananicy-cpp.service %postun %systemd_postun_with_restart ananicy-cpp.service %files %license LICENSE %doc README.md %{_bindir}/ananicy-cpp %{_unitdir}/ananicy-cpp.service %changelog * Wed May 27 2026 ShivaOS Team - 1.2.0-11 - Fix GCC 16 : wrapper g++ filtre -isystem /usr/include au niveau compilateur * Wed May 27 2026 ShivaOS Team - 1.2.0-10 - Tentative fix cmake set_property nlohmann (insuffisant) * Wed May 27 2026 ShivaOS Team - 1.2.0-9 - USE_BPF_PROC_IMPL=OFF : clang cross-compile cassait stdlib.h pour GCC * Wed May 27 2026 ShivaOS Team - 1.2.0-7 - Fix cmake fmt/spdlog : chemins explicites /usr/lib64/cmake/ * Wed May 27 2026 ShivaOS Team - 1.2.0-1 - ananicy-cpp 1.2.0 pour ShivaOS (systemd, sans BPF)