Inno Setup
{{Short description|Installer authoring tool}}
{{Infobox software
| name = Inno Setup
| logo = Inno Setup icon.png
| logo caption =
| screenshot = Inno Setup screenshot.png
| caption = Screenshot of the Inno Setup IDE running on Windows 7
| programming_language = Delphi, Pascal
| developer = Jordan Russell’s Software
| released = {{Start date and age|1997}}
| latest_release_version = 6.4.2
| latest_release_date = {{Start date and age|2025|03|13}}
| latest_preview_version =
| latest_preview_date =
| operating_system = Microsoft Windows
| genre = Setup creator
| license = Inno Setup License
{{cite web
|url=https://github.com/jrsoftware/issrc/blob/main/license.txt
|title=Inno Setup License
|date=7 January 2016
|publisher=JRSoftware.org
}}
}}
Inno Setup is a free software script-driven installation system{{cite web | last=Thornton | first=Bob | title=Inno Setup 6.0.3 - Developer & Programming - Downloads | website=Tech Advisor | url=https://www.techadvisor.co.uk/download/developer-programming/inno-setup-603-453/ | access-date=21 January 2020}}{{Dead link|date=May 2022}} created in Delphi by Jordan Russell. The first version was released in 1997.
History
Since Jordan Russell wasn't satisfied with InstallShield Express which he had received upon purchase of Borland Delphi, he decided to make his own installer.{{cite web | title=Inno Setup | website=jrsoftware.org // Jordan Russell's Software | date=6 April 2001 | url=http://jrsoftware.org/isinfo.htm | archive-url=https://web.archive.org/web/20010406050529/http://jrsoftware.org/isinfo.htm | archive-date=6 April 2001 | url-status=live | access-date=21 January 2020}} The first public version was 1.09.{{Citation needed|date=September 2007}}
To make an installation package with version 1.09, an "ISS.TXT" file needed to be created in the installation directory. In the file, the user needed to supply variables and values which are still used in Inno Setup today. These variables served as the configuration of the installation package but many other features could not be changed. The installation compiler had no editor and was more of a shell to compile scripts.
Inno Setup grew popular due to being free for both commercial and non-commercial use,{{cite book | last=Thorn | first=A. | title=Cross Platform Game Development | publisher=Jones & Bartlett Learning | year=2009 | isbn=978-0-7637-8281-8 | url=https://books.google.com/books?id=g0ulkmK5NWEC&pg=PA359 | access-date=21 January 2020 | page=359}} many software companies switched to the tool.{{Citation needed|date=September 2007}} Since Inno Setup was based around scripting, fans of Inno Setup started ISTool and ScriptMaker to aid in visual and simpler ways to make installations for Inno Setup.
Inno Setup has won many awards including the Shareware Industry Awards three times in a row — from 2002 to 2004.{{cite web | title=L'association d'un type de fichier avec un exécutable .NET | website=Blog de Roger MIOT | date=17 October 2012 | url=https://www.rogermiot.com/2013/05/lassociation-dun-type-de-fichier-avec-un-executable-net.html | language=fr |access-date=21 January 2020|archive-url=https://web.archive.org/web/20180717194626/https://www.rogermiot.com/2013/05/lassociation-dun-type-de-fichier-avec-un-executable-net.html |archive-date=17 July 2018}}
Many people have taken Inno Setup source code and used it to develop third-party versions of Inno Setup.{{cite web | title=Inno Setup Third-Party Files | website=jrsoftware.org // Jordan Russell's Software | url=https://www.jrsoftware.org/is3rdparty.php | access-date=21 January 2020}} An example is My Inno Setup Extensions by Martijn Laan, which was incorporated into Inno Setup in June 2003.{{cite web | title=Inno Setup 4.0 Revision History | website=jrsoftware.org // Jordan Russell's Software | date=9 January 2004 | url=http://www.jrsoftware.org/files/is4.0-whatsnew.htm#4.0.0 | access-date=21 January 2020}}
Features
=Key features=
- Support for multiple platforms (IA-32, x64 and IA-64) in a single binary. ARM64 is also supported.
- Supports creation of a single EXE to install programs for easy online distribution (MSI support requires third-party products)
- Supports disk spanning
- Customizable setup types, for example, "full", "minimal", and "custom"
- Complete uninstall capabilities
- Supports Windows Vista and later.{{cite web|url=http://www.jrsoftware.org/isinfo.php|title=About Inno Setup|publisher=JRSoftware.org}} Earlier versions supported Windows 2000, Windows XP and Windows Server 2003 ([http://www.jrsoftware.org/isdl.php#stable OS requirements change]), Windows 9x and Windows NT 4.0 ([http://jrsoftware.org/files/is5.5-whatsnew.htm#5.5.0 before 5.5.0]), Windows NT 3.51 ([http://www.jrsoftware.org/files/is3-whatsnew.htm#3.0.0 before v3.0.0]) and Windows 3.X ([http://www.jrsoftware.org/isdlold.php#1.2 Before v1.3.0]).
- Integrated support for DEFLATE, bzip2, and LZMA file compression
- Support for comparing file version information, replacing in-use files, shared file counting, registering DLL/OCXs and type libraries, and installing fonts
- Creation of shortcuts, including in the Start Menu and on the desktop
- Creation of registry and INI file entries
- Integrated scripting engine based on Pascal Script
- Support for multilingual installs
- Support for passworded and encrypted installs
- Silent install and uninstall
- Supports Unicode and right-to-left languages{{cite web
|url=http://www.jrsoftware.org/files/is5-whatsnew.htm
|title=Inno Setup change log
|publisher=JRSoftware.org
|accessdate=18 January 2010
}}
Vulnerabilities
Due to the well-known weaknesses CWE-73,{{cite web| url=https://cwe.mitre.org/data/definitions/73.html| title=CWE-73: External Control of File Name or Path}} CWE-378,{{cite web| url=https://cwe.mitre.org/data/definitions/379.html| title=CWE-379: Creation of Temporary File in Directory with Incorrect Permissions}} CWE-426{{cite web| url=https://cwe.mitre.org/data/definitions/426.html| title=CWE-426: Untrusted Search Path}} and CWE-427{{cite web| url=https://cwe.mitre.org/data/definitions/427.html| title=CWE-427: Uncontrolled Search Path Element}} all versions of InnoSetup are vulnerable to (at least) CAPEC-13{{cite web| url=https://capec.mitre.org/data/definitions/13.html| title=CAPEC-13: Subverting Environment Variable Values}} and CAPEC-471!{{cite web| url=https://capec.mitre.org/data/definitions/471.html| title=CAPEC-471: Search Order Hijacking}}
See also
{{Portal|Free and open-source software}}
References
{{Reflist|2}}
External links
- {{Official website}}
- {{github|jrsoftware/issrc|Inno Setup}}
- [https://web.archive.org/web/20180914025538/http://www.vincenzo.net/isxkb/index.php?title=Main_Page The Inno Setup Extensions Knowledge Base] (offline, link to archived page)
- [https://web.archive.org/web/20180818150707/http://www.paranoia.clara.net/articles/inno_setup_review.html Inno Setup Review by Dave Murray] - An extensive review of Inno Setup (offline, link to archived page)
- [https://web.archive.org/web/20210225014009/http://lexpa.com/ Lexpa ISVS - Inno Setup add-in for Visual Studio] (offline, link to archived page)
- [https://www.starmessagesoftware.com/blog/free-installation-statistics-innosetup-google-analytics Inno Setup reporting via Google Analytics] - How can developers can see installation statistics of Inno Setup via Google Analytics.
Category:Free installation software
Category:Free software programmed in Delphi
Category:Windows-only free software
Category:Software that uses Scintilla