From b25f4db535f14b366431f27a6fb9ccaa29a977fa Mon Sep 17 00:00:00 2001 From: Konrad Rosenbaum Date: Sun, 19 Aug 2012 22:30:01 +0200 Subject: [PATCH] some format docu --- README | 36 ++++++++++++++++++++++++++++-------- file-format.txt | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 file-format.txt diff --git a/README b/README index c8da511..d9d268c 100644 --- a/README +++ b/README @@ -8,13 +8,25 @@ for 3rd-party components' copyright see installer/libs Aurora is a bootstrap installer and a library for program updates. + +Update Library +=============== + +Requirements: +* Qt 4.8 or newer (5.x is untested, but might work) +* QCA 2.x + +Building the library: +cd src && qmake && make + + Creating Packages ================== ...? -Installer -=========== +Creating an Installer +====================== Requirements: * TclKit, get it from: @@ -27,9 +39,17 @@ see installer/libs for details. Building an installer: 1) download a TclKit that fits your platform 2) place it in the main directory - - - -Update Library -=============== - +3) create all the packages that belong to your application (see above) +4) create a manifest file (also see above) +5) copy the generated manifest to installer.vfs/manifest.xml +6) create the installer: + tclkit util/sdx.kit wrap installer.exe -runtime tclkit-upx.exe + * sdx.kit : wrapper application to build integrated executables + * installer.exe : "installer" plus the correct extension for your + platform, if you want to use a different name you must add the + option -vfs installer.vfs + * -runtime ...: the tclkit executable to use for the installer, + recommendation: use the 32bit tclkits for x86 based Linux and Windows, + use the UPX version for Windows (it is smaller than the normal one) + * Hint: on Windows you may to copy tclkit because it does not + allow to execute and read the same file at the same file. \ No newline at end of file diff --git a/file-format.txt b/file-format.txt new file mode 100644 index 0000000..e59666a --- /dev/null +++ b/file-format.txt @@ -0,0 +1,42 @@ +File Format +============= + +This is the format of the package and manifest files used by the Auto-Updater. + + +Package File +-------------- + +This file type is used to transport files for installation or update. + +It is recommended to put each component into one separate package - e.g. one +for the actual application, one for plugins, one for Qt, etc. - this way it is +easier to do partion (security) updates. + +All numbers are 32bit big endian. + +Pos. Len. Content +0000 4 Magic Bytes 0x552d3837 +0004 4 Version Number: 0x000100 (i.e. 0.1.0) +0008 4 Amount of Directory entries +000c * compressed files + +Per Directory entry: +0000 4 Length of Filename +0004 4 Length of File compressed (0 indicates empty file or a directory) +0008 * Filename in UTF-8 encoding + n+8 * Packed file (non-existent if length indicated 0) + +Notes on Filenames: +* the directory separator is "/" +* components that consist of dots only make the file name illegal +* illegal file name means the file is ignored with a warning +* leading "/" is ignored, leading drive letter (Regexp: "[a-zA-Z]:") +* directory names end in "/" +* executable files end in "*" - the "*" is stripped off + +Manifest File +--------------- + +This file type describes which package files are needed for a specific +installation version and contains the Signature and Keys. \ No newline at end of file -- 1.7.2.5