add readme
This commit is contained in:
parent
f6dfcd9501
commit
6d1e6852e5
119
README.MD
Normal file
119
README.MD
Normal file
@ -0,0 +1,119 @@
|
||||
|
||||
### Intro
|
||||
|
||||
Fedora Kernel Manager is a rust written libadwaita app that allows installing/uninstalling kernel packages from "Kernel Branch Providers"
|
||||
|
||||
These kernel branches are json files in ```/usr/lib/fedora-kernel-manager/kernel_branches/```
|
||||
|
||||
## Example of Kernel Branch
|
||||
|
||||
```xpath
|
||||
/usr/lib/fedora-kernel-manager/kernel_branches/kernel-cachyos.json
|
||||
```
|
||||
```json
|
||||
{
|
||||
"name": "kernel-cachyos",
|
||||
"db_url": "https://raw.githubusercontent.com/sirlucjan/copr-linux-cachyos/master/sources/cachyos-fkm-config/db_kernel_cachy.json",
|
||||
"init_script": "pkexec /usr/lib/fedora-kernel-manager/scripts/kernel-cachyos-init.sh"
|
||||
}
|
||||
```
|
||||
|
||||
`name` obviously refers to branch name shown to users
|
||||
|
||||
`db_url` the url to this branch DB that gets downloaded at run time when users open the app
|
||||
|
||||
`init_script` a command to run upon reading the branch json usually this has a repo check and repo addition with policykit rule to not ask for a password
|
||||
|
||||
See:
|
||||
|
||||
```xpath
|
||||
/usr/lib/fedora-kernel-manager/scripts/kernel-cachyos-init.sh
|
||||
```
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
YUM_CHANGED=false
|
||||
KERNEL_CACHYOS_REPO_FILE='/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos.repo'
|
||||
KERNEL_CACHYOS_ADDONS_REPO_FILE='/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos-addons.repo'
|
||||
|
||||
if [ ! -f $KERNEL_CACHYOS_REPO_FILE ]
|
||||
then
|
||||
wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-fedora-$(rpm -E %fedora).repo -O $KERNEL_CACHYOS_REPO_FILE
|
||||
YUM_CHANGED=true
|
||||
fi
|
||||
|
||||
if [ ! -f $KERNEL_CACHYOS_ADDONS_REPO_FILE ]
|
||||
then
|
||||
wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo -O $KERNEL_CACHYOS_ADDONS_REPO_FILE
|
||||
YUM_CHANGED=true
|
||||
fi
|
||||
if [ YUM_CHANGED == true ]
|
||||
then
|
||||
dnf repoquery
|
||||
fi
|
||||
```
|
||||
|
||||
### Kernel Branch DB
|
||||
This is the json file the db_url references, it is not to be packaged only hosted and maintained by the kernel branch providers
|
||||
|
||||
## Example of Kernel Branch DB
|
||||
|
||||
```xpath
|
||||
https://raw.githubusercontent.com/sirlucjan/copr-linux-cachyos/master/sources/cachyos-fkm-config/db_kernel_cachy.json
|
||||
```
|
||||
```json
|
||||
{
|
||||
"latest_kernel_version_deter_pkg": "kernel-cachyos",
|
||||
"kernels": [
|
||||
{
|
||||
"name": "CachyOS Default Kernel",
|
||||
"main_package": "kernel-cachyos",
|
||||
"packages": "kernel-cachyos kernel-cachyos-devel-matched",
|
||||
"min_x86_march": "3"
|
||||
},
|
||||
{
|
||||
"name": "CachyOS LTS Kernel",
|
||||
"main_package": "kernel-cachyos-lts",
|
||||
"packages": "kernel-cachyos-lts kernel-cachyos-lts-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",
|
||||
"packages": "uksmd",
|
||||
"min_x86_march": "1"
|
||||
},
|
||||
{
|
||||
"name": "CachyOS-Settings",
|
||||
"main_package": "cachyos-settings",
|
||||
"packages": "cachyos-settings",
|
||||
"min_x86_march": "1"
|
||||
},
|
||||
{
|
||||
"name": "Ananicy-CPP",
|
||||
"main_package": "ananicy-cpp",
|
||||
"packages": "ananicy-cpp",
|
||||
"min_x86_march": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
`latest_kernel_version_deter_pkg` The kernel manager informs the user of what is the latest version hosted by their selected branch.
|
||||
This is done by reading the version of the rpm package set in this json value.
|
||||
|
||||
`kernels` The array where the branch provider input all the "Kernels"/Packages to be shown to the user each should have the following values:
|
||||
|
||||
* `name` The Pretty name of the package.
|
||||
* `main_package` The primary package (only 1) of entry it is used to get the description and version of the entry.
|
||||
* `packages` One or more package, it refers to what actually gets installed and removed.
|
||||
* `min_x86_march` The minimum x86 micro-architecture needed, if the user has `x86-64-v3` and this value is set to `4` the entry will not be displayed to the user.
|
||||
|
||||
### GUI
|
BIN
assets/branch_select.png
Normal file
BIN
assets/branch_select.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
BIN
assets/kernel_install.png
Normal file
BIN
assets/kernel_install.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
BIN
assets/main_page.png
Normal file
BIN
assets/main_page.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
BIN
assets/scx_select.png
Normal file
BIN
assets/scx_select.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
Loading…
Reference in New Issue
Block a user