bluej-fri

maintainer Tracktark · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged 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.

Triggered rules

LOW AI review downgraded a static finding 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)
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:13 source=("https://www.bluej.org/download/files/BlueJ-linux-${pkgver//.}.deb"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Tracktark <zavodsky.richard1 at gmail dot com>
2
3pkgname=bluej-fri
4pkgver=4.2.2
5pkgrel=2
6pkgdesc="A custom version of the BlueJ Development Enviroment made for the University of Žilina"
7arch=('any')
8url="https://github.com/infjava/BlueJFRI"
9license=('GPL2')
10depends=('gtk2' 'archlinux-java-run' 'java-runtime=11' 'java-environment=11' 'java11-openjfx')
11provides=('bluej=${pkgver}')
12conflicts=("bluej")
13source=("https://www.bluej.org/download/files/BlueJ-linux-${pkgver//.}.deb"
14 "checkstyle::git+https://github.com/MetroCS/checkstyle4bluej"
15 "BlueJFRI::git+$url"
16 "bluej"
17 "bluej.desktop"
18 "bluej.xml")
19noextract=("BlueJ-linux-${pkgver//.}.deb"
20 "checkstyle-extension-5.4-1.jar")
21sha256sums=('5c2241f2208e98fcf9aad7c7a282bcf16e6fd543faa5fdb0b99b34d1023113c3'
22 'SKIP'
23 'SKIP'
24 'c1bdaad64fcf45b1efac00e010d5f750c417d64896cde80b9b7c5745277422b8'
25 '47fa6f755cd0ec1b575b7029820f8fa8d7abb7413fa4709d053f120925edcc5f'
26 'ca12278b71e4bd84875f10d24b74d1d24c51573825d796331d8a20794ce60c08')
27
28prepare() {
29 cd "$srcdir"
30 ar p "BlueJ-linux-${pkgver//.}.deb" data.tar.xz | tar xJ
31 # patch --strip=1 < default_checks.patch
32}
33
34package() {
35 cd "$srcdir"
36 mkdir -p "$pkgdir/opt/bluej"
37 mkdir -p "$pkgdir/usr/share/doc/bluej/examples"
38
39 cp -r "usr/share/bluej" "$pkgdir/opt"
40 cp -r usr/share/doc/BlueJ/*/ "$pkgdir/usr/share/doc/bluej/examples/"
41
42 # Replace default templates with custom ones
43 rm -R "$pkgdir/opt/bluej/english/templates"
44 cp -r BlueJFRI/data/templates "$pkgdir/opt/bluej/english/templates"
45
46 # Copy custom files
47 install -Dm755 bluej "$pkgdir/usr/bin/bluej"
48 install -Dm644 bluej.desktop "$pkgdir/usr/share/applications/bluej.desktop"
49 install -Dm644 bluej.xml "$pkgdir/usr/share/mime/packages/bluej.xml"
50
51 # Install checkstyle extension and default_checks.xml
52 install -Dm644 BlueJFRI/data/checkstyle/default_checks.xml "$pkgdir/opt/bluej/extensions/default_checks.xml"
53 install -Dm644 checkstyle/checkstyle-extension-5.4.1.jar "$pkgdir/opt/bluej/extensions/checkstyle-extension-5.4.1.jar"
54
55 # Copy icons and docs
56 install -Dm644 "usr/share/icons/hicolor/256x256/apps/bluej.png" "$pkgdir/usr/share/icons/hicolor/256x256/apps/bluej.png"
57 install -Dm644 "usr/share/icons/hicolor/48x48/apps/bluej.png" "$pkgdir/usr/share/icons/hicolor/48x48/apps/bluej.png"
58 install -Dm644 "usr/share/doc/BlueJ/README.TXT" "$pkgdir/usr/share/doc/bluej/README"
59 install -Dm644 "usr/share/doc/BlueJ/LICENSE.txt" "$pkgdir/usr/share/licenses/bluej/LICENSE"
60 install -Dm644 "usr/share/doc/BlueJ/THIRDPARTYLICENSE.txt" "$pkgdir/usr/share/licenses/bluej/THIRDPARTYLICENSE"
61}
62

Scan history

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

Report a package

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

0 / 4000
Your suggestion