При создании wineprefix корректно не создаётся файл c:/windows/system32/msiexec.exe: $ file msiexec.exe msiexec.exe: data Должно быть: $ file msiexec.exe msiexec.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit wine-etersoft-1.0.12-alt11.10 wine-etersoft-twain-1.0.12-alt11.10 wine-etersoft-sql-1.0.12-alt19
Почему портится msiexec.exe, не очень понятно. Проблема возникла после патча "Close file handle before running UNIX binary (eterbug #4125)." Если точнее, то она возникает из-за того, что в данном патче в вызове ignore_locks (бывший close_lock_fd) не закрывается rw-дескриптор, необходимый для обхода бага с F_GETLK на NFS. Если этот дескриптор закрывать, то проблемы нет. Вызов ignore_locks - это хак для бага #5643, которого могло бы и не быть. Т.е. корень проблемы не в последнем патче для #4125, а в хаке для NFS. Функция server_get_unix_fd проверяет соответствие запрашиваемых прав на файл тем, с которыми он был открыт, так что если программа открыла файл только на чтение, то она не сможет вызвать для него WriteFile, даже если реально используется rw-дескриптор. Поэтому не очень ясно, каким образом хак с использованием rw-дескриптора приводит к такой проблеме. Решил вернуть закрытие rw-дескриптора.
ubuntu 10.10 WINE@Etersoft 1.0 Network 1.0.12-eter11.16/22 файл создается корректно: guest@Ubuntu10:~/wine_c/windows/system32$ file msiexec.exe msiexec.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
(В ответ на comment #2) > ubuntu 10.10 > WINE@Etersoft 1.0 Network 1.0.12-eter11.16/22 > файл создается корректно: > guest@Ubuntu10:~/wine_c/windows/system32$ file msiexec.exe > msiexec.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit Принято