Nmap uses [[NSIS:_Nullsoft_Scriptable_Install_System]].
Binary at httphttps://nmap.org/dist/nmap-67.4031-setup.exe
'''Note that at the time of writing [[Wireshark]] depends upon this'''
<source lang="xml">
<packages:packages xmlns:packages="http://www.wpkg.org/packages"
xmlns:wpkg="http://www.wpkg.org/wpkg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wpkg.org/packages ../xsd/packages.xsd">
<!--
-->
<package id='nmap'
name='Nmap' revision="%version%-1" priority='50' reboot='false' > <variable name="version" value="67.31" /> <variable architecture="x64" name="UNINSTALLER" value="%PROGRAMFILES(X86)%\Nmap\uninstall.exe" /> <variable architecture="x86" name="UNINSTALLER" value="%PROGRAMFILES%\Nmap\uninstall.40exe" />
<check type='uninstall' condition='exists' path='Nmap (%version%)' />
<install cmd='%SOFTWARE%\nmap\nmap-%version%-setup.exe /S' />
<remove cmd='"%PROGRAMFILESUNINSTALLER%\Nmap\uninstall.exe" /S' /> <!--Wait 30 seconds, or until the uninstaller has vanished Otherwise the check will still pass (asynch uninstaller)--> <remove cmd='%COMSPEC% /C for /L %X in (1,1,30) do if exist "%UNINSTALLER%" @ping microsoft.com -n 1 -w 1000>nul' > <exit code="1" /> </remove>
<upgrade include="install" /> <downgrade include="upgrade" />
</package>
</packages:packages>
</source>