quartus-standard
The source is a prebuilt installer from Altera's official download domain (download.altera.com), which is a legitimate vendor host; the package installs the official software without obfuscation or remote code execution, so the non-whitelisted host is a false alarm.
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 source is a prebuilt installer from Altera's official download domain (download.altera.com), which is a legitimate vendor host; the package installs the official software without obfuscation or remote code execution, so the non-whitelisted host is a false alarm.
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:24
source=("http://download.altera.com/akdlm/software/acdsinst/18.1std/625/ib_installers/QuartusSetup-18.1.0.625-linux.run"
PKGBUILD
1 offending line(s) highlighted# Submitter: Zesen Qian <quartus at riaqn dot org>
# Maintainer: Sequencer <liujiuyang1994 at gmail dot com>
#
# NOTE: If you plan on using the usbblaster make sure you are member of the plugdev group.
# NOTE: Altera has dramatically changed their packing in regards to version 12. This
# PKGBUILD will install the full Altera suite now. Be aware that the space requirement
# is around 13GB.
#
pkgname=quartus-standard
pkgver=18.1.0.625
pkgrel=1
pkgdesc="Quartus Prime Standard Edition design software for Altera FPGA's. Modular package"
arch=('i686' 'x86_64')
url="http://dl.altera.com/?edition=standard"
license=('custom')
_alteradir="/opt/altera"
depends=('desktop-file-utils' 'expat' 'fontconfig' 'freetype2'
'glibc' 'gtk2' 'libcanberra' 'libpng' 'libpng12' 'libice' 'libsm'
'util-linux' 'ncurses' 'tcl' 'tcllib' 'zlib' 'libx11' 'libxau'
'libxdmcp' 'libxext' 'libxft' 'libxrender' 'libxt' 'libxtst' 'lsb-release')
source=("http://download.altera.com/akdlm/software/acdsinst/18.1std/625/ib_installers/QuartusSetup-18.1.0.625-linux.run"
"quartus.sh"
"quartus.desktop"
"51-usbblaster.rules"
"quartus.install")
sha256sums=('e5b256326bb00eadd3c646e285fe91844a0faccdec306c03288b920edc622a8f'
'849dd042a6173bb4f97a9522b51935bd3069a3313fe963ae19dcf4c25331b291'
'eade659fda0db843a5b287502415c698c4f251f3b721836e2a56911896fc2371'
'dd9d33fa2698a0ec11ae86f4508f77e2e12bf4a21224f5b16640bc41d6c0999b'
'0e815b138bcec2d1f9c6aa498d2f56cc131417119af19016a2019173da526d9b')
options=(!strip) # Stripping and UPX will takes ages, I'd avoid it.
install='quartus.install'
PKGEXT=".pkg.tar" # Do not compress
prepare() {
cd "${srcdir}"
chmod a+x "QuartusSetup-${pkgver}-linux.run"
}
package() {
cd "${srcdir}"
echo "Running QuartusSetup-${pkgver}-linux.run"
DISPLAY="" ./"QuartusSetup-${pkgver}-linux.run" --accept_eula 1 --mode unattended --unattendedmodeui none --installdir "${pkgdir}${_alteradir}" &
while [ ! -f "${pkgdir}${_alteradir}/logs/quartus-${pkgver}-linux-install.log" ]; do
echo -n "."
sync
sleep 10
done
echo
echo "base package packaged"
# Remove uninstaller and install logs since we have a working package management
echo "remove useless package"
rm -r "${pkgdir}${_alteradir}/uninstall"
rm -r "${pkgdir}${_alteradir}/logs"
# Replace altera directory in integration files
sed -i.bak "s,_alteradir,$_alteradir,g" quartus.sh
sed -i.bak "s,_alteradir,$_alteradir,g" quartus.desktop
# Copy license file
install -D -m644 "${pkgdir}${_alteradir}/licenses/license.txt" "${pkgdir}/usr/share/licenses/${pkgnam}/license.txt"
# Install integration files
install -D -m755 quartus.sh "${pkgdir}/etc/profile.d/quartus.sh"
install -D -m644 51-usbblaster.rules "${pkgdir}/etc/udev/rules.d/51-usbblaster.rules"
install -D -m644 quartus.desktop "${pkgdir}/usr/share/applications/quartus.desktop"
}
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 |