Retina Scan Identd

This is a silent installer and uninstaller for Retina Scan Identd.

Retina Scan Identd is an RFC 1413 Ident Server for Windows XP. You may use it with Dansguardian, Squid, IRC, etc.

You may have to manually configure Windows Firewall (not tested).

<package id="retina_scan_identd" name="retina_scan_identd" revision="1" priority="0" reboot="false">
 <check type="uninstall" condition="exists" path="Retina Scan Version 0.3.0" />
 <install cmd='"%SOFTWARE%\retina-scan-0.3.0.exe" /sp- /silent' />
 <upgrade cmd='"%SOFTWARE%\retina-scan-0.3.0.exe" /sp- /silent' />
 <remove cmd='"%PROGRAMFILES%\Nockmaar\Retina Scan\unins000.exe" /sp- /silent /norestart' />
</package>


Windows 7/10 Silent install


For Windows 7/10 installs, we have written the following code. It will add the software to the firewall and make an autostart service (it should not need restarting after first install either)

<package 
  id="identd" 
  name="Retina Scan identd" 
  revision=%version%  
  priority="10" 
  reboot="false">

  <variable name="version"           value="0.3.0" />
  <variable name="PKG_DESTINATION"   value="%PROGRAMFILES%\Nockmaar\Retina Scan" />
  <variable name="PKG_DESTINATION"   value="%PROGRAMFILES(x86)%\Nockmaar\Retina Scan" architecture="x64"/>

  <check type="uninstall" condition="exists" path="Retina Scan Version %version%" />

  <!-- install the software, fail 5: can't update the file (because it's in use) -->
   <install cmd='"%SOFTWARE%\identd\retina-scan-%version%.exe" /verysilent /suppressmsgboxes /norestart' >
     <exit code="5" /> 
     <exit code="0" /> 
   </install>

  <!-- add service, on upgrade will fail 1073: The specified service already exists -->
  <install cmd='sc create ident DisplayName= "Ident Server" binpath= "%PKG_DESTINATION%\identd.exe" start= auto' >
    <exit code="1073" /> 
    <exit code="0" /> 
  </install>
  <!-- on x64 we need to add this key as well, otherwise manual uninstall will appear to fail -->
  <install cmd='reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ident /v WOW64 /t REG_DWORD /d 1 /f' architecture="x64" />
  <!-- add identd to the firewall, delete any rule first -->
  <install cmd='netsh advfirewall firewall delete rule name="ident"'>
    <exit code="any" /> 
  </install>
  <install cmd='netsh advfirewall firewall add rule name="ident" dir=in action=allow program="%PKG_DESTINATION%\identd.exe" profile=private,domain enable=yes' />
  <!-- start service, may fail 1056: running already-->
  <install cmd='sc start ident' >
    <exit code="1056" /> 
    <exit code="0" /> 
  </install>

  <!-- upgrade = run install -->
  <upgrade include="install"  />

  <!-- even "%PKG_DESTINATION%\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART doesn't SUPPRESSMSGBOXES, so we have to remove the long way -->
  <!-- stop service, might fail 1062: The service has not been started -->
  <remove cmd='sc stop ident' >
    <exit code="any" /> 
  </remove>
  <!-- and delete it, might fail 1072: The specified service has been marked for deletion -->
  <remove cmd='sc delete ident' >
    <exit code="any" /> 
  </remove>
  <!-- empty the registry -->
  <remove cmd='reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Retina Scan_is1" /f' >
    <exit code="any" /> 
  </remove>
  <remove cmd='reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Retina Scan_is1" /f' >
    <exit code="any" /> 
  </remove>
  <!-- remove the firewall rule -->
  <remove cmd='netsh advfirewall firewall delete rule name="ident"' >
    <exit code="any" /> 
  </remove>
  <!-- remove the start menu items -->
  <remove cmd='rmdir /s /q "%ALLUSERSPROFILE%\microsoft\windows\start menu\Programs\Retina Scan"' >
    <exit code="any" /> 
  </remove>
  <!-- and empty the folder, might fail because the folder cannot be emptied, if so we'll get it next time -->
  <remove cmd='rmdir /s /q "%PKG_DESTINATION%"' >
    <exit code="any" /> 
  </remove>
</package>

If a new version of retina scan is ever released (not holding our breath) simply replace the install and update the version variable.