Skip to content
⌘ NSIS Forum Archive

NSIS vNext preview

24 posts

Anders#

NSIS vNext preview

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)
Nutzzz#
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.
Kriggi#
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).
Anders#
Originally Posted by Kriggi View Post
When compiling the same example in the NSIS v3.03 preview the characters in the string are not correct.
Thank you for reporting this! I found the issue and will fix it before the final release.
T.Slappy#
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.
Anders#
* 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
mariusnegrutiu#
Getting rid of wxWidgets is much appreciated
Building wxWidgets was always a pain 😉

Cheers,
Marius
JasonFriday13#edited
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.
Anders#
Originally Posted by JasonFriday13 View Post
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
Thanks, I updated the .zip, should work now.
Pawel#
@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

Attachments

Anders#
Originally Posted by Pawel View Post
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?).
Thanks, somehow missed that and it should actually work now.

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?
Kriggi#
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:

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.
Here is a section of code in the file Plugins.cpp with these error line numbers:
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?
Anders#
Originally Posted by Kriggi View Post
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...".
Kriggi#
Originally Posted by Anders View Post
Try replacing "typename STLHelpers::mapped_type_helper..." with "NSIS_CXX_TYPENAME STLHelpers::mapped_type_helper...".
Now I get the following error:
...
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.
Anders#
Originally Posted by Kriggi View Post
Now I get the following error:
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?

Drop by on our Slack channel if possible and we can try to find a solution...
Kriggi#
Originally Posted by Anders View Post
What happens if you try a older scoped_ptr.hpp from 3.02ish?
Same error:
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.
scoped_ptr.hpp (from v3.02)
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|    ... 
Originally Posted by Anders View Post
Or maybe "typename NSIS::CXX::stdsmartptr" needs its "typename" prefix removed?
No effect, same error (look my previous message).

Originally Posted by Anders View Post
Drop by on our Slack channel...
I do not know what is "Slack channel" 🙂
Anders#
Originally Posted by Kriggi View Post
Same error:
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 Post
I do not know what is "Slack channel" 🙂
https://nsischat.slack.com/ ( https://nsischat.herokuapp.com/ )
Kriggi#
Anders, I found a problem. The file build.h, line #173 (class DiagState):

  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 
Anders#
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#
Originally Posted by Anders View Post
VC6 should also work again now with r7047.
Yes, now everything is fine. 👍
Thank you very much!
Anders#
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
Anders#
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
Anders#
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
Anders#
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