1For more information about RAPPS, take a look at <https://reactos.org/wiki/RAPPS> 2 3ADDING DOWNLOADABLE PROGRAMS TO THE RAPPS DATABASE 4-------------------------------------------------- 5 6Each program entry consists of a text file formatted with an INI-like syntax. 7 8They must be encoded in UTF-16 LE (Little Endian) or characters out of the ANSI range 9will display broken mojibake, some editors like Notepad++ call this format UCS-2 Little Endian. 10 11If you plan on including your program entry in the ReactOS source code versioning keep in mind 12that entries are stored in UTF-8 without BOM (Byte Order Mask) for VCS friendliness. 13 14They get automatically converted to UTF-16 when creating the compressed rappmgr.cab package, 15which is how clients obtain their program lists every time a Database upgrade is triggered. 16 17Also, each [Section] is language-independent and individual, you can override the URL to a source 18program or any other field by adding a language-specific [Section.], followed by the language code. 19 20NOTE: You can find a complete listing of LCIDs and language names here, includes neutral codes: 21 <https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693%28v=vs.85%29.aspx> 22 23Now RAPPS also accepts neutral language codes, meaning that you can do things like this: 24 25 ; Default English fallback, used if everything else fails. 26 [Section] 27 Name = Name in English 28 29 ; Neutral Spanish, used if the specific variant of Spanish does not match. 30 [Section.0a] 31 Name = Name in Generic Spanish 32 33 ; Spanish from Spain, used if the system is configured for it. 34 [Section.0c0a] 35 Name = Name in Castilian Spanish 36 37 38You can also define an entry without English fallback to make it visible to certain users only. 39For instance; software from 1C, which is mostly for Russian speakers and unusable for anyone else. 40 41File format overview: 42 43 ; This is a INI-style comment, useful for adding additional information. 44 ; Lines starting with a ; character are skipped by the parser. 45 46 [Section] 47 Name = My fun stuff-o-matic 48 RegName = Name in Registry 49 Version = 1.1.1 50 License = GPL 51 Description = Shortish description giving some additional background information about what it does. 52 Size = 10 MB 53 Category = 5 54 URLSite = https://example.org/ 55 URLDownload = https://ftp.example.org/pub/installer.exe 56 CDPath = ; Path in the local filesystem 57 58 [Section.0419] ; 0419 - for Russian language 59 Description = Description in Russian language 60 ... 61 62 63The mandatory fields are: Name, Category and URLDownload 64All other fields are completely optional and can be skipped. 65 66List of valid categories: 67 1 - Audio 68 2 - Video 69 3 - Graphics 70 4 - Games 71 5 - Internet 72 6 - Office 73 7 - Development 74 8 - Edutainment 75 9 - Engineering 7610 - Finance 7711 - Science 7812 - Tools 7913 - Drivers 8014 - Libraries 8115 - Themes 8216 - Other 83 84The official list of downloadable programs is kept on a public ReactOS server 85and synced every time RAPPS is launched for the first time. 86 87NOTE: You can find the most current URL in rapps.h, defined as APPLICATION_DATABASE_URL. 88 89To generate a RAPPS database (usually a rappmgr.cab archive), use the included scripts: 90 91For Windows & other NT-derived: CreateCabFile.bat 92For Linux & other UNIX flavors: CreateCabFile.sh 93 94 95Once the rappmgr.cab is downloaded to %appdata%\rapps, RAPPS extracts it using cabinet.dll 96inside %appdata%\rapps\rapps, after that, it will parse all the *.txt files contained therein. 97 98Every subsequent time the program tries to access the local .txt files 99until a database update is manually triggered by the user. 100 101If the rappmgr.cab file is moved or just missing, RAPPS will download it again. 102