Looking at some of my test systems:
* Mac OS 10.5's 'zip' lacks bzip2
* Mac OS 10.6's 'zip' supports bzip2
* Debian Lenny's 'zip' lacks bzip2
* On Windows it depends what version of cygwin is being used. The version we are currently
using on build-windows (zip 3.0) supports bzip2.
In brief testing, this reduced the file size of an all-in-one zip package
by several MB. Provided that the zip library can support bzip2 decompression
on all platforms, this would be an easy win to reduce download sizes.
The ability to prompt the user to Retry/Cancel file writes during installation is less
necessary now that we can move files that are in use. Without retry/cancel support
the update installation will just be canceled if it fails.
* On Windows FileOps::removeFile() fails for updater.exe
since that file is in use by the current process.
Whilst it is not possible to remove the file whilst it
is in use, it can be moved or scheduled for deletion on reboot.
This commit changes FilesOps::removeFile() to simulate the
behavior of unlink() on Linux by moving in-use files to
a temporary directory and then scheduling for them to
be removed on restart.
The old syntax uses a series of Key=Value pairs, instead of
the more standard "--key value" syntax.
This is required so that the old Mendeley Desktop versions can
launch the new updater.
* Add FileOps::fileName() to get the base name for a file
* Add ProcessUtils::runSync() to run a process, wait for it to exit and then
return the status code from that process.
* Change ProcessUtils::runAsyncUnix() to use execvp() in order to search PATH
for the specified binary if the filename is not absolute.