pabs
10th June 2005 10:46 UTC
debugging MUI_PAGE_FINISH?
Hi all,
Someone found a bug in the debian nsis package[1], where the MUI_PAGE_FINISH is never shown.
Is anyone able to reproduce this using the windows version of nsis? I've confirmed it happens with the debian package.
Does anyone know of a way to debug the function? I've tried inserting MessageBox and FileOpen/etc, but neither of these can be used inside the MUI_PAGE_FINISH macro.
1. http://bugs.debian.org/312564
kichik
10th June 2005 10:56 UTC
The MUI_FUNCTION_FINISHPAGE macro is where you'd want to add your code.
pabs
12th June 2005 08:59 UTC
Ok, so I put this at the end of the PRE function:
MessageBox MB_OK "${PRE}"
And this at the start of the LEAVE function:
MessageBox MB_OK "${LEAVE}"
Result is that it seems that only the PRE function is called. I'm not sure what to make of this, any ideas about what might cause it?
kichik
12th June 2005 13:47 UTC
Go deeper. Dig into the code of the InstallOptions plug-in.
pabs
13th June 2005 04:51 UTC
Hmmm, ok, if I copy the msvc-compiled InstallOptions.dll from the source tarball to the debian package, the finish page works fine. Must be a problem with mingw-compiled versions. I'll investigate further. I not that the mingw version depends on msvcrt.dll for some functions, while the msvc version doesn't: __dllonexit, _assert, _errno, abort, fflush, free, malloc, memset. I expect this might be a problem for some other plugins too.
pabs
13th June 2005 14:15 UTC
Seems that the actual problem is that the resource is not compiled into the dll for some reason. Good news is that this will not be an issue in 2.07. Now to backport the fix.
kichik
13th June 2005 20:13 UTC
Originally posted by pabs
Good news is that this will not be an issue in 2.07. Now to backport the fix.
Was that a problem with the Makefiles?
pabs
14th June 2005 06:24 UTC
Yep. I used $< instead of $^ in the dlls that needed to link more than one .o file together :/
So, fixing the MUI problem fixed a number of other (hidden) plugin problems too.