fluidx3d

maintainer krant · 1 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The package downloads STL model files from thingiverse.com, a non-whitelisted host, but these are static 3D mesh files used as simulation assets, not executable code; the primary source is from GitHub, and the build process only compiles the project's own code, posing no realistic supply-chain risk.

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 package downloads STL model files from thingiverse.com, a non-whitelisted host, but these are static 3D mesh files used as simulation assets, not executable code; the primary source is from GitHub, and the build process only compiles the project's own code, posing no realistic supply-chain risk.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host 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:14 "https://cdn.thingiverse.com/assets/92/f0/54/ba/e0/concord_cut_large.stl"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: krant <aleksey.vasilenko@gmail.com>
2
3pkgname=fluidx3d
4pkgver=3.7
5pkgrel=1
6pkgdesc="The fastest and most memory efficient lattice Boltzmann CFD software, using OpenCL"
7arch=('x86_64' 'aarch64')
8url="https://github.com/ProjectPhysX/FluidX3D"
9license=('custom' 'CCPL:by-nc')
10depends=('ocl-icd' 'libxrandr')
11makedepends=('opencl-clhpp' 'ninja')
12options=(!debug)
13source=("https://github.com/ProjectPhysX/FluidX3D/archive/refs/tags/v$pkgver.tar.gz"
14 "https://cdn.thingiverse.com/assets/92/f0/54/ba/e0/concord_cut_large.stl"
15 "https://cdn.thingiverse.com/assets/0b/5c/e5/f3/f0/techtris_airplane.stl"
16 "https://cdn.thingiverse.com/assets/49/65/42/33/0f/X-Wing.stl"
17 "DWG_Tie_Fighter_Assembled_02.stl::https://cdn.thingiverse.com/assets/f0/3c/64/c7/f5/DWG_Tie_Fighter_Assembled_02.STL"
18 "https://cdn.thingiverse.com/assets/1d/89/dd/cb/fd/FAN_Solid_Bottom.stl"
19 "https://cdn.thingiverse.com/assets/e6/85/cf/21/70/edf_v391.stl"
20 "https://cdn.thingiverse.com/assets/51/31/ed/84/b0/edf_v39.stl"
21 "https://cdn.thingiverse.com/assets/90/2a/a5/12/ce/Cow_t.stl"
22 "https://cdn.thingiverse.com/assets/6d/23/28/24/ea/Full_Shuttle.stl"
23 "https://cdn.thingiverse.com/assets/b8/99/d7/5d/2c/StarShipV2.stl"
24)
25
26sha256sums=('457b16f7bec74259594214ae1e44055f181e96b4db876149cbcfdb627a63600a'
27 'db5605f435973c556302124e98ce45dc411ca6a3f71131df37f44ee61f28c9bb'
28 'e8fe5827330bc2adfd5161e42c9d5fd6850d909f7581e0d252e30e3dd623f93d'
29 '47c1c261e0db21faa300574247b646e1886ad4b69932b6e066cd7bf9911da33a'
30 '037a6f8826d6c7c3e96b040bce16485096143ef68c4c25b883ea693c6fdfbb18'
31 '6a7ee3e07ce12bad3d94ab8e109ac95d18026f2259131ed5647da7bd563cd344'
32 'b1e8368224cbb3a92c641b0c19274b152346d8323bbd2ea6f9fe7091bc6e91d0'
33 '348438cf93e06ab539a829584d50e29886f2b430c139c751b9297a0cf684f5fa'
34 '1bd05d2986eb96e2080672a241949a35a6e04bfffcbf4cec18bcad74bb695522'
35 '7503e0ceb5f6d8436b8c3f10e7104ad0433f84a7402e75ff66409eec790d86fd'
36 '00372e3473616e747fe7980170776477ff0eaa265aa1b859c0afe66e85ad43d4'
37)
38
39fluid_src=FluidX3D-$pkgver/src
40
41prepare_sample() {
42 NAME=${1// /-}
43 cp -r $fluid_src $NAME
44 sed -i "/$1/c\void main_setup() {" $NAME/setup.cpp
45
46 OBJS=
47 for f in 'info' 'lbm' 'main' 'setup' 'graphics'; do
48 OBJ=$NAME/$f.o
49 OBJS="$OBJS $OBJ"
50 echo "build $OBJ: cxx $NAME/$f.cpp" >> samples.ninja
51 DEFS=
52 for d in $2; do
53 DEFS="$DEFS -D$d"
54 done
55 echo " defs =$DEFS" >> samples.ninja
56 done
57 echo "build bin/FluidX3D-$NAME: link $OBJS $fluid_src/kernel.o $fluid_src/lodepng.o $fluid_src/shapes.o" >> samples.ninja
58}
59
60fix_stl_path() {
61 sed -i 's/get_exe_path()+"..\/stl\/'$1'.stl/"\/usr\/share\/FluidX3D\/'$1'.stl/' src/setup.cpp
62}
63
64prepare() {
65 cd FluidX3D-$pkgver
66
67 rm -rf src/{OpenCL,X11}
68 sed -i 's|X11/include/||g' src/graphics.cpp
69 sed -i "/define FP16S/d" src/defines.hpp
70 sed -i "/define D3Q19/d" src/defines.hpp
71 sed -i "/define BENCHMARK/d" src/defines.hpp
72 sed -i "/lbm.write_status/d" src/setup.cpp
73
74 fix_stl_path concord_cut_large
75 fix_stl_path techtris_airplane
76 fix_stl_path X-Wing
77 fix_stl_path DWG_Tie_Fighter_Assembled_02
78 fix_stl_path FAN_Solid_Bottom
79 fix_stl_path edf_v391
80 fix_stl_path edf_v39
81 fix_stl_path Cow_t
82 fix_stl_path Full_Shuttle
83 fix_stl_path StarShipV2
84 sed -i 's/get_exe_path()+"..\/skybox\/skybox8k.png/"\/usr\/share\/FluidX3D\/skybox8k.png/' src/lbm.hpp
85
86 cd ..
87
88 rm -f samples.ninja
89 prepare_sample "Benchmark-FP32-FP16C" "BENCHMARK D3Q19 FP16C"
90 prepare_sample "Benchmark-FP32-FP16S" "BENCHMARK D3Q19 FP16S"
91 prepare_sample "Benchmark-FP32-FP32" "BENCHMARK D3Q19"
92 prepare_sample "3D Taylor-Green vortices" "D3Q19 FP16S"
93 prepare_sample "2D Taylor-Green vortices" "D2Q9 FP16S"
94 prepare_sample "cylinder in rectangular duct" "D3Q19 FP16S VOLUME_FORCE"
95 prepare_sample "Taylor-Couette flow" "D3Q19 FP16S MOVING_BOUNDARIES"
96 prepare_sample "lid-driven cavity" "D3Q19 FP16S MOVING_BOUNDARIES"
97 prepare_sample "2D Karman vortex street" "D2Q9 FP16S EQUILIBRIUM_BOUNDARIES"
98 prepare_sample "particle test" "D3Q19 FP16S VOLUME_FORCE FORCE_FIELD MOVING_BOUNDARIES PARTICLES"
99 prepare_sample "delta wing" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
100 #prepare_sample "NASA Common Research Model" "D3Q19 FP16C EQUILIBRIUM_BOUNDARIES SUBGRID"
101 prepare_sample "Concorde" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
102 prepare_sample "Boeing 747" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
103 prepare_sample "Star Wars X-wing" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
104 prepare_sample "Star Wars TIE fighter" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
105 prepare_sample "radial fan" "D3Q19 FP16S MOVING_BOUNDARIES SUBGRID"
106 prepare_sample "electric ducted fan" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES MOVING_BOUNDARIES SUBGRID"
107 prepare_sample "aerodynamics of a cow" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
108 prepare_sample "Space Shuttle" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
109 prepare_sample "Starship" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES SUBGRID"
110 #prepare_sample "Ahmed body" "D3Q19 FP16C FORCE_FIELD EQUILIBRIUM_BOUNDARIES SUBGRID"
111 #prepare_sample "Cessna 172 propeller aircraft" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES MOVING_BOUNDARIES SUBGRID"
112 #prepare_sample "Bell 222 helicopter" "D3Q19 FP16C EQUILIBRIUM_BOUNDARIES MOVING_BOUNDARIES SUBGRID"
113 #prepare_sample "Mercedes F1 W14 car" "D3Q19 FP16S EQUILIBRIUM_BOUNDARIES MOVING_BOUNDARIES SUBGRID"
114 prepare_sample "hydraulic jump" "D3Q19 FP16S VOLUME_FORCE EQUILIBRIUM_BOUNDARIES MOVING_BOUNDARIES SURFACE SUBGRID"
115 prepare_sample "dam break" "D3Q19 FP16S VOLUME_FORCE SURFACE"
116 prepare_sample "liquid metal on a speaker" "D3Q19 FP16S VOLUME_FORCE MOVING_BOUNDARIES SURFACE"
117 prepare_sample "breaking waves on beach" "D3Q19 FP16S VOLUME_FORCE EQUILIBRIUM_BOUNDARIES SURFACE"
118 prepare_sample "river" "D3Q19 FP16S VOLUME_FORCE SURFACE"
119 prepare_sample "raindrop impact" "D3Q19 FP16C VOLUME_FORCE EQUILIBRIUM_BOUNDARIES SURFACE"
120 prepare_sample "bursting bubble" "D3Q19 FP16C VOLUME_FORCE SURFACE"
121 prepare_sample "cube with changing gravity" "D3Q19 FP16S VOLUME_FORCE SURFACE"
122 prepare_sample "periodic faucet mass conservation test" "D3Q19 FP16S VOLUME_FORCE SURFACE"
123 prepare_sample "two colliding droplets in force field" "D3Q19 FP16S VOLUME_FORCE FORCE_FIELD SURFACE"
124 prepare_sample "Rayleigh-Benard convection" "D3Q19 FP16S TEMPERATURE"
125 prepare_sample "thermal convection" "D3Q19 FP16S TEMPERATURE"
126}
127
128build() {
129 cat >build.ninja <<EOF
130rule cxx
131 command = g++ \$defs -DINTERACTIVE_GRAPHICS $CXXFLAGS -c \$in -o \$out
132rule link
133 command = g++ -lOpenCL -lX11 -lXrandr $CXXFLAGS $LDFLAGS \$in -o \$out
134build $fluid_src/kernel.o: cxx $fluid_src/kernel.cpp
135build $fluid_src/lodepng.o: cxx $fluid_src/lodepng.cpp
136build $fluid_src/shapes.o: cxx $fluid_src/shapes.cpp
137include samples.ninja
138EOF
139
140 ninja
141}
142
143package() {
144 mkdir -p "$pkgdir/usr/bin"
145 cp bin/* "$pkgdir/usr/bin"
146
147 mkdir -p "$pkgdir/usr/share/FluidX3D"
148 cp *.stl "$pkgdir/usr/share/FluidX3D"
149 cp FluidX3D-$pkgver/skybox/skybox8k.png "$pkgdir/usr/share/FluidX3D"
150
151 install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 FluidX3D-$pkgver/LICENSE.md
152}
153

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