[wpkg-users] remove does not work of type <check type="file" condition="versionequalto" path="%programfiles%\pidgin\pidgin.exe" value="2.5.3.0" />

Rainer Meier r.meier at wpkg.org
Sun Jan 4 12:30:41 CET 2009


Hi Johannes,

Johannes.Brix at evidian.com wrote:
> I don't know if this is a bug of wpkg.js or of my config, 
> but removing this package doesn't remove it from wpkg.xml.

Let's check.

> <package
>    id="pidgin"
>    name="Pidgin"
>    revision="2530"
>    reboot="false"
>    priority="1">
>    <check type="file" condition="versionequalto" 
> path="%programfiles%\pidgin\pidgin.exe" value="2.5.3.0" />
>    <install cmd='cmd /C taskkill /F /T /IM pidgin.exe' >
>       <exit code='1' />
>       <exit code='128' /> 
>    </install> 
>    <install cmd='\\evd-ads2\wpkg\Pidgin\pidgin-2.5.3.exe /L=1031 /S /NOUI' 
> />
>    <install cmd='\\evd-ads2\wpkg\Pidgin\pidgin-install.cmd' />
>    <upgrade cmd='cmd /C taskkill /F /T /IM pidgin.exe' >
>       <exit code='1' />
>       <exit code='128' /> 
>    </upgrade> 
>    <upgrade cmd='\\evd-ads2\wpkg\Pidgin\pidgin-2.5.3.exe /L=1031 /S /NOUI' 
> />
>    <upgrade cmd='\\evd-ads2\wpkg\Pidgin\pidgin-install.cmd' />
>    <remove cmd='\\evd-ads2\wpkg\Pidgin\pidgin-remove.cmd' >
>       <exit code='0' />
>    </remove>
> </package>

Looks OK - you should think about using %SOFTWARE% or similar variables
to point to your software repository for portability reasons.


> ---------------------------------------------------------
>>From the log:
> 
> 2009-01-02 16:43:25, DEBUG  : Executing command : cmd /C taskkill /F /T 
> /IM pidgin.exe
> 2009-01-02 16:43:27, INFO   : Command 'cmd /C taskkill /F /T /IM 
> pidgin.exe' returned  exit code [128]. This exit code is not an error.
> 2009-01-02 16:43:27, INFO   : Command in installation of Pidgin returned 
> exit code [128]. This exit code indicates success.
> 2009-01-02 16:43:27, DEBUG  : Executing command : 
> \\evd-ads2\wpkg\Pidgin\pidgin-2.5.3.exe /L=1031 /S /NOUI
> 2009-01-02 16:43:50, DEBUG  : Command in installation of Pidgin returned 
> exit code [0]. Success.
> 2009-01-02 16:43:50, DEBUG  : Executing command : 
> \\evd-ads2\wpkg\Pidgin\pidgin-install.cmd
> 2009-01-02 16:43:53, DEBUG  : Command in installation of Pidgin returned 
> exit code [0]. Success.
> 2009-01-02 16:43:53, DEBUG  : Checking existence of package: Pidgin
> 2009-01-02 16:43:53, DEBUG  : Finding version of 
> C:\Programme\pidgin\pidgin.exe|
> 2009-01-02 16:43:53, DEBUG  : Obtained version "2.5.3.0".
> 2009-01-02 16:43:53, DEBUG  : Leaving getFileVersion with version 2.5.3.0
> 2009-01-02 16:43:53, DEBUG  : Checking file version 2.5.3.0 is 
> versionequalto (than) 2.5.3.0 - got result 0
> 2009-01-02 16:43:53, DEBUG  : Checking version of 
> 'C:\Programme\pidgin\pidgin.exe' : Is 2.5.3.0 = 2.5.3.0 ? true

Install/upgrade seems to be OK.
This is most probably happening due to the upgrade-before-remove feature
of WPKG.

