On Fri Aug 21 16:44:34 2026 +0000, Alexandre Julliard wrote:
The string is not concatencated correctly because of a difference between wide and narrow strings. No, that works just fine. That's always been the case, if INSTALL_DATADIR == "/usr/share/wine". INSTALL_DATADIR would be "/usr/share" in this case, it comes from configure. I don't see anything to fix here. 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. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11723#note_149551