summaryrefslogtreecommitdiff
path: root/app-admin/ananicy-cpp
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /app-admin/ananicy-cpp
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'app-admin/ananicy-cpp')
-rw-r--r--app-admin/ananicy-cpp/Manifest1
-rw-r--r--app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r4.ebuild87
-rw-r--r--app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-clang-19.patch45
-rw-r--r--app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-glibc-2.41.patch103
-rw-r--r--app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-remove-debug-flags.patch18
-rw-r--r--app-admin/ananicy-cpp/files/ananicy-cpp.initd18
-rw-r--r--app-admin/ananicy-cpp/metadata.xml14
7 files changed, 286 insertions, 0 deletions
diff --git a/app-admin/ananicy-cpp/Manifest b/app-admin/ananicy-cpp/Manifest
new file mode 100644
index 000000000000..d2ce42cb0a6f
--- /dev/null
+++ b/app-admin/ananicy-cpp/Manifest
@@ -0,0 +1 @@
+DIST ananicy-cpp-v1.1.1.tar.bz2 326329 BLAKE2B b9e62e2e2a2ee956b6e1e3b0e484e340bbaa8a62f851c342efa5ce9a896d477213cd10aea5dc2f9978fdaddc85d17473a9ed9a0544d83fca01b52ecb09f6bbfd SHA512 ef351d45d54c6f3c60be9208e105d3952b88ad31708247dbda02c2de0e4852f29f06ba8c4f82a50f8d2bd1aa51f6fc914f9d7c13f598e21b527155bd0cbde27c
diff --git a/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r4.ebuild b/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r4.ebuild
new file mode 100644
index 000000000000..7f9f1b1c941d
--- /dev/null
+++ b/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r4.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Ananicy rewritten in C++ for much lower CPU and memory usage"
+HOMEPAGE="https://gitlab.com/ananicy-cpp/ananicy-cpp"
+SRC_URI="https://gitlab.com/ananicy-cpp/ananicy-cpp/-/archive/v${PV}/${PN}-v${PV}.tar.bz2"
+
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="bpf clang systemd"
+REQUIRED_USE="
+ bpf? ( clang )
+"
+
+RDEPEND="
+ !app-admin/ananicy
+ >=dev-cpp/nlohmann_json-3.9
+ >=dev-libs/libfmt-8:=
+ >=dev-libs/spdlog-1.9:=
+ bpf? (
+ dev-libs/elfutils
+ dev-libs/libbpf
+ dev-util/bpftool
+ )
+ systemd? ( sys-apps/systemd:= )
+"
+
+DEPEND="
+ >=dev-build/cmake-3.17
+ clang? ( >=llvm-core/clang-10 )
+ ${RDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-remove-debug-flags.patch"
+ "${FILESDIR}/${P}-clang-19.patch"
+ "${FILESDIR}/${P}-glibc-2.41.patch"
+)
+
+pkg_setup() {
+ if use bpf ; then
+ CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~HAVE_EBPF_JIT"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_SYSTEMD=$(usex systemd)
+ -DUSE_BPF_PROC_IMPL=$(usex bpf)
+ -DUSE_EXTERNAL_FMTLIB=ON
+ -DUSE_EXTERNAL_JSON=ON
+ -DUSE_EXTERNAL_SPDLOG=ON
+ -DVERSION=${PV}
+ )
+
+ if use clang; then
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+
+ if use bpf ; then
+ mycmakeargs+=( -DBPF_BUILD_LIBBPF=OFF )
+ fi
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if ! use systemd ; then
+ doinitd "${FILESDIR}/${PN}.initd"
+ fi
+
+ keepdir /etc/ananicy.d
+}
diff --git a/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-clang-19.patch b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-clang-19.patch
new file mode 100644
index 000000000000..1a2ffadcc7e0
--- /dev/null
+++ b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-clang-19.patch
@@ -0,0 +1,45 @@
+https://gitlab.com/ananicy-cpp/ananicy-cpp/-/commit/b2589a9b1faa2ecf54aeede40ea781c33bfb09a8
+From: John Titor <50095635+JohnRTitor@users.noreply.github.com>
+Date: Fri, 27 Dec 2024 11:37:04 +0530
+Subject: [PATCH] atomic-queue: fix build with clang 19
+
+> error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
+
+Co-authored-by: Reno Dakota <paparodeo@proton.me>
+--- a/include/utility/atomic_queue/atomic_queue.h
++++ b/include/utility/atomic_queue/atomic_queue.h
+@@ -393,13 +393,13 @@ class AtomicQueue2 : public AtomicQueueCommon<AtomicQueue2<T, SIZE, MINIMIZE_CON
+
+ T do_pop(unsigned tail) noexcept {
+ unsigned index = details::remap_index<SHUFFLE_BITS>(tail % size_);
+- return Base::template do_pop_any(states_[index], elements_[index]);
++ return Base::template do_pop_any<T>(states_[index], elements_[index]);
+ }
+
+ template<class U>
+ void do_push(U&& element, unsigned head) noexcept {
+ unsigned index = details::remap_index<SHUFFLE_BITS>(head % size_);
+- Base::template do_push_any(std::forward<U>(element), states_[index], elements_[index]);
++ Base::template do_push_any<U>(std::forward<U>(element), states_[index], elements_[index]);
+ }
+
+ public:
+@@ -521,13 +521,13 @@ class AtomicQueueB2 : public AtomicQueueCommon<AtomicQueueB2<T, A, MAXIMIZE_THRO
+
+ T do_pop(unsigned tail) noexcept {
+ unsigned index = details::remap_index<SHUFFLE_BITS>(tail & (size_ - 1));
+- return Base::template do_pop_any(states_[index], elements_[index]);
++ return Base::template do_pop_any<T>(states_[index], elements_[index]);
+ }
+
+ template<class U>
+ void do_push(U&& element, unsigned head) noexcept {
+ unsigned index = details::remap_index<SHUFFLE_BITS>(head & (size_ - 1));
+- Base::template do_push_any(std::forward<U>(element), states_[index], elements_[index]);
++ Base::template do_push_any<U>(std::forward<U>(element), states_[index], elements_[index]);
+ }
+
+ public:
+--
+GitLab
+
diff --git a/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-glibc-2.41.patch b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-glibc-2.41.patch
new file mode 100644
index 000000000000..a6747de7a069
--- /dev/null
+++ b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-glibc-2.41.patch
@@ -0,0 +1,103 @@
+https://gitlab.com/ananicy-cpp/ananicy-cpp/-/commit/99e64815bacaf3baa28ad89d022e33ebede94fa9
+From: Antoine Viallon <antoine@lesviallon.fr>
+Date: Thu, 3 Apr 2025 14:24:10 +0200
+Subject: [PATCH] [Platform/Linux] rename sched_*attr symbols to avoid
+ conflicts with newer GLibc versions
+
+(cherry picked from commit 6748f23c5f1eaf6c15cb771a3804e3e527015903)
+--- a/src/platform/linux/priority.cpp
++++ b/src/platform/linux/priority.cpp
+@@ -185,12 +185,12 @@ std::string_view test_latnice_support() noexcept {
+
+ // Use this here instead of function,
+ // to suppress errors from function call.
+- struct sched_attr attr = {
+- .size = sizeof(struct sched_attr),
++ struct ananicy_sched_attr attr = {
++ .size = sizeof(struct ananicy_sched_attr),
+ .sched_flags = SCHED_FLAG_LATENCY_NICE | SCHED_FLAG_KEEP_PARAMS,
+ .sched_latency_nice = latency_nice,
+ };
+- const std::int32_t err = sched_setattr(pid, &attr, 0);
++ const std::int32_t err = ananicy_sched_setattr(pid, &attr, 0);
+ bool is_supported{};
+ if (err == 0 && errno == 0) {
+ set_latnice(pid, saved_latnice);
+--- a/src/platform/linux/process_info.cpp
++++ b/src/platform/linux/process_info.cpp
+@@ -104,16 +104,16 @@ static std::string get_sched_policy_name(unsigned sched_policy) {
+ }
+ }
+
+-static sched_attr get_sched_attributes(process_id_t pid) {
++static ananicy_sched_attr get_sched_attributes(process_id_t pid) {
+
+- ::sched_attr attr{};
+- sched_getattr(static_cast<pid_t>(pid), &attr, sizeof(attr), 0);
++ ::ananicy_sched_attr attr{};
++ ananicy_sched_getattr(static_cast<pid_t>(pid), &attr, sizeof(attr), 0);
+
+ return attr;
+ }
+
+ bool is_realtime(process_id_t pid) {
+- const sched_attr attr = get_sched_attributes(pid);
++ const ananicy_sched_attr attr = get_sched_attributes(pid);
+ return attr.sched_priority > 0;
+ }
+
+--- a/src/platform/linux/syscalls.h
++++ b/src/platform/linux/syscalls.h
+@@ -69,7 +69,7 @@ static int ioprio_get(__priority_which_t _which, id_t _who) {
+ #define SCHED_FLAG_KEEP_POLICY 0x08
+ #endif
+
+-struct [[gnu::packed]] sched_attr {
++struct [[gnu::packed]] ananicy_sched_attr {
+ uint32_t size;
+
+ uint32_t sched_policy; // SCHED_(FIFO,RR,DEADLINE,OTHER,BATCH,IDLE, etc.)
+@@ -94,20 +94,20 @@ struct [[gnu::packed]] sched_attr {
+ int32_t sched_latency_nice;
+ };
+
+-static int sched_setattr(pid_t pid, const struct sched_attr *attr,
++static int ananicy_sched_setattr(pid_t pid, const struct ananicy_sched_attr *attr,
+ unsigned int flags) {
+ return static_cast<int>(syscall(__NR_sched_setattr, pid, attr, flags));
+ }
+
+-static int sched_getattr(pid_t pid, struct sched_attr *attr, unsigned int size,
++static int ananicy_sched_getattr(pid_t pid, struct ananicy_sched_attr *attr, unsigned int size,
+ unsigned int flags) {
+ return static_cast<int>(syscall(__NR_sched_getattr, pid, attr, size, flags));
+ }
+
+ static int get_latnice(pid_t pid) {
+ // pid==0 refers to calling thread
+- struct sched_attr attr = { .size = sizeof(struct sched_attr) };
+- if (sched_getattr(pid, &attr, sizeof(attr), 0) < 0) {
++ struct ananicy_sched_attr attr = { .size = sizeof(struct ananicy_sched_attr) };
++ if (ananicy_sched_getattr(pid, &attr, sizeof(attr), 0) < 0) {
+ std::perror("sched_getattr");
+ }
+ return attr.sched_latency_nice; // defaults to 0
+@@ -115,12 +115,12 @@ static int get_latnice(pid_t pid) {
+
+ static int set_latnice(pid_t pid, int latency_nice) {
+ // pid==0 refers to calling thread
+- struct sched_attr attr = {
+- .size = sizeof(struct sched_attr),
++ struct ananicy_sched_attr attr = {
++ .size = sizeof(struct ananicy_sched_attr),
+ .sched_flags = SCHED_FLAG_LATENCY_NICE | SCHED_FLAG_KEEP_PARAMS,
+ .sched_latency_nice = latency_nice,
+ };
+- const int err = sched_setattr(pid, &attr, 0);
++ const int err = ananicy_sched_setattr(pid, &attr, 0);
+ if (err < 0) {
+ // sched_setattr failed
+ if (errno == EINVAL) {
+--
+GitLab
+
diff --git a/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-remove-debug-flags.patch b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-remove-debug-flags.patch
new file mode 100644
index 000000000000..612eedddef23
--- /dev/null
+++ b/app-admin/ananicy-cpp/files/ananicy-cpp-1.1.1-remove-debug-flags.patch
@@ -0,0 +1,18 @@
+Removes debug flags from RELWITHDEBINFO build.
+Bug: https://bugs.gentoo.org/887193
+Signed-off-by: Alberto Gireud <agireud@protonmail.com>
+
+index e1a041f..7e16d4c 100644
+--- a/cmake/CompilerChecks.cmake
++++ b/cmake/CompilerChecks.cmake
+@@ -22,8 +22,6 @@ set(CMAKE_MESSAGE_CONTEXT "")
+
+ if(CXX_ACCEPTS_G3)
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3")
+- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_DEBUG} -g3")
+ elseif(CXX_ACCEPTS_G)
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
+- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_DEBUG} -g")
+ endif()
+
+ if(CXX_ACCEPTS_OG)
diff --git a/app-admin/ananicy-cpp/files/ananicy-cpp.initd b/app-admin/ananicy-cpp/files/ananicy-cpp.initd
new file mode 100644
index 000000000000..4d41fcbc16eb
--- /dev/null
+++ b/app-admin/ananicy-cpp/files/ananicy-cpp.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+pidfile="/run/ananicy-cpp.pid"
+command="/usr/bin/ananicy-cpp"
+command_args="start"
+command_background=true
+
+start_pre() {
+ /usr/sbin/sysctl -e kernel.sched_autogroup_enabled=0
+}
+
+stop_post() {
+ /usr/sbin/sysctl -e kernel.sched_autogroup_enabled=1
+}
+
+stop() {
+ start-stop-daemon --stop --pidfile "$pidfile"
+}
diff --git a/app-admin/ananicy-cpp/metadata.xml b/app-admin/ananicy-cpp/metadata.xml
new file mode 100644
index 000000000000..160250046dde
--- /dev/null
+++ b/app-admin/ananicy-cpp/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <bugs-to>https://gitlab.com/ananicy-cpp/ananicy-cpp/-/issues</bugs-to>
+ <remote-id type="gitlab">ananicy-cpp/ananicy-cpp</remote-id>
+ <remote-id type="github">kuche1/minq-ananicy</remote-id>
+ </upstream>
+ <use>
+ <flag name="bpf">Use eBPF for processing</flag>
+ <flag name="clang">Use Clang compiler instead of GCC</flag>
+ </use>
+</pkgmetadata>