bluej-fri
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 82%): The PKGBUILD pulls a prebuilt .deb from bluej.org (the official BlueJ project domain) with a proper sha256 checksum, so the main binary is verified. Two git sources (checkstyle4bluej from MetroCS on GitHub, and BlueJFRI from infjava on GitHub) use SKIP for checksums, which is normal/expected for git+https sources since git itself provides integrity via commit hashes — though no specific commit or tag is pinned, meaning the tips of those branches are fetched. The checkstyle jar installed is a well-known open-source BlueJ extension. The BlueJFRI repo only contributes templates and a checkstyle XML config (data files), not compiled code that gets executed at build time. The lack of pinned commits is sloppy and introduces a theoretical supply-chain risk if those GitHub repos were compromised, but this is a common AUR pattern and the repos are small, purpose-specific educational tools. No binaries are downloaded from unofficial hosts, no obfuscation, no exfiltration. The cheaper model's MEDIUM rating is an over-call; this is low severity at most.
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:13
source=("https://www.bluej.org/download/files/BlueJ-linux-${pkgver//.}.deb"
PKGBUILD
1 offending line(s) highlighted# Maintainer: Tracktark <zavodsky.richard1 at gmail dot com>
pkgname=bluej-fri
pkgver=4.2.2
pkgrel=2
pkgdesc="A custom version of the BlueJ Development Enviroment made for the University of Žilina"
arch=('any')
url="https://github.com/infjava/BlueJFRI"
license=('GPL2')
depends=('gtk2' 'archlinux-java-run' 'java-runtime=11' 'java-environment=11' 'java11-openjfx')
provides=('bluej=${pkgver}')
conflicts=("bluej")
source=("https://www.bluej.org/download/files/BlueJ-linux-${pkgver//.}.deb"
"checkstyle::git+https://github.com/MetroCS/checkstyle4bluej"
"BlueJFRI::git+$url"
"bluej"
"bluej.desktop"
"bluej.xml")
noextract=("BlueJ-linux-${pkgver//.}.deb"
"checkstyle-extension-5.4-1.jar")
sha256sums=('5c2241f2208e98fcf9aad7c7a282bcf16e6fd543faa5fdb0b99b34d1023113c3'
'SKIP'
'SKIP'
'c1bdaad64fcf45b1efac00e010d5f750c417d64896cde80b9b7c5745277422b8'
'47fa6f755cd0ec1b575b7029820f8fa8d7abb7413fa4709d053f120925edcc5f'
'ca12278b71e4bd84875f10d24b74d1d24c51573825d796331d8a20794ce60c08')
prepare() {
cd "$srcdir"
ar p "BlueJ-linux-${pkgver//.}.deb" data.tar.xz | tar xJ
# patch --strip=1 < default_checks.patch
}
package() {
cd "$srcdir"
mkdir -p "$pkgdir/opt/bluej"
mkdir -p "$pkgdir/usr/share/doc/bluej/examples"
cp -r "usr/share/bluej" "$pkgdir/opt"
cp -r usr/share/doc/BlueJ/*/ "$pkgdir/usr/share/doc/bluej/examples/"
# Replace default templates with custom ones
rm -R "$pkgdir/opt/bluej/english/templates"
cp -r BlueJFRI/data/templates "$pkgdir/opt/bluej/english/templates"
# Copy custom files
install -Dm755 bluej "$pkgdir/usr/bin/bluej"
install -Dm644 bluej.desktop "$pkgdir/usr/share/applications/bluej.desktop"
install -Dm644 bluej.xml "$pkgdir/usr/share/mime/packages/bluej.xml"
# Install checkstyle extension and default_checks.xml
install -Dm644 BlueJFRI/data/checkstyle/default_checks.xml "$pkgdir/opt/bluej/extensions/default_checks.xml"
install -Dm644 checkstyle/checkstyle-extension-5.4.1.jar "$pkgdir/opt/bluej/extensions/checkstyle-extension-5.4.1.jar"
# Copy icons and docs
install -Dm644 "usr/share/icons/hicolor/256x256/apps/bluej.png" "$pkgdir/usr/share/icons/hicolor/256x256/apps/bluej.png"
install -Dm644 "usr/share/icons/hicolor/48x48/apps/bluej.png" "$pkgdir/usr/share/icons/hicolor/48x48/apps/bluej.png"
install -Dm644 "usr/share/doc/BlueJ/README.TXT" "$pkgdir/usr/share/doc/bluej/README"
install -Dm644 "usr/share/doc/BlueJ/LICENSE.txt" "$pkgdir/usr/share/licenses/bluej/LICENSE"
install -Dm644 "usr/share/doc/BlueJ/THIRDPARTYLICENSE.txt" "$pkgdir/usr/share/licenses/bluej/THIRDPARTYLICENSE"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |