ruffle-nightly

maintainer ZhangHua · 1 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The flagged pipx/uv/poetry/cargo pattern is a false positive; the package builds from source using cargo as a standard build tool for a Rust project, which is normal and safe for AUR packages.

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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The flagged pipx/uv/poetry/cargo pattern is a false positive; the package builds from source using cargo as a standard build tool for a Rust project, which is normal and safe for AUR packages.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM External install via pipx/uv/poetry/cargo/go/gem alt_pkg_manager_install

A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:42 cargo install wasm-bindgen-cli --version "$require_wasm_bindgen_version"

PKGBUILD

1 offending line(s) highlighted
1_system_wasm_bindgen=false
2_version=0.5.0
3_channel=nightly
4_date=2026-08-01
5
6pkgbase=ruffle-nightly
7pkgname=(ruffle-nightly
8 ruffle-demo-nightly
9 ruffle-selfhosted-nightly
10 firefox-extension-ruffle-nightly
11 chromium-extension-ruffle-nightly)
12pkgver="$_version+$_channel+${_date//-}"
13pkgrel=1
14arch=("x86_64")
15pkgdesc="A Flash Player emulator written in Rust. (Nightly version)"
16url="https://ruffle.rs/"
17license=("MIT OR Apache-2.0")
18makedepends=("cargo" "cmake" "java-environment" "npm" "nodejs-lts-jod"
19 "binaryen" "gtk3" "alsa-lib" "libxcb" "systemd-libs"
20 "clang" "jq" "git" "openssl" "rust-wasm" "rust-src")
21if "$_system_wasm_bindgen"
22then
23 makedepends+=("wasm-bindgen")
24else
25 makedepends+=("yq")
26fi
27source=("git+https://github.com/ruffle-rs/ruffle.git#tag=$_channel-$_date"
28 "chromium-extension-ruffle.key")
29source=("git+https://github.com/ruffle-rs/ruffle.git#tag=$_channel-$_date")
30sha256sums=('6d4cc80872b52fe07d99f814be832b9477dba8d03503b2f2bd2efb3ff9242f5a')
31options=("!lto")
32
33_FIREFOX_EXTENSION_ID="ruffle@ruffle.rs"
34
35prepare() {
36 cd "$srcdir/ruffle"
37 export RUSTUP_TOOLCHAIN=stable
38 if ! "$_system_wasm_bindgen"
39 then
40 local require_wasm_bindgen_version
41 require_wasm_bindgen_version="$(tomlq -r '.package[] | select(.name == "wasm-bindgen") | .version' Cargo.lock)"
42 cargo install wasm-bindgen-cli --version "$require_wasm_bindgen_version"
43 fi
44 cargo fetch --locked --target host-tuple
45 cargo fetch --locked --target wasm32-unknown-unknown
46 cd web
47 npm ci
48 # TODO version_name=$version_number when not nightly
49 jq --null-input \
50 --arg version_channel "$_channel" \
51 --arg version_number "$_version" \
52 --arg version_name "$_channel $_date" \
53 --arg build_date "$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" \
54 --arg build_id "$pkgrel" \
55 --arg commitHash "$(git rev-parse HEAD)" \
56 --arg firefox_extension_id "$_FIREFOX_EXTENSION_ID" \
57 '$ARGS.named' > version_seal.json
58 echo "Generated version_seal.json:"
59 cat version_seal.json
60}
61
62build() {
63 cd "$srcdir/ruffle"
64 if ! "$_system_wasm_bindgen"
65 then
66 export PATH="$PATH:$HOME/.cargo/bin"
67 fi
68 export RUSTUP_TOOLCHAIN=stable
69 export CARGO_TARGET_DIR=target
70 # libtracy_client-sys seems missing some symbols, skip enabling all features.
71 # jpegxr is not compatible to rust 1.94.0
72 cargo build --frozen --release \
73 --package=ruffle_desktop \
74 --package=ruffle_scanner \
75 --package=exporter
76
77 # Script will read binary at hardcoded path
78 # See web/packages/core/tools/build_wasm.ts for more info.
79 unset CARGO_TARGET_DIR
80 # Flags does not supported by WASM target:
81 # C/CXX: -mtune -march -fcf-protection
82 # RUST: -Ctarget-cpu
83 CFLAGS="$(echo "$CFLAGS" | sed -E 's/-m(tune|arch)=[0-9a-zA-Z-]+//g;s/-fcf-protection//g')"
84 CXXFLAGS="$(echo "$CXXFLAGS" | sed -E 's/-m(tune|arch)=[0-9a-zA-Z-]+//g;s/-fcf-protection//g')"
85 RUSTFLAGS="$(echo "$RUSTFLAGS" | sed -E 's/\s*-C\s*target-cpu=[0-9a-zA-Z]+//')"
86
87 cd web
88 npm run build:repro
89}
90
91check() {
92 cd "$srcdir/ruffle"
93 export RUSTUP_TOOLCHAIN=stable
94 cargo test --frozen \
95 --package=ruffle_desktop \
96 --package=ruffle_scanner \
97 --package=exporter
98
99 cd web
100 npm run test
101}
102
103package_ruffle-nightly() {
104 depends=("hicolor-icon-theme" "alsa-lib" "systemd-libs" "gcc-libs" "glibc")
105 pkgdesc+=" (Desktop app and utils)"
106 provides=("ruffle")
107 conflicts=("ruffle")
108
109 cd "$srcdir/ruffle"
110 local f
111 find target/release -maxdepth 1 -executable -type f | while read -r f
112 do
113 local target
114 target="$(basename "$f")"
115 target=${target/_/-}
116 if ! [[ "$target" =~ ^ruffle- ]]
117 then
118 target="ruffle-$target"
119 fi
120 if [[ "$target" == "ruffle-desktop" ]]
121 then
122 target="ruffle"
123 fi
124 echo "Installing $f to $target..."
125 install -Dm755 "$f" "$pkgdir/usr/bin/$target"
126 done
127
128 install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.desktop \
129 "$pkgdir/usr/share/applications/rs.ruffle.Ruffle.desktop"
130 install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.metainfo.xml \
131 "$pkgdir/usr/share/metainfo/rs.ruffle.Ruffle.metainfo.xml"
132 install -Dm644 desktop/packages/linux/rs.ruffle.Ruffle.svg \
133 "$pkgdir/usr/share/icons/hicolor/scalable/apps/rs.ruffle.Ruffle.svg"
134 install -Dm644 LICENSE.md \
135 "$pkgdir/usr/share/licenses/$pkgname/LICENSE.md"
136 install -Dm644 README.md \
137 "$pkgdir/usr/share/doc/ruffle/README.md"
138}
139
140package_ruffle-demo-nightly() {
141 pkgdesc+=" (Demo web app)"
142 arch=("any")
143 provides=("ruffle-demo")
144 conflicts=("ruffle-demo")
145
146 cd "$srcdir/ruffle"
147 mkdir -p "$pkgdir/usr/share/webapps"
148 cp -a --no-preserve=ownership \
149 web/packages/demo/dist \
150 "$pkgdir/usr/share/webapps/ruffle"
151 install -Dm644 web/packages/demo/LICENSE_APACHE \
152 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
153 install -Dm644 web/packages/demo/LICENSE_MIT \
154 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
155 install -Dm644 web/packages/demo/README.md \
156 "$pkgdir/usr/share/doc/ruffle/demo/README.md"
157}
158
159package_ruffle-selfhosted-nightly() {
160 pkgdesc+=" (JavaScript module)"
161 arch=("any")
162 provides=("ruffle-selfhosted")
163 conflicts=("ruffle-selfhosted")
164
165 cd "$srcdir/ruffle"
166 mkdir -p \
167 "$pkgdir/usr/lib/node_modules" \
168 "$pkgdir/usr/share/licenses/$pkgname"
169 cp -a --no-preserve=ownership \
170 web/packages/selfhosted/dist \
171 "$pkgdir/usr/lib/node_modules/ruffle"
172 ln -srfv \
173 "$pkgdir/usr/lib/node_modules/ruffle/LICENSE_APACHE" \
174 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
175 ln -srfv \
176 "$pkgdir/usr/lib/node_modules/ruffle/LICENSE_MIT" \
177 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
178 install -Dm644 web/packages/selfhosted/README.md \
179 "$pkgdir/usr/share/doc/ruffle/selfhosted/README.md"
180}
181
182package_firefox-extension-ruffle-nightly() {
183 optdepends=("firefox: Load extension in browser.")
184 pkgdesc+=" (Unsigned Firefox extension)"
185 arch=("any")
186 provides=("firefox-extension-ruffle")
187 conflicts=("firefox-extension-ruffle")
188
189 cd "$srcdir/ruffle"
190 install -Dm644 web/packages/extension/dist/firefox_unsigned.xpi \
191 "$pkgdir/usr/lib/firefox/browser/extensions/$_FIREFOX_EXTENSION_ID.xpi"
192 install -Dm644 web/packages/extension/LICENSE_APACHE \
193 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
194 install -Dm644 web/packages/extension/LICENSE_MIT \
195 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
196}
197
198package_chromium-extension-ruffle-nightly() {
199 optdepends=("chromium: Load extension in browser.")
200 pkgdesc+=" (Chromium extension)"
201 arch=("any")
202 provides=("chromium-extension-ruffle")
203 conflicts=("chromium-extension-ruffle")
204
205 cd "$srcdir/ruffle"
206 local extension_id=donbcfbmhbcapadipfkeojnmajbakjdc # https://chromewebstore.google.com/detail/ruffle-flash-emulator/donbcfbmhbcapadipfkeojnmajbakjdc
207 echo "Installing chromium extension $extension_id..."
208 jq --null-input --raw-output \
209 --arg external_update_url https://clients2.google.com/service/update2/crx \
210 '$ARGS.named' | \
211 install -Dm644 "/dev/stdin" \
212 "$pkgdir/usr/share/chromium/extensions/$extension_id.json"
213 install -Dm644 web/packages/extension/LICENSE_APACHE \
214 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_APACHE"
215 install -Dm644 web/packages/extension/LICENSE_MIT \
216 "$pkgdir/usr/share/licenses/$pkgname/LICENSE_MIT"
217}
218

