Difference between revisions of "Retina Scan Identd"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
Line 32: Line 32:
 
         xsi:schemaLocation="http://www.wpkg.org/packages xsd/packages.xsd">
 
         xsi:schemaLocation="http://www.wpkg.org/packages xsd/packages.xsd">
  
        <package  
+
<package  
                id="identd"  
+
id="identd"  
                name="retina_scan_identd"  
+
name="Retina Scan identd"  
                revision="%version%"  
+
revision="0.3.2"
                priority="10"  
+
priority="10"  
                reboot="false">
+
reboot="false"> <!-- package version updated to force out new code -->
  
                <variable name="version" value="0.3.0" /> <!-- for easier upgrading -->
+
<variable name="version"           value="0.3.0" /> <!-- for easier upgrading -->
 +
        <variable name="PKG_DESTINATION"  value="%PROGRAMFILES%\Nockmaar\Retina Scan" />
 +
        <variable name="PKG_DESTINATION"  value="%PROGRAMFILES(x86)%\Nockmaar\Retina Scan" architecture="x64"/>
  
                <variable name="PKG_DESTINATION"     value="%PROGRAMFILES%\Nockmaar\Retina Scan" />
+
<check type="uninstall" condition="exists" path="Retina Scan Version %version%" />
                <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>
  
                <!-- install the software -->
+
<!-- add service, on upgrade will fail 1073: The specified service already exists -->
                <install cmd='"%SOFTWARE%\identd\retina-scan-%version%.exe" /sp- /silent /norestart' />
+
<install cmd='sc create ident DisplayName= "Ident Server" binpath= "%PKG_DESTINATION%\identd.exe" start= auto' >
                <!-- add identd to the firewall -->
+
            <exit code="1073" />
                <install cmd='netsh advfirewall firewall delete rule name="ident"' />
+
            <exit code="0" />
                <install cmd='netsh advfirewall firewall add rule name="ident" dir=in action=allow program="%PKG_DESTINATION%\identd.exe" enable=yes' />
+
        </install>
                <!-- add service -->
+
        <!-- on x64 we need to add this key as well, otherwise manual uninstall will appear to fail -->
                <install cmd='sc create identd binpath= "%PKG_DESTINATION%\identd.exe" start= auto' />
+
        <install cmd='reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ident /v WOW64 /t REG_DWORD /d 1 /f' architecture="x64" />
                <install cmd='net start identd' />
+
<!-- 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 cmd='"%SOFTWARE%\identd\retina-scan-%version%.exe" /sp- /silent /norestart' />
+
        <!-- upgrade = run install -->
 +
<upgrade include="install"  />
  
                <remove cmd='"%PKG_DESTINATION%\unins000.exe" /sp- /silent /norestart' />
+
        <!-- 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>
+
    </package>
 
</packages:packages>
 
</packages:packages>
  

Revision as of 08:49, 5 December 2014

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"?>

<!-- 
        DATE            USER    EDIT
-->

<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="identd" 
		name="Retina Scan identd" 
		revision="0.3.2"  
		priority="10" 
		reboot="false"> <!-- package version updated to force out new code -->

		<variable name="version"           value="0.3.0" /> <!-- for easier upgrading -->
        <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>
</packages:packages>

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