Nullsoft Scriptable Install System: Difference between revisions

Content deleted Content added
WikiCleanerBot (talk | contribs)
m v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation - Link equal to linktext)
Tags: WPCleaner Reverted
restore redirect
Tags: New redirect Manual revert
 
Line 1:
#REDIRECT [[de:Nullsoft#Nullsoft Scriptable Install System]]
{{Multiple issues|
 
{{refimprove|date=April 2024}}
{{Redirect category shell|
{{Third-party|date=April 2024}}
{{R from subtopic}}
{{R to section}}
{{R from product name}}
{{R with history}}
}}
{{Short description|Software for creating installation programs}}
 
'''Nullsoft Scriptable Install System''' (NSIS) is a [[software]] for creating [[Installation (computer programs)|installation programs]] for the [[Microsoft Windows|Windows]] operating system. It was originally developed by [[Nullsoft]], who used the installer for their media player [[Winamp]], among others. Today, NSIS is [[free software]] and is licensed under the [[zlib License|zlib/libpng License]].
The source code of NSIS and the downloads are offered through [[SourceForge]], where NSIS was awarded ''Project of the Month'' in January 2006. The installer is a popular open-source alternative to commercial installers like [[InstallShield]].{{sfn | Dey | 2021 | p=339}}
 
NSIS itself consists only of a [[Command-line interface|command-line]] compiler and a [[graphical user interface]] for the compiler, which aids in compiling and simplifies some settings. The installer includes [[LZMA]] compression, [[Plug-in (computing)|plug-in]] support, multilingual features.{{sfn | Dey | 2021 | p=339}}
Several other [[#third-party front-ends]] for NSIS are available.
 
When using NSIS in software products, it is not possible to obtain a certification from Microsoft as "Designed for Windows Vista" because NSIS is not capable of generating the necessary Windows Installer files.
 
== Features (Selection) ==
* Very small [[Overhead (computing)|overhead]] of about 34 KB
* Compatible with all common Windows operating systems (Windows 95, 98, 2000, 2003, 2008, ME, NT, XP, Vista, 7, 8, 10)
* Three different compression algorithms ([[zlib]], [[bzip2]], and [[Lempel-Ziv-Markov algorithm|LZMA]]), optionally with [[Progressive compression|solid compression]]
* 49 languages, including languages written from right to left
* [[Plug-in (computing)|Plug-in]] system for nearly unlimited extension of the already extensive features (e.g., there are plug-ins for array operations, advanced mathematical functions, or control of Windows services and processes)
* Compilation of the installer under Windows or a [[POSIX]] compatible system such as [[Linux]] or [[FreeBSD]] (currently only support for [[X86 architecture|x86]] platforms)
* In addition to a "classic design," also a modern design that closely resembles proprietary installers.
 
Through the scripting language and the plugin interface, almost unlimited functions can be implemented in self-written installers. This includes managing system services, web-based installations, dynamic updates, repair and rollback functions.
 
== Functionality ==
An installer is based on a script, where each line is an instruction.
The script file is compiled into an [[executable file]] containing all files (compressed) and the installation program (script commands) by the command-line compiler "makensis.exe", which can then be easily distributed. MakeNSISW is available as a graphical interface for makensis.
 
<syntaxhighlight lang="nsis">
; Example script
Name "MyExample"
OutFile "installer.exe"
SetCompressor lzma
InstallDir "$PROGRAMFILES\example"
InstallDirRegKey HKLM "SOFTWARE\example" "installdir"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
Page directory
Page instfiles
Section
SetOutPath $INSTDIR
File "myexample.exe"
WriteRegStr HKLM "SOFTWARE\example" "installdir" "$INSTDIR"
CreateShortCut "$DESKTOP\example.lnk" "$OUTDIR\myexample.exe"
SectionEnd
</syntaxhighlight>
 
The adjacent images show the result of the above script.
Using extensions like the "Modern UI" or specific plug-ins, visually appealing installation wizards can also be created.
 
Thanks to strong compression algorithms and low overhead, very small installers are possible, making NSIS ideal for distributing programs over the Internet.
 
== Security ==
Installers created with NSIS have security vulnerabilities when an outdated version is used.<ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/32 Executable installers are vulnerable^WEVIL (case 2): NSIS allows remote code execution with escalation of privilege]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Oct/109 Arbitrary code execution resp. escalation of privilege with Mozilla's SETUP.EXE]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/74 Executable installers are vulnerable^WEVIL (case 10): McAfee Security Scan Plus, WebAdvisor and CloudAV (Beta)]</ref><ref>FullDisclosure: [http://seclists.org/fulldisclosure/2015/Dec/75 Executable installers are vulnerable^WEVIL (case 11): Nmap <7.01 and Nmap-WinPcap <4.13]</ref><ref>Gpg4win: [https://www.gpg4win.org/news-20151125.html Security Advisory Gpg4win 2015-11-25]</ref><ref>Intel: [https://service.mcafee.com/FAQDocument.aspx?lc=1033&id=TS102462 Intel Security – Security Bulletin: Security patch for several McAfee installers and uninstallers]</ref>
Possible security vulnerabilities were closed in versions 2.47,<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.47 Appendix F: Changelog and Release Notes]</ref> 2.50,<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.50 Appendix F: Changelog and Release Notes]</ref> and 2.51.<ref>[http://nsis.sourceforge.net/Docs/AppendixF.html#v2.51 Appendix F: Changelog and Release Notes]</ref>
 
==Third-party front-ends==
 
Creation of NSIS installers is supported by several pieces of third-party software:
* The [[CMake]] packager CPack has a generator backend for NSIS.<ref>https://cmake.org/cmake/help/latest/cpack_gen/nsis.html</ref>
* EclipseNSIS is a comprehensive plugin for [[Eclipse (software)|Eclipse]] for editing, compiling and testing NSIS scripts.<ref>https://eclipsensis.sourceforge.net/index.shtml</ref>
* HM NIS EDIT is a free-standing [[integrated development environment]] (IDE) for NSIS.<ref>https://hmne.sourceforge.net</ref>
* [[Debian]] has an nsis package for creationg Windows installers under Linux.<ref>https://packages.debian.org/sid/nsis</ref>
 
== References ==
<references />
 
== Sources ==
* {{cite book | last=Dey | first=N. | title=Cross-Platform Development with Qt 6 and Modern C++: Design and build applications with modern graphical user interfaces without worrying about platform dependency | publisher=Packt Publishing | year=2021 | isbn=978-1-80020-885-8 | url=https://books.google.com/books?id=uwYxEAAAQBAJ&pg=PA339 | access-date=2024-04-26}}
 
== External links ==
* [https://nsis.sourceforge.io/Main_Page NSIS Homepage]
* [http://sourceforge.net/projects/nsis/ NSIS Download] via SourceForge
 
[[de:Nullsoft Scriptable Install System]]
[[Category:Installation software]]
[[Category:Windows-only free software]]
[[Category:Free and open-source software]]
[[Category:Free installation software]]
[[Category:Free software programmed in C]]
[[Category:Free software programmed in C++]]
[[Category:Software using the zlib license]]