firedragon
The source is built from the project's own GitLab release, which is a plausible official source; the non-whitelisted host is the project's own infrastructure, and the package builds from source rather than running untrusted prebuilt binaries.
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 built from the project's own GitLab release, which is a plausible official source; the non-whitelisted host is the project's own infrastructure, and the package builds from source rather than running untrusted prebuilt binaries.
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:86
https://dev.gentoo.org/~juippis/mozilla/patchsets/$_gentoo)
PKGBUILD
1 offending line(s) highlighted# Maintainer: Stefan Wimmer <info@stefanwimmer128.xyz>
_pkgname=firedragon
__pkgname=$_pkgname
_rdns=org.garudalinux.$__pkgname
_pkgver=13.11.0
_branding=dr460nized
_gentoo=firefox-159-patches-01.tar.xz
_gentoo_exclude=(0014-bgo-940031-wasm-support-firefox-155.patch)
pkgname=$__pkgname
pkgver=${_pkgver//-/_}
pkgrel=1
epoch=2
pkgdesc="FireDragon is a cross-platform, feature-rich and privacy-focused web browser"
url="https://gitlab.com/garuda-linux/firedragon/firedragon13"
arch=(x86_64 aarch64)
license=(MPL-2.0)
depends=(alsa-lib
at-spi2-core
bash
cairo
dbus
ffmpeg
fontconfig
freetype2
gdk-pixbuf2
glib2
glibc
gtk3
hicolor-icon-theme
libgcc
libpulse
libstdc++
libx11
libxcb
libxcomposite
libxdamage
libxext
libxfixes
libxrandr
libxss
libxt
mime-types
nspr
nss
pango
ttf-font)
makedepends=(cbindgen
clang
corepack
diffutils
imake
jack
lld
llvm
mesa
nasm
nodejs
onnxruntime
python
rust
unzip
wasi-compiler-rt
wasi-libc
wasi-libc++
wasi-libc++abi
xorg-server-xvfb
yasm
zip)
optdepends=('hunspell-en_US: Spell checking, American English'
'libnotify: Notification integration'
'networkmanager: Location detection via available WiFi networks'
'onnxruntime: Local machine learning features such as smart tab groups'
'speech-dispatcher: Text-to-Speech'
'xdg-desktop-portal: Screensharing with Wayland')
provides=($_pkgname)
conflicts=($_pkgname)
replaces=($__pkgname-next)
options=(!emptydirs
!lto
!makeflags)
install=$_pkgname.install
noextract=($_gentoo)
source=($_pkgname-v$_pkgver.source.tar.xz::$url/-/releases/v$_pkgver/downloads/$_pkgname.source.tar.xz
https://dev.gentoo.org/~juippis/mozilla/patchsets/$_gentoo)
sha256sums=('4e921dacd815421319df82f8a5c1e2104199065e1d2ce13526b30c7f3255b9ff'
'ffe58cc79c6439aa19cf52b245f2a7d730b27700c652319dc3a5a9d10d162df7')
prepare() {
mkdir -p mozbuild
cd $_pkgname-v$_pkgver
for patch in $(tar -tf "$srcdir/$_gentoo" --wildcards '*.patch' $(printf -- '--exclude=%s' "${_gentoo_exclude[@]}")); do
tar -Oxf "$srcdir/$_gentoo" "$patch" | patch -Nsp1
done
sed \
-e 's/0f2f824025f41ef946ef880c4a1558241eec47a39e4f2f0a776a5c200e99f841/e8fc29cdc934a795fe6afc87f221c6a5b01ec14f12563b4e612a588338b985d1/' \
-e 's/19563df9fac942eeb0d4fd240300815f3d8bf8cd6451fd625eff0768b6c448d8/3f8495eddbcfe17db3d5f11738ad990f536cb2eae314551d9c1ababe7bc8fbd5/' \
-e 's/2a229e98f65ac2c7ae5e9e866a5f945b0488fd7a61b2a8a1c6cf28b6827b7667/19e920817230f44f9a81558915596cbd93f9166025224002fc5654758e1df2b1/' \
-e 's/7b15213f4ca1c0241fddd0483397a68ceeafe33029d3056ac83b58d56833649b/5c1d506a889fe866baa6b65438def12cdb531443b12f53ee923ce41a9a95aacc/' \
-i third_party/rust/bindgen/.cargo-checksum.json
echo ". \"\$topsrcdir/browser/$_pkgname/mozconfig/edition/$_pkgname-$_branding.mozconfig\"" > ../mozconfig
export FIREDRAGON_EDITION=$_branding
if [ $CARCH = x86_64 ]; then
echo ". \"\$topsrcdir/browser/$_pkgname/mozconfig/target/linux-x64.mozconfig\"" >> ../mozconfig
export FIREDRAGON_TARGET=linux-x64
elif [ $CARCH = aarch64 ]; then
echo ". \"\$topsrcdir/browser/$_pkgname/mozconfig/target/linux-arm64.mozconfig\"" >> ../mozconfig
export FIREDRAGON_TARGET=linux-arm64
fi
export COREPACK_HOME="$srcdir"/.corepack
export PNPM_HOME="$srcdir"/.pnpm
export PATH="$srcdir"/.bin:"$PATH"
mkdir -p "$srcdir"/.bin
corepack enable --install-directory "$srcdir"/.bin
pushd browser/$_pkgname > /dev/null
corepack pnpm install --frozen-lockfile
corepack pnpm all:build
popd > /dev/null
cat >> ../mozconfig << END
ac_add_options --enable-linker=lld
ac_add_options --disable-bootstrap
ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
# Features
ac_add_options --enable-jack
ac_add_options --disable-updater
END
}
build() {
cd $_pkgname-v$_pkgver
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MOZ_BUILD_DATE="$(date -u${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH} +%Y%m%d%H%M%S)"
export MOZ_NOSPAM=1
# malloc_usable_size is used in various parts of the codebase
CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
# Breaks compilation since https://bugzilla.mozilla.org/show_bug.cgi?id=1896066
CFLAGS="${CFLAGS/-fexceptions/}"
CXXFLAGS="${CXXFLAGS/-fexceptions/}"
# LTO needs more open files
ulimit -n 4096
if [[ "${_build_pgo:-t}" == "t" ]]; then
# Do 3-tier PGO
echo "Building instrumented browser..."
cat > .mozconfig ../mozconfig - << END
ac_add_options --enable-profile-generate=cross
END
./mach build --priority normal
echo "Profiling instrumented browser..."
./mach package
LLVM_PROFDATA=llvm-profdata JARLOG_FILE="$PWD/jarlog" \
dbus-run-session \
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
./mach python build/pgo/profileserver.py
stat -c "Profile data found (%s bytes)" merged.profdata
test -s merged.profdata
stat -c "Jar log found (%s bytes)" jarlog
test -s jarlog
echo "Removing instrumented browser..."
./mach clobber objdir
echo "Building optimized browser..."
cat > .mozconfig ../mozconfig - << END
ac_add_options --enable-lto=cross,full
ac_add_options --enable-profile-use=cross
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
END
else
cat > .mozconfig ../mozconfig
fi
./mach build --priority normal
cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales
}
package() {
cd $_pkgname-v$_pkgver
mkdir -p "$pkgdir/usr/lib"
tar -xvf obj/dist/"$(cat obj/dist/package_name.txt)" -C "$pkgdir/usr/lib"
local appdir="$pkgdir/usr/lib/$_pkgname"
install -Dvm644 /dev/stdin "$appdir/browser/defaults/preferences/vendor.js" << END
// Use LANG environment variable to choose locale
pref("intl.locale.requested", "");
// Use system-provided dictionaries
pref("spellchecker.dictionary_path", "/usr/share/hunspell");
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
// Don't disable extensions in the application directory
pref("extensions.autoDisableScopes", 11);
// Enable GNOME Shell search provider
pref("browser.gnome-search-provider.enabled", true);
END
install -Dvm644 /dev/stdin "$appdir/distribution/distribution.ini" << END
[Global]
id=${pkgname}
version=${pkgver}-${pkgrel}
about=${pkgdesc}
[Preferences]
app.distributor=garudalinux
app.distributor.channel=${pkgname}
app.partner.garudalinux=garudalinux
END
# Link up system ONNX runtime
ln -srv "$pkgdir/usr/lib/libonnxruntime.so" -t "$appdir"
# Install desktop icons and metadata
local i
for i in 16 22 24 32 48 64 128 256; do
install -Dvm644 "browser/$_pkgname/branding/$_branding/default$i.png" \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_rdns.png"
done
install -Dvm644 browser/$_pkgname/assets/$_rdns.desktop -t "$pkgdir/usr/share/applications"
install -Dvm644 browser/$_pkgname/assets/$_rdns.metainfo.xml -t "$pkgdir/usr/share/metainfo"
# Install a wrapper to avoid confusion about binary path
install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$_pkgname" << END
#!/bin/sh
exec /usr/lib/$_pkgname/$_pkgname "\$@"
END
# Replace duplicate binary with wrapper
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -srfv "$pkgdir/usr/bin/$_pkgname" "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin"
# Use system certificates
if [[ -e $appdir/libnss3.so ]]; then
ln -sfv ../libnssckbi.so -t "$appdir"
fi
# Register GNOME search provider
install -Dvm644 /dev/stdin "$pkgdir/usr/share/gnome-shell/search-providers/$_pkgname.search-provider.ini" << END
[Shell Search Provider]
DesktopId=$_pkgname.desktop
BusName=org.mozilla.${_pkgname//-/_}.SearchProvider
ObjectPath=/org/mozilla/${_pkgname//-/_}/SearchProvider
Version=2
END
}
Changes since previous scan
--- PKGBUILD @ 2026-10-29 00:13+++ PKGBUILD @ 2026-11-01 00:21@@ -3,9 +3,9 @@ _pkgname=firedragon __pkgname=$_pkgname _rdns=org.garudalinux.$__pkgname-_pkgver=13.10.0+_pkgver=13.11.0 _branding=dr460nized-_gentoo=firefox-158-patches-02.tar.xz+_gentoo=firefox-159-patches-01.tar.xz _gentoo_exclude=(0014-bgo-940031-wasm-support-firefox-155.patch) pkgname=$__pkgname@@ -48,6 +48,7 @@ ttf-font) makedepends=(cbindgen clang+ corepack diffutils imake jack@@ -57,7 +58,6 @@ nasm nodejs onnxruntime- pnpm python rust unzip@@ -84,8 +84,8 @@ noextract=($_gentoo) source=($_pkgname-v$_pkgver.source.tar.xz::$url/-/releases/v$_pkgver/downloads/$_pkgname.source.tar.xz https://dev.gentoo.org/~juippis/mozilla/patchsets/$_gentoo)-sha256sums=('6c1e498c758fa940bb699ea23e40b8d3cdfaa8eb8cf85dcb8c32c302921fbfb1'- 'a0c58c8abd6b6c0aae19495b596a7a82fc6e0805a89df33a16d640fa6e1b0afb')+sha256sums=('4e921dacd815421319df82f8a5c1e2104199065e1d2ce13526b30c7f3255b9ff'+ 'ffe58cc79c6439aa19cf52b245f2a7d730b27700c652319dc3a5a9d10d162df7') prepare() { mkdir -p mozbuild@@ -113,8 +113,17 @@ export FIREDRAGON_TARGET=linux-arm64 fi - pnpm -C browser/$_pkgname install --frozen-lockfile- pnpm -C browser/$_pkgname all:build+ export COREPACK_HOME="$srcdir"/.corepack+ export PNPM_HOME="$srcdir"/.pnpm+ export PATH="$srcdir"/.bin:"$PATH"++ mkdir -p "$srcdir"/.bin+ corepack enable --install-directory "$srcdir"/.bin++ pushd browser/$_pkgname > /dev/null+ corepack pnpm install --frozen-lockfile+ corepack pnpm all:build+ popd > /dev/null cat >> ../mozconfig << END ac_add_options --enable-linker=lldScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 07:52:02 | Medium | 1 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 15:37:50 | Medium | 1 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 19:36:04 | Medium | 1 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |