Archive: debugging MUI_PAGE_FINISH?


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


The MUI_FUNCTION_FINISHPAGE macro is where you'd want to add your code.


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?


Go deeper. Dig into the code of the InstallOptions plug-in.


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.


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.


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?

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.