--- Begin Message ---
Hello Scott,
I have installed the newest Wine package on my Debian unstable system:
0.9.19~winehq0~ubuntu~6.06-2.
I have tried to run Dungeon Siege 1, and it ended immediately with a message
that I should reinstall shfolder.dll. I have traced it down, and found that a
call to shell32.SHGetFolderPathA(0,CSIDL_PERSONAL==5,0,0,char*) gives retval
80070002. I have written a small app which does this call, and it returns
S_OK==0 on Windows XP Prof. SP2.
I have compiled Wine 0.9.19 and run the tests with 'make -k test'.
SHGetFolderPath fails, because the return value 0 is expected.
Then I have done the following:
$ mv .wine .wine_0_9_19_premerge
# create new config
$ wine regedit.exe
$ mv .wine .wine_0_9_19_install
$ cp -a .wine_0_9_19_premerge .wine
$ meld .wine_0_9_19_install .wine
...merge...
$ diff -r -q .....
...merge... (some meld problem with charset, one directory has an unprintable
character, created by legacy Windows software: Might & Magic VI)
I could solve the problem that way, but it really is inconvenient. I do not
want to reinstall all Windows applications when updating Wine.
Letting Wine create a new config does not create symlinks to /usr/lib/wine/*.
Symlinks are a good idea to handle the update problem if the user has several
configurations not necessarily seen by Wine. But if I compile a HEAD revision
of Wine, and want to test it with my config, it is not easy to change all the
symlinks. But I have seen my changes anyway, nothing accesses system32 files
directly.
So here are differences not done by the package install script:
windows/system.ini:
old: waveaudio=mciwave.drv
new: waveaudio=mciwave.dll
userdef.reg:
[Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders]
add: "Fonts" = "C:\\Windows\\Fonts"
"Fonts" = str(2):"C:\\Windows\\Fonts"
user.reg:
add: "Fonts", see above.
add: [Software\\Wine\\MSHTML]
"GeckoUrl"="http://source.winehq.org/winegecko.php"
???: [Software\\Wine\\shdocvw]
...Mozilla...
(I do not understand what is going on here)
$ cd windows/command; rm start.exe; ln -s /usr/lib/wine/start.exe.so start.exe
(I am not sure if it is not already done)
Now the part which fixes my problem:
$ cd profiles/ah
$ ln -s /home/ah/Desktop Desktop
$ ln -s /home/ah "My Documents"
$ ln -s /home/ah "My Music"
$ ln -s /home/ah "My Pictures"
$ ln -s /home/ah "My Video"
And some missing symbolic links:
$ cd windows/system32
$ ln -s /usr/lib/wine/advapi32.dll.so advapi32.dll
$ ln -s /usr/lib/wine/advpack.dll.so advpack.dll
$ ln -s /usr/lib/wine/comctl32.dll.so comctl32.dll
$ ln -s /usr/lib/wine/comdlg32.dll.so comdlg32.dll
$ ln -s /usr/lib/wine/crypt32.dll.so crypt32.dll
$ ln -s /usr/lib/wine/d3d8.dll.so d3d8.dll
$ ln -s /usr/lib/wine/dbghelp.dll.so dbghelp.dll
$ ln -s /usr/lib/wine/ddraw.dll.so ddraw.dll
$ ln -s /usr/lib/wine/gdi32.dll.so gdi32.dll
$ ln -s /usr/lib/wine/hhctrl.ocx.so hhctrl.ocx
$ ln -s /usr/lib/wine/imaadp32.acm.so imaadp32.acm
$ ln -s /usr/lib/wine/imagehlp.dll.so imagehlp.dll
$ ln -s /usr/lib/wine/kernel32.dll.so kernel32.dll
$ ln -s /usr/lib/wine/msadp32.acm.so msadp32.acm
$ ln -s /usr/lib/wine/msg711.acm.so msg711.acm
$ ln -s /usr/lib/wine/msi.dll.so msi.dll
$ ln -s /usr/lib/wine/msvcrt.dll.so msvcrt.dll
$ ln -s /usr/lib/wine/ntdll.dll.so ntdll.dll
$ ln -s /usr/lib/wine/opengl32.dll.so opengl32.dll
$ ln -s /usr/lib/wine/rpcrt4.dll.so rpcrt4.dll
$ ln -s /usr/lib/wine/shdocvw.dll.so shdocvw.dll
$ ln -s /usr/lib/wine/shell32.dll.so shell32.dll
$ ln -s /usr/lib/wine/shfolder.dll.so shfolder.dll
$ ln -s /usr/lib/wine/shlwapi.dll.so shlwapi.dll
$ ln -s /usr/lib/wine/user32.dll.so user32.dll
$ ln -s /usr/lib/wine/version.dll.so version.dll
$ ln -s /usr/lib/wine/winmm.dll.so winmm.dll
$ ln -s /usr/lib/wine/ws2_32.dll.so ws2_32.dll
$ ln -s /usr/lib/wine/wsock32.dll.so wsock32.dll
I suggest a Wine baseline (master) - defined for every release - which is
merged into the current installation of the user, using two-phase commit:
1. Show all changes to the user in a graphical dialog, with all changes
checked. Let the user uncheck any of it. Provide "Commit" and "Do not commit
this time (note: start wineupdate or select "Wine Update" from menu to get the
dialog again for the actual version)".
2. Commit all wanted changes if that option is chosen. Rollback should be
possible, because errors may come later.
This would really be nice, but it would stress the package management
mechanisms a bit I think.
Greetings,
André Heynatz
--- End Message ---