Notepad plus plus

Notepad++ is a great little source code editor and general plain text editor available from http://notepad-plus-plus.org/.

Plug-ins are available from SourceForge.

WPKG Package for Notepad++

This package supports Windows 32-bit and 64-bit.

<package 
	id="notepadpp" 
	name="Notepad++" 
	revision="%PKG_VERSION%" 
	reboot="false" 
	priority="20">
	
	<variable name="PKG_VERSION"		value="7.8.6" />
	<variable name="PKG_SOURCE"		value="%SOFTWARE%\Notepadpp" />
	<variable name="PKG_NAME"		value="npp.%PKG_VERSION%.Installer.exe" architecture="x86" />
	<variable name="PKG_NAME"		value="npp.%PKG_VERSION%.Installer.x64.exe" architecture="x64" />
	<variable name="PKG_INSTALL_SWITCH"	value="/S" />
	<variable name="PKG_REMOVE_SWITCH"	value="/S" />
	<variable name="PKG_DESTINATION"	value="%PROGRAMFILES%\Notepad++" />
	
	<check architecture="x64" type="uninstall" condition="versiongreaterorequal" path="Notepad++ (64-bit x64)" value="%PKG_VERSION%" />	
	<check architecture="x86" type="uninstall" condition="versiongreaterorequal" path="Notepad++ (32-bit x86)" value="%PKG_VERSION%" />
		
	<install cmd='%COMSPEC% /C if exist "%PKG_DESTINATION%\plugins" del /F /Q "%PKG_DESTINATION%\plugins\*.dll"'>
		<exit code="1"/>
	</install>
	<install cmd="%PKG_SOURCE%\%PKG_NAME% %PKG_INSTALL_SWITCH%" />
	<install cmd='%COMSPEC% /C rmdir /S /Q "%PKG_DESTINATION%\updater"' /> 

	<upgrade include="install"  />
		
	<remove cmd='%COMSPEC% /C if exist "%PKG_DESTINATION%\plugins" del /F /Q "%PKG_DESTINATION%\plugins\*.dll"' >
		<exit code="1"/>
	</remove>
	<remove cmd='%COMSPEC% /C if exist "%PKG_DESTINATION%\uninstall.exe" "%PKG_DESTINATION%\uninstall.exe" %PKG_REMOVE_SWITCH%' />
	<remove cmd='%COMSPEC% /C rmdir /S /Q "%PKG_DESTINATION%"' />
</package>

