[wpkg-announce] Announcement: WPKG 1.3.1 released
Rainer Meier
r.meier at wpkg.org
Wed May 14 20:56:36 CEST 2014
Hello,
A lot of time has passed since last stable release of WPKG in December 2011.
Lots of small improvements and bugfixes have been implemented in WPKG 1.3.1.
WPKG 1.3.1 is identical to previous release-candidate (1.3.1-RC18). Also this
version includes 100% compatibility with previous WPKG 1.3.0 and also WPKG 1.2
releases. No package/profile/host definition updates should be required. As a
result wpkg.js acts as a simple drop-in replacement for previous WPKG releases.
The release package is also shipped with extended documentation in HTML format
documenting XML file format. Of course you can also use included XSD to validate
your XML files.
The release package can be downloaded here:
<http://wpkg.org/files/stable/1.3.x/wpkg-1.3.1-bin.zip>
Checksums to validate the download:
MD5: 7db397167cd1b08a02444c57535ccc6a
SHA1: 1bccbf9f1b98e19d4b16cddb69e625cd17856de0
Of course you can always get the the latest files directly from SVN too:
<https://svn.code.sf.net/p/wpkg/code/wpkg/stable>
Or WPKG 1.3.1 release tag:
<https://svn.code.sf.net/p/wpkg/code/wpkg/release/wpkg-1.3.1>
Also this time I would like to express my appreciation to the community for
great support, bug reporting and patience during bugfix process!
In addition many people contributed package samples on the wiki and helped other
users on the mailing list. Thank you!
Of course we do count on you for continued support. No matter whether you
contribute silent switches in the wiki, test features, file bugs, submit
updates, discuss new features, support other users on the mailing list, spread
the word around the internet or by simply using WPKG in your daily business. No
matter what, you will help improving WPKG and keeping it alive.
The project is on good track, stable and general good condition. Even after
initial fears that Windows 8(.1) would introduce technical issues the code
worked surprisingly well since WSH platform is still supported. Moreover all
initial rumors that Windows 8 would render a toolkit like WPKG useless turned
out to be true only for Metro/ModernUI applications updated via the built-in
store. Though for desktop use WPKG is more useful than ever.
Here is a list of changes since WPKG 1.3.0 release:
===============================================================================
= CHANGES FOR 1.3 release
===============================================================================
Change notes
============
WPKG Version: 1.3.1
Author: : Rainer Meier <skybeam (at) users.sourceforge.net>
Date : 2014-05-14
Status : release pending
Changes/fixes visible to the user:
- Disable generating "Legend" in XSD documentation.
- Fixed environment variable expansion in settings_file_path.
- Reverted variable evaluation to pre WPKG-1.3 order.
- Allow using of lower level variables in higher priority levels.
- Allow check for empty/undefined variables.
- Extra spaces in hosts.xml removed.
- Extra spaces in profiles.mxl removed.
- Grammar, spelling and whitespace in wpkg.js fixed (non-functional).
- Fixed config.xsd.
- Fixed expansion of package variables in remove command conditions.
- Omit printing of error if optional database file does not exist.
- Updated package templates.
- Added Spanish translation of WPKG messages.
- UTF-8 BOM encoding fixed for config.xml.
- Fixed use of robocopy.exe on share by downloader.cmd.
- Fixed another issue finding robocopy.exe on share by downloader.cmd.
- Relaxed MD5/SHA1 checksum validation parsing.
- Added ability to define global variables in config.xml.
- Added ability to use regular expressions in registry equal checks.
- Added ability to set default command execution timeout in conifg.xml.
- Allow execTimeout to be specified in config.xml.
- Expanding environment variables in settings file path.
- Fixed removing manually installed package dependencies during sync.
- Added *_path parameters in config.xml to specify multiple databases.
- Do not exit if no matching host definition is found.
- Read numeric values as unsigned integer from registry DWORD values.
MOD: Disable "Legend" in XSD documentation as it's not meaningful to WPKG.
FIX: Fixed environment variable expansion in settings_file_path parameter
within config.xml. Functionality has been lost when introducing [HOSTNAME]
and [PROFILE] expansion in settings file name.
Thanks to Daniel Rickenbacher for reporting.
MOD: Reverted variable evaluation order to pre WPKG-1.3 behavior. Now profile
variables are allowed to override package variables and host variables
are allowed to override profile variables.
So the order of variable evaluation is as follows:
- Package variables (lowest priority)
- Profile variables
- Host variables (highest priority)
This allows you to specify variables on hosts or profile level which do
override variables at package level.
Fixes bug 262. Thanks to Kalyniak Oleksandr for report and discussion.
NEW: WPKG now allows to use environment variables of lower priority
stage in higher priority stage conditional statements.
For example you can use a condition on a variable defined on package level
within the profile or host definition.
Fixes bug 262. Thanks to Kalyniak Oleksandr for report and discussion.
NEW: WPKG does not immediately abort conditional comparison if environment host
environment variable condition is used on a variable which is undefined.
This allows conditions to check for empty variables as well.
This feature can be used to define conditional variables at host or
profile level which will check for empty variable. For example:
<variable name="MY_VAR" value="true">
<condition>
<check type="host" condition="environment" value="MY_VAR=^$" />
</condition>
</variable>
The example only defines MY_VAR if it has not been defined already. If
such a declaration is used in hosts or profile definition it allows to
define a variable only if it's not defined on package level already.
Fixes bug 262. Thanks to Kalyniak Oleksandr for report and discussion.
FIX: Fixed extraneous trailing space in hosts.xml.
Fixes Bug 263. Thanks to Urs Rau.
FIX: Fixed extraneous trailing space in profiles.xml.
Fixes Bug 263. Thanks to Urs Rau.
FIX: Fixed spelling and whitespace issues (cosmetic fixes, no functional
impact) in wpkg.js.
Fixes Bug 264. Thanks to Urs Rau.
FIX: Fixed bug in config.xsd. Unable to validate config.xml using config.xsd.
Thanks to Urs Rau.
FIX: Fixed issue that remove command conditions did not correctly expand
package variables.
Thanks to Malte Hohmann for reporting.
MOD: Omit error message printed if any of the combined database files do not
exist (packages.xml, hosts.xml, profiles.xml). As these files are
completely optional WPKG shall not print error if they do not exist.
Thanks to "Mi" for reporting.
MOD: Updated package templates.
Thanks to Stefan Pendl for updating!
Fixes bug 236.
NEW: Added Spanish translation of notification texts in config.xml.
Thanks to Carlos R. Pasqualini for sending the complete translation!
FIX: Fixed UTF-8 with BOM encoding for config.xml.
Fixes Bug 269. Thanks to Stefan Pendl.
FIX: Fixed downloader.cmd bug to read robocopy.exe from same folder where
downloader.cmd is stored (if present).
Thanks to Neil for reporting.
FIX: Fixed another issue searching for robocopy.exe in current folder when
executing downloader.cmd.
Thanks to Neil for reporting.
MOD: Relaxed MD5/SHA1 checks to allow checksums appearing anywhere in the
output of the MD5/SH1 checksum tool. This might be required for some tools
printing checksums at the end of the line instead of standard unix-like
output with the checksum at the beginning of the line.
This change introduces a small risk of overmatching if the checksum string
appears somewhere else on the output as downloader.cmd will just check
that the required checksum appears anywhere in the checksum tool output.
Fixes Bug 271. Thanks to Neil for reporting.
NEW: Added possibility to specify variables in config.xml. All variables
defined in config.xml are WPKG-wide and globally defined during WPKG
execution. However these variables might be overwritten by host-,
profile- or package variables.
Configuration variables are an alternative way to specify global
environment variables in central location when not using a WPKG wrapper
script or WPKG-client or any other WPKG launcher with capabilities to
define global environment variables before wpkg.js is launched.
Variables are also allowed to use conditional expressions and therefore
allow variable evaluation based on system parameters like architecture,
file existence etc.
Example:
<config>
<variables>
<variable name="PROG_FILES32" value="%ProgramFiles%"
architecture="x86" />
<variable name="PROG_FILES32" value="%ProgramFiles(x86)%"
architecture="x64" />
</variables>
</config>
The example above defines the PROG_FILES32 environment variable to point
to the 32-bit program installation folder on 64-bit and 32-bit Windows.
Example:
<config>
<variables>
<variable name="DESKTOP" value="%ALLUSERSPROFILE%\Desktop"
os="windows xp" />
<variable name="DESKTOP" value="%PUBLIC%\Desktop"
os="Windows 7" />
</variables>
</config>
The example above defines a variable named DESKTOP which points to the
location of the public desktop. Therefore accessing %DESKTOP% in packages
will point to the right location on either Windows XP or 7.
This is supposed to support an enhancement request reported in Bug 260.
Thanks to Peter Hoeg for reporting.
NEW: Added support of regular expressions in registry equal checks. Now WPKG
first tries to match the values literally, then it tries to match the
expanded (expanded environment variables) value in case-insensitive mode
and if there is still no match found the check condition is used as a
regular expression.
NEW: Allow to define execTimeout in config.xml. This allows to specify longer
or shorter timeout values for command executions. Plese note that shorter
values will not necessarily warranty shorter WPKG execution times since
execution time depends mainly on number of commands run in total.
Moreover if commands run into timeout while executing normally WPKG will
skip to the next command and mark package installation as failed due to
incomplete command.
Change requested by Marco Gaiarin.
NEW: Allow to define execTimeout in config.xml. This allows to specify longer
or shorter timeout values for command executions. Plese note that shorter
values will not necessarily warranty shorter WPKG execution times since
execution time depends mainly on number of commands run in total.
Moreover if commands run into timeout while executing normally WPKG will
skip to the next command and mark package installation as failed due to
incomplete command.
Change requested by Marco Gaiarin.
NEW: Expanding environment variables in settings file path.
Fixes bug 282. Thanks to droussel.
FIX: Prevent to remove dependencies of manually installed packages during
regular package synchronization.
Thanks to Dafydd Jones.
NEW: Added possibility for flexible definition of XML database files in
config.xml.
packages_path Defines path to one or multiple package XML files or
directories containing package XML files.
profiles_path Defines path to one or multiple profile XML files or
directories containing profile XML files.
hosts_path Defines path to one or multiple host XML files or
directories containing host XML files.
The paths can be separated by pipe and list either individual XML files
or directories which contains XML files. URLs can either contain paths
relative to wpkg_base, absolute paths or or HTTP URLs. Please be aware
that absolute paths to external SMB/CIFS shares are supported but you
might have to make sure authentication on all paths is provided prior
to WPKG execution.
Also note that when using *_path settings WPKG will ignore the default
XML databases. So if you use packages_path you might like to include
the default databases as well. For example
<param name='packages_path' value='packages.xml|packages' />
is equal to the default setting of WPKG.
Files will be parsed in the order they are listed in the parameter
definition. Files stored within a directory are parsed in alphabetical
order.
Make sure not to have overlapping package/profile/host definitions as
duplicated unique IDs might lead to unexpected/undefined results.
Due to the enhanced flexibility of [packages|profiles|hosts]_path
parameters it's deprecated to use an HTTP URL as wpkg_base as well as
it's deprecated to use [package|profiles|hosts]_file_name and
web_[packages|profiles|hosts]_file_name parameters. This simplifies
configuration as you can now simply define wpkg_base to define the base
for relative paths and then use [packages|profiles|hosts]_path to specify
any number of relative, absolute and URL paths.
Corresponding notes have been added to config.xml.
MOD: Do not stop processing if no matching host definition is found. It is only
an error if no profiles are found. However it's possible to have no
matching host definition but using the /profile: arguemnt to assign a
profile.
MOD: DWORD values read from registry should be interpreted ad unsigned integers
as registry does also store unsigned integers only.
WPKG will now convert numeric values from registry into unsigned integer.
This allows to compare 0xffffffff to 4294967295 decimal value rather than
"-1" which (signed integer representation of 0xffffffff).
Note: WPKG can not read 64-bit DWORT values properly as since the WSH
regRead method is unable to read 64-bit values.
Thanks to Joe for reporting on the mailing list.
Thank you!
Rainer
More information about the wpkg-announce
mailing list