uppaal
The package downloads a source archive from the project's official domain and verifies it with a checksum; the only concerns are a non-whitelisted host and a runtime version check via curl, which does not execute remote code or introduce unverifiable binaries.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a source archive from the project's official domain and verifies it with a checksum; the only concerns are a non-whitelisted host and a runtime version check via curl, which does not execute remote code or introduce unverifiable binaries.
2 higher static findings superseded - not the current verdict (shown for transparency)
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:49
latest=$(curl -s https://versioncheck.uppaal.org/version.txt | grep -o '"version": "[^"]*' | grep -o '[^"]*$')
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:17
source=("https://download.uppaal.org/uppaal-5.0/uppaal-${pkgver}/uppaal-${pkgver}-linux64.zip")
PKGBUILD
2 offending line(s) highlighted# Developer: Uppaal Team <uppaal@cs.aau.dk>
# Maintainer: Falke Carlsen "falkecarlsen" <falkeboc@cs.aau.dk>
pkgname=uppaal
pkgver=5.0.0
pkgrel=3
pkgdesc="Verify timed automata models and learn strategies."
arch=('any')
options=(debug !strip)
url="https://uppaal.org/"
license=('custom')
depends=('jre17-openjdk' 'xdg-utils')
makedepends=('unzip')
provides=("${pkgname}-${pkgver}")
_relname="${pkgname}-${pkgver}-linux64"
_zipname="${_relname}.zip"
source=("https://download.uppaal.org/uppaal-5.0/uppaal-${pkgver}/uppaal-${pkgver}-linux64.zip")
noextract=("${_zipname}")
sha512sums=('e7fceddd699ebbe1a0120209bbe59fe7ef61b0c3b671bc453028e46e68310c3e96e3c5be7d9aec8cd5c85d065b3a4c7d6f9c68e7e5578d410efec7a6d9407543')
build() {
# determine x11 or wayland (upstreamed, remove once 5.1.0 is released)
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
# add env vars for wayland fixes
prefix="env _JAVA_AWT_WM_NONREPARENTING=1 "
else
prefix=""
fi
cat << EOD > "${pkgname}.desktop"
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
GenericName=Model Checker ${pkgver}
Name=UPPAAL ${pkgver}
Comment=Verify timed automata models and learn strategies
Exec=${prefix}/usr/bin/${pkgname} %u
Icon=uppaal-icon
Categories=Application;Science;Math;Education;Development;IDE
Terminal=false
StartupNotify=true
MimeType=application/uppaal-xml;application/uppaal-xta;application/vnd.uppaal-xml;application/vnd.uppaal-xta;application/x-uppaal-xml;application/x-uppaal-xta
EOD
}
package() {
# get newest available stable semver
latest=$(curl -s https://versioncheck.uppaal.org/version.txt | grep -o '"version": "[^"]*' | grep -o '[^"]*$')
# check if latest is newer than $pkgver
if [[ "$(echo -e "$latest\n$pkgver" | sort -V | tail -n 1)" == "$latest" ]]; then
echo "Packaging newest stable release: uppaal-$latest"
else
echo "Newer release available but not yet packaged ($latest > $pkgver). Visit uppaal.org for manual installation instructions if urgent."
fi
install -dm755 "${pkgdir}"/opt/
install -dm755 "${pkgdir}"/usr/bin/
install -dm755 "${pkgdir}"/usr/share/icons/hicolor/
pkgloc="${pkgdir}/opt/${pkgname}"
# unpack and move out of release top-level dir (_relname)
unzip -qd "${pkgdir}/opt/" "${srcdir}/${_zipname}"
mv "${pkgdir}/opt/${_relname}" "${pkgloc}"
# install built desktop entry
launcher_path="${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -Dm644 "${pkgname}.desktop" ${launcher_path}
# install icons
for s in 16 24 32 48 64 96 128 ; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/"$s"x"$s""
install -Dm644 "${pkgloc}/res/icon-"$s"x"$s".png" "${pkgdir}/usr/share/icons/hicolor/"$s"x"$s"/apps/uppaal-icon.png"
done
# install mime type definitions
mimetype_dir="${pkgdir}"/usr/share/mime/packages
install -dm755 $mimetype_dir
for xml_mimetype_file in "${pkgloc}"/res/*-mimetype.xml; do
if [ -f "$xml_mimetype_file" ]; then
install -Dm644 "$xml_mimetype_file" "$mimetype_dir/$(basename "$xml_mimetype_file")"
fi
done
# symlink startup script to bin
ln -s "/opt/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 3 |
| 2026-09-16 00:03:17 | Low | 3 |
| 2026-09-15 00:25:31 | Low | 3 |
| 2026-09-14 00:27:57 | Low | 3 |
| 2026-09-13 00:19:54 | Low | 3 |
| 2026-09-12 00:25:17 | Low | 3 |
| 2026-09-11 00:19:22 | Low | 3 |
| 2026-09-10 00:22:44 | Low | 3 |
| 2026-09-09 00:04:09 | Low | 3 |
| 2026-09-08 00:18:08 | Low | 3 |
| 2026-09-07 00:30:15 | Low | 3 |
| 2026-09-06 00:17:06 | Low | 3 |
| 2026-09-05 00:16:27 | Low | 3 |
| 2026-09-04 00:03:13 | Low | 3 |
| 2026-09-03 00:15:47 | Low | 3 |
| 2026-09-02 00:02:31 | Low | 3 |
| 2026-09-01 00:11:19 | Low | 3 |
| 2026-08-31 00:19:57 | Low | 3 |
| 2026-08-30 00:04:14 | Low | 3 |
| 2026-08-29 00:29:17 | Low | 3 |