WINE stable vs WINE staging - Looking to understand

I am a recent migrant to the Garuda community, and I am trying to get a handle on it and the decisions that make it what it is. I try and operate from the position that I know less than most people. I am just looking for some understanding and clarification. maybe even start some polite discussion on the subject. I did my own research and I still couldn’t answer the questions i have.

I recently read with interest this thread:

As that thread instructed the OP to read into WINE on both the Arch Wiki and Garuda Linux Wiki (good advice for all Garuda users) I did exactly that. Both state a lot of facts, but neither helped me understand why Garuda still loads WINE-staging in preference to the stable branch of WINE (that is currently far more up-to-date in terms of feature set).

I understand that “in the bad old days” Glorious Eggroll and other gaming on Linux experts recommended WINE-staging over WINE stable, and I think I understand the logic of that time (though I welcome correction): WINE releases were few and far between, so it could take months or even years for essential patches to make it into the stable version, and that the easiest way to obtain the best performance and stability of applications running in WINE prefixes was to run the staging branch.

But is that the case today? WINE is a fast moving beast these days, with us seeing a major release about every 10 months since version 5 hit the streets. We’re seeing point releases regularly, sometimes as often as one a month. In the same period that WINE staging has moved from 8.20 to 8.21 we’ve seen the stable branch release WINE 9 and 3 subsequent point releases.

WINE seems to be rapidly advancing, adding support for SYSCALLs (yay for DRM and anti-cheat support moving forward) and WOW64 (adding support for Windows’ own thin-VM is sure to vastly improve a lot of stuff).

WINE-staging is still the thin edge of the wedge, so I get how developers and OS maintainers need to be across it, but is WINE-staging relevant to a person that daily drives Linux as a user? I support a fair few machines for friends and family, and I tend to match distro to the user, and the only other distro I see use WINE-staging by default is nobara, so I have to wonder how relevant running staging is these days.

It seems even more redundant when most games and bleeding-edge Windows application are run in Proton or with a shrink-wrapped WINE runtime, like those provided by Glorious Eggroll. These often include the latest “known-good” staging patches ported forward from the Staging branch. In light of that, keeping the main OS on staging just seems somewhat redundant.

Is there a gap in my understanding? Given Steam, Lutris, Heroic-Launcher and Bottles all use shrink-wrapped runtimes by default, is there still a reason to keep the main OS WINE install on staging?

