Initial Commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
# Exclude bpm archives
|
||||||
|
*.bpm
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Github repository
|
||||||
|
REPO="ilya-zlobintsev/LACT"
|
||||||
|
|
||||||
|
# Get tag name using Github Rest API
|
||||||
|
TAG_NAME=$(curl -s -L -H "X-GitHub-Api-Version: 2022-11-28" -H "Authorization: token ${GITHUB_API_TOKEN}" https://api.github.com/repos/"$REPO"/releases/latest | jq -r '.tag_name')
|
||||||
|
|
||||||
|
# Trim 'v' character in TAG_NAME variable
|
||||||
|
VERSION=$(echo "$TAG_NAME" | tr -d 'v')
|
||||||
|
|
||||||
|
echo "$VERSION"
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
name: lact
|
||||||
|
description: Linux GPU configuration and monitoring tool
|
||||||
|
version: 0.8.3
|
||||||
|
revision: 1
|
||||||
|
url: https://github.com/ilya-zlobintsev/LACT
|
||||||
|
license: MIT
|
||||||
|
architecture: any
|
||||||
|
type: source
|
||||||
|
depends:
|
||||||
|
- gcc-libs
|
||||||
|
- glibc
|
||||||
|
- gtk4
|
||||||
|
- hwdata
|
||||||
|
- ocl-icd
|
||||||
|
make_depends:
|
||||||
|
- rustc
|
||||||
|
- clang
|
||||||
|
- libadwaita
|
||||||
|
- fuse3
|
||||||
|
downloads:
|
||||||
|
- url: https://github.com/ilya-zlobintsev/LACT/archive/refs/tags/v${BPM_PKG_VERSION}.tar.gz
|
||||||
|
extract_to: ${BPM_SOURCE}
|
||||||
|
extract_strip_components: 1
|
||||||
|
checksum: f604b26fadfa4a53d5aaa7c8d8953dc8989710a8d68b3778efbde29ad7889bb0
|
||||||
|
split_packages:
|
||||||
|
- name: lact
|
||||||
|
conflicts:
|
||||||
|
- lact-libadwaita
|
||||||
|
- name: lact-libadwaita
|
||||||
|
description: Linux GPU configuration and monitoring tool (Libadwaita)
|
||||||
|
depends:
|
||||||
|
- gcc-libs
|
||||||
|
- glibc
|
||||||
|
- gtk4
|
||||||
|
- hwdata
|
||||||
|
- ocl-icd
|
||||||
|
- libadwaita
|
||||||
|
conflicts:
|
||||||
|
- lact
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
diff --git a/docs/CONFIG.md b/docs/CONFIG.md
|
||||||
|
index 2b1a803..29a86fd 100644
|
||||||
|
--- a/docs/CONFIG.md
|
||||||
|
+++ b/docs/CONFIG.md
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
The LACT config file is located in `/etc/lact/config.yaml`, and contains all of the GPU settings that are typically edited in the GUI, as well as a few settings specifying the behaviour of the daemon.
|
||||||
|
-LACT listens for config file changes and reloads all GPU settings automatically, but daemon-related settings such as the logging level or permissions require a service restart (`systemctl restart lactd`).
|
||||||
|
+LACT listens for config file changes and reloads all GPU settings automatically, but daemon-related settings such as the logging level or permissions require a service restart (` ectl sv restart lactd`).
|
||||||
|
|
||||||
|
Full config file with all possible options:
|
||||||
|
```yaml
|
||||||
|
diff --git a/lact-gui/src/app.rs b/lact-gui/src/app.rs
|
||||||
|
index 82b26ec..6294978 100644
|
||||||
|
--- a/lact-gui/src/app.rs
|
||||||
|
+++ b/lact-gui/src/app.rs
|
||||||
|
@@ -212,7 +212,7 @@ impl AsyncComponent for AppModel {
|
||||||
|
.expect("Could not list devices");
|
||||||
|
|
||||||
|
if system_info.version != GUI_VERSION || system_info.commit.as_deref() != Some(GIT_COMMIT) {
|
||||||
|
- let err = anyhow!("Version mismatch between GUI and daemon ({GUI_VERSION}-{GIT_COMMIT} vs {}-{})! If you have updated LACT, you need to restart the service with `sudo systemctl restart lactd`.", system_info.version, system_info.commit.as_deref().unwrap_or_default());
|
||||||
|
+ let err = anyhow!("Version mismatch between GUI and daemon ({GUI_VERSION}-{GIT_COMMIT} vs {}-{})! If you have updated LACT, you need to restart the service with `sudo ectl sv reload && sudo ectl sv restart lactd`.", system_info.version, system_info.commit.as_deref().unwrap_or_default());
|
||||||
|
sender.input(AppMsg::Error(err.into()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1045,7 +1045,7 @@ fn show_embedded_info(parent: &ApplicationWindow, err: anyhow::Error) {
|
||||||
|
|
||||||
|
let text_label = gtk::Label::new(Some(&text));
|
||||||
|
let enable_label = gtk::Entry::builder()
|
||||||
|
- .text("sudo systemctl enable --now lactd")
|
||||||
|
+ .text("sudo ectl sv reload && sudo ectl sv enable lactd && sudo ectl sv start lactd")
|
||||||
|
.editable(false)
|
||||||
|
.build();
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
name: lactd
|
||||||
|
description: LACT GPU control daemon
|
||||||
|
type: background
|
||||||
|
start_cmd: /usr/bin/lact daemon
|
||||||
|
exit_method: kill
|
||||||
|
restart: true
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
|
||||||
|
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
|
||||||
|
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
|
||||||
|
|
||||||
|
# The prepare function is executed in the root of the temp directory
|
||||||
|
# This function is used for putting downloaded files to the correct location or applying patches
|
||||||
|
prepare() {
|
||||||
|
cd "$BPM_SOURCE"
|
||||||
|
# Add enit support
|
||||||
|
patch -Np1 -i "$BPM_WORKDIR"/enit-support.patch
|
||||||
|
|
||||||
|
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
|
||||||
|
}
|
||||||
|
|
||||||
|
# The build function is executed in the source directory
|
||||||
|
# This function is used to compile the source code
|
||||||
|
build() {
|
||||||
|
# Libadwaita
|
||||||
|
cargo build --release --locked --frozen --features=adw
|
||||||
|
mv target/release/lact target/release/lact-libadwaita
|
||||||
|
|
||||||
|
# GTK4
|
||||||
|
cargo build --release --locked --frozen
|
||||||
|
}
|
||||||
|
|
||||||
|
# The check function is executed in the source directory
|
||||||
|
# This function is used to run tests to verify the package has been compiled correctly
|
||||||
|
check() {
|
||||||
|
cargo test --release --frozen --all --all-features --verbose
|
||||||
|
}
|
||||||
|
|
||||||
|
# The package function is executed in the source directory
|
||||||
|
# This function is used to move the compiled files into the output directory
|
||||||
|
package_lact() {
|
||||||
|
make PREFIX=/usr DESTDIR="$BPM_OUTPUT" install
|
||||||
|
install -Dm755 target/release/lact "$BPM_OUTPUT"/usr/bin/lact
|
||||||
|
|
||||||
|
# Remove systemd service
|
||||||
|
rm -r "$BPM_OUTPUT"/usr/lib
|
||||||
|
|
||||||
|
# Install esvm service
|
||||||
|
install -Dm644 "$BPM_WORKDIR"/lactd.esv "$BPM_OUTPUT"/etc/esvm/services/lactd.esv
|
||||||
|
|
||||||
|
# Install package license
|
||||||
|
install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/lact/LICENSE
|
||||||
|
}
|
||||||
|
|
||||||
|
package_lact-libadwaita() {
|
||||||
|
make PREFIX=/usr DESTDIR="$BPM_OUTPUT" install
|
||||||
|
install -Dm755 target/release/lact-libadwaita "$BPM_OUTPUT"/usr/bin/lact
|
||||||
|
|
||||||
|
# Remove systemd service
|
||||||
|
rm -r "$BPM_OUTPUT"/usr/lib
|
||||||
|
|
||||||
|
# Install esvm service
|
||||||
|
install -Dm644 "$BPM_WORKDIR"/lactd.esv "$BPM_OUTPUT"/etc/esvm/services/lactd.esv
|
||||||
|
|
||||||
|
# Install package license
|
||||||
|
install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/lact/LICENSE
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user