wine-gohryt-wayland-wow64

maintainer Gohryt · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The package builds from a forked Git repository on a project-owned GitLab instance (gitlab.winehq.org), which is a legitimate development practice; the source is not a prebuilt binary, and the worst case of a compromised source would be code execution within the Wine build, not remote arbitrary code execution.

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 package builds from a forked Git repository on a project-owned GitLab instance (gitlab.winehq.org), which is a legitimate development practice; the source is not a prebuilt binary, and the worst case of a compromised source would be code execution within the Wine build, not remote arbitrary code execution.

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:116 source=(git+https://gitlab.winehq.org/gohryt/wine.git#branch=wayland-wow64
  • PKGBUILD:117 https://dl.winehq.org/wine/wine-mono/$_monover/wine-mono-$_monover-x86.tar.xz

PKGBUILD

2 offending line(s) highlighted
1# Maintainer: gohryt
2# Based on the official Arch Linux wine package by Peter Jung <ptr1337@archlinux.org>
3#
4# Pure WoW64 build (no lib32/multilib), Wayland-only (no X11 driver),
5# NTSYNC (auto-enabled via linux/ntsync.h from linux-api-headers >= 6.14),
6# GStreamer media support.
7#
8# Source is our Wine fork (gitlab.winehq.org/gohryt/wine), branch wayland-wow64,
9# which carries the custom Wayland/Vulkan feature commits (described below) on
10# top of upstream Wine. To pin a commit instead of tracking the branch tip,
11# replace #branch=wayland-wow64 with #commit=<sha> in source().
12#
13# LTO is enabled for the native ELF side (the official Arch package uses !lto,
14# so revert to that if anything misbehaves at runtime). The PE side is built
15# without LTO. mold links the ELF side; Wine 11 builds the preloader as
16# -static-pie, so mold's missing -Ttext-segment support is no longer an issue.
17#
18# The preloader and ntdll.so are compiled with -fno-lto: their hand-written
19# asm (_start, __wine_syscall_dispatcher) references C symbols by name, which
20# LTO would otherwise discard, breaking the link with undefined references.
21#
22# Feature commits carried on the branch (in apply order):
23#
24# - Client-side WSI presenting cross-process Vulkan frames: swapchain images are
25# allocated as DMABUFs, exported, and duplicated into the GDI/Steam process to
26# present on Wayland. Integrates GPU-compositor synchronization via sync_file
27# (SYNC_FD semaphores) to prevent flickering/black frames during scrolls/resizes.
28# - Cross-process and GL/VK-obscured child window rendering (WineHQ bug #56014):
29# required for CEF applications (Steam, Battle.net, ...) to display their UI.
30# Includes bottom-up restacking of subsurfaces to match Win32 Z-order (resolving
31# flickering of store/library content), and healing orphaned subsurfaces.
32# - Live tracking of compositor text-input (IME): zwp_text_input_v3 is only
33# enabled when an input context is associated (ImmAssociateContext), preventing
34# gameplay keys from getting swallowed after chat interactions.
35# - System tray icons via the StatusNotifierItem D-Bus protocol instead of the
36# floating tray window (needs an SNI host: KDE natively, GNOME via the
37# AppIndicator extension; WINEWAYLAND_NO_SNI=1 reverts to the floating window).
38# Requires libdbus at configure time, hence dbus in makedepends.
39# - 16bpp cursor fix for Source 2 games (Dota 2): color cursors that GetDIBits
40# cannot convert to 32bpp fall back to a GDI DIB blit. Also fixes 16bpp icons.
41# - Windows implicit Vulkan layer loading from the registry (Steam overlay:
42# Shift+Tab in Vulkan/DXVK games works). On by default, disable with
43# WINE_VK_LAYERS=0.
44# - Monitor EDID synthesis so games can identify the output (UE titles like
45# Gothic 1 Remake otherwise see no display/resolution list and fall back to
46# borderless native).
47# - Per-window surface scale derived from the real compositor output scale
48# (physical mode size / xdg_output logical size) instead of Wine's DPI. Fixes
49# HiDPI / fractional / mixed-DPI window mis-sizing (off-screen or black-border
50# fullscreen) and mouse-offset; also stretches a non-native exclusive
51# fullscreen surface to fill the output.
52# - Per-process emulated display modes: a game changing the resolution only
53# affects itself (Windows "fullscreen optimizations" semantics) instead of
54# zooming every other window in the prefix; EmulateModeset restores the old
55# global behaviour. Also runs inside gamescope's nested compositor: prefers
56# GAMESCOPE_WAYLAND_DISPLAY, works without wl_subcompositor/wp_viewporter
57# (GL/VK takes over the toplevel surface, gamescope scales buffers itself),
58# so -w/-h game resolution is honoured.
59pkgname=wine-gohryt-wayland-wow64
60pkgver=11.14
61pkgrel=1
62_monover=11.2.0 # must match MONO_VERSION in dlls/appwiz.cpl/addons.c
63_geckover=2.47.4 # must match GECKO_VERSION in dlls/appwiz.cpl/addons.c
64pkgdesc="Compatibility layer for running Windows programs. This is my custom build with special fixes for wayland, vulkan and wow64. No steam flickering, Unreal and Unity games are working properly without shaman dances."
65url="https://www.winehq.org"
66arch=(x86_64)
67options=(lto !debug)
68license=(LGPL-2.1-or-later)
69provides=("wine=$pkgver" "wine-mono=$_monover" "wine-gecko=$_geckover")
70conflicts=(wine wine-staging wine-mono wine-gecko)
71
72depends=(
73 desktop-file-utils
74 fontconfig
75 freetype2
76 gettext
77 glib2
78 glibc
79 libgcc
80 libpcap
81 libunwind
82 libxkbcommon
83 systemd-libs
84 wayland
85)
86makedepends=(
87 alsa-lib
88 dbus
89 ffmpeg
90 git
91 gnutls
92 gst-plugins-base-libs
93 libpulse
94 mesa
95 mingw-w64-gcc
96 sdl2
97 vulkan-headers
98 vulkan-icd-loader
99)
100optdepends=(
101 'alsa-lib: ALSA audio driver'
102 'alsa-plugins: ALSA audio plugins'
103 'dbus: system tray icons (StatusNotifierItem)'
104 'ffmpeg: WMA decoding (winedmo)'
105 'gnutls: TLS/SSL support (strongly recommended)'
106 'gst-plugins-bad: extra media codecs'
107 'gst-plugins-base: media playback'
108 'gst-plugins-base-libs: GStreamer media support'
109 'gst-plugins-good: extra media codecs'
110 'gst-plugins-ugly: extra media codecs'
111 'libpulse: PulseAudio/PipeWire audio driver'
112 'sdl2: game controller support'
113 'vulkan-icd-loader: Vulkan support'
114)
115
116source=(git+https://gitlab.winehq.org/gohryt/wine.git#branch=wayland-wow64
117 https://dl.winehq.org/wine/wine-mono/$_monover/wine-mono-$_monover-x86.tar.xz
118 https://dl.winehq.org/wine/wine-gecko/$_geckover/wine-gecko-$_geckover-x86.tar.xz
119 https://dl.winehq.org/wine/wine-gecko/$_geckover/wine-gecko-$_geckover-x86_64.tar.xz
120 30-win32-aliases.conf
121 wine-binfmt.conf
122 ntsync.conf)
123noextract=(wine-mono-$_monover-x86.tar.xz
124 wine-gecko-$_geckover-x86.tar.xz
125 wine-gecko-$_geckover-x86_64.tar.xz)
126sha512sums=('SKIP'
127 'SKIP'
128 'SKIP'
129 'SKIP'
130 'SKIP'
131 'SKIP'
132 'SKIP')
133
134install=wine.install
135
136prepare() {
137 # The Wayland/Vulkan feature commits live in the fork branch (see source),
138 # so there is nothing to patch here; just set up the out-of-tree build dir.
139 rm -rf build
140 mkdir build
141}
142
143build() {
144 # ccache for the MinGW cross compilers (the native side is handled by
145 # makepkg's ccache BUILDENV option, see ~/.config/pacman/makepkg.conf)
146 if command -v ccache > /dev/null; then
147 local _cc
148 mkdir -p "$srcdir/ccache-cross"
149 for _cc in x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc \
150 x86_64-w64-mingw32-g++ i686-w64-mingw32-g++; do
151 printf '#!/bin/sh\nexec ccache /usr/bin/%s "$@"\n' "$_cc" > "$srcdir/ccache-cross/$_cc"
152 chmod +x "$srcdir/ccache-cross/$_cc"
153 done
154 export PATH="$srcdir/ccache-cross:$PATH"
155 fi
156
157 # Link the native ELF side with mold (PE side keeps mingw ld)
158 export LDFLAGS+=" -fuse-ld=mold"
159
160 # Flags for the MinGW cross-compiled PE parts (no LTO, no mold here)
161 export CROSSCFLAGS="-O2 -pipe"
162 export CROSSCXXFLAGS="-O2 -pipe"
163 export CROSSLDFLAGS="-Wl,-O1"
164
165 cd "$srcdir/build"
166 ../wine/configure \
167 --prefix=/usr \
168 --libdir=/usr/lib \
169 --disable-tests \
170 --enable-archs=x86_64,i386 \
171 --enable-build-id \
172 --without-x \
173 --with-wayland \
174 --with-gstreamer \
175 --with-ffmpeg
176
177 # Build the preloader and ntdll.so without LTO first (see header comment),
178 # then everything else; make skips the already-built objects.
179 make -j"$(nproc)" CFLAGS="$CFLAGS -fno-lto" \
180 loader/preloader.o loader/preloader_mac.o dlls/ntdll/ntdll.so
181 make -j"$(nproc)"
182}
183
184package() {
185 cd "$srcdir/build"
186 make -j"$(nproc)" \
187 prefix="$pkgdir/usr" \
188 libdir="$pkgdir/usr/lib" \
189 dlldir="$pkgdir/usr/lib/wine" install
190
191 # Font aliasing settings for Win32 applications
192 install -d "$pkgdir"/usr/share/fontconfig/conf.{avail,default}
193 install -m644 "$srcdir/30-win32-aliases.conf" "$pkgdir/usr/share/fontconfig/conf.avail"
194 ln -s ../conf.avail/30-win32-aliases.conf "$pkgdir/usr/share/fontconfig/conf.default/30-win32-aliases.conf"
195 install -Dm644 "$srcdir/wine-binfmt.conf" "$pkgdir/usr/lib/binfmt.d/wine.conf"
196
197 # Load the ntsync kernel module at boot
198 install -Dm644 "$srcdir/ntsync.conf" "$pkgdir/usr/lib/modules-load.d/10-ntsync.conf"
199
200 # Bundle wine-mono and wine-gecko: new prefixes pick these up from
201 # /usr/share/wine/{mono,gecko} offline, shared across all prefixes
202 install -d "$pkgdir/usr/share/wine/mono" "$pkgdir/usr/share/wine/gecko"
203 tar xf "$srcdir/wine-mono-$_monover-x86.tar.xz" -C "$pkgdir/usr/share/wine/mono"
204 tar xf "$srcdir/wine-gecko-$_geckover-x86.tar.xz" -C "$pkgdir/usr/share/wine/gecko"
205 tar xf "$srcdir/wine-gecko-$_geckover-x86_64.tar.xz" -C "$pkgdir/usr/share/wine/gecko"
206}
207

Changes since previous scan

--- PKGBUILD @ 2026-07-26 00:07
+++ PKGBUILD @ 2026-08-03 00:08
@@ -57,8 +57,8 @@
# (GL/VK takes over the toplevel surface, gamescope scales buffers itself),
# so -w/-h game resolution is honoured.
pkgname=wine-gohryt-wayland-wow64
-pkgver=11.13
-pkgrel=6
+pkgver=11.14
+pkgrel=1
_monover=11.2.0 # must match MONO_VERSION in dlls/appwiz.cpl/addons.c
_geckover=2.47.4 # must match GECKO_VERSION in dlls/appwiz.cpl/addons.c
pkgdesc="Compatibility layer for running Windows programs. This is my custom build with special fixes for wayland, vulkan and wow64. No steam flickering, Unreal and Unity games are working properly without shaman dances."

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 11:32:17 MEDIUM 1
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 03:18:55 MEDIUM 1
2026-07-22 00:29:32 LOW 2
2026-07-21 21:18:19 MEDIUM 1
2026-07-21 00:24:15 LOW 2
2026-07-20 13:14:10 MEDIUM 1
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 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