Creating a DBP (Amended instructions)

Wally

I am a banana!
Staff member
Joined
Jan 31, 2006
Messages
2,953
Age
32
Location
Melbourne, Australia
Hey all, made some instructions for creating a DBP file incase some people wish to get their pyra foo up to scratch.

Packaging DBP files 

29/06/2015

1. Package Prerequisites 

You should have the following out before you begin to package an application

i) *nix box, Macintosh or cygwin (Windows)

ii) squashfs tools

2. Create directory structure for DBP

Applicationname

|

  -

gamedata (This contains any files to execute the application, including scripts)

meta (This is for .desktop files)

icons (For icons, in PNG format with no size restrictions)

3. Create application launch scripts

You need to make a script to target so that the application can be launched.

4. Create metadata (.desktop files)

Some things to note:

i) Default.Desktop is a requirement for all packages and needs a [Package Entry] then [Desktop Entry], both are explained shortly.

ii) Categories are FreeDesktop Standard

iii) Id needs to be unique, nothing else can be the same identifier.

Please see example / comments for Leisure Suit Larry Package, stuff in bold should not be placed.

[Package Entry] - Required for package initialisation, 

Id=leisuresuitlarry - Unique ID 

Name=Leisure Suit Larry 1 - Name of Application (This is launched when you double click .DBP file)

Arch=armhf - Architecture supported

Exec=larry1.launch;larry2.launch;larry3.launch;larry5.launch;larry6.launch - Other executables contained in package, each must be initialised here or there may be problems

PkgDependency=scummvm - Dependancies for package, in this case scummvm is used and is located in /usr/local/bin

Version=1.0.0  - Package Version

Appdata=larry - AppData Folder, this is for ALL applications inside package

Icon=larry1.png - Of course the icon for the default dbp 

[Desktop Entry] - default.desktop can contain One Desktop Entry, each additional desktop entry needs its own .desktop file, this is displayed in the Menu

Version=1.0 - Version of Package

Type=Application - Type for category

Categories=Game;AdventureGame - Categories for game

Name=Leisure Suit Larry 1 - Name of first Desktop Entry

Exec=larry1.launch - Executable for target

Icon=larry1.png -  Icon for Menu

There is no limit to .desktop files at this point but default.desktop is required. 

Additional Desktop initialisers can be found here http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

5. Compiling Desktop File

 Once you have everything you can now compile a DBP. 

I have made a handy little script to do this but it’s not final at this stage, you may not wish to have compression but whatever.


#!/bin/bash

#capture folder name
folder=$(pwd)

#grab DBP Directory name
#DBPNAME = $(basename “$folder”)

# create gamedata squashfs file
mksquashfs gamedata gamedata.sqfs -comp xz

# zip metadata and icon folders
zip -r data.zip meta icons

# append gamedata squashfs file to zip
cat gamedata.sqfs data.zip > $(basename "$folder").dbp

# clean up
rm -r data.zip gamedata.sqfs


You Should now have a .DBP file, place this in a read /write location and double click it!

Edit:
Fixed Previews / appdata dir

Changed metadata to meta
 
Last edited by a moderator:

Neelix

Insecticidal Maniac
Joined
Jan 8, 2011
Messages
3,229
Location
Melbourne, Australia
You seem to have the metadata folder named "metadata" in one step and "meta" in another.   If this isn't defined in the system as one or the other it should at least be consistent.

-Neelix
 

Binky

Death's Steed
Staff member
Joined
May 28, 2003
Messages
6,911
Location
16A (TO)
Why are there so many references specifcally to the dbp file being a game?

Why not use "appdata", "dbpdata" or similar?
 

levi

Still fresh, damnit!
Joined
Oct 6, 2008
Messages
11,369
Location
Somewhere off the coast of the EU
appdata brings to mind the pandora appdata folder of stuff created at runtime or added by the user.  dbpdata would do fine though (or even just 'app' or 'root' or something, cos it's really everything that isn't meta).
 

TrashyMG

Sarcasm Dispenser
Staff member
Joined
Jan 18, 2010
Messages
10,607
Because it will over 90% of the time (if not even more)
So "gamedata" describes 90% of what they will be while "appdata" describes 100%, no? Should still be appdata in my opinion.
From what I've played with the DBP system, I believe the "gamedata" specified is just a generic name Wally came up with on the tutorial it can be anything, I don't believe it's the actual name where application specific data is actually stored, it's just the name of the folder that is being bundled into the DBP. Slaeshjag should be able to clarify what the name of the "appdata" actually is as my playing around with it didn't generate any data that would be stored on the SD card.
 
Last edited by a moderator:

Wally

I am a banana!
Staff member
Joined
Jan 31, 2006
Messages
2,953
Age
32
Location
Melbourne, Australia
Geeze. I can't please you people can I!?!? :p

Trashy is 110% correct, gamedata is a generic name which as long as it's compressed with squashfs a DBP doesn't care if its appdata, gamedata, yourmumsdata, yoursister, yourdog or porn.

Appdata could have been confused for where the data is stored, hence why I switched back to gamedata in this tutorial. I have generated 80+ DBPs with this method, i'll probably explain some other time but none of them are distributable.
 
Last edited by a moderator:
Top