garuda-inxi
System:
Kernel: 6.8.1-AMD arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-amd
root=UUID=9062b14e-e906-4b1c-bccd-19548297fa7c rw rootflags=subvol=@
quiet resume=UUID=43e9fc5f-f600-42cb-ab98-964d52f04f80 loglevel=3
amdgpu.ppfeaturemask=0xfffd3fff ibt=off
Desktop: KDE Plasma v: 6.0.2 tk: Qt v: N/A info: frameworks v: 6.0.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: B650M K v: x.x
serial: <superuser required> uuid: <superuser required> UEFI: American
Megatrends LLC. v: FA3a date: 02/06/2024
CPU:
Info: model: AMD Ryzen 7 7700X bits: 64 type: MT MCP arch: Zen 4 gen: 5
level: v4 note: check built: 2022+ process: TSMC n5 (5nm) family: 0x19 (25)
model-id: 0x61 (97) stepping: 2 microcode: 0xA601206
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB desc: 8x1024 KiB
L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 4957 high: 5337 min/max: 400/5573 scaling:
driver: amd-pstate-epp governor: performance cores: 1: 5239 2: 5315 3: 5270
4: 5255 5: 5261 6: 5282 7: 5207 8: 400 9: 5224 10: 5286 11: 5337 12: 5251
13: 5270 14: 5273 15: 5204 16: 5245 bogomips: 143785
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: AMD Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT]
vendor: ASUSTeK driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x
process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 4 speed: 16 GT/s
lanes: 16 ports: active: DP-1,DP-3 empty: DP-2,HDMI-A-1,Writeback-1
bus-ID: 03:00.0 chip-ID: 1002:73df class-ID: 0300
Device-2: AMD Raphael vendor: Gigabyte driver: amdgpu v: kernel
arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm) built: 2020-22 pcie:
gen: 4 speed: 16 GT/s lanes: 16 ports: active: none empty: DP-4, DP-5,
DP-6, HDMI-A-2, Writeback-2 bus-ID: 16:00.0 chip-ID: 1002:164e
class-ID: 0300 temp: 44.0 C
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_wayland driver: X: loaded: amdgpu
unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
gpu: amdgpu,amdgpu d-rect: 5360x2520 display-ID: 0
Monitor-1: DP-1 pos: bottom-r res: 1920x1080 size: N/A modes: N/A
Monitor-2: DP-3 pos: primary,top-left res: 3440x1440 size: N/A modes: N/A
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: radeonsi device: 2 drv: swrast gbm: drv: kms_swrast
surfaceless: drv: radeonsi wayland: drv: radeonsi x11: drv: radeonsi
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.0.3-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 6700 XT (radeonsi
navi22 LLVM 17.0.6 DRM 3.57 6.8.1-AMD) device-ID: 1002:73df
memory: 11.72 GiB unified: no display-ID: :1.0
API: Vulkan v: 1.3.279 layers: 13 device: 0 type: discrete-gpu name: AMD
Radeon RX 6700 XT (RADV NAVI22) driver: mesa radv v: 24.0.3-arch1.1
device-ID: 1002:73df surfaces: xcb,xlib,wayland device: 1
type: integrated-gpu name: AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO)
driver: mesa radv v: 24.0.3-arch1.1 device-ID: 1002:164e
surfaces: xcb,xlib,wayland device: 2 type: cpu name: llvmpipe (LLVM
17.0.6 256 bits) driver: mesa llvmpipe v: 24.0.3-arch1.1 (LLVM 17.0.6)
device-ID: 10005:0000 surfaces: xcb,xlib,wayland
Audio:
Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab28
class-ID: 0403
Device-2: AMD Rembrandt Radeon High Definition Audio driver: snd_hda_intel
v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 16:00.1
chip-ID: 1002:1640 class-ID: 0403
Device-3: AMD Family 17h/19h HD Audio vendor: Gigabyte
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 16:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-4: Logitech G435 Wireless Gaming Headset
driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 1-11.4:10 chip-ID: 046d:0acb class-ID: 0300
serial: <filter>
Device-5: M-Audio M-Track driver: snd-usb-audio type: USB rev: 1.1
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-12:9 chip-ID: 0763:4000
class-ID: 0103
API: ALSA v: k6.8.1-AMD status: kernel-api with: aoss type: oss-emulator
tools: N/A
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.0.4 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 08:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp8s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Info: services: NetworkManager, smbd, systemd-timesyncd
Drives:
Local Storage: total: 10.46 TiB used: 8.4 TiB (80.3%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
model: SSD 970 EVO Plus 500GB size: 465.76 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 2B2QEXM7 temp: 46.9 C
ID-2: /dev/nvme1n1 maj-min: 259:1 vendor: Samsung model: SSD 970 EVO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QEXE7 temp: 51.9 C
scheme: GPT
ID-3: /dev/sda maj-min: 8:0 vendor: Western Digital
model: WD100EFAX-68LHPN0 size: 9.1 TiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
fw-rev: 0A83 scheme: GPT
Partition:
ID-1: / raw-size: 863.06 GiB size: 1.3 TiB (153.97%)
used: 469.35 GiB (35.3%) fs: btrfs dev: /dev/nvme1n1p2 maj-min: 259:3
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 592 KiB (0.2%) fs: vfat dev: /dev/nvme1n1p1 maj-min: 259:2
ID-3: /home raw-size: 863.06 GiB size: 1.3 TiB (153.97%)
used: 469.35 GiB (35.3%) fs: btrfs dev: /dev/nvme1n1p2 maj-min: 259:3
ID-4: /var/log raw-size: 863.06 GiB size: 1.3 TiB (153.97%)
used: 469.35 GiB (35.3%) fs: btrfs dev: /dev/nvme1n1p2 maj-min: 259:3
ID-5: /var/tmp raw-size: 863.06 GiB size: 1.3 TiB (153.97%)
used: 469.35 GiB (35.3%) fs: btrfs dev: /dev/nvme1n1p2 maj-min: 259:3
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 61.97 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 16 dev: /dev/zram0
ID-2: swap-2 type: partition size: 68.15 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme1n1p3 maj-min: 259:4
Sensors:
System Temperatures: cpu: 57.0 C mobo: 36.0 C
Fan Speeds (rpm): cpu: 572 fan-3: 857 fan-4: 891
GPU: device: amdgpu temp: 44.0 C device: amdgpu temp: 57.0 C mem: 44.0 C
fan: 0 watts: 24.00
Info:
Memory: total: 64 GiB note: est. available: 61.97 GiB
used: 12.03 GiB (19.4%)
Processes: 461 Power: uptime: 7h 59m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 24.78 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 255 default: graphical
tool: systemctl
Packages: pm: pacman pkgs: 2269 libs: 603 tools: octopi,paru,yay
pm: flatpak pkgs: 0 Compilers: clang: 17.0.6 gcc: 13.2.1 Shell: garuda-inxi
default: fish v: 3.7.0 running-in: konsole inxi: 3.3.33
Garuda (2.6.23-1):
System install date:     2024-02-09
Last full system update: 2024-03-19
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       No/Undetected
Failed units:

I think I can answer one of your questions. For some after installing Garuda Wine just would not work, so we would replace Wine with Wine Staging. I’m sure if you go far enough back in my post / threads you will find more than a few post on the matter. If memory serves me correctly the devs finally chose to use Wine Staging over wine because of Wine having issues.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.