Description
Describe the bug
Dependencies can never be installed in newly created Bottles without restarting Bottles first.
Update: See first comment below this. I found more details to track down the bug and have clarified.
To Reproduce
- Create new Bottle. I use Gaming template.
- Open Bottle, click Dependencies.
- Try to install vcredist2022. You will ALWAYS get this error. I've seen it for a year across 2 computers:
- Look in the console logs. It says the hash mismatched and that the vcredist file was deleted.
- So you try again. It downloads vcredist again. Then the installation says it failed again. Hash mishmatch again.
- Restart Bottles.
- Install it again. Now it works.
Package
Flatpak from Flathub
Distribution
Fedora Workstation 40
Debugging Information
Official Package: true
Version: '51.15'
DE/WM: gnome-xorg
Display:
X.org: true
X.org (port): :0
Wayland: false
Graphics:
vendors:
nvidia:
vendor: nvidia
envs:
__NV_PRIME_RENDER_OFFLOAD: '1'
__GLX_VENDOR_LIBRARY_NAME: nvidia
__VK_LAYER_NV_optimus: NVIDIA_only
icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json
nvngx_path: /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/extra/nvidia/wine
prime:
integrated: null
discrete: null
Kernel:
Type: Linux
Version: 6.9.12-200.fc40.x86_64
Disk:
Total: 33553694720
Free: 33553510400
RAM:
MemTotal: 62.5GiB
MemAvailable: 16.0GiB
Bottles_envs: null
Troubleshooting Logs
Log when it failed:
13:51:32 (INFO) Installing dependency [vcredist2022] in bottle [Ultima Online].
13:51:32 (WARNING) File [vcredist2022_x86.exe] already exists in temp, skipping.
13:51:32 (ERROR) Downloaded file [VC_redist.x86.exe] looks corrupted.
13:51:32 (ERROR) Source cksum: [822551b098e93c504de2c7865216928f] downloaded: [8457542fd4be74cb2c3a92b3386ae8e9]
13:51:32 (ERROR) Removing corrupted file [VC_redist.x86.exe].
Log when you retry during the same failed session:
13:53:26 (WARNING) File [vcredist2022_x64.exe] already exists in temp, skipping.
13:53:26 (ERROR) Downloaded file [VC_redist.x64.exe] looks corrupted.
13:53:26 (ERROR) Source cksum: [52f4f5a6adc24bce21dbceac2e2ad809] downloaded: [1d545507009cc4ec7409c1bc6e93b17b]
13:53:26 (ERROR) Removing corrupted file [VC_redist.x64.exe].
Log after Bottles restart, when it always succeeds:
VC_redist.x64.exe (100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (24.5MiB/24.5MiB - 27.7MiB)
13:55:17 (INFO) Renaming [VC_redist.x64.exe] to [vcredist2022_x64.exe].
13:55:17 (INFO) Launching an executable…
13:55:17 (INFO) Using EasyAntiCheat runtime
13:55:17 (INFO) Using BattlEye runtime
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
0088:err:hid:udev_bus_init UDEV monitor creation failed
13:55:22 (INFO) Adding Key: [HKEY_CURRENT_USER\Software\Wine\DllOverrides] with Value: [concrt140] and Data: [native,builtin] in Ultima Online registry
13:55:22 (INFO) Using Wine Registry CLI -- add
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
0084:err:hid:udev_bus_init UDEV monitor creation failed
13:55:23 (INFO) reg: The operation completed successfully
13:55:23 (INFO) Adding Key: [HKEY_CURRENT_USER\Software\Wine\DllOverrides] with Value: [msvcp140] and Data: [native,builtin] in Ultima Online registry
13:55:23 (INFO) Using Wine Registry CLI -- add
etc... it works
Additional context
This is 100% reproducible in all new bottles. Leading me to believe that Bottles is hashing the wrong file or path when you have newly created a bottle.
Edit: Googling the downloaded hashes actually seems to bring up references to VCredist, so it seems more like Bottles is using the wrong hashes when verifying the downloads. But it's weird that it's only a problem for newly created bottles, and that it works after a Bottles restart.