On Fri Aug 21 18:45:44 2026 +0000, Ken Sharp wrote:
Yeah I meant `/usr/share` not `/usr/share/wine`. Adding a trace in `install_from_file()`... Before: ``` 009c:trace:appwizcpl:DllMain (75A70000, 1, 00000000) 009c:trace:appwizcpl:install_from_default_dir package_dir is L"\\??\\Z:\\tmp\\wine\\wine32\\..\\" 009c:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\mono\\wine-mono-11.3.0-x86.msi" 009c:trace:appwizcpl:install_from_default_dir Trying to install from: L"\\\\?\\unix/usr/local/share/wine/" 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/mono\\wine-mono-11.3.0-x86.msi" 00a0:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00ac:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00b4:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00b8:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00ac:trace:appwizcpl:DllMain (75A70000, 3, 00000000) 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/share/wine/mono\\wine-mono-11.3.0-x86.msi" 00b4:trace:appwizcpl:DllMain (75A70000, 3, 00000000) 00b8:trace:appwizcpl:DllMain (75A70000, 3, 00000000) 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/opt/wine/mono\\wine-mono-11.3.0-x86.msi" 009c:trace:appwizcpl:get_cache_file_name got L"\\\\?\\Z:\\home\\test\\.cache\\wine\\wine-mono-11.3.0-x86.msi" 009c:warn:appwizcpl:sha_check Could not open file: 3 009c:warn:appwizcpl:install_from_cache could not validate checksum 009c:trace:appwizcpl:get_url Got URL L"http://source.winehq.org/winemono.php?arch=x86&v=11.3.0&winev=11.15" 009c:trace:appwizcpl:DllMain (75A70000, 0, 00000000) 01ac:trace:appwizcpl:DllMain (74FB0000, 1, 00000000) 01ac:trace:appwizcpl:install_from_default_dir package_dir is L"\\??\\Z:\\tmp\\wine\\wine32\\..\\" 01ac:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:install_from_default_dir Trying to install from: L"\\\\?\\unix/usr/local/share/wine/" 01ac:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/share/wine/gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/opt/wine/gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:get_cache_file_name got L"\\\\?\\Z:\\home\\test\\.cache\\wine\\wine-gecko-2.47.4-x86.msi" 01ac:warn:appwizcpl:sha_check Could not open file: 3 01ac:warn:appwizcpl:install_from_cache could not validate checksum 01ac:trace:appwizcpl:get_url Got URL L"http://source.winehq.org/winegecko.php?arch=x86&v=2.47.4&winev=11.15" 01ac:trace:appwizcpl:DllMain (74FB0000, 0, 00000000) ``` After: ``` wine: created the configuration directory '/tmp/wine/wineprefix' 009c:trace:appwizcpl:DllMain (75A70000, 1, 00000000) 009c:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\mono\\wine-mono-11.3.0-x86.msi" 009c:trace:appwizcpl:install_from_default_dir (Try 0) Installing L"wine-mono-11.3.0-x86.msi" from L"\\\\?\\unix/usr/local/share/wine/"... 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/mono\\wine-mono-11.3.0-x86.msi" 00a0:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00ac:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00b4:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00b8:trace:appwizcpl:DllMain (75A70000, 2, 00000000) 00ac:trace:appwizcpl:DllMain (75A70000, 3, 00000000) 009c:trace:appwizcpl:install_from_default_dir (Try 0) success. 009c:trace:appwizcpl:DllMain (75A70000, 0, 00000000) 01ac:trace:appwizcpl:DllMain (74FB0000, 1, 00000000) 01ac:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:install_from_default_dir (Try 0) Installing L"wine-gecko-2.47.4-x86.msi" from L"\\\\?\\unix/usr/local/share/wine/"... 01ac:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/gecko\\wine-gecko-2.47.4-x86.msi" 01ac:trace:appwizcpl:install_from_default_dir (Try 0) success. 01ac:trace:appwizcpl:DllMain (74FB0000, 0, 00000000) ``` The first trace clearly shows that it's failing and moves on to try and download the package. The second trace shows it succeeds. Unfortunately, it's not obvious WHY this works. The mixed casts explanation possibly (probably) isn't the cause, as this should have been fixed with C99 (and GCC 15). Before: ``` 009c:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\mono\\wine-mono-11.3.0-x86.msi" 009c:trace:appwizcpl:install_from_default_dir Trying to install from: L"\\\\?\\unix/usr/local/share/wine/" 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/mono\\wine-mono-11.3.0-x86.msi" ``` After ``` 009c:trace:appwizcpl:install_from_file canonical_path: L"Z:\\tmp\\wine\\mono\\wine-mono-11.3.0-x86.msi" 009c:trace:appwizcpl:install_from_default_dir (Try 0) Installing L"wine-mono-11.3.0-x86.msi" from L"\\\\?\\unix/usr/local/share/wine/"... 009c:trace:appwizcpl:install_from_file canonical_path: L"\\\\?\\unix/usr/local/share/wine/mono\\wine-mono-11.3.0-x86.msi" ``` The `canonical_path` looks identical to me in both cases. This is very easy to test: 1. Make sure packages are in `/usr/local/share` and nowhere else. 2. Build 3. `wineboot` I am asked to download the packages. If they're already in `~/.cache` then obviously it won't ask again. This may be indicative of another issue. If there's actually a bug, the right way is to figure out what the bug is. Then you can work on fixing it, ideally with the minimal amount of changes needed to fix the issue.
Starting by rewriting the function before understanding what's going on is not a good idea. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11723#note_149559