[wpkg-users] Remove Packages with forced reboot in uninstaller

Will Aoki waoki at umnh.utah.edu
Tue Jul 21 17:20:08 CEST 2015


On Tue, Jul 21, 2015 at 12:00:51PM +0200, Nils Thiele wrote:
> This results in a loop when running wpkg again.
> Because its still in local package DB but checks failed it will
> reinstall, after that it tries to remove the package again and this
> goes on forever.

Perhaps you could touch a file during the uninstall process and write
checks so that the file satisfies the package's check conditions and
prevents the install from running if for some reason it doesn't?

  <check type="logical" condition="or" />
    <check type="file" condition="exists" path="%PROGRAMDATA%\wpkg\uninstall-netware-pls" />
    <check type="uninstall" condition="exists" path="Novell Client.*" />
  </check>

  <install cmd='%SOFTWARE%\NetWare\clntwhatever.exe'>
    <!-- avoid installing again if main checks were somehow not satisfied -->
    <check type="logical" condition="not">
      <check type="file" condition="exists" path="%PROGRAMDATA%\wpkg\uninstall-netware-pls" />
    </check>
  </install>

  <remove cmd='%COMSPEC% /c copy nul "%PROGRAMDATA%\wpkg\uninstall-netware-pls"' >
    <exit code="any" />
  </remove>

  <!-- Clean up the file if we're not going to run NWUninstallClient -->
  <remove cmd='%COMSPEC% /c del "%PROGRAMDATA%\wpkg\uninstall-netware-pls" />
    <check type="logical" condition="not">
      <check type="uninstall" condition="exists" path="Novell Client.*" />
    </check>
    <exit code="any" />
  </remove>

  <!-- ... otherwise, kill it -->
  <remove cmd='rundll32.exe "%PROGRAMFILES%\Novell\Client\ncsetup.dll" NWUninstallClient /s">
    <check type="uninstall" condition="exists" path="Novell Client.*" />
  </remove>




More information about the wpkg-users mailing list