http://bugs.winehq.org/show_bug.cgi?id=13838
Summary: AutoCAD 2005 setup : Missing backslash in registry entry and profile path Product: Wine Version: 1.0-rc4 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: max@veneto.com
During setup of AutoCAD2005, some values in registry are incorrectly set. In detail, what should be :
C:\windows\profiles\massimo\Applicazioni\Autodesk\AutoCAD 2005\......
Is instead written like that :
C:\windows\profiles\massimo\ApplicazioniAutodesk\AutoCAD 2005\
Note the missing '\' between 'Applicazioni' and 'Autodesk' Folders in profile are created accordingly, so instead of :
massimo Applicazioni Autodesk
It's created as :
massimo ApplicazioniAutodesk
That brings problems in some addons (like ExpressTools for autocad) and, I guess, it's the cause for the first-run error messagebox. I think some path-related functions in wine is missing the terminating \.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Keywords| |Installer
--- Comment #1 from Dan Kegel dank@kegel.com 2008-06-10 16:32:55 --- Which registry key?
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #2 from max@veneto.com 2008-06-10 16:55:00 --- (In reply to comment #1)
Which registry key?
Many in user.reg registry... all set by autocad installer. For example
[Software\Autodesk\AutoCAD\R16.1\ACAD-301:409] 1213134383 @="" "AutoMigrate"=dword:00000000 "LaunchNFW"=dword:00000003 "LocalRootFolder"="C:\windows\profiles\massimo\Settaggi Locali\Applicazioni\Autodesk\AutoCAD 2005\R16.1\enu\" "NFWFile"="C:\Programmi\AutoCAD 2005\Help\acad_nfw.chm" "RoamableRootFolder"="C:\windows\profiles\massimo\Applicazioni\Autodesk\AutoCAD 2005\R16.1\enu\"
Or
[Software\Autodesk\AutoCAD\R16.1\ACAD-301:409\FixedProfile\General] 1213122260 "ANSIHatch"="acad.pat" "ANSILinetype"="acad.lin" "InsertUnitsDefSource"=dword:00000004 "InsertUnitsDefTarget"=dword:00000004 "ISOHatch"="acadiso.pat" "ISOLinetype"="acadiso.lin" "LastTemplate"="C:\windows\profiles\massimo\Settaggi Locali\Applicazioni\Autodesk\AutoCAD 2005\R16.1\enu\Template\acadiso.dwt" "Measureinit"=dword:00000001 "ProfileStorage"="C:\windows\profiles\massimo\Applicazioni\Autodesk\AutoCAD 2005\R16.1\enu\Support\Profiles\FixedProfile.aws" "TaskBar"=dword:00000000
But many more, AFAIK all with 'Applicazioni\Autodesk' were wrong. In original setup, all backslashes between 'Applicazioni' and 'Autodesk' were missing, leading to ApplicazioniAutodesk instead Applicazioni\Autodesk.
As corresponding folders where created as in registry, I don't think is just a registry problem... maybe some path handling functions.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #3 from James Hawkins truiken@gmail.com 2008-06-10 17:10:22 --- Can you try the demo [1] and see if you get the same problem? This will help us reproduce the problem on our end.
[1] http://www.brothersoft.com/autocad-78351.html
http://bugs.winehq.org/show_bug.cgi?id=13838
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #4 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2008-06-10 17:14:26 ---
Can you try the demo [1] and see if you get the same problem? This will help us reproduce the problem on our end.
this problem is also present in all demos of autocad i tried. (this confirming too)
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #5 from James Hawkins truiken@gmail.com 2008-06-10 17:16:41 --- Is it only with a specific language?
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #6 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2008-06-11 00:54:55 ---
Is it only with a specific language?
No, i guess max's has italian, i have english here: ~/.wine/drive_c/windows/profiles/louis/Application\ DataAutodesk
That should be
~/.wine/drive_c/windows/profiles/louis/Application\ Data\Autodesk
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #7 from max@veneto.com 2008-06-16 17:22:39 --- Created an attachment (id=14115) --> (http://bugs.winehq.org/attachment.cgi?id=14115) Append a backslash to retval of SHExpandEnvironmentString
Well, this patch solves the problem, but I'm not sure it's the right way... should be checked on windows.
I think that Autocad installer expects a path from SHExpandEnvironmentString() with a trailing backslash, and appends just "Autodesk" to it without checking. That's a bug, but on windows works... so I guess it's a windows bug which covers autocad installers one.
So, with this patch, SHExpandEnvironmentString() returns a path with a trailing backslash.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #8 from James Hawkins truiken@gmail.com 2008-06-16 22:32:52 --- It's really simple to add a test for this to the test suite.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #9 from max@veneto.com 2008-06-17 02:43:51 --- (In reply to comment #8)
It's really simple to add a test for this to the test suite.
No idea on how to do it.... Can you ?
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
max@veneto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |msi
--- Comment #10 from max@veneto.com 2008-06-28 10:08:07 --- I traced down the problem to MSI code, I guess. The function
MSI_GetPropertyW("COMMON_APPDATAFOLDER")
returns (correctly, IMHO) the full common app folder path WITH a trailing backslash. OTOH, the function
MSI_GetPropertyW("LOCAL_APPDATAFOLDER")
returns (incorrectly, IMHO) the full local app folder path WITHOUT a trailing slash.
This non-uniform behaviour can make me think of a bug on MSI. My previous patch, adding a backslash to SHExpandEnvironmentString() function in shell32 acts as a workaround correcting the problem, but imho that's not the right way.
BTW, my skills ends here. This bug and http://bugs.winehq.org/show_bug.cgi?id=13599 are the 2 bugs that blocks autocad setup on vanilla wine. I hope somebody'll take care of them soon....
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #11 from James Hawkins truiken@gmail.com 2008-06-28 16:16:21 --- I'm not getting this problem with the 2004 demo...
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #12 from max@veneto.com 2008-06-28 16:20:27 --- (In reply to comment #11)
I'm not getting this problem with the 2004 demo...
I've not the 2004 demo here... but on 2005 and 2008 the problem is there. You've got all registry items correct ? Applications\Autodesk and not ApplicationsAutodesk ? I've got it right an 'All Users' stuffs, but not in active user one.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #12 from max@veneto.com 2008-06-28 16:20:27 --- (In reply to comment #11)
I'm not getting this problem with the 2004 demo...
I've not the 2004 demo here... but on 2005 and 2008 the problem is there. You've got all registry items correct ? Applications\Autodesk and not ApplicationsAutodesk ? I've got it right an 'All Users' stuffs, but not in active user one.
Max
--- Comment #13 from James Hawkins truiken@gmail.com 2008-06-28 16:30:08 --- Is there a demo of 2005 or 2008, and if so, can you verify that the problem exists with those demo versions?
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #14 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2008-06-28 16:37:39 --- hmm, i could confirmed that bug in Autocad2004, it was 100% sure present about a week ago, but now it's gone...... Maybe it's fixed in current git. I'll do a bit testing with older wine-version. Max, have you tried install with current git? For me it looks as if it's fixed
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #15 from max@veneto.com 2008-06-28 16:40:50 --- (In reply to comment #13)
Is there a demo of 2005 or 2008, and if so, can you verify that the problem exists with those demo versions?
Afaik, the demo versions are *exactly* the full versions, you shall just leave the serial number as 000-00000000 as proposed.... The problem is that on autodesk site you'll find just the latest (2009) which doesn't run nor install for sure.
You can find the 2008 here :
http://www.brothersoft.com/autocad-51230.html
They've also the 2006 and 2007, but both have other problems. 2006 installs (IIRC) with same regostry problem.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #16 from max@veneto.com 2008-06-28 16:41:42 --- (In reply to comment #14)
hmm, i could confirmed that bug in Autocad2004, it was 100% sure present about a week ago, but now it's gone...... Maybe it's fixed in current git. I'll do a bit testing with older wine-version. Max, have you tried install with current git? For me it looks as if it's fixed
I'll do it right now... that'd be a good new ! :-)
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #17 from max@veneto.com 2008-06-28 16:48:25 --- Nope, same error.... here an example of regostry content (user.reg) :
[Software\Autodesk\AutoCAD\R16.1\ACAD-301:409] 1214689584 @="" "LaunchNFW"=dword:00000001 "LocalRootFolder"="C:\windows\profiles\massimo\Settaggi Locali\ApplicazioniAutodesk\AutoCAD 2005\R16.1\enu\" "NFWFile"="C:\Programmi\AutoCAD 2005\Help\acad_nfw.chm" "RoamableRootFolder"="C:\windows\profiles\massimo\ApplicazioniAutodesk\AutoCAD 2005\R16.1\enu\"
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #18 from James Hawkins truiken@gmail.com 2008-06-28 16:55:15 --- Is that with latest git or a release such as 1.1.0? If the problem is with latest git, we need you to try either the 2005 or 2008 demo (or some downloadable piece of software that exposes the same problem) and give the exact steps needed to reproduce the problem.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #19 from max@veneto.com 2008-06-28 17:01:35 --- .... and that one is from autocad 2008
[Software\Autodesk\AutoCAD\R17.1\ACAD-6001:409\Profiles\<<Unnamed Profile>>\General] 1214690369 "ACAD"="C:\windows\profiles\massimo\ApplicazioniAutodesk\AutoCAD 2008\R17.1\enu\support;C:\Programmi\AutoCAD 2008\support;C:\Programmi\AutoCAD 2008\fonts;C:\Programmi\AutoCAD 2008\help;C:\Programmi\AutoCAD 2008\Express;C:\Programmi\AutoCAD 2008\support\color" "AlternativePageSetUpsTemplate"="C:\windows\profiles\massimo\Settaggi Locali\ApplicazioniAutodesk\AutoCAD 2008\R17.1\enu\Template\SheetSets\Architectural Imperial.dwt" "AVEMAPS"="C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\;C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\Bump;C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\Cutout" "ColorBookLocation"="C:\Programmi\AutoCAD 2008\support\color;C:\windows\profiles\massimo\ApplicazioniAutodesk\AutoCAD 2008\R17.1\enu\support\color" "
Last git.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #20 from max@veneto.com 2008-06-28 17:03:18 --- (In reply to comment #18)
Is that with latest git or a release such as 1.1.0? If the problem is with latest git, we need you to try either the 2005 or 2008 demo (or some downloadable piece of software that exposes the same problem) and give the exact steps needed to reproduce the problem.
the 2008 is downloadable from
http://www.brothersoft.com/autocad-51230.html
I don't know if it's the same that I have, but it should be. Could you try that one ? I'll try to download and try it too....
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #21 from max@veneto.com 2008-06-28 18:30:40 --- Tested with downloadable 2008 version, exactly the same problem...
[Software\Autodesk\AutoCAD\R17.1\ACAD-6001:409\Profiles\<<Unnamed Profile>>\General] 1214695646 "ACAD"="C:\windows\profiles\massimo\ApplicazioniAutodesk\AutoCAD 2008\R17.1\enu\support;C:\Programmi\AutoCAD 2008\support;C:\Programmi\AutoCAD 2008\fonts;C:\Programmi\AutoCAD 2008\help;C:\Programmi\AutoCAD 2008\Express;C:\Programmi\AutoCAD 2008\support\color" "AlternativePageSetUpsTemplate"="C:\windows\profiles\massimo\Settaggi Locali\ApplicazioniAutodesk\AutoCAD 2008\R17.1\enu\Template\SheetSets\Architectural Imperial.dwt" "AVEMAPS"="C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\;C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\Bump;C:\windows\profiles\All Users\Applicazioni\Autodesk\AutoCAD 2008\R17.1\enu\Textures\Cutout" "ColorBookLocation"="C:\Programmi\AutoCAD 2008\support\color;C:\windows\profiles\massimo\ApplicazioniAutodesk\
X Louis... are you sure you don't have my patch applied ? :-)
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #22 from James Hawkins truiken@gmail.com 2008-06-28 18:32:43 --- Max, are you applying any other patches to work around crashes etc? I need exact steps to reproduce this problem.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #23 from max@veneto.com 2008-06-29 05:20:59 --- (In reply to comment #22)
Max, are you applying any other patches to work around crashes etc? I need exact steps to reproduce this problem.
Nope, it appears on vanilla wine git too. The only patch I have onto it (but I've testet without and it's the same) is the opengl one, to allow the installer to finish. But even without the patch the registry is set-up before crash, so you can reproduce on a fresh wint.
Ah, of course, you need to do a winetricks with corefonts, dotnet20 and msxml3 BEFORE installing, otherwise it'll crash before.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #24 from max@veneto.com 2008-07-01 16:23:00 --- Here 2 snips of MSI traces, showing different behaviour on 2 queries :
Query of LOCALAPPDATAFOLDER : ---snip--- trace:msi:MSI_GetPropertyW returning L"C:\windows\profiles\massimo\Settaggi Locali\Applicazioni" for property L"LOCALAPPDATAFOLDER" ---snip---
Query of CommonAppDataFolder : ---snip--- trace:msi:MSI_GetPropertyW returning L"C:\windows\profiles\All Users\Applicazioni\" for property L"CommonAppDataFolder" ---snip---
You can note that first case has NO trailing backslash, the second HAS it.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #25 from max@veneto.com 2008-07-02 17:26:56 --- Another finding... The problem arises from the case-sensitivity of properties. In dlls/msi/package.c, the properties 'LocalAppDataFolder' and 'AppDataFolder' are initialized to corresponding register values WITH the trailing backslash.
AutoCAD installer OTOH looks for the properties CAPITALIZED, so 'LOCALAPPDATAFOLDER' and 'APPDATAFOLDER' which are initialized (don't know where yet) as corresponding registry values WITHOUT trailing backslash.
I guess it's a bug in Acad installer, but I guess M% returns the capitalized properties with backslash too, as uncapitalized ones, so the installer just appends 'Autodesk' to returned path. In wine, the resulting path misses the backslash between the returned property and the word 'Autodesk'.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #26 from James Hawkins truiken@gmail.com 2008-07-02 17:51:48 --- (In reply to comment #25)
Another finding... The problem arises from the case-sensitivity of properties. In dlls/msi/package.c, the properties 'LocalAppDataFolder' and 'AppDataFolder' are initialized to corresponding register values WITH the trailing backslash.
There are tons of tests to prove that property names are case sensitive. What needs to be tested is if LOCALAPPDATAFOLDER and APPDATAFOLDER are also set as well as their counterparts.
AutoCAD installer OTOH looks for the properties CAPITALIZED, so 'LOCALAPPDATAFOLDER' and 'APPDATAFOLDER' which are initialized (don't know where yet) as corresponding registry values WITHOUT trailing backslash.
Shouldn't be too hard to find...
I guess it's a bug in Acad installer, but I guess M% returns the capitalized properties with backslash too, as uncapitalized ones, so the installer just appends 'Autodesk' to returned path. In wine, the resulting path misses the backslash between the returned property and the word 'Autodesk'.
I think it's a little too early to say it's a bug in the acad installer.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #27 from max@veneto.com 2008-07-02 17:57:47 --- (In reply to comment #26)
(In reply to comment #25)
Another finding... The problem arises from the case-sensitivity of properties. In dlls/msi/package.c, the properties 'LocalAppDataFolder' and 'AppDataFolder' are initialized to corresponding register values WITH the trailing backslash.
There are tons of tests to prove that property names are case sensitive.
That one I know for sure, it's stated everywhere.....
What needs to be tested is if LOCALAPPDATAFOLDER and APPDATAFOLDER are also set as well as their counterparts.
They're NOT tested as their counterparts. The capitalized ones (i.e. the LOCAL ones) are set with NO trailing backslash. The global (uncapitalized) ones are set WITH the trailing backslash. BTW, I still don't know WHERE the capitalized ones are set.... I don't know installer so in depth. Maybe do you ?
AutoCAD installer OTOH looks for the properties CAPITALIZED, so 'LOCALAPPDATAFOLDER' and 'APPDATAFOLDER' which are initialized (don't know where yet) as corresponding registry values WITHOUT trailing backslash.
Shouldn't be too hard to find...
Well, for me it is... (to find WHERE capitalized props are set and WHY they're different from global ones)
I guess it's a bug in Acad installer, but I guess M% returns the capitalized properties with backslash too, as uncapitalized ones, so the installer just appends 'Autodesk' to returned path. In wine, the resulting path misses the backslash between the returned property and the word 'Autodesk'.
I think it's a little too early to say it's a bug in the acad installer.
Yep, it was too early. Now I understand the difference from capitalized props and uncapitalized ones.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #28 from max@veneto.com 2008-07-02 18:32:41 --- Well, I think I've found it...
In dlls/msi/appsearch.c, the function ACTION_AppSearchReg() when looking for a path in registry just gets the path as-is. Its returned path is then used to set local properties as APPDATAFOLDER (among others...) which are then set without the trailing backslash.
I think the right stuff would be to add the trailing backslash inside Action_AppSearchReg() when required searched value is a directory :
---snip--- switch (type & 0x0f) { case msidbLocatorTypeDirectory:
====> HERE add the backslash to string... must reallocate string increasing size by one and copy it, if there's no better way.
rc = ACTION_SearchDirectory(package, sig, (LPWSTR)value, 0, appValue); break; case msidbLocatorTypeFileName: *appValue = strdupW((LPWSTR)value); break; ---snip---
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #29 from Dan Kegel dank@kegel.com 2008-07-02 18:52:54 --- If you could write a conformance test to expose and verify the problem first, that would be cool.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #30 from max@veneto.com 2008-07-03 17:26:50 --- (In reply to comment #29)
If you could write a conformance test to expose and verify the problem first, that would be cool.
Sorry, not able to write the test, my skills on MSI are too limited :-) But it should be logic enough that MSI global path properties as "CommonAppDataFolder" and MSI local path properties (as "LOCALAPPDATAFOLDER") should be returned in a consistent way. As the first where already returned by design WITH a trailing backslash, I made the latter to do so.
Ciao
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
max@veneto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #14115|0 |1 is obsolete| |
--- Comment #31 from max@veneto.com 2008-07-03 17:27:54 --- Created an attachment (id=14561) --> (http://bugs.winehq.org/attachment.cgi?id=14561) MSI:ACTION_AppSearchReg() should return backslash terminated paths
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #32 from James Hawkins truiken@gmail.com 2008-07-04 14:37:17 --- (In reply to comment #30)
(In reply to comment #29)
If you could write a conformance test to expose and verify the problem first, that would be cool.
Sorry, not able to write the test, my skills on MSI are too limited :-) But it should be logic enough that MSI global path properties as "CommonAppDataFolder" and MSI local path properties (as "LOCALAPPDATAFOLDER") should be returned in a consistent way. As the first where already returned by design WITH a trailing backslash, I made the latter to do so.
It's not logical at all. One property is set by the folder code, and the other is set by the AppSearch action. I'm not saying that the change is wrong, but it has to be backed up by a test. Guessing the behavior of the Win32 API is what causes bugs. If you can't write a test, then I'll whip something up over the weekend.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #33 from max@veneto.com 2008-07-04 14:58:41 --- (In reply to comment #32)
(In reply to comment #30)
(In reply to comment #29)
If you could write a conformance test to expose and verify the problem first, that would be cool.
Sorry, not able to write the test, my skills on MSI are too limited :-) But it should be logic enough that MSI global path properties as "CommonAppDataFolder" and MSI local path properties (as "LOCALAPPDATAFOLDER") should be returned in a consistent way. As the first where already returned by design WITH a trailing backslash, I made the latter to do so.
It's not logical at all. One property is set by the folder code, and the other is set by the AppSearch action. I'm not saying that the change is wrong, but it has to be backed up by a test. Guessing the behavior of the Win32 API is what causes bugs. If you can't write a test, then I'll whip something up over the weekend.
dlls/msi/package.c :
static VOID set_installer_properties(MSIPACKAGE *package) { ............. SHGetFolderPathW(NULL,CSIDL_COMMON_APPDATA,NULL,0,pth); strcatW(pth,cszbs); <=====================HERE MSI_SetPropertyW(package, CADF, pth); ............ }
dlls/msi/appsearch.c :
static UINT ACTION_AppSearchReg(MSIPACKAGE *package, LPWSTR *appValue, MSISIGNATURE *sig) { ................ value = msi_alloc( sz ); rc = RegQueryValueExW(key, valueName, NULL, ®Type, value, &sz); ................. switch (type & 0x0f) { case msidbLocatorTypeDirectory: rc = ACTION_SearchDirectory(package, sig, (LPWSTR)value, 0, appValue); break; ............... }
Well, if you think that's more logical return the same stuff in 2 different ways..... Btw, autocad installer expects it WITH a trailing backslash, so it must be like that. As I excluded a registry difference (checked with windows one...) and a path function difference (on that one i DID make a test and it's right, without the backslash), the only place on which the backslash can appear is here. And, if somebody added backslashes in set_installer_properties() there should be a reason..... BTW, I'm not able to make a testcase, as I already told you. If you can, I'll be glad.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
TomaszD dominikowski@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dominikowski@gmail.com
--- Comment #34 from TomaszD dominikowski@gmail.com 2008-07-04 15:39:59 --- Any update on this? Max? :] What about the test for this win32 api guesswork patch James? :]
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #35 from James Hawkins truiken@gmail.com 2008-07-04 17:35:11 --- (In reply to comment #33)
Well, if you think that's more logical return the same stuff in 2 different ways.....
The two pieces of functionality you are referring to are completely separate. It's not necessarily logical for them to return different things, but it's not illogical if they do. They are not comparable.
Btw, autocad installer expects it WITH a trailing backslash, so it must be like that. As I excluded a registry difference (checked with windows one...) and a path function difference (on that one i DID make a test and it's right, without the backslash), the only place on which the backslash can appear is here.
I never said the fix was wrong. I said the fix has to be backed up by a test.
And, if somebody added backslashes in set_installer_properties() there should be a reason.....
There is a backslash because the tests prove there should be a backslash.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #36 from max@veneto.com 2008-07-04 17:58:01 --- (In reply to comment #35)
(In reply to comment #33)
Well, if you think that's more logical return the same stuff in 2 different ways.....
The two pieces of functionality you are referring to are completely separate. It's not necessarily logical for them to return different things, but it's not illogical if they do. They are not comparable.
I don't agree. They maybe come from separate functionalities, but you're indeed asking installer to locate a folder path in both cases. And I expect to get it in a consistent way in both cases. I'd agree with you if you where speaking about shell path functions and msi path functions in terms of each other. In shell path, the convention is to return path WITHOUT backslash. In msi, there's big evidence that there's a convention on returning path WITH backslash. You can easily see in code I pasted before; for global properties you READ from REGISTRY a path an ADD a backslash. In local properties, you READ from REGISTRY a path and you simply forgot to add the backslash, point.
Autocad installer does make the assumption that msi paths are returned WITH backslash and act on consequence. I could agree that an installer should be a bit more error proof, but windows is full of such cases. Even agreeing on tests many times, I really don't see the point on loosing time to make a one where stuffs can't simply be different. The best test here is just autocad installer, having excluded any alternative, you can easily see looking at msi code.
Btw, autocad installer expects it WITH a trailing backslash, so it must be like that. As I excluded a registry difference (checked with windows one...) and a path function difference (on that one i DID make a test and it's right, without the backslash), the only place on which the backslash can appear is here.
I never said the fix was wrong. I said the fix has to be backed up by a test.
And, if somebody added backslashes in set_installer_properties() there should be a reason.....
There is a backslash because the tests prove there should be a backslash.
I even don't know if there's a test for it, I haven't looked at that. But I'm pretty sure that there's NO test that proves the opposite for local properties. As I said, that one is one of RARE cases where I think making a testcase is just loosing time, in particular if I've got to learn all MSI mechanics to demonstrate something about I'm 100% sure.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #37 from Dan Kegel dank@kegel.com 2008-07-04 19:22:26 --- Writing a test is seldom a waste of time... you may be sure, but the conformance test will convince the rest of us, and make sure it stays correct.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #38 from max@veneto.com 2008-07-05 03:12:28 --- (In reply to comment #37)
Writing a test is seldom a waste of time... you may be sure, but the conformance test will convince the rest of us, and make sure it stays correct.
I agree with you, a test case is "seldom" a waste of time. I'm pretty sure that this case belongs to the "seldom" part of the phrase. I've learned from my job (which has nothing to do with programming) to put efforts where they're most needed, and to try to balance the time spent with the results. If I must spend, let's say, 2 days learning MSI internals just to prove an obvious stuff, then, no, thanks. I already spent something like a week to locate the problem, exclude any alternative possibility and build a patch, and that time was, IMHO, worth the effort. As I said on previous post, if somebody with good skill on MSI can write a testcase in 10 minutes, well, I'll be really glad about it.
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #39 from TomaszD dominikowski@gmail.com 2008-07-05 04:26:03 --- (In reply to comment #38)
(In reply to comment #37)
(...)
As I said on previous post, if somebody with good skill on MSI can write a testcase in 10 minutes, well, I'll be really glad about it.
Max
Well, not to be nitpicky or anything, but in comment #32 James offered his help on this. James? :]
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #40 from TomaszD dominikowski@gmail.com 2008-07-10 18:01:43 --- Max, I know it's a lot to ask, but maybe you could write that test? Eventually someone will have to do it if we want to have AutoCAD working out-of-the-box.
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #41 from max@veneto.com 2008-07-11 04:41:02 --- (In reply to comment #40)
Max, I know it's a lot to ask, but maybe you could write that test? Eventually someone will have to do it if we want to have AutoCAD working out-of-the-box.
Nope, sorry... really no time and no interest on it. BTW, someone has said that he will do it.... I prefere to look inside the "slow truetype fonts" problem, which is becoming a real headache...
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #42 from max@veneto.com 2008-09-19 11:25:38 --- (In reply to comment #32)
(In reply to comment #30)
(In reply to comment #29)
If you could write a conformance test to expose and verify the problem first, that would be cool.
Sorry, not able to write the test, my skills on MSI are too limited :-) But it should be logic enough that MSI global path properties as "CommonAppDataFolder" and MSI local path properties (as "LOCALAPPDATAFOLDER") should be returned in a consistent way. As the first where already returned by design WITH a trailing backslash, I made the latter to do so.
It's not logical at all. One property is set by the folder code, and the other is set by the AppSearch action. I'm not saying that the change is wrong, but it has to be backed up by a test. Guessing the behavior of the Win32 API is what causes bugs. If you can't write a test, then I'll whip something up over the weekend.
Couldn't you write the testcase ?
Max
http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #43 from TomaszD dominikowski@gmail.com 2008-10-13 09:45:21 --- James, do you have creating the test on your to-do list? :]
http://bugs.winehq.org/show_bug.cgi?id=13838
James Hawkins truiken@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #44 from James Hawkins truiken@gmail.com 2008-10-16 11:57:49 --- Fix is in git.
http://bugs.winehq.org/show_bug.cgi?id=13838
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #45 from Alexandre Julliard julliard@winehq.org 2008-10-24 11:13:40 --- Closing bugs fixed in 1.1.7.
https://bugs.winehq.org/show_bug.cgi?id=13838
Saulius K. saulius2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saulius2@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=13838
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Fixed by SHA1| |3adf1e4e0e3f52f32659b3062e4 | |a2ebcf7513bb0