finkeeper24-bin
The package downloads a prebuilt .deb binary from a non-whitelisted, project-owned host (finkeeper24.ru), which is an unverifiable executable artifact that could be silently swapped, representing a supply-chain risk.
Triggered rules
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:19
source=("finkeeper24-${pkgver}.deb::https://finkeeper24.ru/downloads/linux/finkeeper24_${pkgver}_amd64.deb"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt .deb binary from a non-whitelisted, project-owned host (finkeeper24.ru), which is an unverifiable executable artifact that could be silently swapped, representing a supply-chain risk.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Vladimir <racerkafa@gmail.com>
pkgname=finkeeper24-bin
pkgver=2.2.3
pkgrel=1
pkgdesc="FinKeeper24 - менеджер личных финансов (Personal Finance Manager)"
arch=('x86_64')
url="https://finkeeper24.ru"
license=('Apache-2.0')
# Графические зависимости (Arch-аналоги Depends из .deb).
# Java не нужна — в пакете свой встроенный JRE 17 (сборка через jpackage).
depends=('alsa-lib' 'brotli' 'libbsd' 'bzip2' 'glibc' 'expat' 'fontconfig'
'freetype2' 'libglvnd' 'libmd' 'libpng' 'libx11' 'libxau' 'libxcb'
'libxdmcp' 'libxext' 'libxi' 'libxrender' 'libxtst' 'xdg-utils' 'zlib')
provides=('finkeeper24')
conflicts=('finkeeper24')
# Не трогаем готовые бинарники апстрима
options=('!strip')
source=("finkeeper24-${pkgver}.deb::https://finkeeper24.ru/downloads/linux/finkeeper24_${pkgver}_amd64.deb"
"LICENSE-Apache-2.0::https://www.apache.org/licenses/LICENSE-2.0.txt")
sha256sums=('d54a274050756ae9c392296421e64bb068471ad39e04c04b043c289c0674caf3'
'cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30')
package() {
# Содержимое .deb (makepkg уже распаковал data.tar.* (любое сжатие) в srcdir)
bsdtar -xf "${srcdir}"/data.tar.* -C "${pkgdir}/"
# Ярлык в меню (свой, с нормальной категорией — в апстримном стоит Unknown)
install -d "${pkgdir}/usr/share/applications"
cat > "${pkgdir}/usr/share/applications/finkeeper24.desktop" <<'EOF'
[Desktop Entry]
Name=FinKeeper24
Comment=Менеджер личных финансов
Exec=/opt/finkeeper24/bin/FinKeeper24
Icon=/opt/finkeeper24/lib/FinKeeper24.png
Terminal=false
Type=Application
Categories=Office;Finance;
# App ID, который окно Compose Desktop репортит на Wayland (= имя главного класса
# ru.homebudget.finkeeper.MainKt). Должен совпадать с ним, иначе Dock (Niri/DMS)
# не сопоставит окно с .desktop → дефолтная иконка и кривое имя.
StartupWMClass=ru-homebudget-finkeeper-MainKt
EOF
# Запуск командой finkeeper24
install -d "${pkgdir}/usr/bin"
ln -s /opt/finkeeper24/bin/FinKeeper24 "${pkgdir}/usr/bin/finkeeper24"
# Лицензия
install -Dm644 "${srcdir}/LICENSE-Apache-2.0" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |