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