kernel-manager

LOW
maintainer MadGoat 1 votes scanned 2026-09-10 21:21:21.441781
View on AUR
Why flagged

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: MadGoat <ghazlett@gmail.com>
2#
3# Distro-agnostic (generic Arch) STABLE packaging for kernel-manager.
4#
5# This package builds a FIXED, checksummed source snapshot (a single commit)
6# rather than tracking a moving branch. See PKGBUILD-git for the rolling
7# variant that tracks `main` (per D7).
8#
9# --------------------------------------------------------------------------
10# VERSIONING
11# pkgver mirrors the version of the pinned source tree. The pre-rebrand
12# tags (incl. v1.19.0) package the WRONG (CachyOS-branded) content and are
13# not used.
14#
15# The stable source below is pinned to the v1.30.1 release: the
16# version-bump commit fed562c9a (`release: bump version to 1.30.1`) is the
17# TAG TARGET (the annotated tag v1.30.1 sits on it) and the `_commit` this
18# package fetches. Because `_commit` points at the version-bump commit
19# (not at this re-pin), the archived source is a stable, non-circular
20# snapshot. The v1.30.1 cycle: UI polish — the kernel-info header unified
21# into a single 4×4 grid (the Release hero spanning columns 1–2, Compiler
22# and Arch anchored to columns 3–4) and the compact build-date format
23# (`Mon DD, YYYY HH:MM`, the SMP/PREEMPT prefix dropped).
24#
25# RELEASE PROCEDURE (v1.30.x and later):
26# 1. Bump the CMake VERSION — the version-bump commit is the tag target.
27# 2. Re-pin THIS file to that commit: bump `pkgver`, set `_commit` to
28# the version-bump commit's full SHA, and refresh `sha256sums` from
29# a REAL double-fetched GitHub archive (two independent fetches
30# verified byte-identical before the sum is recorded).
31# 3. Cut the annotated tag on the version-bump commit.
32# 4. Publish the GitHub release with
33# `gh --repo MadGoatHaz/kernel-manager` (ALWAYS pass --repo — from
34# this directory `gh` infers the upstream CachyOS/kernel-manager and
35# 404s / runs against the wrong repo).
36# Each subsequent cut (v1.30.2 and later) follows exactly this procedure
37# and re-pins this file to the new version-bump commit.
38#
39# --------------------------------------------------------------------------
40# DEPENDENCIES (verified against `ldd` on the built binary + the CMake build)
41# depends (runtime):
42# qt6-base -> libQt6Widgets/Gui/Core/Concurrent/DBus .so.6
43# pacman -> libalpm.so.16
44# glib2 -> libglib-2.0.so.0
45# polkit -> pkexec, used by /usr/lib/kernel-manager/rootshell.sh for
46# the privilege-escalation path (auth_admin polkit action)
47#
48# optdepends:
49# scx-manager -> optional sched-ext (BPF) scheduler management. The default
50# build has WITH_SCX_MANAGER=OFF (find_package(scxctl-ui
51# QUIET) not found -> feature compiled out, schedext button
52# hidden). Installing scx-manager and rebuilding with
53# -DWITH_SCX_MANAGER=ON (auto-enabled when its scxctl-ui
54# CMake config is present) lights the feature up; the
55# binary then additionally links libscxctl-ui.so.1.
56#
57# makedepends (build time only):
58# cmake make gcc -> toolchain (C++23, Release, LTO). The build uses the
59# default compiler (GCC), NOT clang/libc++ -- so
60# llvm/libc++ are intentionally absent.
61# git -> CPM fetches fmt/frozen/Corrosion from GitHub at configure
62# rust -> cargo, for the Corrosion/cxx Rust crate (config-option-lib)
63# qt6-tools -> lrelease, generates the .qm translations (embedded into
64# the binary via km_locale.qrc -- NOT installed separately)
65# pkgconf -> pkg-config, resolves libalpm.pc + glib-2.0.pc
66# python -> Python3, runs src/mkoptions.py code generation
67# pacman glib2 -> headers/.pc for the build (same package is also a runtime
68# dep; on Arch one package provides both)
69# polkit-qt6 -> PolkitQt6-1 CMake config for find_package(PolkitQt6-1).
70# Build-time only: the polkit-qt6 library is NOT linked into
71# the binary (verified via ldd), so it is not a runtime dep.
72#
73# scx-manager is intentionally NOT a (make)dep: the default build is
74# WITH_SCX_MANAGER=OFF and needs no scxctl-ui headers/config (WU-5).
75#
76# fmt + frozen are CPM-vendored (fetched at configure time) -- build-only,
77# not runtime deps.
78#
79# --------------------------------------------------------------------------
80# CONFLICTS / PROVIDES
81# This is the rebrand of the former `cachyos-kernel-manager` package. The
82# conflict + provide make it drop-in replace the CachyOS package cleanly.
83
84pkgname=kernel-manager
85pkgver=1.30.1
86pkgrel=1
87pkgdesc="Qt6 GUI for kernel configuration, compilation, and sched-ext (BPF) scheduler management"
88arch=(x86_64)
89url="https://github.com/MadGoatHaz/kernel-manager"
90license=(GPL-3.0-or-later)
91
92conflicts=(cachyos-kernel-manager kernel-manager-bin)
93provides=(cachyos-kernel-manager)
94
95depends=(qt6-base pacman glib2 polkit)
96optdepends=("scx-manager: sched-ext (BPF) scheduler management")
97makedepends=(cmake make gcc git rust qt6-tools pkgconf python pacman glib2 polkit-qt6)
98
99# Defensive polkit reload so the shipped policy is picked up on (re)install.
100install=kernel-manager.install
101
102# Pinned v1.30.1 release commit (the version-bump commit, one before the
103# v1.30.1 tag — see the VERSIONING note above).
104_commit=fed562c9a04cc84efb83abaf1f75bd7eba1fe840
105source=("https://github.com/MadGoatHaz/kernel-manager/archive/${_commit}.tar.gz")
106sha256sums=("f0a3396ae91e3e029057a37b51b4aa239f830ae1af166a59b9c4f7fd9e9f1bf5")
107
108# GitHub archive top dir for a commit is `<repo>-<full-sha>`.
109_srcdir="kernel-manager-${_commit}"
110
111build() {
112 # Fat LTO objects so makepkg can strip the LTO-built binary/static archives;
113 # see https://archlinux.org/todo/lto-fat-objects/ (this project enables LTO
114 # for Release builds in CMakeLists).
115 CFLAGS+=" -ffat-lto-objects"
116 CXXFLAGS+=" -ffat-lto-objects"
117
118 cd "$srcdir/$_srcdir"
119 cmake -S . -B build \
120 -DCMAKE_BUILD_TYPE=Release \
121 -DCMAKE_INSTALL_PREFIX=/usr
122 cmake --build build
123}
124
125package() {
126 cd "$srcdir/$_srcdir"
127 # Stages every artifact under $pkgdir/usr/...:
128 # binary -> usr/bin/kernel-manager
129 # terminal-helper -> usr/lib/kernel-manager/terminal-helper
130 # rootshell.sh -> usr/lib/kernel-manager/rootshell.sh
131 # polkit policy -> usr/share/polkit-1/actions/org.archlinux.kernel-manager.pkexec.policy
132 # desktop -> usr/share/applications/org.archlinux.KernelManager.desktop
133 # 10 icons -> usr/share/icons/hicolor/<size>/apps/org.archlinux.KernelManager.png
134 #
135 # The helper + policy destinations are ABSOLUTE in CMakeLists
136 # (KM_HELPER_DIR=/usr/lib/kernel-manager, POLKITQT-1_POLICY_FILES_INSTALL_DIR=
137 # /usr/share/polkit-1/actions), so a bare `cmake --install --prefix` alone
138 # would skip them. DESTDIR correctly prepends the staging dir to every
139 # destination (relative AND absolute). The .qm translations are embedded into
140 # the binary via km_locale.qrc and are NOT installed as separate files.
141 DESTDIR="$pkgdir" cmake --install build --prefix /usr
142
143 # Ship the project license (matches the sibling `scx-manager` package).
144 install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
145}
146

Changes since previous scan

--- PKGBUILD @ 2026-09-07 00:30
+++ PKGBUILD @ 2026-09-10 21:21
@@ -89,7 +89,7 @@
url="https://github.com/MadGoatHaz/kernel-manager"
license=(GPL-3.0-or-later)
-conflicts=(cachyos-kernel-manager)
+conflicts=(cachyos-kernel-manager kernel-manager-bin)
provides=(cachyos-kernel-manager)
depends=(qt6-base pacman glib2 polkit)

Scan history

Scanned at (UTC)SeverityRules
2026-09-10 21:21:21 Low 1
2026-09-07 00:30:15 Clean 2
2026-09-06 23:12:41 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion