uppaal-beta
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 80%): The source ZIP is downloaded from download.uppaal.org (the official UPPAAL distribution host) with a sha512sum checksum, which is the standard pattern for proprietary software distributed via AUR. The curl call to versioncheck.uppaal.org in the package() function is purely informational (it only prints a message comparing versions) and does not download, execute, or install anything — its output is never used in any code path that affects the installed files. The installed binary comes entirely from the verified ZIP. The host download.uppaal.org is the official vendor distribution server for UPPAAL (developed at Aalborg University/Uppsala University), not a personal or unofficial host. The sha512sum is present and non-trivially long. The only real concern is the curl call during package() which is non-reproducible and slightly sloppy, but poses no security risk since its result is discarded after a version comparison print. Overall this is a clean proprietary-software AUR package with minor style issues.
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:51
latest=$(curl -s https://versioncheck.uppaal.org/version-beta.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:19
source=("https://download.uppaal.org/uppaal-5.1/uppaal-${_pkgver_base}/uppaal-${_pkgver_dash}-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-beta
pkgver=5.1.0_beta5
_pkgver_base=$(echo ${pkgver} | cut -d'_' -f1)
_pkgver_dash=$(echo ${pkgver} | sed 's/_/-/g')
pkgrel=2
pkgdesc="Verify timed automata models and learn strategies. Beta release channel."
arch=('any')
options=(debug !strip)
url="https://uppaal.org/"
license=('custom')
depends=('jre17-openjdk' 'xdg-utils')
makedepends=('unzip')
provides=("${pkgname}-${pkgver_dash}")
_relname="uppaal-${_pkgver_dash}-linux64"
_zipname="${_relname}.zip"
source=("https://download.uppaal.org/uppaal-5.1/uppaal-${_pkgver_base}/uppaal-${_pkgver_dash}-linux64.zip")
noextract=("${_zipname}")
sha512sums=('7699aedaf05829649cbf90ae690e71d4fc0b727a97babcaa2b1b3e29d641d62ae16b91fce33b82a46ee21a0514d824151b5c367b6c31151de27ad5d8e428ec03')
build() {
# determine x11 or wayland (upstreamed, remove once next beta 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_dash}
Name=UPPAAL ${_pkgver_dash}
Comment=Verify timed automata models and learn strategies. Beta release channel.
Exec=${prefix}/usr/bin/${pkgname} %u
Icon=${pkgname}-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-beta.txt | grep -o '"version": "[^"]*' | grep -o '[^"]*$')
# check if latest is newer than $pkgver
if [[ "$(echo -e "$latest\n$_pkgver_dash" | sort -V | tail -n 1)" == "$latest" ]]; then
echo "Packaging newest beta release: uppaal-$latest"
else
echo "Newer beta 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/${pkgname}-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" | sed "s/uppaal/${pkgname}/")"
fi
done
# symlink startup script to bin
ln -s "/opt/${pkgname}/uppaal" "${pkgdir}/usr/bin/${pkgname}"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 3 |
| 2026-08-02 00:16:08 | LOW | 3 |
| 2026-08-01 00:11:18 | LOW | 3 |
| 2026-07-31 00:14:10 | LOW | 3 |
| 2026-07-30 00:17:23 | LOW | 3 |
| 2026-07-29 00:25:53 | LOW | 3 |
| 2026-07-28 00:07:28 | LOW | 3 |
| 2026-07-27 00:24:32 | LOW | 3 |
| 2026-07-26 00:07:32 | LOW | 3 |
| 2026-07-25 00:13:44 | LOW | 3 |
| 2026-07-24 00:02:28 | LOW | 3 |
| 2026-07-23 00:14:47 | LOW | 3 |
| 2026-07-22 00:29:32 | LOW | 3 |
| 2026-07-21 00:24:15 | LOW | 3 |
| 2026-07-20 00:19:49 | LOW | 3 |
| 2026-07-19 00:17:08 | LOW | 3 |
| 2026-07-18 00:14:48 | LOW | 3 |
| 2026-07-17 00:06:16 | LOW | 3 |
| 2026-07-16 00:05:41 | LOW | 3 |
| 2026-07-15 00:09:25 | LOW | 3 |