When create-packages.rb was run under ruby 1.9.x the Updater
binary in the output dir lost its executable permissions.
This is the same issue and fix as previously applied in
0472a4e991
The use of QFile::Permission flag values is a legacy from the old Qt-based updater.
Unix chmod values are used by the native system calls so it makes more sense
to use them instead.
* Update the test examples and the test update script.
* Update the package building tool to populate the permissions field with octal chmod values.
The updater binary is listed as a package on its own but is not
compressed. The program downloading the update can then download
all packages for the new version including the updater executable
'package' (in reality, just the plain file) and then invoke that updater.
This also allows for substitution of the updater binary with a different
version via the -u parameter.
* Abort if running the zip tool fails
* Abort if multiple file path rules match a given file
* Remove part of the special updater binary handling - this needs to be reworked
* Sort the file paths before feeding them to the zip tool, so that multiple runs with
with the same set of files will generate the same packages
These specify the target version for the update and the platform and are embedded
in the <targetVersion> and <platform> elements of the generated file_list.xml file
Ordinarily the script will use the updater binary from the input files directory which
matches the path of the updater binary specified in the package config file.
However it may sometimes be necessary to use a different binary, which can be done
via a -u option.
The generated file_list.xml needs to specify the path
of the main binary and the name of the updater binary
to download. Change the format of the JSON config file to
allow these paths to be specified there.
* Update create-packages.rb to add the <is-main-binary> attribute
to the appropriate entry in file_list.xml
* Modify the sample config file
* Improve documentation in create-packages.rb
* create-packages.rb takes an input directory containing all files as they are laid out in
the installation directory of an application, a JSON file mapping files to packages and
generates the file_list.xml file listing all files in the release along with the
.zip packages containing those files.
* Add single-package-map.json which is the simplest possible package map - putting
all files in a single package.
Per-project/build package maps can be written that separate files into different packages
based on the component they belong to.
This script replaces the autoupdate-setup tool written in C++ in the utilities/autoupdate-setup
directory in the desktop source tree.