whisparr-eros
The flagged pattern is a 'yarn install' during prepare(), but it uses the project's own lockfile (--frozen-lockfile) from the source tarball, ensuring reproducible frontend dependencies; this is standard for building the project and not an undeclared external package install.
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 90%): The flagged pattern is a 'yarn install' during prepare(), but it uses the project's own lockfile (--frozen-lockfile) from the source tarball, ensuring reproducible frontend dependencies; this is standard for building the project and not an undeclared external package install.
1 higher static finding superseded - not the current verdict (shown for transparency)
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:88
yarn install --frozen-lockfile --network-timeout 120000
PKGBUILD
1 offending line(s) highlighted# Maintainer: txtsd <aur.archlinux@ihavea.quest>
# Maintainer: Donald Webster <fryfrog@gmail.com>
pkgname=whisparr-eros
_pkgname=Whisparr
__pkgname=Whisparr-Eros
pkgver=3.5.0.1585
_pkgver=${pkgver%.*}-release.${pkgver##*.}
pkgrel=1
pkgdesc='Adult movie organizer/manager for usenet and torrent users'
arch=(x86_64 aarch64 armv7h)
url='https://whisparr.com'
license=('GPL-3.0-or-later')
groups=(servarr)
depends=(
aspnet-runtime-10.0
gcc-libs
glibc
sqlite
zlib
)
makedepends=(dotnet-sdk-10.0 yarn aspnet-targeting-pack-10.0)
optdepends=(
'postgresql: postgresql database'
'sabnzbd: usenet downloader'
'nzbget: usenet downloader'
'qbittorrent: torrent downloader'
'deluge: torrent downloader'
'rtorrent: torrent downloader'
'nodejs-flood: torrent downloader'
'vuze: torrent downloader'
'aria2: torrent downloader'
'transmission-cli: torrent downloader (CLI and daemon)'
'transmission-gtk: torrent downloader (GTK+)'
'transmission-qt: torrent downloader (Qt)'
'jackett: torrent indexer proxy'
'nzbhydra2: torznab and usenet indexer proxy'
'prowlarr: torrent and usenet indexer proxy'
'autobrr: irc, torrent and usenet indexer proxy'
)
install=whisparr-eros.install
source=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/Whisparr/Whisparr-Eros/archive/refs/tags/v${_pkgver}.tar.gz"
package_info
whisparr-eros.service
whisparr-eros.sysusers
whisparr-eros.tmpfiles
)
sha256sums=('c67115c03577e79e4ea8ee7769d6d508c0ecd321e414c23249895b0bae669d09'
'928ba49a81e3eeec4385ecf7f23040ad16758bacd4e3abd41d552595e8876cc8'
'3964160cb383c88c8d335da2ca37cf800a282b32f68b4093595694f4ac8fe99c'
'050f751d01333298bccfa84dbe11550031075f595009c15d37b089eaf453b19c'
'98be10c54d9c371e985af5b347a8991942e3d92a67010787f4b5ef8987b1f64a')
case ${CARCH} in
x86_64) _CARCH='x64' ;;
aarch64) _CARCH='arm64' ;;
armv7h) _CARCH='arm' ;;
esac
_framework='net10.0'
_runtime="linux-${_CARCH}"
_output='_output'
_artifacts="${_output}/${_framework}/${_runtime}/publish"
_branch='eros'
prepare() {
cd "${__pkgname}-${_pkgver}"
# Fix CVE-2026-41319
sed 's/OpenApi" Version="2\.4\.1"/OpenApi" Version="2\.7\.5"/' -i src/**/*.csproj
# Remove upstream dotnet version
rm global.json
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
# Uncomment after dotnet-sdk reaches 10.0.101
dotnet new globaljson --sdk-version 10.0.101 --roll-forward latestFeature
# Prepare backend
dotnet restore "src/${_pkgname}.sln" \
--runtime "${_runtime}" \
--locked-mode
# Prepare frontend
yarn install --frozen-lockfile --network-timeout 120000
}
build() {
cd "${__pkgname}-${_pkgver}"
# Build backend
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
dotnet build "src/${_pkgname}.sln" \
--framework "${_framework}" \
--runtime "${_runtime}" \
--no-self-contained \
--no-restore \
--configuration Release \
-p:Platform=Posix \
-p:AssemblyVersion=${pkgver} \
-p:AssemblyFileVersion=${pkgver} \
-p:AssemblyInformationalVersion=${_pkgver} \
-p:AssemblyConfiguration=${_branch} \
-p:RuntimeIdentifiers="${_runtime}" \
-t:PublishAllRids \
&& dotnet build-server shutdown # Build servers do not terminate automatically
# Build frontend
yarn run build --env production
}
package() {
cd "${__pkgname}-${_pkgver}"
install -dm755 "${pkgdir}/usr/lib/whisparr-eros/bin/UI"
# Remove Service Helpers, Update, and Windows files
rm "${_artifacts}/ServiceInstall"*
rm "${_artifacts}/ServiceUninstall"*
rm "${_artifacts}/Whisparr.Windows."*
rm -rf "${_output}/Whisparr.Update"
# Copy backend
cp -dr "${_artifacts}/"* "${pkgdir}/usr/lib/whisparr-eros/bin"
# Copy frontend
cp -dr "${_output}/UI/"* "${pkgdir}/usr/lib/whisparr-eros/bin/UI"
# Set executable permissions
chmod 755 "${pkgdir}/usr/lib/whisparr-eros/bin/ffprobe"
# License
install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}"
# Disable built in updater.
cd "${srcdir}"
install -Dm644 package_info "${pkgdir}/usr/lib/whisparr-eros"
echo "PackageVersion=${pkgver}-${pkgrel}" >> "${pkgdir}/usr/lib/whisparr-eros/package_info"
# Systemd
install -Dm644 whisparr-eros.service "${pkgdir}/usr/lib/systemd/system/whisparr-eros.service"
install -Dm644 whisparr-eros.sysusers "${pkgdir}/usr/lib/sysusers.d/whisparr-eros.conf"
install -Dm644 whisparr-eros.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/whisparr-eros.conf"
}
Changes since previous scan
--- PKGBUILD @ 2026-09-09 00:04+++ PKGBUILD @ 2026-09-17 00:27@@ -4,7 +4,7 @@ pkgname=whisparr-eros _pkgname=Whisparr __pkgname=Whisparr-Eros-pkgver=3.4.0.1387+pkgver=3.5.0.1585 _pkgver=${pkgver%.*}-release.${pkgver##*.} pkgrel=1 pkgdesc='Adult movie organizer/manager for usenet and torrent users'@@ -46,7 +46,7 @@ whisparr-eros.sysusers whisparr-eros.tmpfiles )-sha256sums=('818aacd7248222e2105865555489999f1b341846b145062fb4e57506bcf7e6b7'+sha256sums=('c67115c03577e79e4ea8ee7769d6d508c0ecd321e414c23249895b0bae669d09' '928ba49a81e3eeec4385ecf7f23040ad16758bacd4e3abd41d552595e8876cc8' '3964160cb383c88c8d335da2ca37cf800a282b32f68b4093595694f4ac8fe99c' '050f751d01333298bccfa84dbe11550031075f595009c15d37b089eaf453b19c'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 17:19:54 | Medium | 1 |
| 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 11:45:21 | Medium | 1 |
| 2026-08-31 00:19:57 | Low | 2 |