vasm
The source is a versioned tarball from a plausible project-maintainer-controlled host (owl.de) used to build the project's own assembler tools; it is not an unverifiable binary or remote code execution, and the worst case of a swapped source would be supply-chain compromise, but the context suggests legitimate development infrastructure.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The source is a versioned tarball from a plausible project-maintainer-controlled host (owl.de) used to build the project's own assembler tools; it is not an unverifiable binary or remote code execution, and the worst case of a swapped source would be supply-chain compromise, but the context suggests legitimate development infrastructure.
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:21
source=(http://phoenix.owl.de/tags/${pkgname}${_pkgver}.tar.gz)
PKGBUILD
1 offending line(s) highlighted#
# PKGBUILD: vasm
#
# Maintainer: Uffe Jakobsen <_microtop_-at-_starion_-_dot_-_dk_>
#
# NOTE: to comply with semantic versioning (https://semver.org/) version string X.Y.0-letter is used
#
pkgname="vasm"
pkgver="2.0f"
_pkgver=${pkgver/./_}
pkgrel=0
pkgdesc="Portable and retargetable 6502 6800 6809 arm c16x hans jagrisc m68k pdp11 ppc qnice spc700 sweet16 test tr3200 unsp vidcore x86 z80 assembler."
arch=("i686" "x86_64")
url="http://sun.hasenbraten.de/vasm/"
license=("'LicenseRef-vasm")
depends=("glibc")
#makedepends=("texinfo")
#source=(http://sun.hasenbraten.de/vasm/release/vasm.tar.gz) # latest unversioned source url
#source=(http://server.owl.de/~frank/tags/${pkgname}${_pkgver}.tar.gz)
source=(http://phoenix.owl.de/tags/${pkgname}${_pkgver}.tar.gz)
sha256sums=("c84b2de1cbb87831795fe64a85c5d9a7002a766e3a7c30b0a2d7d5e99d878f49")
# TODO: dynamic lists based on dirs below vasm/cpus, vasm/syntax, vasm/output_*.c/.h
# http://sun.hasenbraten.de/vasm/release/vasm_41.html#Interface
#CPU_LIST="6502 6800 6809 arm c16x jagrisc m68k pdp11 ppc qnice test tr3200 vidcore x86 z80"
CPU_LIST="6502 6800 6809 arm c16x hans jagrisc m68k pdp11 ppc qnice spc700 sweet16 test tr3200 unsp vidcore x86 z80"
SYNTAX_LIST="std madmac mot oldstyle" # test
# output_list is not currently used
OUTPUT_LIST="aout aof bin cdef coff dri elf errors gst hans hunk hunkexe ihex o65 o65exe pap srec test tos vobj woz xfile"
prepare()
{
cd "${srcdir}/${pkgname}"
}
build()
{
cd "${srcdir}/${pkgname}"
#
echo "CPU_LIST: ${CPU_LIST}"
echo "SYNTAX_LIST: ${SYNTAX_LIST}"
#
for CPU in ${CPU_LIST}; do
for SYNTAX in ${SYNTAX_LIST}; do
echo "CPU=${CPU} SYNTAX=${SYNTAX}:"
make CPU=${CPU} SYNTAX=${SYNTAX}
done
done
#make doc/vasm.pdf # some users report texi problems (1.8i)
#make doc/vasm.html # currently fails due to missing html file (1.8i)
}
package()
{
cd "${srcdir}/${pkgname}"
#
mkdir -p "${pkgdir}/usr/bin"
echo "CPU_LIST: ${CPU_LIST}"
echo "SYNTAX_LIST: ${SYNTAX_LIST}"
#
for CPU in ${CPU_LIST}; do
for SYNTAX in ${SYNTAX_LIST}; do
echo "CPU=${CPU} SYNTAX=${SYNTAX}:"
cp "vasm${CPU}_${SYNTAX}" "${pkgdir}/usr/bin/vasm_${CPU}_${SYNTAX}"
ln -s "vasm_${CPU}_${SYNTAX}" "${pkgdir}/usr/bin/vasm${CPU}_${SYNTAX}"
done
done
# some users report texi problems (1.8i)
#mkdir -p "${pkgdir}/usr/share/doc/vasm/"
#install -m644 doc/vasm.pdf "${pkgdir}/usr/share/doc/vasm/"
}
#
# EOF
#
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |