A new release is coming soon but in the mean time we would like your feedback on this incomplete preview release. Please keep in mind that this is not for production use.
Download (go to the end of this thread to find the updated link)
NSIS vNext preview
24 posts
We're using a slew of plugins with our painfully complicated (about 25000 lines) set of installers, and FWIW your posted version works just fine.
If compile an example "Browse for Folder" in the NSIS v3.02.01, then the window title displayed is correctly.

When compiling the same example in the NSIS v3.03 preview the characters in the string are not correct.

Error is not only for Cyrillic, but for Latin characters (ANSI and Unicode build).

When compiling the same example in the NSIS v3.03 preview the characters in the string are not correct.

Error is not only for Cyrillic, but for Latin characters (ANSI and Unicode build).
Thank you for reporting this! I found the issue and will fix it before the final release.Originally Posted by Kriggi View PostWhen compiling the same example in the NSIS v3.03 preview the characters in the string are not correct.
Hello Anders.
We have started testing the new version and made appropriate changes in Visual & Installer, RAD & Installer and Graphical Installer.
So far it looks good, probably the biggest changes are in nsDialogs which needs a lot of work (on our side) but we have found no serious issues.
We have started testing the new version and made appropriate changes in Visual & Installer, RAD & Installer and Graphical Installer.
So far it looks good, probably the biggest changes are in nsDialogs which needs a lot of work (on our side) but we have found no serious issues.
* NSIS Menu: We might dump wxWidgets and use .nsi version. Feedback is welcome.
* MakeNsisW: The tool menu has a new window spy feature.
* x64.nsh: ARM64 detection and some new platform detection macros.
This is not a complete release, just overwrite a temporary 3.03 install with these files.
3.04.zip
* MakeNsisW: The tool menu has a new window spy feature.
* x64.nsh: ARM64 detection and some new platform detection macros.
This is not a complete release, just overwrite a temporary 3.03 install with these files.
3.04.zip
Getting rid of wxWidgets is much appreciated
Building wxWidgets was always a pain 😉
Cheers,
Marius
Building wxWidgets was always a pain 😉
Cheers,
Marius
In the nsis menu, I'm getting a bunch of "Error, unable to open" messages, and all the plugins fail with the same format, examples:
C:\NSIS3 - Copy\bin\Zip2Exe2
!P=AdvSplash
!P=Banner
All I did was copy/paste my 3.03 install folder.
C:\NSIS3 - Copy\bin\Zip2Exe2
!P=AdvSplash
!P=Banner
All I did was copy/paste my 3.03 install folder.
Thanks, I updated the .zip, should work now.Originally Posted by JasonFriday13 View PostIn the nsis menu, I'm getting a bunch of "Error, unable to open" messages, and all the plugins fail with the same format, examples:
C:\NSIS3 - Copy\bin\Zip2Exe2
!P=AdvSplash
!P=Banner
@Anders,
The 3.04 preview build works fine for me.
However, it seems that there is still a problem with NSIS Menu app.
It can not find Zip2Exe2.exe (there is a Zip2Exe.exe in Bin folder, a typo?).
I am also happy that you are gonna replace NSIS Menu (based on wxWidgets) to nsis installer (wxWidgets was always a problem).
-Pawel
The 3.04 preview build works fine for me.
However, it seems that there is still a problem with NSIS Menu app.
It can not find Zip2Exe2.exe (there is a Zip2Exe.exe in Bin folder, a typo?).
I am also happy that you are gonna replace NSIS Menu (based on wxWidgets) to nsis installer (wxWidgets was always a problem).
-Pawel
Thanks, somehow missed that and it should actually work now.Originally Posted by Pawel View PostHowever, it seems that there is still a problem with NSIS Menu app.
It can not find Zip2Exe2.exe (there is a Zip2Exe.exe in Bin folder, a typo?).
It is not guaranteed that this menu will be used in the final release but it will be used for anyone else compiling NSIS without having wxWidgets configured.
I added a tiny shadow under the main text, please test under high DPI if possible (the app is only system DPI aware and will be blurry on monitors that don't not match your primary monitors DPI setting).
How many of you are running multimonitor systems with different dpi settings for each monitor?
Hello Anders.
I cannot compile any version starting with nsis-code-r7011-NSIS-trunk. 🙁
My build configuration is:
- Windows XP with SP3
- Microsoft Visual Studio 6.0 SP5 with Processor packs
- Microsoft SDK (February 2003)
- Python 2.7
- Scons 1.20
- wxWidgets 1.28
- MASM 1.11
- Zlib 1.2.11
I get the error message:
Here is a section of code in the file Plugins.cpp with these error line numbers:
I cannot compile any version starting with nsis-code-r7011-NSIS-trunk. 🙁
My build configuration is:
- Windows XP with SP3
- Microsoft Visual Studio 6.0 SP5 with Processor packs
- Microsoft SDK (February 2003)
- Python 2.7
- Scons 1.20
- wxWidgets 1.28
- MASM 1.11
- Zlib 1.2.11
I get the error message:
scons: Reading SConscript files ... Using Microsoft tools configuration (6.0) Checking for memset requirement... (cached) no Checking for memcpy requirement... (cached) no Checking for C library gdi32... (cached) yes Checking for C library user32... (cached) yes Checking for C library pthread... (cached) no Checking for C library iconv... (cached) no Checking for C library shlwapi... (cached) yes Checking for C library oleaut32... (cached) yes Checking for C library version... (cached) yes Checking for C library zdll... (cached) yes Checking for C library zdll... (cached) yes Checking for C library zdll... (cached) yes Checking for C library dl... (cached) no Checking for C library gdi32... (cached) yes Checking for C library iconv... (cached) no Checking for C library pthread... (cached) no Checking for C library user32... (cached) yes Checking for C library version... (cached) yes Checking for C library zdll... (cached) yes Checking for C++ library cppunit... (cached) no scons: done reading SConscript files. scons: Building targets ... Install file: "Examples\makensis.nsi" as ".instdist\Examples\makensis.nsi" Install file: "build\urelease\VPatch\Source\GenPat\GenPat.exe" as ".instdist\Bin\GenPat.exe" Install file: "build\urelease\Library\LibraryLocal\LibraryLocal.exe" as ".instdist\Bin\LibraryLocal.exe" Install file: "build\urelease\MakeLangId\MakeLangId.exe" as ".instdist\Bin\MakeLangId.exe" cl /Fobuild\urelease\makensis\Plugins.obj /c Source\Plugins.cpp /nologo /O2 /GX /W3 /FAcs /Fabuild\urelease\makensis\Plugins.obj.lst /MD /TP /nologo /O2 /GX /W3 /FAcs /Fabuild\urelease\makensis\Plugins.obj.lst /MD /DNSISCALL=__stdcall /D_UNICODE /DUNICODE /DMAKENSIS /D_WIN32_IE=0x0500 /Ibuild\urelease\config /IC:\Develop\ZLIB\include Plugins.cpp Source\Plugins.cpp(269) : error C2899: typename cannot be used outside a template declaration Source\Plugins.cpp(287) : see reference to function template instantiation 'void __cdecl PrintPluginDirsHelper::print(const class std::map<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >,struct STLHelpers::string_nocasecmpless<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >,unsigned short>,class std::allocator<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > > > &,const char *)' being compiled scons: building terminated because of errors.
265| ...
266| struct PrintPluginDirsHelper {
267| template<class C> static void print(const C&c, const char*indent = "")
268| {
269| std::/*unordered_*/set<typename STLHelpers::mapped_type_helper<C>::type
270| #ifdef _WIN32
271| , Plugins::strnocasecmp
272| #endif
273| > seen;
274| for (NSIS_CXX_TYPENAME C::const_iterator it = c.begin(); it != c.end(); ++it)
275| {
276| const tstring path = GetDllPath(it->second);
277| if (contains(seen, path)) continue;
278| seen.insert(path);
279| _ftprintf(g_output, _T("%") NPRIns _T("%") NPRIs _T("\n"), indent, path.c_str());
280| }
281| }
282| };
283|
284| void Plugins::PrintPluginDirs()
285| {
286| _ftprintf(g_output, _T("Plugin directories:\n"));
287| PrintPluginDirsHelper::print(m_dllname_to_path, " ");
288| }
289| ... This is a new code that has been added in nsis-code-r7011-NSIS-trunk. How to fix it?Try replacing "typename STLHelpers::mapped_type_helper..." with "NSIS_CXX_TYPENAME STLHelpers::mapped_type_helper...".Originally Posted by Kriggi View PostThis is a new code that has been added in nsis-code-r7011-NSIS-trunk. How to fix it?
Now I get the following error:Originally Posted by Anders View PostTry replacing "typename STLHelpers::mapped_type_helper..." with "NSIS_CXX_TYPENAME STLHelpers::mapped_type_helper...".
...
script.cpp
Source\boost/scoped_ptr.hpp(73) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'E:\9044\vc98\p2\src\P2\ehexcept.c', line 882)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
scons: *** [build\urelease\makensis\script.obj] Error 2
scons: building terminated because of errors.
That's a crash in the compiler, not sure what to do about it. What happens if you try a older scoped_ptr.hpp from 3.02ish? Or maybe "typename NSIS::CXX::stdsmartptr" needs its "typename" prefix removed?Originally Posted by Kriggi View PostNow I get the following error:
Drop by on our Slack channel if possible and we can try to find a solution...
Same error:Originally Posted by Anders View PostWhat happens if you try a older scoped_ptr.hpp from 3.02ish?
script.cpp
Source\boost/scoped_ptr.hpp(64) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'E:\9044\vc98\p2\src\P2\ehexcept.c', line 882)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
scons: *** [build\urelease\makensis\script.obj] Error 2
scons: building terminated because of errors.
59| ...
60| void reset(T * p = 0) // never throws
61| {
62| assert(p == 0 || p != ptr); // catch self-reset errors
63| this_type(p).swap(*this);
64| } // <-----------fatal error C1001
65| ... No effect, same error (look my previous message).Originally Posted by Anders View PostOr maybe "typename NSIS::CXX::stdsmartptr" needs its "typename" prefix removed?
I do not know what is "Slack channel" 🙂Originally Posted by Anders View PostDrop by on our Slack channel...
I believe we already shipped a release with the changes in scoped_ptr.hpp so that should work with VC6. You are somehow crashing the compiler so it is hard to say exactly what needs to change. You could try commenting out the reset method etc. (Not sure if it is needed). Even adding pointless "do nothing" code to script.cpp or the .hpp file might stop the compiler from crashing. You could also try removing the "build" directory from your root folder and build everything again.Originally Posted by Kriggi View PostSame error:
https://nsischat.slack.com/ ( https://nsischat.herokuapp.com/ )Originally Posted by Kriggi View PostI do not know what is "Slack channel" 🙂
Anders, I found a problem. The file build.h, line #173 (class DiagState):
Also the line #269 in the file Plugins.cpp was corrected.
Was
template<class M> struct mapped_type_helper { typedef typename STLHelpers::mapped_type_helper<M>::type type; }; If this line is replaced with a line from code nsis-code-r7010-NSIS-trunk: template<class M> struct mapped_type_helper { typedef typename M::value_type::second_type type; }; then NSIS build is succeeds. Otherwise I get "fatal error C1001..." Also the line #269 in the file Plugins.cpp was corrected.
Was
std::/*unordered_*/set<typename STLHelpers::mapped_type_helper<C>::type Fixed std::/*unordered_*/set<NSIS_CXX_TYPENAME STLHelpers::mapped_type_helper<C>::type MakeNSISW is now System DPI aware, please test to make sure all dialogs work correctly. It will be DWM scaled (blurry) on monitors with a different DPI than the primary monitor.
@Kriggi: VC6 should also work again now with r7047.
@Kriggi: VC6 should also work again now with r7047.
Yes, now everything is fine. 👍Originally Posted by Anders View PostVC6 should also work again now with r7047.
Thank you very much!
This is not a complete release, just overwrite a temporary 3.04 install with these files.
3.05 preview
Change log available in \Docs\Manual.html#History
3.05 preview
Change log available in \Docs\Manual.html#History
This is not a complete release, just overwrite a temporary 3.05 install with these files.
3.06 preview
Change log available in \Docs\Manual.html#History
3.06 preview
Change log available in \Docs\Manual.html#History
This is not a complete release, just overwrite a temporary 3.06 install with these files.
3.07 preview
Change log available in \Docs\Manual.html#History
3.07 preview
Change log available in \Docs\Manual.html#History
This is not a complete release, just overwrite a temporary 3.07 install with these files.
3.08 preview
Major changes:
+ !uninstfinalize to help sign uninstallers
Change log available in \Docs\Manual.html#History
3.08 preview
Major changes:
+ !uninstfinalize to help sign uninstallers
Change log available in \Docs\Manual.html#History