some format docu
authorKonrad Rosenbaum <konrad@silmor.de>
Sun, 19 Aug 2012 20:30:01 +0000 (22:30 +0200)
committerKonrad Rosenbaum <konrad@silmor.de>
Sun, 19 Aug 2012 20:30:01 +0000 (22:30 +0200)
README
file-format.txt [new file with mode: 0644]

diff --git a/README b/README
index c8da511..d9d268c 100644 (file)
--- 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 (file)
index 0000000..e59666a
--- /dev/null
@@ -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