proton-cachyos
maintainer loathingkernel
· 13 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package builds from the project's own source on GitHub and downloads official, versioned dependencies from trusted upstreams (WineHQ, GitHub releases); non-whitelisted hosts are used but for standard, expected sources in this context, with no execution of unreviewed remote code.
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 builds from the project's own source on GitHub and downloads official, versioned dependencies from trusted upstreams (WineHQ, GitHub releases); non-whitelisted hosts are used but for standard, expected sources in this context, with no execution of unreviewed remote code.
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:16
https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Peter Jung ptr1337 <admin@ptr1337.dev>
2
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
3
4
pkgname=proton-cachyos
5
_srctag=11.0-20260601
6
_commit=
7
pkgver=${_srctag//-/.}
8
_geckover=2.47.4
9
_monover=11.0.0
10
_xaliaver=0.4.9
11
pkgrel=1
12
epoch=1
13
14
source=(
15
proton-cachyos::git+https://github.com/CachyOS/proton-cachyos.git#tag=cachyos-${_srctag}-native
16
https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz
17
https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz
18
https://github.com/madewokherd/xalia/releases/download/xalia-${_xaliaver}/xalia-${_xaliaver}-net48-mono.zip
19
compatibilitytool.vdf.template
20
ntsync.conf
21
)
22
noextract=(
23
wine-gecko-${_geckover}-{x86,x86_64}.tar.xz
24
wine-mono-${_monover}-x86.tar.xz
25
xalia-${_xaliaver}-net48-mono.zip
26
)
27
28
pkgdesc="A compatibility tool for Steam Play based on Wine and additional components, experimental branch with extra CachyOS flavour"
29
url="https://github.com/CachyOS/proton-cachyos"
30
arch=(x86_64 x86_64_v3)
31
options=(!staticlibs !lto !debug emptydirs pestrip)
32
license=('custom')
33
depends=(
34
attr lib32-attr
35
# blas lib32-blas
36
cabextract
37
desktop-file-utils
38
fontconfig lib32-fontconfig
39
freetype2 lib32-freetype2
40
libgcc lib32-gcc-libs
41
gettext lib32-gettext
42
glib2 lib32-glib2
43
glibc lib32-glibc
44
# lapack lib32-lapack
45
libgudev lib32-libgudev
46
libpcap lib32-libpcap
47
libunwind lib32-libunwind
48
libvpx lib32-libvpx
49
libx11 lib32-libx11
50
libxcursor lib32-libxcursor
51
libxext lib32-libxext
52
libxkbcommon lib32-libxkbcommon
53
libxi lib32-libxi
54
libxrandr lib32-libxrandr
55
lzo lib32-lzo
56
python
57
python-six
58
speex lib32-speex
59
# Start of old steam-native-runtime
60
atk lib32-atk
61
cairo lib32-cairo
62
curl lib32-curl
63
dbus-glib lib32-dbus-glib
64
freeglut lib32-freeglut
65
gdk-pixbuf2 lib32-gdk-pixbuf2
66
glu lib32-glu
67
lcms2 lib32-lcms2
68
libcaca lib32-libcaca
69
libcanberra lib32-libcanberra
70
dbus lib32-dbus
71
libdrm lib32-libdrm
72
libice lib32-libice
73
libibus
74
libnm lib32-libnm
75
libusb lib32-libusb
76
libvdpau lib32-libvdpau
77
libvorbis lib32-libvorbis
78
libxft lib32-libxft
79
libxmu lib32-libxmu
80
libxrender lib32-libxrender
81
libxtst lib32-libxtst
82
nspr lib32-nspr
83
openal lib32-openal
84
pango lib32-pango
85
sdl2 lib32-sdl2
86
sdl2_image lib32-sdl2_image
87
sdl2_mixer lib32-sdl2_mixer
88
sdl2_ttf lib32-sdl2_ttf
89
pipewire lib32-pipewire
90
librsvg
91
libsm lib32-libsm
92
libtheora lib32-libtheora
93
vulkan-driver lib32-vulkan-driver
94
# End of old steam-native-runtime
95
unzip
96
wayland lib32-wayland
97
)
98
makedepends=(
99
afdko
100
alsa-lib lib32-alsa-lib
101
clang
102
cmake
103
ffmpeg
104
fontforge
105
giflib lib32-giflib
106
git
107
glib2-devel
108
glslang
109
gnutls lib32-gnutls
110
gtk3 lib32-gtk3
111
libgphoto2
112
libpulse lib32-libpulse
113
libva lib32-libva
114
libxcomposite lib32-libxcomposite
115
libxinerama lib32-libxinerama
116
libxml2 lib32-libxml2
117
libxxf86vm lib32-libxxf86vm
118
lld
119
mesa lib32-mesa
120
mesa-libgl lib32-mesa-libgl
121
meson
122
mingw-w64-gcc
123
mingw-w64-tools
124
nasm
125
opencl-headers
126
opencl-icd-loader lib32-opencl-icd-loader
127
pcsclite lib32-pcsclite
128
perl
129
perl-json
130
rsync
131
rust lib32-rust-libs
132
python-pefile
133
python-setuptools-scm
134
samba
135
unixodbc
136
v4l-utils lib32-v4l-utils
137
vulkan-headers
138
vulkan-icd-loader lib32-vulkan-icd-loader
139
wayland-protocols
140
wget
141
xorg-util-macros
142
)
143
optdepends=(
144
alsa-lib lib32-alsa-lib
145
alsa-plugins lib32-alsa-plugins
146
ffmpeg
147
gnutls lib32-gnutls
148
gtk3 lib32-gtk3
149
libgphoto2
150
libpulse lib32-libpulse
151
libva lib32-libva
152
libxcomposite lib32-libxcomposite
153
libxinerama lib32-libxinerama
154
opencl-icd-loader lib32-opencl-icd-loader
155
pcsclite lib32-pcsclite
156
samba
157
steam
158
umu-launcher
159
unixodbc
160
v4l-utils lib32-v4l-utils
161
vulkan-icd-loader lib32-vulkan-icd-loader
162
)
163
optdepends+=(
164
NTSYNC-MODULE
165
)
166
provides=('proton')
167
backup=(
168
"usr/share/steam/compatibilitytools.d/${pkgname}/user_settings.py"
169
)
170
install=${pkgname}.install
171
172
_make_wrappers () {
173
# _arch prefix gcc ld as strip
174
local _i686=( "i686" "-m32" "-melf_i386" "--32" "elf32-i386")
175
local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64" "elf64-x86-64")
176
local _opts=(_i686 _x86_64)
177
declare -n _opt
178
for _opt in "${_opts[@]}"; do
179
for l in ar ranlib nm; do
180
ln -s /usr/bin/gcc-$l wrappers/${_opt[0]}-pc-linux-gnu-$l
181
done
182
for t in gcc g++; do
183
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-$t <<EOF
184
#!/usr/bin/bash
185
$(which ccache 2> /dev/null) /usr/bin/$t ${_opt[1]} "\$@"
186
EOF
187
done
188
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-ld <<EOF
189
#!/usr/bin/bash
190
/usr/bin/ld ${_opt[2]} "\$@"
191
EOF
192
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-as <<EOF
193
#!/usr/bin/bash
194
/usr/bin/as ${_opt[3]} "\$@"
195
EOF
196
install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-strip <<EOF
197
#!/usr/bin/bash
198
/usr/bin/strip -F ${_opt[4]} "\$@"
199
EOF
200
done
201
}
202
203
prepare() {
204
205
# Provide wrappers to compiler tools
206
rm -rf wrappers && mkdir wrappers
207
_make_wrappers
208
209
[ ! -d build ] && mkdir build
210
211
cd proton-cachyos
212
213
[ ! -d contrib ] && mkdir -p contrib
214
mv "$srcdir"/wine-gecko-${_geckover}-x86{,_64}.tar.xz contrib/
215
mv "$srcdir"/wine-mono-${_monover}-x86.tar.xz contrib/
216
mv "$srcdir"/xalia-${_xaliaver}-net48-mono.zip contrib/
217
218
_submodules=(
219
d7vk
220
dav1d
221
discord-rpc-bridge
222
dxvk
223
dxvk-llasync
224
dxvk-nvapi
225
dxvk-sarek
226
ffmpeg
227
fonts/liberation-fonts
228
glslang
229
graphene
230
gst-orc
231
gst-plugins-rs
232
gstreamer
233
libsoup
234
libwebp
235
libxml2
236
meson
237
nghttp2
238
nvidia-libs/dxvk-nvapi
239
nvidia-libs/nvcuda
240
nvidia-libs/nvcuda32
241
nvidia-libs/nvenc
242
nvidia-libs/nvenc32
243
nvidia-libs/wine-nvml
244
nvidia-libs/wine-nvoptix
245
openvr
246
OpenXR-SDK
247
protonfixes
248
SPIRV-Headers
249
vkd3d
250
vkd3d-proton
251
vklayers/low_latency_layer
252
vklayers/pyroveil
253
vklayers/vkbasalt
254
Vulkan-Headers
255
Vulkan-Utility-Libraries
256
wine
257
)
258
259
# Explicitly set origin URL for submodules using relative paths
260
git remote set-url origin https://github.com/CachyOS/proton-cachyos.git
261
git submodule update --init --filter=tree:0 --recursive ${_submodules[@]}
262
263
for rustlib in gst-plugins-rs; do
264
pushd $rustlib
265
export RUSTUP_TOOLCHAIN=stable
266
export CARGO_HOME="${SRCDEST}"/proton-cargo
267
export CARGO_NET_GIT_FETCH_WITH_CLI=true
268
cargo fetch --locked --target i686-unknown-linux-gnu
269
cargo fetch --locked --target x86_64-unknown-linux-gnu
270
popd
271
done
272
}
273
274
build() {
275
export PATH="$(pwd)/wrappers:$PATH"
276
277
local -a split=($CFLAGS)
278
local -A flags
279
for opt in "${split[@]}"; do flags["${opt%%=*}"]="${opt##*=}"; done
280
local march="${flags["-march"]:-nocona}"
281
local mtune="${flags["-mtune"]:-core-avx2}"
282
283
CFLAGS="-O2 -march=${march} -mtune=${mtune}"
284
CXXFLAGS="-O2 -march=${march} -mtune=${mtune}"
285
RUSTFLAGS="-C opt-level=3 -C target-cpu=${march}"
286
LDFLAGS="-Wl,-O1,--sort-common,--as-needed"
287
288
export CFLAGS CXXFLAGS RUSTFLAGS LDFLAGS
289
290
export RUSTUP_TOOLCHAIN=stable
291
export CARGO_HOME="${SRCDEST}"/proton-cargo
292
293
cd build
294
ROOTLESS_CONTAINER="" \
295
../proton-cachyos/configure.sh \
296
--container-engine="none" \
297
--proton-sdk-image="" \
298
--build-name="${pkgname}" \
299
--without-wayland-libs \
300
--without-libpcap \
301
--without-tts
302
303
SUBJOBS=$([[ "$MAKEFLAGS" =~ -j\ *([1-9][0-9]*) ]] && echo "${BASH_REMATCH[1]}" || echo "$(nproc)") \
304
make -j1 dist
305
306
cd dist
307
sed -r \
308
-e "s|##INSTALL_PATH##|.|" \
309
-e "s|##DISPLAY_NAME##|proton-cachyos-${_srctag} (native)|" \
310
-e "s|##INTERNAL_TOOL_NAME##|${pkgname}|" \
311
"${srcdir}/compatibilitytool.vdf.template" > compatibilitytool.vdf
312
}
313
314
package() {
315
cd build
316
317
# Delete the intermediate build directories to free space (mostly for my github actions)
318
rm -rf dst-* obj-* src-* pfx-*
319
320
local _compatdir="${pkgdir}/usr/share/steam/compatibilitytools.d"
321
mkdir -p "${_compatdir}/${pkgname}"
322
rsync --delete -arx dist/* "${_compatdir}/${pkgname}"
323
324
mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}"
325
mv "${_compatdir}/${pkgname}"/{PATENTS.AV1,LICENSE{,.OFL}} \
326
"${pkgdir}/usr/share/licenses/${pkgname}"
327
328
# Load ntsync module
329
install -Dm644 "$srcdir/ntsync.conf" "$pkgdir/usr/lib/modules-load.d/10-$pkgname.conf"
330
331
cd "${_compatdir}/${pkgname}/files"
332
333
local _geckodir="share/wine/gecko/wine-gecko-${_geckover}"
334
i686-w64-mingw32-strip --strip-debug \
335
$(find "${_geckodir}"-x86 -iname "*.dll" -or -iname "*.exe")
336
x86_64-w64-mingw32-strip --strip-debug \
337
$(find "${_geckodir}"-x86_64 -iname "*.dll" -or -iname "*.exe")
338
339
local _monodir="share/wine/mono/wine-mono-${_monover}"
340
i686-w64-mingw32-strip --strip-debug \
341
$(find "${_monodir}"/lib/mono -iname "*.dll" -or -iname "*.exe")
342
i686-w64-mingw32-strip --strip-debug \
343
"${_monodir}"/lib/x86/*.dll \
344
$(find "${_monodir}" -iname "*x86.dll" -or -iname "*x86.exe")
345
x86_64-w64-mingw32-strip --strip-debug \
346
"${_monodir}"/lib/x86_64/*.dll \
347
$(find "${_monodir}" -iname "*x86_64.dll" -or -iname "*x86_64.exe")
348
}
349
350
b2sums=('43636d5629b7c638050009335a9d1b771aff0b1cf2d34616fe918c37cf09e04d9bdf1086835ceb966c799b0e8b87dc39ae3d31d9f432cf900f99f1fb7cff07a2'
351
'2a73c12585b502ae11188482cbc9fb1f45f95bfe4383a7615011104b132f4845f9813d01fb40277e1934fab5f1b35ab40b4f4a66a9967463dd1d666a666904e9'
352
'62856a88266b4757602c0646e024f832974a93f03b9df253fd4895d4f11a41b435840ad8f7003ec85a0d8087dec15f2e096dbfb4b01ebe4d365521e48fd0c5c0'
353
'76bdc625c6c14a6c3e3892649c1fbb7ed127d8ce90079a3f8d317c8e6fd567c763d71dd838f8422c921ed315e9d2735849b223a94a9517ad73d0734d313c1a6f'
354
'5a492e5bd62a8116c2571348f01e1ea9dd70e2a185f0891a27be4091c8f182ce55e48f075fe46badf80e0f5b831a1d5993b2b6e1f130f4d6b00e3ef77254d00d'
355
'f0a81d83e644ca074a6bf54fc74ae12f5bd047e29d87fab528fba20e4b8d013547ad4b26e912c2b3218a75114f5c76b64aa84fdbc3054d3a1d9bf96635c6212b'
356
'964a3ba277821e570aec2127f0d1ae9898da6976c360deb6b196345a50bd3c2c55cb399527507006d8fddef868069032a30b083f23987d5050f185c74dd9de35')
357
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 |