WPKG packages for some Notepad++ Plugins

    <package
        id="NotepadPlusPlusComparePlugin"
        name="Notepad++ Compare Plugin"
        revision="1.5.3.1"
        reboot="false"
        priority="10">

        <depends package-id="NotepadPlusPlus" />

        <check type='logical' condition='or'>
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\Notepad++\plugins\ComparePlugin.dll" value="1.5.3.1" />
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles(x86)%\Notepad++\plugins\ComparePlugin.dll" value="1.5.3.1" />
        </check>

        <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\Compare\ComparePlugin.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\Compare\ComparePlugin.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\Compare\ComparePlugin.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\Compare\ComparePlugin.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins\ComparePlugin.dll" del /f /q "%ProgramFiles%\Notepad++\plugins\ComparePlugin.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins\ComparePlugin.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\ComparePlugin.dll"' />
    </package>

    <package
        id="NotepadPlusPlusWinMgrPlugin"
        name="Notepad++ Window Manager Plugin"
        revision="1.2.2.0"
        reboot="false"
        priority="10">

        <depends package-id="NotepadPlusPlus" />

        <check type='logical' condition='or'>
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\Notepad++\plugins\WindowManager.dll" value="1.2.2.0" />
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles(x86)%\Notepad++\plugins\WindowManager.dll" value="1.2.2.0" />
        </check>

        <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\WindowManager\WindowManager.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\WindowManager\WindowManager.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\WindowManager\WindowManager.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\WindowManager\WindowManager.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins\WindowManager.dll" del /f /q "%ProgramFiles%\Notepad++\plugins\WindowManager.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins\WindowManager.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\WindowManager.dll"' />
    </package>

    <package
        id="NotepadPlusPlusXMLToolsExtLibs"
        name="Notepad++ XML Tools Plugin External Libraries"
        revision="1"
        reboot="false"
        priority="20">

        <depends package-id="NotepadPlusPlus" />

        <check type='logical' condition='or'>
            <check type="file" condition="sizeequals" path="%ProgramFiles%\Notepad++\libxml2.dll" value="975360" />
            <check type="file" condition="sizeequals" path="%ProgramFiles(x86)%\Notepad++\libxml2.dll" value="975360" />
        </check>

        <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\ext_libs\*.dll" "%ProgramFiles%\Notepad++"' />
        <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\ext_libs\*.dll" "%ProgramFiles(x86)%\Notepad++"' />

        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\ext_libs\*.dll" "%ProgramFiles%\Notepad++"' />
        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\ext_libs\*.dll" "%ProgramFiles(x86)%\Notepad++"' />

        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\iconv.dll" del /f /q "%ProgramFiles%\Notepad++\iconv.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\libxml2.dll" del /f /q "%ProgramFiles%\Notepad++\libxml2.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\libxslt.dll" del /f /q "%ProgramFiles%\Notepad++\libxslt.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\zlib1.dll" del /f /q "%ProgramFiles%\Notepad++\zlib1.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\iconv.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\iconv.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\libxml2.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\libxml2.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\libxslt.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\libxslt.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\zlib1.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\zlib1.dll"' />
    </package>

    <package
        id="NotepadPlusPlusXMLToolsPlugin"
        name="Notepad++ XML Tools Plugin"
        revision="1.0.0.1"
        reboot="false"
        priority="10">

        <depends package-id="NotepadPlusPlusXMLToolsExtLibs" />
        <depends package-id="NotepadPlusPlus" />

        <check type='logical' condition='or'>
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\Notepad++\plugins\XMLTools.dll" value="1.0.0.1" />
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles(x86)%\Notepad++\plugins\XMLTools.dll" value="1.0.0.1" />
        </check>

        <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\XMLTools.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\XMLTools.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\XMLTools.dll" "%ProgramFiles%\Notepad++\plugins"' />
        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\XMLTools\XMLTools.dll" "%ProgramFiles(x86)%\Notepad++\plugins"' />

        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins\XMLTools.dll" del /f /q "%ProgramFiles%\Notepad++\plugins\XMLTools.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins\XMLTools.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\XMLTools.dll"' />
    </package>

    <package
        id="NotepadPlusPlusDocMonPlugin"
        name="Notepad++ Document Monitor Plugin"
        revision="2.2.0.0"
        reboot="false"
        priority="10">

        <depends package-id="NotepadPlusPlus" />

        <check type='logical' condition='or'>
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\Notepad++\plugins\docMonitor.dll" value="2.2.0.0" />
            <check type="file" condition="versiongreaterorequal" path="%ProgramFiles(x86)%\Notepad++\plugins\docMonitor.dll" value="2.2.0.0" />
        </check>

        <install cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\DocMonitor\docMonitor.unicode.dll" "%ProgramFiles%\Notepad++\plugins\docMonitor.dll"' />
        <install cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\DocMonitor\docMonitor.unicode.dll" "%ProgramFiles(x86)%\Notepad++\plugins\docMonitor.dll"' />

        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\DocMonitor\docMonitor.unicode.dll" "%ProgramFiles%\Notepad++\plugins\docMonitor.dll"' />
        <upgrade cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins" copy /b /v "%SOFTWARE%\Notepad++\DocMonitor\docMonitor.unicode.dll" "%ProgramFiles(x86)%\Notepad++\plugins\docMonitor.dll"' />

        <remove cmd='%ComSpec% /c if exist "%ProgramFiles%\Notepad++\plugins\docMonitor.dll" del /f /q "%ProgramFiles%\Notepad++\plugins\docMonitor.dll"' />
        <remove cmd='%ComSpec% /c if exist "%ProgramFiles(x86)%\Notepad++\plugins\docMonitor.dll" del /f /q "%ProgramFiles(x86)%\Notepad++\plugins\docMonitor.dll"' />
    </package>

Disable Auto Updater

"Thanks to GUP, (Generic Updater for win32) project (see http://sourceforge.net/projects/gup-w32/ and http://gup-w32.sourceforge.net/) Notepad++ v4.6 and later has the capacity to search and install the update package (if available) from Internet. Only Installer integrates the auto-updater module (optional). So if you use zipped version, you have to download GUP from its project page, create "update" directory in Notepad++ installed directory, unzip the package into it then edit gup.xml file."

Delete or rename the "updater" folder in the Notepad++ application folder to disable automatic updates:

<install cmd='%COMSPEC% /c rmdir /S /Q "%PROGRAMFILES%\Notepad++\updater"' />
<upgrade cmd='%COMSPEC% /c rmdir /S /Q "%PROGRAMFILES%\Notepad++\updater"' />

Note that this has the side effect of breaking the Plugin Manager, whose gpup.exe lives in this directory.