> 2009-01-02 16:43:53, DEBUG  : Removing currently existing settings node 
> first: 'Pidgin' (pidgin), Revision 2530
> 2009-01-02 16:43:53, DEBUG  : Adding settings node: 'Pidgin' (pidgin), 
> Revision 2530
> 2009-01-02 16:43:53, INFO   : Processing (install) of Pidgin successful.
> 2009-01-02 16:43:53, DEBUG  : Restoring previous environment.

Successfully added to settings (wpkg.xml).


Now the removal process seems to start:

> 2009-01-02 16:43:53, INFO   : Removing Pidgin (pidgin)...
> 2009-01-02 16:43:53, DEBUG  : Executing command: 
> \\evd-ads2\wpkg\Pidgin\pidgin-remove.cmd
> 2009-01-02 16:43:56, DEBUG  : Command returned result: 0
> 2009-01-02 16:43:56, INFO   : Command 
> '\\evd-ads2\wpkg\Pidgin\pidgin-remove.cmd' returned  exit code [0]. This 
> exit code is not an error.

So pidgin-remove.cmd executed properly. Unfortunately you did not post
its content. It might return success even if it did not remove pidgin
properly.


> 2009-01-02 16:43:56, INFO   : Command in removal of Pidgin returned  exit 
> code [0]. This exit code indicates success.


Now WPKG is going to execute the checks again to see if the package is
still installed.

> 2009-01-02 16:43:56, DEBUG  : Checking existence of package: Pidgin
> 2009-01-02 16:43:56, DEBUG  : Finding version of 
> C:\Programme\pidgin\pidgin.exe|
> 2009-01-02 16:43:56, DEBUG  : Obtained version "2.5.3.0".
> 2009-01-02 16:43:56, DEBUG  : Leaving getFileVersion with version 2.5.3.0
> 2009-01-02 16:43:56, DEBUG  : Checking file version 2.5.3.0 is 
> versionequalto (than) 2.5.3.0 - got result 0
> 2009-01-02 16:43:56, DEBUG  : Checking version of 
> 'C:\Programme\pidgin\pidgin.exe' : Is 2.5.3.0 = 2.5.3.0 ? true

C:\Programme\pidgin\pidgin.exe seems till to be installed. Note that
WPKG does nto cache anything here.


> 2009-01-02 16:43:56, DEBUG  : Checking pidgin zombie state.

Zombie state is assumed because the 'pidgin' package is still in your
server package tree but not within the profile assigned to the current host.


> 2009-01-02 16:43:56, ERROR  : Could not process (remove) Pidgin.|Package 
> still installed.

Failed to remove.

Please verify that your pidgin-remove.cmd script is properly removing
Pidgin. Please also note that on 64-bit systems Pidgin is installed at
c:\Program Files(x86)\Pidgin and not at c:\Program Files\. Your
uninstall script should consider this fact too.

My personal 'pdigin-remove.cmd' script looks as follows:
@echo off

echo Removing Pidgin

set INSTALL_LOC=%ProgramFiles%
if not "%ProgramFiles(x86)%" == "" set INSTALL_LOC=%ProgramFiles(x86)%

start /wait "Pidgin" "%INSTALL_LOC%\Pidgin\pidgin-uninst.exe" /S


> Pidgin has been properly removed, but WKPG is not able to remove it from 
> the list. 

It will not remove it from wpkg.xml as long as the checks still yield
true (still installed).


>>From the log, I see that wpkg.js checks the file version of pidgin.exe,
> but this file doesn't exist any more.
> It seems that it is checking some cached data.
> Perhaps, there is refresh needed somewhere.

There is no such thing like a cache - unless the operating system is
doing some caching - but I've never experienced Windows pretending that
a removed file is claiming a file to exist when it has been removed.

Please verify that the files are really removed by your
pidgin-remove.cmd script. I am quite sure they are still there.

br,
Rainer



More information about the wpkg-users mailing list