Bug 7350

Summary: Битый msiexec.exe после создания wineprefix
Product: WINE@Etersoft Reporter: Александр Морозов <amorozov>
Component: ОбщееAssignee: Александр Морозов <amorozov>
Status: CLOSED FIXED QA Contact: Andrey Vusik <night>
Severity: major    
Priority: P1 CC: baraka, stas, svzhu
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 7052    

Description Александр Морозов 2011-06-07 13:54:34 MSK
При создании 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
Comment 1 Александр Морозов 2011-06-07 16:57:59 MSK
Почему портится 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-дескриптора.
Comment 2 Svetlana Zhukova 2011-08-11 13:38:57 MSK
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 3 Andrey Vusik 2011-08-23 13:53:25 MSK
(В ответ на 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

Принято