http://bugs.winehq.com/show_bug.cgi?id=1113
------- Additional Comments From z_god@wanadoo.nl 2003-28-06 07:37 ------- Bug comments restored from Gmane.org:
Hi everybody.
I was using build 20021007, that was not available to select for "version", on Redhat 7.3. I tried to install the Interbase (an SQL database from Borland) client and the installer reported that it could not copy any of the files from the install subdirectory to the destination. Installation failed. I managed to produce this debug output from wine:
08073ed8:Call kernel32.CopyFileW(402af0f8 L"C:\ib_install\client\ibinstall.dll",402af150 L"C:\Program Files\Borland\InterBase\",00000000) ret=4131ee2f trace:file:CopyFileW L"C:\ib_install\client\ibinstall.dll" -> L"C:\Program Files\Borland\InterBase\" trace:file:CreateFileW L"C:\ib_install\client\ibinstall.dll" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING attributes 0x0 trace:file:CreateFileW returning 00000054 trace:file:GetFileInformationByHandle 00000054 trace:file:CreateFileW L"C:\Program Files\Borland\InterBase\" GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE CREATE_ALWAYS attributes 0x20 warn:file:FILE_CreateFile Unable to create file '/usr/share/wine-c/Program Files/Borland/InterBase' (GLE 82) trace:file:CreateFileW returning ffffffff warn:file:CopyFileW Unable to open dest L"C:\Program Files\Borland\InterBase\" 08073ed8:Ret kernel32.CopyFileW() retval=00000000 ret=4131ee2f
What I can see here is that the destination is not a file name (as it is supposed to be) but the name of a subdirectory. WINE does not like that. The installer works flawlessly on any known windows platform, this looks like an undocumented feature of windows to me.
------- Additional Comments From dclark <at> akamail.com 2002-10-31 13:39 ------- In this case it is a documented feature: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base... Go down near the bottom to the header "Directories", and it says "An application cannot create a directory with CreateFile; it must call CreateDirectory or CreateDirectoryEx to create a directory."
And indeed, running on WinNT, if there is no such directory, this call sets the LastError to ERROR_INVALID_NAME. I have seen another program that expects that and then makes a call to create the directory.
------- Additional Comments From joern <at> sierwald.com 2002-10-31 13:50 ------- Sorry, but this is not what I meant. The destination directory does exist already. The problem is that the destination ends with a '' sign. Windows would append the actual filename to the destination and try to open that file. The resulting filename would be C:\Program Files\Borland\InterBase\ibinstall.dll". But WINE doesn't do that.
------- Additional Comments From dclark <at> akamail.com 2002-10-31 14:19 ------- Quite right. I see that now.