WPKG with Wine

Although WPKG was written to ease Windows administration, it can also run on other platforms through Wine, an Open Source implementation of the Windows API on top of X and Unix.

Using WPKG on Linux may be helpful in the following situations:

  • we don't have a Windows machine and would like to see how WPKG works
  • we have a double-boot system, and we don't feel like rebooting to Windows to see how WPKG works
  • we would like to change some code in WPKG, and test how it works


To use WPKG with Wine, you have to install:

To install Internet Explorer on your non-Linux system, search through the Wine website, you should find links to articles describing how to do it.

Installing scripten.exe is easy, just do "wine scripten.exe".


Below - a sample output of WPKG running on a Linux box:

$ wine cscript wpkg.js /synchronize /debug
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Settings file does not exist. Creating a new file.
saving XML : C:\windows\system\wpkg.xml
settings file contains 0 packages:

packages file contains 2 packages:
firefox
notepad

Using profile: custom
profile: custom profileNode:
number of available packages: 2
checking existence of package:Mozilla Firefox 1.0.7
Checking presence of Mozilla Firefox 1.0.7; file check condition met.
Bypassing installation of package Mozilla Firefox 1.0.7
saving XML : C:\windows\system\wpkg.xml
Installation of Mozilla Firefox 1.0.7 successful.
Executing commands for notepad...
executing command : notepad


If you're curious, just make a "wpkg" directory, for example here:

Program Files/ windows/ wpkg/

and put wpkg.js, hosts.xml, packages.xml and profiles.xml files into it.


Below - sample files that I used on a Linux box.

hosts.xml:

<wpkg>

    <host name="mangoo2" profile-id="custom" />

</wpkg>


packages.xml:

<packages>

 <package
   id="firefox"
   name="Mozilla Firefox 1.0.7"
   revision="1"
   reboot="false"
   priority="10">
  <check type="file" condition="exists" path="C:\Program Files\Mozilla Firefox\firefox.exe" />
  <install cmd='"C:\Firefox Setup 1.0.7.exe" -ms'>
   <exit code="0" />
  </install>
  <remove cmd='C:\Windows\UninstallFirefox.exe -ms' />
 </package>

 <package
  id="notepad"
  execute="once"
  name="notepad">
  <install cmd='notepad' />
 </package>

</packages>


profiles.xml:

<profiles>

   <profile id="custom">
       <package package-id="firefox" />
       <package package-id="notepad" />
   </profile>

</profiles>