scx package check

This commit is contained in:
Ward from fusion-voyager-3 2024-06-22 21:15:37 +03:00
parent 9cd9f6dd8f
commit b0dca62811
10 changed files with 36 additions and 14 deletions

BIN
core

Binary file not shown.

View File

@ -13,6 +13,12 @@
"packages": "kernel-cachyos kernel-cachyos-devel-matched",
"min_x86_march": "2"
},
{
"name": "Sched EXT SCX",
"main_package": "sched-ext-scx",
"packages": "sched-ext-scx",
"min_x86_march": "1"
},
{
"name": "UKSMD Daemon",
"main_package": "uksmd",

View File

@ -8,6 +8,7 @@
"browse_kernels_button_tooltip_text": "Browse Kernel for select branch",
"config_kernel_button_tooltip_text": "Configure Sched_EXT settings",
"config_kernel_button_tooltip_text_no_scx": "Currently running kernel doesn't support Sched-EXT",
"config_kernel_button_tooltip_text_no_scx_installed": "Your kernel supports Sched-EXT but the sched-ext-scx packages is not installed!\nInstall it, reboot, try again",
"null_checkbutton_label": "No branch selected",
"db_load_complete": "DB load complete!",
"db_downloading": "Downloading & Parsing package DB for",

View File

@ -4,7 +4,7 @@
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
<policyconfig>
<action id="fdm.change.scx">
<action id="fkm.change.scx">
<message>Authentication is required to change the SCX Scheduler</message>
<icon_name>com.github.cosmicfusion.fedora-kernel-manager</icon_name>
<defaults>

View File

@ -4,7 +4,7 @@
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
<policyconfig>
<action id="fdm.kernel.cachyos.init">
<action id="fkm.kernel.cachyos.init">
<message>Authentication is required to initialize the Cachyos kernel repo</message>
<icon_name>com.github.cosmicfusion.fedora-kernel-manager</icon_name>
<defaults>

View File

@ -4,7 +4,7 @@
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
<policyconfig>
<action id="fdm.modify.package">
<action id="fkm.modify.package">
<message>Authentication is required to modify system packages</message>
<icon_name>com.github.cosmicfusion.fedora-kernel-manager</icon_name>
<defaults>

View File

@ -1,6 +0,0 @@
/* Allow passwordless auth for fdm.kernel.cachyos.init
polkit.addRule(function(action, subject) {
if (action.id == "fdm.kernel.cachyos.init" {
return polkit.Result.YES;
}
});

View File

@ -0,0 +1,6 @@
/* Allow passwordless auth for fkm.kernel.cachyos.init
polkit.addRule(function(action, subject) {
if (action.id == "fkm.kernel.cachyos.init" {
return polkit.Result.YES;
}
});

View File

@ -30,6 +30,8 @@ Requires: polkit
Requires: iputils
Requires: fedora-kernel-manager-cachyos-config
Recommends: sched-ext-scx
%description
A Libadwaita rust based application for managing and installing kernels.
@ -42,8 +44,8 @@ Config files to enable coprs/bieszczaders/kernel-cachyos in fedora-kernel-manage
%files cachyos-config
%{_prefix}/lib/fedora-kernel-manager/kernel_branches/kernel-cachyos.json
%{_datadir}/polkit-1/actions/fdm.kernel.cachyos.init.policy
%{_datadir}/polkit-1/rules.d/99-fdm.kernel.cachyos.init.rules
%{_datadir}/polkit-1/actions/fkm.kernel.cachyos.init.policy
%{_datadir}/polkit-1/rules.d/99-fkm.kernel.cachyos.init.rules
%prep
%autosetup -p1 -n nobara-drivers-gtk4
@ -56,5 +58,5 @@ DESTDIR=%{buildroot} make install
%{_bindir}/*
%{_datadir}/applications/*
%{_datadir}/icons/hicolor/scalable/apps/*.svg
%{_datadir}/polkit-1/actions/fdm.change.scx.policy
%{_datadir}/polkit-1/actions/fdm.modify.package.policy
%{_datadir}/polkit-1/actions/fkm.change.scx.policy
%{_datadir}/polkit-1/actions/fkm.modify.package.policy

View File

@ -149,14 +149,18 @@ pub fn content(
.height_request(50)
.width_request(50)
.tooltip_text(t!("config_kernel_button_tooltip_text"))
.sensitive(is_scx_kernel())
.hexpand(true)
.build();
config_kernel_button.add_css_class("circular");
if !is_scx_kernel() {
config_kernel_button.set_sensitive(false);
config_kernel_button
.set_tooltip_text(Some(&t!("config_kernel_button_tooltip_text_no_scx").to_string()));
} else if is_scx_kernel() && !is_scx_installed() {
config_kernel_button.set_sensitive(false);
config_kernel_button
.set_tooltip_text(Some(&t!("config_kernel_button_tooltip_text_no_scx_installed").to_string()));
}
config_kernel_button.connect_clicked(clone!(@weak content_stack, @weak window, @weak sched_ext_badge_box => move |_| {
@ -587,4 +591,13 @@ fn create_current_sched_badge(
&kernel_badges_size_group0,
&kernel_badges_size_group1,
)));
}
fn is_scx_installed() -> bool {
match Command::new("rpm")
.args(["-q", "sched-ext-scx"])
.output() {
Ok(t) if t.status.success() => true,
_ => false
}
}