[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