sonarr

maintainer txtsd · 6 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The yarn install is part of building the project's own frontend from source, using a frozen lockfile, and does not introduce undeclared external packages at runtime.

Triggered rules

LOW AI review downgraded a static finding 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 yarn install is part of building the project's own frontend from source, using a frozen lockfile, and does not introduce undeclared external packages at runtime.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM npm/yarn/pnpm install of an undeclared external package 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:84 yarn install --frozen-lockfile --network-timeout 120000

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: txtsd <aur.archlinux@ihavea.quest>
2# Maintainer: Donald Webster <fryfrog@gmail.com>
3# Contributor: Daniel Egeberg <daniel.egeberg@gmail.com>
4# Contributor: Justin Dray <justin@dray.be>
5# Helpful URL: https://services.sonarr.tv/v1/releases
6
7pkgname=sonarr
8_pkgname=Sonarr
9pkgver=4.0.19.2979
10pkgrel=1
11pkgdesc='Smart PVR for newsgroup and torrent users'
12arch=(x86_64 aarch64 armv7h)
13url='https://sonarr.tv'
14license=('GPL-3.0-or-later')
15groups=(servarr)
16depends=(
17 aspnet-runtime-6.0
18 gcc-libs
19 glibc
20 sqlite
21)
22makedepends=(dotnet-sdk-6.0 yarn)
23optdepends=(
24 'postgresql: postgresql database'
25 'sabnzbd: usenet downloader'
26 'nzbget: usenet downloader'
27 'qbittorrent: torrent downloader'
28 'deluge: torrent downloader'
29 'rtorrent: torrent downloader'
30 'nodejs-flood: torrent downloader'
31 'vuze: torrent downloader'
32 'aria2: torrent downloader'
33 'transmission-cli: torrent downloader (CLI and daemon)'
34 'transmission-gtk: torrent downloader (GTK+)'
35 'transmission-qt: torrent downloader (Qt)'
36 'jackett: torrent indexer proxy'
37 'nzbhydra2: torznab and usenet indexer proxy'
38 'prowlarr: torrent and usenet indexer proxy'
39 'autobrr: irc, torrent and usenet indexer proxy'
40)
41install=sonarr.install
42source=(
43 "${pkgname}-${pkgver}.tar.gz::https://github.com/Sonarr/Sonarr/archive/refs/tags/v${pkgver}.tar.gz"
44 package_info
45 sonarr.service
46 sonarr.sysusers
47 sonarr.tmpfiles
48)
49sha256sums=('f314e8b312ab431b78fe7d4c6c4093164e7bc402d93b7052cb87bd3e3dbf0b4c'
50 '19112dc0051224b4de66f28077c93b6ee06e163b5194e6aecf62dedf66ff45a9'
51 'a5fc162aeafb2c6322176db736a503047a39f2740eea4dead05438ed47187fbd'
52 '00141d4cbf34daa6d91b26179d4847ec970e2767382e18fdf9af2ec84a0ff43e'
53 'd6b18a83dd9c213470d984f71ddcefcd64d12bb87f68225cc4ebf5fa4a831703')
54
55case ${CARCH} in
56 x86_64) _CARCH='x64' ;;
57 aarch64) _CARCH='arm64' ;;
58 armv7h) _CARCH='arm' ;;
59esac
60
61_framework='net6.0'
62_runtime="linux-${_CARCH}"
63_output='_output'
64_artifacts="${_output}/${_framework}/${_runtime}/publish"
65_branch='main'
66
67prepare() {
68 cd "${_pkgname}-${pkgver}"
69
70 # Remove upstream dotnet version
71 rm global.json
72
73 export DOTNET_CLI_TELEMETRY_OPTOUT=1
74 export DOTNET_NOLOGO=1
75 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
76 dotnet new globaljson --sdk-version 6.0.113 --force
77
78 # Prepare backend
79 dotnet restore "src/${_pkgname}.sln" \
80 --runtime "${_runtime}" \
81 --locked-mode
82
83 # Prepare frontend
84 yarn install --frozen-lockfile --network-timeout 120000
85}
86
87build() {
88 cd "${_pkgname}-${pkgver}"
89
90 # Build backend
91 export DOTNET_CLI_TELEMETRY_OPTOUT=1
92 export DOTNET_NOLOGO=1
93 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
94 dotnet build "src/${_pkgname}.sln" \
95 --framework "${_framework}" \
96 --runtime "${_runtime}" \
97 --no-self-contained \
98 --no-restore \
99 --configuration Release \
100 -p:Platform=Posix \
101 -p:AssemblyVersion=${pkgver} \
102 -p:AssemblyConfiguration=${_branch} \
103 -p:RuntimeIdentifiers="${_runtime}" \
104 -t:PublishAllRids \
105 && dotnet build-server shutdown # Build servers do not terminate automatically
106
107 # Build frontend
108 yarn run build --env production
109}
110
111package() {
112 cd "${_pkgname}-${pkgver}"
113
114 install -dm755 "${pkgdir}/usr/lib/sonarr/bin/UI"
115
116 # Remove Service Helpers, Update, and Windows files
117 rm "${_artifacts}/ServiceInstall"*
118 rm "${_artifacts}/ServiceUninstall"*
119 rm "${_artifacts}/Sonarr.Windows."*
120 rm -rf "${_output}/Sonarr.Update"
121
122 # Copy backend
123 cp -dr "${_artifacts}/"* "${pkgdir}/usr/lib/sonarr/bin"
124 # Copy frontend
125 cp -dr "${_output}/UI/"* "${pkgdir}/usr/lib/sonarr/bin/UI"
126
127 # Set executable permissions
128 chmod 755 "${pkgdir}/usr/lib/sonarr/bin/ffprobe"
129
130 # License
131 install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}"
132
133 # Disable built in updater.
134 cd "${srcdir}"
135 install -Dm644 package_info "${pkgdir}/usr/lib/sonarr"
136 echo "PackageVersion=${pkgver}-${pkgrel}" >> "${pkgdir}/usr/lib/sonarr/package_info"
137
138 # Systemd
139 install -Dm644 sonarr.service "${pkgdir}/usr/lib/systemd/system/sonarr.service"
140 install -Dm644 sonarr.sysusers "${pkgdir}/usr/lib/sysusers.d/sonarr.conf"
141 install -Dm644 sonarr.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/sonarr.conf"
142}
143

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion