Difference between revisions of "RAPPS"

From ReactOS Wiki
Jump to: navigation, search
m (URLDownload)
m (Minor grammar/punctuation/spelling fixes)
(25 intermediate revisions by 11 users not shown)
Line 1: Line 1:
RAPPS, previously known as Download!, is a small program that allows users to download multiple programs without hassle. It now provides a selection of programs, but for some people it is not enough.  
+
'''RAPPS''', previously known as '''Download!''', is a small GUI program that allows users to download multiple programs without hassle.
  
Some people may complain why there is no his/her favourite application in the RAPPS list.
+
It has its own application list that can be expanded by the user and the community. Applications that are included in the list by default are tested and most likely work on ReactOS.
  
This tutorial will try to cover the basic functionality of the list and the specific list entries in the files.
+
= How It Works =
 +
When you first start RAPPS, it will automatically connect to the internet, and it will seek for the file "rappmgr.cab". Then, it will extract the contents of this archive file to the same location where the main RAPPS executable is, creating a folder called "rapps".
 +
The contents of the archive are just '''UTF-8''' .txt files.
  
=How It Works=
+
Every single file that is on download list in RAPPS, has it's own "description" file.
  
When you first start RAPPS, it will automatically connect to the internet, and it will seek for the file "rappmgr.cab". Then, it will extract the contents of this archive file to the same location where main RAPPS executable is, creating a folder called "rapps".
+
Custom files must be placed in <code>/rapps</code> folder created after .CAB file download.
The contents of the archive are just .txt files, '''saved in utf-8 format'''.
+
TXT file names should correspond to the software they are relative to.
  
Every single file that is on download list in RAPPS, has it's own "description" file.  
+
RAPPS also has experimental support for icons for application list. See [[#Experimental Features|Experimental Features]] for details.
  
Custom files must be placed in rapps folder created after .CAB file download.  
+
= Submitting New Applications =
.TXT file names can be anything, but it's best to make them somehow correspond to the software they are relative to.
+
Some people may complain that his/her favourite application is not in the RAPPS list.
Custom files need to be saved in UTF-8 format, or some specific languages will be displayed strangely.
+
The description files can be created by anyone. (See [[#File Schema|File Schema]] for a detailed breakdown).
  
=File Schema=
+
''Description files need to be saved in UTF-8 format, or some specific languages will be displayed strangely.''
Here is a description file that corresponds to the DosBox program:
+
 
 +
After a description file is created, it has to be submitted to [https://jira.reactos.org JIRA].
 +
* For the category, choose 'Core ReactOS'
 +
* Name it something along the lines of: 'Add xxx to Rapps'.
 +
* To make the inclusion process faster, include some screenshots of your application running on ReactOS.
  
; UTF-8
+
'''NEW! :''' You can now clone the https://github.com/reactos/rapps-db repository and send your submission as a [[Commiting Changes|Pull-Request]].
  
 +
= File Schema =
 +
Here is a description file that corresponds to the DosBox program:
 +
<syntaxhighlight lang="ini">
 
  [Section]
 
  [Section]
 
  Name = DOSBox
 
  Name = DOSBox
  Version = 0.74
+
  Version = 0.74-2
  Licence = GPL
+
  License = GPL
  Description = DOSBox is a DOS emulator.
+
  Description = An open-source DOS emulator.
  Size = 1.38MB
+
  Size = 1.4 MiB
 
  Category = 15
 
  Category = 15
 
  URLSite = http://www.dosbox.com/
 
  URLSite = http://www.dosbox.com/
  URLDownload = http://ovh.dl.sourceforge.net/project/dosbox/dosbox/0.74/DOSBox0.74-win32-installer.exe
+
  URLDownload = http://download.sourceforge.net/project/dosbox/dosbox/0.74-2/DOSBox0.74-2-win32-installer.exe
 +
SHA1 = 06f23be4ceba35c8c547a98f1b327da20082b483
 
  CDPath = none
 
  CDPath = none
 +
SizeBytes = 1453151
  
 
  [Section.0407]
 
  [Section.0407]
Line 42: Line 53:
  
 
  [Section.0415]
 
  [Section.0415]
  Description = DOSBox - emulator DOSa.
+
  Description = DOSBox emulator DOSa.
  
 
  [Section.0422]
 
  [Section.0422]
 
  Description = DOSBox - емулятор DOSу.
 
  Description = DOSBox - емулятор DOSу.
 
+
</syntaxhighlight>
 
Let's analyze it from top to the bottom.
 
Let's analyze it from top to the bottom.
==UTF-8==
+
== [Section] ==
This is a comment that reminds users/developers, that the file should be saved in UTF-8 format.
+
This is the beginning of the area that is read when the user clicks on the name of the program that he chooses to download. It consists of several things:
 
+
=== Name ===
==[Section]==
 
This is the beggining of the area that is read when user click on the name of the program that he chooses to download. It consist's of several things:
 
===Name===
 
 
This is the program name that is displayed in the list, and in the lower grey description field.
 
This is the program name that is displayed in the list, and in the lower grey description field.
===Version===
+
=== Version ===
 
This is the version of the program, also displayed in the list and in the lower field.
 
This is the version of the program, also displayed in the list and in the lower field.
===Licence===
+
=== License ===
The licence that the program is based on. Typical options are : Trial, Demo, Freeware, Open-Source.
+
The license that the program is based on. Typical options are : Trial, Demo, Freeware, Open-Source.
===Description===
+
=== Description ===
The description of the program For example : "A program that emualate older hardware to run older games".  
+
The description of the program For example : "A program that emulates older hardware to run older games".
===Size===
+
=== Size ===
Size of the program. Template: NUMBERUNIT For example "223MB"
+
'''DEPRECATED:''' The value should be kept for backward compatibility.
===Category===
+
 
The category of the program. Category name correspond to the number. There are 15 categories for now:
+
Size of the program. Template: NUMBERUNIT For example "223 MB".
*1 - Sound - Software for recording, playing, modify, convert sound
+
=== SizeBytes ===
*2 - Video - As above but applies to video and movies
+
The actual size of the download in bytes. Used to display size value in the application info as well as while downloading.
*3 - Graphics - As above, but graphics and images
+
=== Category ===
*4 - Games and Entertainment - There are games, emulators for games
+
The category of the program. Category name corresponds to the number. There are 15 categories for now:
*5 - Internet and Networks - Browsers, IM clients, FTP software, Remote desktop...
+
*1 Sound Software for recording, playing, modify, convert sound
*6 - Office stuff - Software that is used in the Office for example Open Office
+
*2 Video As above but applies to video and movies
*7 - Developement / programming - programs used for compiling, and source writing for example Dev C++
+
*3 Graphics As above, but graphics and images
*8 - Education - Programs that help in teaching, learning. For example dictionaries, translators
+
*4 Games and Entertainment There are games, emulators for games
*9 - Engineering - Programs simmilar to CAD, SolidWorks (tm)
+
*5 Internet and Networks Browsers, IM clients, FTP software, Remote desktop...
*10 - Financial - Programs for financial stuff, TRade monitors, database systems for warehouses e.t.c
+
*6 Office stuff Software that is used in the Office, for example, Open Office
*11 - Science - For programs that makes simulations, helps in the Chemistry, Physics....
+
*7 – Development/programming programs used for compiling, and source writing, for example, Dev C++
*12 - Tools - Utilities for users for example archiving software
+
*8 Education Programs that help in teaching, learning. For example dictionaries, translators
*13 - Drivers - Files for the devices that are installed in the system
+
*9 Engineering Programs similar to CAD, SolidWorks (TM)
*14 - Libraries - Files that are needed to run some programs like Visual Basic and .NET
+
*10 Financial Programs for financial stuff, TRade monitors, database systems for warehouses e.t.c
*15 - Other - programs that did not fit in above categories
+
*11 Science For programs that make simulations, helps in the Chemistry, Physics...
 +
*12 Tools Utilities for users, for example, archiving software
 +
*13 Drivers Files for the devices that are installed in the system
 +
*14 Libraries Files that are needed to run some programs like Visual Basic and .NET
 +
*15 - Themes - Themes for ReactOS or Windows (for example: watercolor, classic, luna, etc)
 +
*16 – Other programs that did not fit in above categories
  
===URLSite===
+
=== URLSite ===
 
Main web site where the program can be found.
 
Main web site where the program can be found.
===URLDownload===
+
 
 +
=== URLDownload ===
 
Direct link to the installer/program.
 
Direct link to the installer/program.
  
===CDPath===
+
=== CDPath ===
I don't know yet what it is  but it seems to be relative to CD
+
Field that contains a path to go to after downloading. Currently unused. (CDPath = none)
==[Section.0407]==
+
 
Specific language of the description, based on the host system language settings, when host language is different that languages in the file, English is choosen by default (If You talk Spanish, and there is no such entry avaliable in the file, software description will be displayed in English).
+
== [Section.0407] ==
 +
The specific language of the description, based on the host system language settings.
 +
 
 +
When host language is different than languages in the file, English is chosen by default (If you talk Spanish, and there is no such entry available in the file, software description will be displayed in English).
  
 
Locale IDs (that number in Section.xxxx) can be found [http://msdn.microsoft.com/en-us/goglobal/bb964664 here] (numbers from the left column).
 
Locale IDs (that number in Section.xxxx) can be found [http://msdn.microsoft.com/en-us/goglobal/bb964664 here] (numbers from the left column).
  
 +
[http://www.reactos.org/forum/viewtopic.php?f=22&t=11015 Thanks to the author, wojo664]
 +
 +
= Experimental Features =
 +
RAPPS has some experimental features that are not refined enough and/or not used yet. They are still subject to change, therefore are not yet adopted in the main database.
  
[http://www.reactos.org/forum/viewtopic.php?f=22&t=11015 Thanks to the author, wojo664]
+
However, these features are present in the codebase and work well enough to be tested and used.
 +
 
 +
== Command Line Support ==
 +
Apart from the graphical interface, RAPPS features command-line options that can be used to install apps.
 +
They will install exactly as if selected in the app itself.
 +
 
 +
There are two keys now:
 +
*<code>/INSTALL</code> - accepts multiple apps as values and installs them if they are available.
 +
Example: <code>rapps /INSTALL 7-Zip AkelPad</code>
 +
*<code>/SETUP</code> - accepts a full path to the .inf file, where in <code>[RAPPS]</code> block you can specify which apps to install using one Install= key per single app.
 +
 
 +
Example:
 +
<syntaxhighlight lang="ini">
 +
[Version]
 +
Signature = $Windows NT$
 +
ClassGUID = {00000000-0000-0000-0000-000000000000}
 +
 
 +
[RAPPS]
 +
Install=7-Zip
 +
Install=AkelPad
 +
</syntaxhighlight >
 +
<code>[Version]</code> section is a nessesary header for .INF files. <code>[RAPPS]</code> is a section where you specify the needed apps.
 +
Apps should be added in .INF one-by-one, as can be seen in the example.
 +
 
 +
Names used are same as in the <code>Name</code> field in the database textfiles.
 +
 
 +
== Icon Support ==
 +
RAPPS supports 'per app' icons, that can be loaded from <code>AppData/rapps/rapps/icons</code> folder (that's where the database entries are).
 +
 
 +
The filename should match the <code>Name</code> field in the database plus the extension. Only .ICO format icons are supported.
 +
 
 +
== New [Section] Fields ==
 +
There are two experimental fields in the database files - '''Languages''' and '''LicenseInfo'''.
 +
 
 +
=== Languages ===
 +
This field is used to inform the user whether the app is available in their language.
 +
 
 +
You should place all the language codes app supports separated by <code>|</code> there. Multiline parameters are also supported.
 +
 
 +
Example:
 +
<syntaxhighlight lang="ini">
 +
Languages=0C09|0813|0422 \\English|Dutch|Ukrainian
 +
</syntaxhighlight>
  
 +
=== LicenseInfo ===
 +
This is a field in the DB which, when present, changes the way License field in the info is shown.
  
==Changelog==
+
Application license types correspond to a number:
[[ChangeLog-0.3.1]]
+
*1 - "Open Source"
* Added the Download! Utility for downloading various free software ([[Maarten Bosma]])
+
*2 - "Freeware"
 +
*3 - "Demo/Trial".  
  
 +
= See Also =
 +
<!-- *[http://www.fileden.com/files/2012/3/22/3281665/rapps.7z Brent's RAPPS entries (228 programs)]  link is down -->
 +
*[https://reactos.org/blogs/rapps-enchancements-gsoc-2017-edition-final-report RAPPS GSoC 2017 Final Report]
  
==See Also==
+
= References =
*[http://www.fileden.com/files/2012/3/22/3281665/rapps.7z Brent's RAPPS entries (228 programs)]
+
<references/>
  
[[Category:ReactOS_Components]]
+
[[Category:ReactOS Components]]

Revision as of 09:37, 14 August 2019

RAPPS, previously known as Download!, is a small GUI program that allows users to download multiple programs without hassle.

It has its own application list that can be expanded by the user and the community. Applications that are included in the list by default are tested and most likely work on ReactOS.

How It Works

When you first start RAPPS, it will automatically connect to the internet, and it will seek for the file "rappmgr.cab". Then, it will extract the contents of this archive file to the same location where the main RAPPS executable is, creating a folder called "rapps". The contents of the archive are just UTF-8 .txt files.

Every single file that is on download list in RAPPS, has it's own "description" file.

Custom files must be placed in /rapps folder created after .CAB file download. TXT file names should correspond to the software they are relative to.

RAPPS also has experimental support for icons for application list. See Experimental Features for details.

Submitting New Applications

Some people may complain that his/her favourite application is not in the RAPPS list. The description files can be created by anyone. (See File Schema for a detailed breakdown).

Description files need to be saved in UTF-8 format, or some specific languages will be displayed strangely.

After a description file is created, it has to be submitted to JIRA.

  • For the category, choose 'Core ReactOS'
  • Name it something along the lines of: 'Add xxx to Rapps'.
  • To make the inclusion process faster, include some screenshots of your application running on ReactOS.

NEW! : You can now clone the https://github.com/reactos/rapps-db repository and send your submission as a Pull-Request.

File Schema

Here is a description file that corresponds to the DosBox program:

 [Section]
 Name = DOSBox
 Version = 0.74-2
 License = GPL
 Description = An open-source DOS emulator.
 Size = 1.4 MiB
 Category = 15
 URLSite = http://www.dosbox.com/
 URLDownload = http://download.sourceforge.net/project/dosbox/dosbox/0.74-2/DOSBox0.74-2-win32-installer.exe
 SHA1 = 06f23be4ceba35c8c547a98f1b327da20082b483
 CDPath = none
 SizeBytes = 1453151

 [Section.0407]
 Description = DOSBox ist ein DOS Emulator.

 [Section.040a]
 Description = DOSBox es un emulador de DOS.

 [Section.040c]
 Description = DOSBox est un émulateur DOS.

 [Section.0415]
 Description = DOSBox – emulator DOSa.

 [Section.0422]
 Description = DOSBox - емулятор DOSу.

Let's analyze it from top to the bottom.

[Section]

This is the beginning of the area that is read when the user clicks on the name of the program that he chooses to download. It consists of several things:

Name

This is the program name that is displayed in the list, and in the lower grey description field.

Version

This is the version of the program, also displayed in the list and in the lower field.

License

The license that the program is based on. Typical options are : Trial, Demo, Freeware, Open-Source.

Description

The description of the program For example : "A program that emulates older hardware to run older games".

Size

DEPRECATED: The value should be kept for backward compatibility.

Size of the program. Template: NUMBERUNIT For example "223 MB".

SizeBytes

The actual size of the download in bytes. Used to display size value in the application info as well as while downloading.

Category

The category of the program. Category name corresponds to the number. There are 15 categories for now:

  • 1 – Sound – Software for recording, playing, modify, convert sound
  • 2 – Video – As above but applies to video and movies
  • 3 – Graphics – As above, but graphics and images
  • 4 – Games and Entertainment – There are games, emulators for games
  • 5 – Internet and Networks – Browsers, IM clients, FTP software, Remote desktop...
  • 6 – Office stuff – Software that is used in the Office, for example, Open Office
  • 7 – Development/programming – programs used for compiling, and source writing, for example, Dev C++
  • 8 – Education – Programs that help in teaching, learning. For example dictionaries, translators
  • 9 – Engineering – Programs similar to CAD, SolidWorks (TM)
  • 10 – Financial – Programs for financial stuff, TRade monitors, database systems for warehouses e.t.c
  • 11 – Science – For programs that make simulations, helps in the Chemistry, Physics...
  • 12 – Tools – Utilities for users, for example, archiving software
  • 13 – Drivers – Files for the devices that are installed in the system
  • 14 – Libraries – Files that are needed to run some programs like Visual Basic and .NET
  • 15 - Themes - Themes for ReactOS or Windows (for example: watercolor, classic, luna, etc)
  • 16 – Other – programs that did not fit in above categories

URLSite

Main web site where the program can be found.

URLDownload

Direct link to the installer/program.

CDPath

Field that contains a path to go to after downloading. Currently unused. (CDPath = none)

[Section.0407]

The specific language of the description, based on the host system language settings.

When host language is different than languages in the file, English is chosen by default (If you talk Spanish, and there is no such entry available in the file, software description will be displayed in English).

Locale IDs (that number in Section.xxxx) can be found here (numbers from the left column).

Thanks to the author, wojo664

Experimental Features

RAPPS has some experimental features that are not refined enough and/or not used yet. They are still subject to change, therefore are not yet adopted in the main database.

However, these features are present in the codebase and work well enough to be tested and used.

Command Line Support

Apart from the graphical interface, RAPPS features command-line options that can be used to install apps. They will install exactly as if selected in the app itself.

There are two keys now:

  • /INSTALL - accepts multiple apps as values and installs them if they are available.

Example: rapps /INSTALL 7-Zip AkelPad

  • /SETUP - accepts a full path to the .inf file, where in [RAPPS] block you can specify which apps to install using one Install= key per single app.

Example:

[Version]
Signature = $Windows NT$
ClassGUID = {00000000-0000-0000-0000-000000000000}

[RAPPS]
Install=7-Zip
Install=AkelPad

[Version] section is a nessesary header for .INF files. [RAPPS] is a section where you specify the needed apps. Apps should be added in .INF one-by-one, as can be seen in the example.

Names used are same as in the Name field in the database textfiles.

Icon Support

RAPPS supports 'per app' icons, that can be loaded from AppData/rapps/rapps/icons folder (that's where the database entries are).

The filename should match the Name field in the database plus the extension. Only .ICO format icons are supported.

New [Section] Fields

There are two experimental fields in the database files - Languages and LicenseInfo.

Languages

This field is used to inform the user whether the app is available in their language.

You should place all the language codes app supports separated by | there. Multiline parameters are also supported.

Example:

Languages=0C09|0813|0422 \\English|Dutch|Ukrainian

LicenseInfo

This is a field in the DB which, when present, changes the way License field in the info is shown.

Application license types correspond to a number:

  • 1 - "Open Source"
  • 2 - "Freeware"
  • 3 - "Demo/Trial".

See Also

References