geanypad
The package downloads a prebuilt .deb binary from packages.teejeetech.com, which is the developer's own package hosting server (teejeetech.com is the upstream author's personal site, same domain as the url= field). This is not a well-known forge or official distribution mirror, but it is the upstream author's own infrastructure. The .deb is architecture-independent ('any') and described as configuration files for Geany, suggesting it may be mostly data/config rather than compiled binaries. However, it is still a prebuilt binary package from a personal host with no reproducibility guarantee, and the sha256sum only protects against accidental corruption, not a compromised host silently replacing the file. The symlink creation (ln -svf /usr/bin/geany) and bsdtar extraction are standard. The medium rating is borderline but defensible: the host is the upstream author's own server (reducing but not eliminating risk), the package appears to be config/data files, and the sha256sum provides integrity checking. The main concern is that packages.teejeetech.com could be compromised or the file silently replaced without a new checksum being published.
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:18
source=("https://packages.teejeetech.com/public/deb/${pkgname}_${pkgver}_all.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt .deb binary from packages.teejeetech.com, which is the developer's own package hosting server (teejeetech.com is the upstream author's personal site, same domain as the url= field). This is not a well-known forge or official distribution mirror, but it is the upstream author's own infrastructure. The .deb is architecture-independent ('any') and described as configuration files for Geany, suggesting it may be mostly data/config rather than compiled binaries. However, it is still a prebuilt binary package from a personal host with no reproducibility guarantee, and the sha256sum only protects against accidental corruption, not a compromised host silently replacing the file. The symlink creation (ln -svf /usr/bin/geany) and bsdtar extraction are standard. The medium rating is borderline but defensible: the host is the upstream author's own server (reducing but not eliminating risk), the package appears to be config/data files, and the sha256sum provides integrity checking. The main concern is that packages.teejeetech.com could be compromised or the file silently replaced without a new checksum being published.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Mark Wagie <mark dot wagie at proton dot me>
pkgname=geanypad
pkgver=25.07
pkgrel=1
pkgdesc="Configuration files for using Geany as a simple text editor"
arch=('any')
url="https://teejeetech.com//tags/geany"
license=('GPL-2.0-or-later')
depends=(
'geany'
'geany-plugins'
'rsync'
)
optdepends=(
'ttf-firacode: default editor font'
'ttf-ubuntu-font-family: default tagbar & msgwin font'
)
source=("https://packages.teejeetech.com/public/deb/${pkgname}_${pkgver}_all.deb")
sha256sums=('bd3158e477ce5d69bde48a3a59e1ed14e3ed2529cf863ca0840104f5a07d5f2f')
package() {
bsdtar -xvf data.tar.zst -C "$pkgdir/"
ln -svf /usr/bin/geany "$pkgdir/usr/bin/$pkgname-bin"
# Only install color schemes not already included with geany
for color in $(ls /usr/share/geany/colorschemes/); do
rm -rfv "$pkgdir/usr/share/geany/colorschemes/${color}"
done
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |