Packaging Standards

From WebOS Internals
Jump to navigation Jump to search
Warning This page will document the agreed packaging standards for webOS homebrew ipkg files and open standard ipkg feeds as well as act as a whiteboard for new revisions.

Please note, ipkg/libipkg has an internal, hard coded buffer of 8k to handle parsing the feed elements for each package. This means that description fields need to get reduced in length to prevent segfaults.

Note that a package record in a Packages file starts with the "Package:" field, and ends with an empty line.


NOTE1: New fields are in bold red

NOTE2: Modified fields are in bold black

Version 2.6 (Draft, LuneOS compatibility)

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6 or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
Location Download URL for the package, if it is not in the same URL path as the Packages file
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, OS Application, OS Deamon etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (html is allowed). Maximum size is 4096 characters.
Changelog A brief description of the changes made to since the last release.
Screenshots Array of URLs
License Package license conditions
Price Price in dollars and cents (e.g. "1.99")
PostInstallFlags RestartLuna, RestartJava, RestartDevice
PostUpdateFlags RestartLuna, RestartJava, RestartDevice
PostRemoveFlags RestartLuna, RestartJava, RestartDevice
MinWebOSVersion Version number (e.g. "1.4.5")
MaxWebOSVersion Version number (e.g. "1.4.5")
DeviceCompatibility JSON array of compatible webOS devices (ex. ["Pre","Pixi","Pre2","Veer","TouchPad"]) no value = all devices
Countries JSON array of countries for which this app catalog app was released (ex. ["US","DE"]) no value = all countries
Languages JSON array of languages for which this app catalog app was released (ex. ["en_US","en_AU","de_DE"]) no value = language unspecified
DevelopmentFramework (draft) Mojo, Enyo1, Enyo2, PDK
MinLuneOSVersion (draft) Version name / stage number (tbd)
MaxLuneOSVersion (draft) Version name / stage number (tbd)

Version 2.5

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6 or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
Location Download URL for the package, if it is not in the same URL path as the Packages file
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, OS Application, OS Deamon etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (html is allowed). Maximum size is 4096 characters.
Changelog A brief description of the changes made to since the last release.
Screenshots Array of URLs
License Package license conditions
Price Price in dollars and cents (e.g. "1.99")
PostInstallFlags RestartLuna, RestartJava, RestartDevice
PostUpdateFlags RestartLuna, RestartJava, RestartDevice
PostRemoveFlags RestartLuna, RestartJava, RestartDevice
MinWebOSVersion Version number (e.g. "1.4.5")
MaxWebOSVersion Version number (e.g. "1.4.5")
DeviceCompatibility JSON array of compatible webOS devices (ex. ["Pre","Pixi","Pre2","Veer","TouchPad"]) no value = all devices
Countries JSON array of countries for which this app catalog app was released (ex. ["US","DE"]) no value = all countries
Languages JSON array of languages for which this app catalog app was released (ex. ["en_US","en_AU","de_DE"]) no value = language unspecified

Version 2.4

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6 or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
Location Download URL for the package, if it is not in the same URL path as the Packages file
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (html is allowed). Maximum size is 4096 characters.
Changelog A brief description of the changes made to since the last release.
Screenshots Array of URLs
License Package license conditions
Price Price in dollars and cents (e.g. "1.99")
PostInstallFlags RestartLuna, RestartJava, RestartDevice
PostUpdateFlags RestartLuna, RestartJava, RestartDevice
PostRemoveFlags RestartLuna, RestartJava, RestartDevice
MinWebOSVersion Version number (e.g. "1.4.5")
MaxWebOSVersion Version number (e.g. "1.4.5")
DeviceCompatibility JSON array of compatible webOS devices (ex. ["Pre","Pixi","Pre2","Veer","TouchPad"]) no value = all devices
Countries JSON array of countries for which this app catalog app was released (ex. ["US","DE"]) no value = all countries
Languages JSON array of languages for which this app catalog app was released (ex. ["en_US","en_AU","de_DE"]) no value = language unspecified

Version 2.3

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6 or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (html is allowed). Maximum size is 4096 characters.
Screenshots Array of URLs
License Package license conditions
Price Price in dollars and cents (e.g. "1.99")
PostInstallFlags RestartLuna, RestartJava, RestartDevice
PostUpdateFlags RestartLuna, RestartJava, RestartDevice
PostRemoveFlags RestartLuna, RestartJava, RestartDevice


Version 2.2

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6, or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (html is allowed). Maximum size is 4096 characters.
Screenshots Array of URLs
License Package license conditions
Price Price in dollars and cents (e.g. "1.99")
PostInstallFlags RestartLuna, RestartJava, RestartDevice
PostUpdateFlags RestartLuna, RestartJava, RestartDevice
PostRemoveFlags RestartLuna, RestartJava, RestartDevice

Version 2.1

Name Definition
Package Package name in reverse-dns style
Size Package size (in KB)
Status Installed/Not-installed (and other stuff we don't use)
Architecture all, armv7, armv6, or i686
Section The category when there is no source data
Filename Actual name of .ipk file
Depends Actual package names of dependencies (comma-space separated, ignore contents of () at the end)
Maintainer Group or individual responsible for maintenance
Version In N:N(.N)*(-N)? format (see ipkg source for the different version parts)
Description Title of the package
MD5Sum MD5 checksum of package to verify downloaded file
Installed-Time Timestamp of installation
Installed-Size Size of installed package
Source *See lower table*


Source
Title Actual title of application
Source Where to obtain source code
LastUpdated Timestamp of last update
Feed Package source feed
Type Application, Patch, Service, Plugin, Linux Application, etc. ...
Category Package category
Homepage URL to package homepage
Icon URL to icon image (assumed to be 64x64)
FullDescription Actual description of package (includes html?)
Screenshots Array of URLs
License Package license conditions
PostInstallFlags RestartLuna, RestartJava
PostRemoveFlags RestartLuna, RestartJava