Changes since previous scan

--- PKGBUILD @ 2026-08-01 00:11
+++ PKGBUILD @ 2026-08-03 00:08
@@ -1,7 +1,7 @@
_system_wasm_bindgen=false
_version=0.5.0
_channel=nightly
-_date=2026-07-31
+_date=2026-08-01
pkgbase=ruffle-nightly
pkgname=(ruffle-nightly
@@ -27,7 +27,7 @@
source=("git+https://github.com/ruffle-rs/ruffle.git#tag=$_channel-$_date"
"chromium-extension-ruffle.key")
source=("git+https://github.com/ruffle-rs/ruffle.git#tag=$_channel-$_date")
-sha256sums=('0aa2ec25fc9793b8571ae1ed32600acbfef3dd80e721f2639e8cf85e7c606639')
+sha256sums=('6d4cc80872b52fe07d99f814be832b9477dba8d03503b2f2bd2efb3ff9242f5a')
options=("!lto")
_FIREFOX_EXTENSION_ID="ruffle@ruffle.rs"

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 05:20:08 MEDIUM 1
2026-08-01 00:11:18 LOW 2
2026-07-31 05:17:13 MEDIUM 1
2026-07-31 00:14:10 LOW 2
2026-07-30 05:14:03 MEDIUM 1
2026-07-30 00:17:23 LOW 2
2026-07-29 05:10:22 MEDIUM 1
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 05:34:42 MEDIUM 1
2026-07-27 00:24:32 LOW 2
2026-07-26 05:31:42 MEDIUM 1
2026-07-26 00:07:32 LOW 2
2026-07-25 05:29:17 MEDIUM 1
2026-07-25 00:13:44 LOW 2
2026-07-24 05:27:22 MEDIUM 1
2026-07-24 00:02:28 LOW 2
2026-07-23 05:22:32 MEDIUM 1

Report a package

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

0 / 4000
Your suggestion