kernel-manager
LOW
maintainer MadGoat
1 votes
scanned 2026-09-10 21:21:21.441781
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
84
pkgname=kernel-manager
85
pkgver=1.30.1
86
pkgrel=1
87
pkgdesc="Qt6 GUI for kernel configuration, compilation, and sched-ext (BPF) scheduler management"
88
arch=(x86_64)
89
url="https://github.com/MadGoatHaz/kernel-manager"
90
license=(GPL-3.0-or-later)
91
92
conflicts=(cachyos-kernel-manager kernel-manager-bin)
93
provides=(cachyos-kernel-manager)
94
95
depends=(qt6-base pacman glib2 polkit)
96
optdepends=("scx-manager: sched-ext (BPF) scheduler management")
97
makedepends=(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.
100
install=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
105
source=("https://github.com/MadGoatHaz/kernel-manager/archive/${_commit}.tar.gz")
106
sha256sums=("f0a3396ae91e3e029057a37b51b4aa239f830ae1af166a59b9c4f7fd9e9f1bf5")
107
108
# GitHub archive top dir for a commit is `<repo>-<full-sha>`.
109
_srcdir="kernel-manager-${_commit}"
110
111
build() {
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
125
package() {
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) | Severity | Rules |
|---|---|---|
| 2026-09-10 21:21:21 | Low | 1 |
| 2026-09-07 00:30:15 | Clean | 2 |
| 2026-09-06 23:12:41 | Low | 1 |