.. MainWindow CenterOnParent 6 6 Developer 0 True False False True False 1 True 0 True False False 6 Product 0 True False False True False 1 True 1 True False False 6 Version 0 True False False True False 1 True 2 True False False 6 Languages 0 True False False True False 1 True 3 True False False 6 Architecture 0 True False False True False 1 True 4 True False False 6 Machine 0 True False False True False 1 True 5 True False False 6 Format 0 True False False True False 1 True 6 True False False 6 Description 0 True False False True False 1 True 7 True False False 6 6 False True oem True True True 0 True False False False True upgrade True True True 1 True False False False True source True True True 2 True False False 0 True 6 False True update True True True 0 True False False False True files True True True 1 True False False False True netinstall True True True 2 True False False 1 True 8 True False False In True True 9 True 6 False label2 0 True False False False 1 True 10 True False False 6 False label22 0 True False False False 1 True 11 True False False 6 True True StockItem gtk-quit gtk-quit End 0 True False False True TextAndIcon stock:gtk-preferences Menu _Settings True End 1 True False False True True StockItem gtk-help gtk-help End 2 True False False False True TextAndIcon stock:gtk-close Menu _Close True End 3 True False False False False True TextAndIcon stock:gtk-save Menu _Pack... True End 4 True False False False True TextAndIcon stock:gtk-add Menu Add to _DB True End 5 True False False True TextAndIcon stock:gtk-open Menu Open _archive True End 6 True False False True TextAndIcon stock:gtk-open Menu Open _folder True End 7 True False False False True True StockItem gtk-stop gtk-stop End 8 True False False 12 True False False Help Dialog CenterOnParent True 6 In True True False This is the naming scheme and folder organization conventions for the Operating System Repository. The basic layout is as follows: <Developer>/<Product>/<Version>/<Language>/<Architecture>/oem/for <Machine>/<[format]_update/upgrade/files/source/netinstall/description>.zip All fields should contain only 7-bit ASCII. <Developer> ----------- This is the main developer of the operating system or associated software. e.g. Microsoft <Product> --------- This is the name of the operating system or associated software. e.g. Windows NT <Version> --------- This is the version of the operating system or associated software. e.g. 6.00.6000.16386 Service pack and release markers should be appended. e.g. 6.10.7601.16385 (RTM) Build can be specified by appending "build". e.g. 10.2.7 build 6S80 And combined. e.g. 10.5 build 9A581 (Server) Version with same version number but different build date should have it appended. Date format should be YYYYmm[dd]. e.g. 10 201009 <Language> ---------- This specifies the language localization and translation: xxx: Language variation, e.g. German = deu xxx_yy: Country specific language variation. e.g. Swiss German = deu_ch multi: The only known variation of the product that contains more than a language xxx,xxx,xxx and xxx_yy,xxx_yy,xxx_yy: The variation contains more than a single language Where xxx is the ISO-639-2/T language code and yy is the ISO-3166-1 alpha-2 country code. https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 If the product has ever been only released in one language variation, being it English (like CP/M) or multilanguage (like Mac OS X and Linux), this field should be omitted. <Architecture> -------------- The processor architecture the product is compiled for. Omitted if it has only ever been compiled for a single one, contains all supported ones in same files, or it is source code containing support for several of them. Exact one depends on the product (that is, the one that the product uses to identify itself, should be used). Examples: * x86, i86, i386, i486, i586, i686, ia32: Intel Architecture 32 aka 8086 aka iAPX86 * x64, amd64, x86_64: AMD64 aka x86_64 aka EM64T * ia64: Intel Architecture 64 aka Itanium * sparc: SPARC * sun4u, sun4m, sun1, sun2, sun3: Specific Sun architectures that specify not only the processor architecture but the whole system one. * 68k, ppc, fat: For products that run under Mac OS indicate they require a Macintosh, a Power Macintosh, or can run on both, respectively. * rpi, rpi2, beaglebone, bananapi: Specific whole systems that share a processor architecture but require a completely different variant. oem --- Present if the variant is OEM. Omitted otherwise. for <Machine> ------------- Present if the variant requires a specific computer to run. Useful for computer restoration variants. e.g. for Power Mac 5200 e.g. for Tandy 1000 <[format]/update/upgrade/files/source/netinstall/description>.zip ----------------------------------------------------------------- This is the file containing the product itself. It should be compressed using ZIP with certain parameters (see below). Several of them can be combined separated with underscores. Naming as following: * [format]: If the variation is encoded in a disk image format that's neither a simple dump of sectors (.iso/.dsk/.xdf) or a BinCue/BinToc (.bin+.cue/.bin+.toc) format should be substituted to a descriptive name for the format. e.g.: [Nero], [CloneCD] * update: Should be used when the product requires and updates a previous point release or build to the new one. Product version should be the updated, not the required, one. e.g.: 1.3 updates to 1.3.1 or 2.0 updates to 2.5 * upgrade: Should be used when the product requires and updates a previous version to the new one. Product version should be the updated, not the required, one. e.g.: 2.0 updates to 3.0 or MS-DOS updates to Windows 95. * files: Should be used when the contents of the product disks are dumped as is (copied from the media) or it contains already installed files. * source: Should be used when it contains the source code for the product. * netinstall: Similar to files except that the files are designed to be put in a network share for remote installation of the product. * description: Free form description or product part number if it is known. Compression ----------- The product should be compressed using ZIP with Deflate algorithm and UTF-8 headers. Zip64 extensions may be used. UNIX extensions MUST be used for products that require them (e.g. it contains softlinks). In the doubt, use Info-ZIP with following parameters: zip -9ry -dd archive.zip . If the product requires Acorn, BeOS or OS/2 extended attributes it should be compressed using the corresponding Info-ZIP version under that operating system so the required extension is used. DO NOT recompress archives in an operating system which zip product doesn't support all already present headers. DO NOT use TorrentZip. It discards all headers as well as date stamps. DO NOT use Mac OS headers. For conserving FinderInfo and Resource Fork see below. FinderInfo and Resource Fork ---------------------------- FinderInfo and Resource Fork should be stored as Mac OS X AppleDouble format: file and ._file This format is understand by all Mac OS X versions under any filesystem or a CIFS/SMB network share. Also mkisofs recognizes it and is able to create an HFS partition with them correctly set. Other formats should be converted to this one. Metadata -------- Each archive should be accompanied with a JSON metadata file using the CICM Metadata format. Name for metadata sidecar should be same as the archive changing the extension to .json. If the archive can be modified (doesn't contain ZIP headers you would lose) the metadata should be put inside the archive as a file named metadata.json. Recovery -------- Disks fail, bit rot happens, so every archive as well as the metadata file should have a PAR2 recovery set created. Example command line (with 5% redundancy): par2 c -r5 archive.par2 archive.zip archive.json Result ------ In the end you get something like this: Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.json Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol000+01.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol001+02.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol003+04.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol007+08.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol015+16.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol031+32.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.vol063+37.par2 Apple/Mac OS/9.1/eng/for iMac (Early 2001) v1.1/archive.zip QNX/QNX/20090229/source.json QNX/QNX/20090229/source.par2 QNX/QNX/20090229/source.vol000+01.par2 QNX/QNX/20090229/source.vol001+02.par2 QNX/QNX/20090229/source.vol003+04.par2 QNX/QNX/20090229/source.vol007+08.par2 QNX/QNX/20090229/source.vol015+16.par2 QNX/QNX/20090229/source.vol031+32.par2 QNX/QNX/20090229/source.vol063+37.par2 QNX/QNX/20090229/source.zip 0 True True True StockItem gtk-ok gtk-ok 1 True False False frmSettings CenterOnParent 6 6 Database file 0 True False False True True 1 True True TextAndIcon stock:gtk-open Menu Choose True 2 True False False 0 True False False 6 Repository folder 0 True False False True True 1 True True TextAndIcon stock:gtk-open Menu Choose True 2 True False False 1 True False False 6 Temporary folder 0 True False False True True 1 True True TextAndIcon stock:gtk-open Menu Choose True 2 True False False 2 True False False 6 Path to unar 0 True False False True True 1 True True TextAndIcon stock:gtk-open Menu Choose True 2 True False False 3 True False False 6 True True StockItem gtk-cancel gtk-cancel 0 True False False True True StockItem gtk-apply gtk-apply End 1 True False False 4 True False False