DBP file format: Difference between revisions - Pyra Wiki

No edit summary
Line 13: Line 13:


Say you have a your application in a "rootfs" directory and a meta" directory containing the metadata.
Say you have a your application in a "rootfs" directory and a meta" directory containing the metadata.
<pre>
 
$ ls
  $ <b>ls</b>
icons  meta  rootfs
  icons  meta  rootfs
$ mksquashfs rootfs target.squash -all-root -force-gid 0
  $ <b>mksquashfs rootfs target.squash -all-root -force-gid 0</b>
Creating 4.0 filesystem on target.squash, block size 131072.
  Creating 4.0 filesystem on target.squash, block size 131072.
....
  ....
$ zip -r target.zip meta icons
  $ <b>zip -r target.zip meta icons</b>
  adding: meta/ (stored 0%)
    adding: meta/ (stored 0%)
...
  ...
$ cat target.squash target.zip > target.dbp
  $ <b>cat target.squash target.zip > target.dbp</b>
</pre>


== meta-data structure ==
== meta-data structure ==

Revision as of 17:55, 19 March 2021

Please note: we're not going to describe something as painful as the pxml file here :P

file structure

a .dbp files is composed of 2 concatenated files :

  1. a squashfs file
  2. an *uncompressed* zip

The squashfs part contain your application(s) and everything it might need to run.

The zip part contain the meta-data related to the DBP.

Sample session to build a dbp

Say you have a your application in a "rootfs" directory and a meta" directory containing the metadata.

 $ ls
 icons  meta  rootfs
 $ mksquashfs rootfs target.squash -all-root -force-gid 0
 Creating 4.0 filesystem on target.squash, block size 131072.
 ....
 $ zip -r target.zip meta icons
   adding: meta/ (stored 0%)
 ...
 $ cat target.squash target.zip > target.dbp

meta-data structure

the desktop file(s)

This file format is normed by the free-desktop community. The specs can be found here.

Desktop Entry

In a dbp file, none to many [Desktop Entry] can be create. Each of them will be an application from withing the dbp package. Each [Desktop Entry] section need to be a dedicated file. Here is the standard fields the dbp system reuse.

LABEL dbpd Repo Description Example
Name R R Name of the app Name=dosbox
Comment N O Description of the app Comment=A DOS emulator
Version N O Version of the app Version=0.74+svn20200103
Type N O Type of app Type=Application
Categories N O Categories Categories=Game;Emulator
Exec R N The binary in the squashfs part to start Exec=dosbox
Icon O O The icon in the "icons" directory (expect .png) Icon=dosbox.png
Terminal N N Spawn a terminal for this app to run in, if set. Terminal=false

Package Entry

This section doesnt exist in the free-desktop specification (So this is dbp exclusive stuff here). One and only one of this section should be found per dbp package. Here are the fields :

LABEL dbpd Repo Description Example
Id R R Unique identifier for the dbp file. Id=dosbox
Name R R Name of the package Name=DOSbox
Icon N O Icon of the package (found in the "icons" directory) Icon=dosbox.png
Version N O Version of the package Version=0.74+svn20200103
Arch O O Binary architecture of that package Arch=armhf
Exec R N TODO Exec=bin/dosbox;dosbox.launch

legend

letter meaning
R Required
O Optionnal
N Not used
Back
Top