=============================================================================== = CHANGES FOR 1.1 release =============================================================================== Changes 2008-04-21, v1.1.0-M5 by Rainer Meier NEW: Improved handling of event log system errors. In case writing to event log causes an exception WPKG will not exit silently any more but fall back to write to STDOUT and log to the log file as appropriate (depending on log level). Thanks to Brian May for reporting and debugging. This fixes Bug 109. Changes 2008-04-10, v1.1.0-M4 by Rainer Meier FIX: Fixed Bug 107. Registry equality checks throw an error in case of checked value is of type REG_DWORD or REG_BINARY. Now the values are converted to strings before comparing it to the 'value' attribute. REG_MULTI_SZ and REG_BINARY values are concatenated using newline characters. For REG_BINARY values each octett is converted to its decinal number representation. Examples: REG_MULTI_SZ = a b c value = "a b c" will match. REG_BINARY values will be converted to multiline string as well. Each octett of the binary value is converted to its decimal representation. REG_BINARY = "11 22 33 44" value = "17 34 51 68" will match. MOD: Misleading/confusing info message about non-zero exit code (even if exit code was 0) changed from: Command ' returned non-zero exit code []. This exit code... to Command '' returned exit code []. This exit code... The quoting has been fixed as well (see above). MOD: Download XML nodes are now allowed as sub-nodes of any command (install/ upgrade/downgrade/remove). This allows you to specify a download which is only downloaded for a specific command. This was implemented since it usually makes no sense to download the installation package again right before the remove commands are executed (which usually runs a local uninstall command which does not need the original installer). Specifying a download XML node on the global package level (not below a specific command definition) is still allowed. Such downloads will be executed regardless of the command to be executed. So you can specify some global downloads which are executed in any case. Note: If multiple install (or upgrade/downgrade/remove) commands are specified WPKG will download the the files of all command nodes of the same kind before starting to execute the commands in sequence. Example: This definition will simply download "package.exe" (global). "file.exe" and "file2.exe" right before the install commands are executed in seuence. In case of upgrade it will download "package.exe" (global) and "update.exe" before executing the upgrade command(s). NEW: Checks of type 'execute' allow to use environment variables within the 'path' attribute now. For example the following specification is valid now: "%SystemRoot%\mycheck.cmd" Changes 2007-04-05, v1.1.0-M3 by Rainer Meier NEW: Package uninstall checks have been extended. The following values are now valid: type="uninstall" path="prg" condition="versionsmallerthan" value="1.1" Check if version is smaller than the specified value type="uninstall" path="prg" condition="versionlessorequal" value="1.1" Check if version is less or equal than the specified value type="uninstall" path="prg" condition="versionequalto" value="1.1" Check if version is exactly equal to the specified value type="uninstall" path="prg" condition="versiongreaterorequal" value="1.1" Check if version is greater or equal to the specified value type="uninstall" path="prg" condition="versiongreaterthan" value="1.1" Check if version is greater than the specified value The version is compared to the DisplayVersion value within the uninstall entry within the Windows registry. Changes are based on a patch by Richard de Vos. Thanks! NEW: Added new check type: "execute". This allows you to execute any script which checks if an application is installed - based on the exit code of the script. Usage: type="execute" path="\\path\to\script.cmd" condition="exitcodesmallerthan" value="0" Evaluates true if the exit code is negative type="execute" path="\\path\to\script.cmd" condition="exitcodelessorequal" value="0" Evalueates true if exit code is 0 or negative type="execute" path="\\path\to\script.cmd" condition="exitcodeequalto" value="0" Evaluates true only if exit code is exactly 0 type="execute" path="\\path\to\script.cmd" condition="exitcodegreaterorequal" value="0" Evaluates true if exit code is 0 or any poitive number type="execute" path="\\path\to\script.cmd" condition="exitcodegreaterthan" value="0" Evaluates true if exit code is any positive number This type of check also allows very complex checks. For example there is a limitation of the RegRead method used by WPKG to query registry values which contain backslashes '\'. Now you can execute a batch script which checks for such registry values using 'reg query ...'. NEW: Added download extension as initially proposed by Tomasz Chmielewski (with some changes). A download definition is specified as follows: The 'timeout' attribute is entirely optional. It defaults to the value of 'downloadTimeout' as specified within config.xml (7200 if not omitted). The value is specified in seconds. The 'target' attribute specifies a path relative to the 'downloadDir' as specified within config.xml (defaults to '%TEMP%' if omitted). NOTE: You need to specify the full file path, including the file name, not just a directory name! So to install the package above could be installed by the following install command definition: NEW: Added downgrade command nodes. These commands are executed if the version installed on the client is newer thant the one on the server side. Example: NEW: Added /sendStatus flag and 'sendStatus' configuration parameter in config.xml. The parameter allows to enable printing of status information to STDOUT in order to be parsed by the calling program (e.g. WPKG client). This allows the calling program to display some status messages about the synchronization process. The status update might not be very linear depending on the package sizes but at least it allows to display the start time (and therefore also elapsed time to the user. So the user can see at least how many percent of packages have been synchronized already and for how long the current task is running currently. Users usually feel much less annoyed when waiting for a task to be finished if there are at least some screen updates and a kind of progress bar which is updating from time to time. Note: STDOUT was chosen due to the fact that I was unable to find a way to write to named pipes from JScript yet. However the implementation could easily be adapted to pipes or sockets. I also updated wrapper.js to read STDOUT of the called wpkg.js and print it to its own STDOUT. This required if WPKG client is going to read the output of wpkg.js, in that case output needs to be "chained" to be forwarded to the GUI. Changes 2008-02-18, v1.1-M2 by Rainer Meier FIX: Included cosmetic fix for Bug 104 (opening quotation missing). This fix adds a missing opening quotation in debug output when a new package is added to the local settings node (after installation success). FIX: Fixed Bug 103. /help screen is not showing up if config.xml is missing and null-pointer exception is thrown. Changes 2007-01-14, v1.1-M1 by Rainer Meier NEW: removePackage now removes all packages which depends on the one to be removed as well (recursively). This assures that after poackage uninstall no packages are left installed which miss their required dependency. Please note that if a package which depends on the one to be removed specifies an immediate reboot the reboot takes place right after the this package has been removed. In such case the package initially requested to be removed will still be there after the reboot. To avoid this it is possible that depending packages use the postponed reboot functionality. Alternatively you can use the /noreboot switch to advice WPKG to ignore each reboot request. Note that in such cases some packages will not properly finish their uninstall procedure. In case removing of any package from the dependency tree fails WPKG will stop uninstalling and print a message. In such case the package you requested to remove will still be there because there is at least one more package which depends on it. You can advice WPKG to remove the requested package in any case by using the /force switch. Warning: In such case it might happen that some packages depending on the removed one could not be removed and therefore will be left on the system (probably not working any more).