unit PackageFileFormats; interface implementation {############################################################################### # KEYMAN 5.0 # ##############################################################################} {------------------------------------------------------------------------------- .kps file format - ================ - - [Package] - FileType=ftPackageSource|ftPackageGroupSource - ExecuteProgram= - AddUninstallEntry=1|0 - CreateStartMenu=1|0 - StartMenuPath= - OutPath= - AddReadmeStartMenuEntry=1|0 - ReadMeFile= - - [Info] - =""",""" | - ="""" - - [Files] - = [n=0..count of files-1] - - [File-] - FileName= - FileNameAbsolute= - FileType=ftPackageFile|... - Description= - AddStartMenuIcon=0|1 - AddUninstallEntry=0|1 - -------------------------------------------------------------------------------} {------------------------------------------------------------------------------- kmp.inf file format - =================== - - [Install] - KMXFile= - ExecuteProgram= - StartMenuPath= - - [InstallFiles] - kmp.inf=Package information - = - - [Fonts] - = - - [PackageInfo] - =""",""" | - ="""" - - -------------------------------------------------------------------------------} {------------------------------------------------------------------------------- kmredist.inf file format - ======================== - - [Install] - StartMenuPath= - - [InstallFiles] - kmredist.inf=Installation information - keyman.exe=Keyman executable - keyman32.dll=Keyman executable - kmshell.exe=Keyman executable - kmuninst.bin=Keyman uninstaller - klicence.htm=Keyman licence - keyman.chm=Keyman help - - [Packages] - = - - [PackageInfo] - =""",""" | - ="""" - - -------------------------------------------------------------------------------} {############################################################################### # KEYMAN 6.0 # ##############################################################################} {------------------------------------------------------------------------------- .kps file format - ================ - - [Package] - Version=6.0 - RedistributableInstaller=1|0 - ExecuteProgram= - OutPath= - ReadMeFile= - FileCount= - - [StartMenu] - Path= - Create=1|0 - AddUninstallEntry=1|0 - - [StartMenuEntries] - ="", - - [Info] - =""",""" | - ="""" - - [Files] - ="",""[,0|1] - -------------------------------------------------------------------------------} {------------------------------------------------------------------------------- kmp.inf file format - =================== - - [Install] - Version=6.0 - ExecuteProgram= - StartMenuPath= - - [InstallFiles] - kmp.inf=Package information - = - - [PackageInfo] - =""",""" | - ="""" - - -------------------------------------------------------------------------------} {------------------------------------------------------------------------------- kmredist.inf file format - ======================== - - [Install] - Version=6.0 - - [InstallFiles] - kmredist.inf=Installation information - keyman.exe=Keyman executable - keyman32.dll=Keyman executable - kmshell.exe=Keyman executable - kmuninst.bin=Keyman uninstaller - klicence.htm=Keyman licence - keyman.chm=Keyman help - = ; these files added when .kps is built to - ; .exe and CopyToKeyman=1 - [Packages] - = - - [PackageInfo] - =""",""" | - ="""" - - [Graphic] - Background=w,h,| - Icon=| - - [Buttons] - ; bmp, hover, down not req -- std btn used if not specified - ; if [Graphic]/Background spec, then Inst, Exit, About buttons required. - InstallButton=x,y,w,h,|,|, - | - ExitButton=x,y,w,h,|,|, - | - AboutButton=x,y,w,h,|,|, - | - Button#=x,y,w,h,|,|, - |, - - -------------------------------------------------------------------------------} {############################################################################### # GENERAL NOTES # ##############################################################################} {------------------------------------------------------------------------------- - Requirements - ============ - - GENERAL - - 1. The file names must follow the existing patterns (kmp.inf, *.kps, - kmredist.inf) - 2. When building a redist installer, all component files will be placed into - a single .kmp file before being included in the installer. This ensures - that the files will be installed into the correct locations. No - additional files can be included in the Keyman directory by default. - 3. We will have an option for files to be copied into the Keyman directory. - This will only be available if a registry setting is set to turn this on - (usually only for OEMs) and will be ignored for .kmp and only used for - redist installers. - 4. All kmps are delinked from each other. A kmp does not need to have .kmx - files in it, or even other .kmp files. It can be just a collection of - fonts or associated files. - 5. Very important to ensure that users cannot uninstall individual keyboards - from a package. - - KEYMAN - - 1. Keyman 6.0 can install .kmp packages from Keyman 5.0. - 2. Keyman 6.0 reads the file version of .kmp packages and does not attempt to - load newer ones. - - KEYMAN DEVELOPER - - 1. Keyman Developer 6.0 can load version 5.0 .kps files (both kinds) - 2. Keyman Developer 6.0 can export to version 5.0 .kps files (both kinds) - -- loss of information okay - 3. Keyman Developer 6.0 can save version 6.0 .kps files - 4. Keyman Developer 6.0 reads the file version of .kps files and does - not attempt to load newer ones. - - * Keyman Developer 6.0 will not produce .kmp packages for Keyman 5.x; if the - user wishes to do this, they will need to export the package to version 5.0 - .kps and create the .kmp with a Keyman Developer 5.0 install. - - -------------------------------------------------------------------------------} end.