reactos/base/applications/rapps/README.ENG
Hermès Bélusca-Maïto fefc5f4823
[RAPPS] Centralize RAPPS exposed names: registry & user local settings (#4214)
Centralize the names of the RAPPS' registry setting sub-key, and
user local settings & offline apps database sub-directories.

- Change the name of the application database sub-directory from
  "rapps\rapps" to "RApps\appdb".

- Adjust the documentation to reflect this.

- Simplify CConfigParser constructor by removing GetINIFullPath().
2023-05-16 12:37:49 +02:00

103 lines
3.6 KiB
Plaintext

For more information about RAPPS, take a look at <https://reactos.org/wiki/RAPPS>
ADDING DOWNLOADABLE PROGRAMS TO THE RAPPS DATABASE
--------------------------------------------------
Each program entry consists of a text file formatted with an INI-like syntax.
They must be encoded in UTF-16 LE (Little Endian) or characters out of the ANSI range
will display broken mojibake, some editors like Notepad++ call this format UCS-2 Little Endian.
If you plan on including your program entry in the ReactOS source code versioning keep in mind
that entries are stored in UTF-8 without BOM (Byte Order Mask) for VCS friendliness.
They get automatically converted to UTF-16 when creating the compressed rappmgr.cab package,
which is how clients obtain their program lists every time a Database upgrade is triggered.
Also, each [Section] is language-independent and individual, you can override the URL to a source
program or any other field by adding a language-specific [Section.], followed by the language code.
NOTE: You can find a complete listing of LCIDs and language names here, includes neutral codes:
<https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693%28v=vs.85%29.aspx>
Now RAPPS also accepts neutral language codes, meaning that you can do things like this:
; Default English fallback, used if everything else fails.
[Section]
Name = Name in English
; Neutral Spanish, used if the specific variant of Spanish does not match.
[Section.0a]
Name = Name in Generic Spanish
; Spanish from Spain, used if the system is configured for it.
[Section.0c0a]
Name = Name in Castilian Spanish
You can also define an entry without English fallback to make it visible to certain users only.
For instance; software from 1C, which is mostly for Russian speakers and unusable for anyone else.
File format overview:
; This is a INI-style comment, useful for adding additional information.
; Lines starting with a ; character are skipped by the parser.
[Section]
Name = My fun stuff-o-matic
RegName = Name in Registry
Version = 1.1.1
License = GPL
Description = Shortish description giving some additional background information about what it does.
SizeBytes = 1594881
Category = 5
URLSite = https://example.org/
URLDownload = https://ftp.example.org/pub/installer.exe
[Section.0419] ; 0419 - for Russian language
Description = Description in Russian language
...
The mandatory fields are: Name, Category and URLDownload
All other fields are completely optional and can be skipped.
List of valid categories:
1 - Audio
2 - Video
3 - Graphics
4 - Games
5 - Internet
6 - Office
7 - Development
8 - Edutainment
9 - Engineering
10 - Finance
11 - Science
12 - Tools
13 - Drivers
14 - Libraries
15 - Themes
16 - Other
The official list of downloadable programs is kept on a public ReactOS server
and synced every time RAPPS is launched for the first time.
NOTE: You can find the most current URL in rapps.h, defined as APPLICATION_DATABASE_URL.
To generate a RAPPS database (usually a rappmgr.cab/rappmgr2.cab archive), use
the included scripts:
For Windows & other NT-derived: CreateCabFile.bat
For Linux & other UNIX flavors: CreateCabFile.sh
Once the rappmgr.cab is downloaded to the user's local %AppData%\RApps, RAPPS extracts it
using cabinet.dll inside %AppData%\RApps\appdb. After that, it will parse all the *.txt
files contained therein.
Every subsequent time, the program tries to access the local .txt files
until a database update is manually triggered by the user.
If the rappmgr.cab file is moved or just missing, RAPPS will download it again.