#REDIRECT [[Nullsoft#Nullsoft Scriptable Install System]]
{{Primary|date=July 2010}}
{{Infobox software
{{Redirect category shell|
|name = Nullsoft Scriptable Install System
{{R from subtopic}}
|screenshot = [[Image:NSIS screenshot.png|300px]]
{{R to section}}
|caption = NSIS Installer
{{R from product name}}
|developer = [[Nullsoft]]
{{R with history}}
|latest_release_version = 2.46
|latest_release_date = {{release date and age|2009|12|05}}
|operating_system = [[Microsoft Windows|Windows]], [[POSIX]]
|programming language = [[C (programming language)|C]], [[C++]]
|genre = [[Software development tools]]
|license = [[zlib license]]
|website = [http://nsis.sourceforge.net/ nsis.sourceforge.net]
}}
'''Nullsoft Scriptable Install System''' (NSIS) is a script-driven [[Microsoft Windows|Windows]] [[Installer|installation system]] with minimal overhead backed by [[Nullsoft]], the creators of [[Winamp]]. NSIS has risen to popularity as a widely used alternative to commercial and [[proprietary software|proprietary]] products like [[InstallShield]].
NSIS is [[free software]] released under a combination of [[free software licenses]], primarily the [[zlib license]].<ref>{{cite web
|url=http://nsis.sourceforge.net/License
|title=NSIS licence page
}}</ref>
==History==
NSIS was created to distribute [[Winamp]]. It is based on a previous [[Nullsoft]] product, PiMP (plugin Mini Packager), and is also known as SuperPiMP. After [[version]] 2.0a0, the project was moved to [[SourceForge]] where developers outside of [[Nullsoft]] started working on it on a regular basis. NSIS 2.0 was released approximately two years later.
NSIS version 1 is in many ways similar to the classic [[Windows Installer]], but it is easier to script and supports more compression formats. NSIS version 2 features a new streamlined [[GUI|graphical user interface]] and supports [[LZMA]] compression, multiple languages, and an easy to use plugin system.
===POSIX===
Version 2.01 was the first version to compile on [[POSIX]] platforms . This allows [[cross-compilation]] of [[Microsoft Windows|Windows]] installers on [[Linux]] and [[FreeBSD]] without the usage of [[Wine (software)|Wine]]. Currently, the only supported hardware platform is [[x86]].
==Concepts==
===Script===
The NSIS compiler program ''makensis'' compiles scripts like the following example into executable installation programs. Each line in the script contains a single command.
<source lang="nsis"># Example script
Name "Example1"
OutFile "example1.exe"
InstallDir "$PROGRAMFILES\Example1"
Page Directory
Page InstFiles
Section
SetOutPath $INSTDIR
File ..\makensis.exe
SectionEnd</source>
===Modern User Interface===
[[Image:Nsis1.png|right|thumb|300px|NSIS 1.98]]
Version 2.0 introduced a new optional streamlined [[GUI|graphical user interface]] called ''Modern UI'' (MUI). The MUI has a wizard-like interface. It supports a welcome page, finish page, language selection dialog, description area for components, and greater customization options than the old user interface.
<source lang="nsis"># Modern UI example script
!include MUI.nsh
Name "Example 2"
OutFile "Example2.exe"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "French"
Section "Extract makensis"
SetOutPath $INSTDIR
File ..\makensis.exe
SectionEnd</source>
===Plugins===
NSIS can be extended with [[plugin]]s that can communicate with the installer. Plugins can be written in [[C (programming language)|C]], [[C++]], and [[Delphi programming language|Delphi]], and can be used to perform installation tasks or extend the installer interface. A plugin can be called with a single line of NSIS code.
Several plugins come with the NSIS package that permit the installer to display a splash screen, display a custom page, display an image on the background, download files from a website, perform mathematical operations, patch files and more.
Other plugins are available online, including [http://nsis.sourceforge.net/ZipDLL ZipDLL], and a [[Python (programming language)|Python]] [http://nsis.sourceforge.net/Python_Interpreter plugin].
==Features==
*Very small [[Computational overhead|overhead]] (34 KB<ref>[http://nsis.sourceforge.net/Features Features - NSIS<!-- Bot generated title -->]</ref>)
*[[zlib]], [[bzip2]], and [[LZMA]] compression
*Script-based
*Multilingual
*[[Plugin]] support
*Script [[preprocessor]]
*[http://nsis.sourceforge.net/Features More...]
==Notable products that use NSIS==
{|
|
*[[7-Zip]]
*[[Asia Online|Asia Online Language Studio]]
*[[ATI]] Display Driver
*[[BitTorrent (software)|BitTorrent]]
*[[CDex]]
*[[DivX]]
*[[eMule]]
*[[FileZilla]]
*[[FL Studio]]
*[[foobar2000]]
*[[FreeOTFE]]
*[[GeoServer]]
*[[Google]] ([[Picasa]], [[Google Talk|Talk]])
*[[Intel]] [[Intel C Compiler|C Compiler]]
*[[IrfanView]]
|
*[[Kaspersky]] [[Kaspersky Anti-Virus|AntiVirus]]
*[[LEGO Digital Designer]]
*[[LimeWire]]
*[[Line 6 (company)|Line 6]] Pod Farm / Gearbox
*[[LyX]]
*[[Miranda IM]]
*[[Mozilla Firefox]]
*[[NASA World Wind]]
*[[OpenOffice.org]] for Windows
*[[PortableApps.com]]
*[[Pidgin (software)|Pidgin]]
*[[TASpring|Spring]]
*[[VLC media player]]
*[[Winamp]]
*[[Warhammer Online]]
|}
More are listed on the [http://nsis.sourceforge.net/Users NSIS WWW Site]
== Graphical Interfaces ==
NSIS projects can be configured by simply editing text files. However, several third parties provide editing software:
* [http://eclipsensis.sourceforge.net/ EclipseNSIS] is a module for the [[Eclipse (software)|Eclipse]] platform. It allows NSIS scripts to be edited, compiled and validated.
* [http://hmne.sourceforge.net/ HM NIS Edit]
== Installer interfaces ==
Several projects that extend or replace the Modern UI have started in the past few years. Interfaces such as the [http://xpui.sourceforge.net/?sourceid=wikipedia ExperienceUI] and [http://ultramodernui.sourceforge.net/ UltraModernUI] completely change the style of the installer by skinning it to look like the [[InstallShield]] interface. Other interfaces like [http://nsis.sourceforge.net/InstallSpiderUI InstallSpiderUI] aim for a more minimalistic approach on the visual side of things while maintaining the same level of functionality as the Modern UI.
== Generated installer ==
The generated installer is a [[Portable Executable]], with the installation files archived within the installer, a 34 KB overhead for the NSIS installer,<ref>[http://nsis.sourceforge.net/Features Features], NSIS</ref> and the installation script compiled into executable code. As the installation script is compiled, the script can not be obtained from the delivered executable without reverse-engineering the binary.
The archive may be unpacked using either [[7-Zip]], the [[Total Commander]] plugin "[http://www.totalcmd.net/plugring/InstallExplorer.html InstallExplorer]", or the [http://plugring.farmanager.com/cgi-bin/downld.cgi?Lang=Eng&Select=PlugIn&SelectPlugIn=512&Draw=List predecessor] by the same name for the [[FAR Manager]].
The archive contains several folders:
* '''$PLUGINSDIR''' : installation routine plugins
* '''$INSTDIR''' : files used during the installation
* '''$_OUTDIR''' : files to be installed.
==Unicode Support==
The official release of NSIS does not support Unicode but only a means to convert some files to different encodings via a plugin.<ref>[http://nsis.sourceforge.net/Unicode_plug-in Unicode plug-in] - NSIS</ref> However, [http://www.scratchpaper.com/ Jim Park] has created and is maintaining a variant of NSIS that has full Unicode support.<ref>[http://www.scratchpaper.com Unicode NSIS Project Page]</ref>
Notable projects that have moved over to using Jim Park's Unicode variant are<ref>[http://www.scratchpaper.com/home/shameless-promotion Unicode NSIS Project Users]</ref>:
*[[Google]] ([[Picasa]])
*[[OpenOffice.org]] for Windows
*[[Mozilla]] ([[Firefox]], [[Mozilla Thunderbird]])
*[[FileZilla]]
*[[Winamp]]
*[[flickr]]
*[[PortableApps.com]] -- in development
==Unrelated NSIS Media malware==
A widespread [[malware]] company named itself NSIS Media. NSIS Media and NSIS are not related by anything but name. A few users{{Who|date=July 2009}} incorrectly allege that every installer built with NSIS contains this malware.{{Citation needed|date=August 2007}} Choosing a reliable download source, as with everything downloaded from the Internet, should be done to avoid this malware.
Several antivirus companies have labeled plugins such as NSISdl, which provides HTTP downloading functionality, as trojans.<ref>[http://forums.winamp.com/showthread.php?threadid=189414 WINAMP.COM | Forums - nsisdl.dll contains Download.Trojan]</ref> This is also incorrect. While NSIS is a scriptable system and thus could be used to create malware, that is not its primary purpose and this condition in fact applies to all [[Computer programming|programming languages]].
== See also ==
{{Portal|Free software}}
*[[List of installation software]]
*[[Excelsior Installer]] (freeware setup authoring tool with NSIS integration)
==References==
<!--This article uses the Cite.php citation mechanism. If you would like more information on how to add references to this article, please see http://meta.wikimedia.org/wiki/Cite/Cite.php -->
{{Reflist}}
==External links==
*[http://nsis.sourceforge.net/ NSIS home page]
*[http://sourceforge.net/projects/nsis NSIS SourceForge project page]
*[http://sourceforge.net/potm/potm-2006-01.php SourceForge.net Project of the Month] in January 2006
{{AOL Inc.}}
<!-- Interlang -->
<!-- Categories -->
[[Category:Installation software]]
[[Category:Free installation software]]
[[Category:Windows software]]
[[Category:Free software programmed in C]]
[[Category:Free software programmed in C++]]
[[ca:NSIS]]
[[de:Nullsoft Scriptable Install System]]
[[es:Nullsoft Scriptable Install System]]
[[fr:Nullsoft Scriptable Install System]]
[[it:Nullsoft Scriptable Install System]]
[[ku:Nullsoft Scriptable Install System]]
[[hu:Nullsoft Scriptable Install System]]
[[ja:Nullsoft Scriptable Install System]]
[[pl:Nullsoft Scriptable Install System]]
[[pt:Nullsoft Scriptable Install System]]
[[ru:Nullsoft Scriptable Install System]]
[[fi:Nullsoft Scriptable Install System]]
[[sv:Nullsoft Scriptable Install System]]
[[zh:Nullsoft腳本安裝系統]]
|