sabydesktop

LOW
maintainer leoneii 1 votes scanned 2026-09-17 00:27:14.276658
View on AUR
Why flagged

The package downloads prebuilt .deb files from the official vendor domain update.saby.ru, which is plausibly the project's own release infrastructure; despite the static analyzer flag for a non-standard host, the source is verifiable and checksummed, and the build process only extracts and reorganizes the official binaries without executing remote code.

Triggered rules

Low AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads prebuilt .deb files from the official vendor domain update.saby.ru, which is plausibly the project's own release infrastructure; despite the static analyzer flag for a non-standard host, the source is verifiable and checksummed, and the build process only extracts and reorganizes the official binaries without executing remote code.

1 higher static finding superseded - not the current verdict (shown for transparency)
Medium source=() URL on a non-standard host 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:30 source=("${_saby_deb}::https://update.saby.ru/SabyDesktop/${pkgver}/linux/deb_repo/saby.deb"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: leoneii comdir@infonix.info
2
3# Версии всех трёх продуктов зафиксированы (НЕ "master") - обновляются вручную
4# локальным скриптом check-update.sh (не входит в AUR-репозиторий), который
5# проверяет апстрим через лёгкие JSON-манифесты update.saby.ru/rules/<Продукт>.json
6# и сам вызывает updpkgsums для пересчёта чек-сумм. Здесь, в PKGBUILD,
7# никакой сетевой логики во время сборки нет - только фиксированные версии.
8
9name=SabyDesktop
10pkgname=sabydesktop
11url="https://saby.ru/"
12pkgver=26.4200.583
13pkgrel=1
14pkgdesc="SabyDesktop- приложения от Сбис, включая сбис-плагин, предоставляет доступ к дополнительным инструментам и сервисам saby, например использованию электронной подписи"
15arch=('x86_64')
16license=('Custom')
17
18# Версии вспомогательных продуктов - могут отличаться от pkgver самого
19# SabyDesktop. Обновляются вместе с pkgver в check-update.sh.
20_ver_nmh="26.4200.157"
21_ver_center="26.4200.190"
22
23# Локальные имена файлов включают версию - иначе при обновлении версии
24# новый .deb рискует не перезаписать (или не отличаться от) старого кэша
25# с тем же фиксированным именем.
26_saby_deb="saby-${pkgver}.deb"
27_nmh_deb="nmh-transport-${_ver_nmh}.deb"
28_center_deb="sabycenter-${_ver_center}.deb"
29
30source=("${_saby_deb}::https://update.saby.ru/SabyDesktop/${pkgver}/linux/deb_repo/saby.deb"
31 "${_nmh_deb}::https://update.saby.ru/NmhTransport/${_ver_nmh}/linux/deb_repo/nmh-transport.deb"
32 "${_center_deb}::https://update.saby.ru/SabyCenter/${_ver_center}/linux/deb_repo/sabycenter.deb")
33sha256sums=('c5144d103af9cd5afeac99ac0dfc376f862bc384452507f45a9a8003b7a8e2df'
34 '8c3395b391551d1b29a3b0ac6ca0e3c4718b77f562c4a6c48c326799378dd5c2'
35 '0a2f7cf4dae85b67c34570e797073ea63f57de5e9606ca3831fc9ad1118c1691')
36
37depends=(
38 'glibc'
39 'gcc-libs'
40 'util-linux-libs'
41)
42
43build() {
44 echo "Skiping build....."
45}
46
47package() {
48 # Копируем необходимые файлы в каталог пакета
49 echo "Extracting the data.tar.xz..."
50 # Перебираем известные .deb файлы (явные переменные, а не basename(source[]) -
51 # т.к. локальное имя файла теперь отличается от хвоста URL из-за версии в имени)
52 local deb_files=("${_saby_deb}" "${_nmh_deb}" "${_center_deb}")
53 for deb_name in "${deb_files[@]}"; do
54 msg2 "Распаковка пакета: ${deb_name}"
55
56 # Извлекаем внутренний архив и СРАЗУ распаковываем его содержимое в $pkgdir
57 # bsdtar умеет читать поток из stdout через '-'
58 bsdtar -O -xf "${srcdir}/${deb_name}" data.tar.xz | bsdtar -xf - -C "${pkgdir}" 2>/dev/null || \
59 bsdtar -O -xf "${srcdir}/${deb_name}" data.tar.gz | bsdtar -xf - -C "${pkgdir}" 2>/dev/null || \
60 bsdtar -O -xf "${srcdir}/${deb_name}" data.tar.zst | bsdtar -xf - -C "${pkgdir}"
61 done
62
63 # 2. Описание папок для переноса (в формате "откуда:куда")
64 local paths_to_move=(
65 "opt/Tensor/Saby/temp_saby:opt/Tensor/Saby"
66 "opt/Tensor/Saby Center/temp_sabycenter:opt/Tensor/Saby Center"
67 "opt/nmh-transport/temp_nmh:opt/nmh-transport"
68 )
69
70 # 3. Перенос содержимого в цикле
71 for pair in "${paths_to_move[@]}"; do
72 local src_rel="${pair%%:*}"
73 local dst_rel="${pair#*:}"
74
75 local src_dir="${pkgdir}/${src_rel}"
76 local dst_dir="${pkgdir}/${dst_rel}"
77
78 msg2 "Перенос файлов из ${src_rel##*/} в основную директорию..."
79
80 if [ -d "${src_dir}" ]; then
81 mkdir -p "${dst_dir}"
82 cp -ra "${src_dir}/." "${dst_dir}/"
83 rm -rf "${src_dir}"
84 else
85 warning "Директория ${src_rel} не найдена в этой сессии сборки. Пропускаем."
86 fi
87 done
88
89 # 4. Иконка: .deb уже кладёт её по фиксированному пути (не зависит от версии) —
90 # /opt/Tensor/Saby/icons/, поэтому копировать/искать версию не нужно.
91 if [ ! -f "${pkgdir}/opt/Tensor/Saby/icons/default_dark.png" ]; then
92 warning "Иконка default_dark.png не найдена по ожидаемому пути — .desktop будет без своей иконки."
93 fi
94
95 # 5. Помечаем версию как "проверенную" — маркер, который .deb обычно создаёт
96 # в postinst-скрипте (integrity.checked). Без него бинарник saby
97 # отказывается запускаться, тихо завершаясь с кодом 1.
98 _verdir=$(find "${pkgdir}/opt/Tensor/Saby" -maxdepth 1 -type d -regextype posix-extended \
99 -regex '.*/[0-9]+\.[0-9]+\.[0-9]+' 2>/dev/null | sort -V | tail -n1)
100
101 if [ -n "${_verdir}" ]; then
102 touch "${_verdir}/integrity.checked"
103 else
104 warning "Версионная директория не найдена — integrity.checked не создан, saby может не запуститься."
105 fi
106
107 # 6. Создаём .desktop-файл (ярлык в меню приложений) — запускаем saby напрямую,
108 # без обёртки: бинарник сам находит свою версию и LD_LIBRARY_PATH не требуется.
109 install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname}.desktop" <<EOF
110[Desktop Entry]
111Name=SabyDesktop
112Comment=${pkgdesc}
113Exec=/opt/Tensor/Saby/saby
114Icon=/opt/Tensor/Saby/icons/default_dark.png
115Terminal=false
116Type=Application
117Categories=Office;Network;
118EOF
119}
120

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion