conservation-daemon-bin
The package downloads a prebuilt binary from the project's own Git repository release page, which is a plausible and expected source for a binary-only release; the host is not whitelisted but is owned by the maintainer and used consistently for the project, and the binary is installed directly without obfuscation or remote code execution.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt binary from the project's own Git repository release page, which is a plausible and expected source for a binary-only release; the host is not whitelisted but is owned by the maintainer and used consistently for the project, and the binary is installed directly without obfuscation or remote code execution.
1 higher static finding superseded - not the current verdict (shown for transparency)
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:16
source_x86_64=("${pkgname}_${pkgver}_x86_64.tar.gz::https://git.marcorealacci.me/marcorealacci/conservation-daemon/releases/download/v${pkgver}/conservation-daemon_${pkgver}_linux_amd64.tar.gz")
PKGBUILD
1 offending line(s) highlighted# This file was generated by GoReleaser. DO NOT EDIT.
# Maintainer: Marco Realacci <marco@marcorealacci.me>
pkgname='conservation-daemon-bin'
pkgver=0.2.3
pkgrel=1
pkgdesc='Battery conservation mode daemon for Lenovo Yoga/IdeaPad'
url='https://git.marcorealacci.me/marcorealacci/conservation-daemon'
arch=('x86_64')
license=('MIT')
provides=('conservation-daemon' 'conservationd' 'conservationctl' 'conservation-tray')
conflicts=('conservation-daemon')
depends=('upower' 'gtk3' 'libayatana-appindicator' 'zenity')
install=conservation-daemon.install
source_x86_64=("${pkgname}_${pkgver}_x86_64.tar.gz::https://git.marcorealacci.me/marcorealacci/conservation-daemon/releases/download/v${pkgver}/conservation-daemon_${pkgver}_linux_amd64.tar.gz")
sha256sums_x86_64=('bf4918ba9e6a1ae290d18c5dec3e256b0438e1be65d077517ec8378456e735d1')
package() {
install -Dm755 "./conservationd" "${pkgdir}/usr/bin/conservationd"
install -Dm755 "./conservationctl" "${pkgdir}/usr/bin/conservationctl"
install -Dm755 "./conservation-tray" "${pkgdir}/usr/bin/conservation-tray"
# System-level daemon service
install -d "${pkgdir}/usr/lib/systemd/system"
printf '%s\n' \
'[Unit]' \
'Description=Battery Conservation Mode Daemon (Lenovo Yoga/IdeaPad)' \
'After=network.target dbus.service upower.service' \
'Wants=upower.service' \
'' \
'[Service]' \
'Type=simple' \
'ExecStart=/usr/bin/conservationd' \
'Restart=on-failure' \
'RestartSec=5s' \
'RuntimeDirectory=conservationd' \
'StateDirectory=conservationd' \
'Group=conservationd' \
'RuntimeDirectoryMode=0770' \
'StateDirectoryMode=0755' \
'' \
'[Install]' \
'WantedBy=multi-user.target' \
> "${pkgdir}/usr/lib/systemd/system/conservationd.service"
# User-level tray service
install -d "${pkgdir}/usr/lib/systemd/user"
printf '%s\n' \
'[Unit]' \
'Description=Battery Conservation Tray Icon' \
'After=graphical-session.target' \
'PartOf=graphical-session.target' \
'' \
'[Service]' \
'Type=simple' \
'ExecStart=/usr/bin/conservation-tray' \
'Restart=on-failure' \
'RestartSec=5s' \
'' \
'[Install]' \
'WantedBy=graphical-session.target' \
> "${pkgdir}/usr/lib/systemd/user/conservation-tray.service"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |