xref: /reactos/base/applications/rapps/README.ENG (revision 50cf16b3)
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