Retina Scan Identd

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search

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

Retina Scan Identd is a 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 Silent install


For windows 7 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)

<?xml version="1.0" encoding="UTF-8"?>
	<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.