Difference between revisions of "Packaging Standards"

From WebOS Internals
Jump to navigation Jump to search
(added PreInstallMessage)
(22 intermediate revisions by 4 users not shown)
Line 11: Line 11:
 
''NOTE2: Modified fields are in bold black''
 
''NOTE2: Modified fields are in bold black''
  
 +
==Version 2.6 (Draft, LuneOS compatibility)==
  
  
==[RFC] Version 2.4==
+
{|class="wikitable" height:200px" border="1"
 +
! width="140" | Name
 +
! width="350" | 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*
 +
|}
 +
 
 +
 
 +
 
 +
{| class="wikitable" border="1"
 +
| valign="top" | Source
 +
{| class="wikitable" width="200"; border="1"
 +
| 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 || Mojo, Mojo 2, Enyo, Enyo 2, PDK etc
 +
|-
 +
| MinLuneOSVersion || Stage number as per http://webos-ports.org/wiki/Change_Log this is linked to the release names
 +
|-
 +
| MaxLuneOSVersion || Stage number as per http://webos-ports.org/wiki/Change_Log this is linked to the release names
 +
|}
 +
|-
 +
|}
 +
 
 +
==Version 2.5==
 +
 
 +
 
 +
{|class="wikitable" height:200px" border="1"
 +
! width="140" | Name
 +
! width="350" | 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*
 +
|}
 +
 
 +
 
 +
 
 +
{| class="wikitable" border="1"
 +
| valign="top" | Source
 +
{| class="wikitable" width="200"; border="1"
 +
| 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==
  
  
Line 57: Line 237:
 
|-
 
|-
 
| Source || Where to obtain source code
 
| 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
 
| LastUpdated || Timestamp of last update
Line 88: Line 270:
 
| '''MinWebOSVersion''' || '''Version number (e.g. "1.4.5")'''
 
| '''MinWebOSVersion''' || '''Version number (e.g. "1.4.5")'''
 
|-
 
|-
| <font color=red>'''DeviceCompatibility'''</font> || <font color=red>'''JSON array of compatible webOS devices (ex. ["Pre","Pixi"]) no value = all devices'''</font>
+
| '''MaxWebOSVersion''' || '''Version number (e.g. "1.4.5")'''
 
|-
 
|-
| <font color=red>'''PreInstallMessage'''</font> || <font color=red>'''A message to display before install'''</font>
+
| '''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'''
 
|}
 
|}
 
|-
 
|-
Line 153: Line 339:
 
|-
 
|-
 
| FullDescription || Actual description of package (html is allowed). Maximum size is 4096 characters.
 
| FullDescription || Actual description of package (html is allowed). Maximum size is 4096 characters.
|-
 
| <font color=red>'''Changelog'''</font> || <font color=red>'''A brief description of the changes made to since the last release.'''</font>
 
 
|-
 
|-
 
| Screenshots || Array of URLs
 
| Screenshots || Array of URLs
Line 167: Line 351:
 
|-
 
|-
 
| PostRemoveFlags || RestartLuna, RestartJava, RestartDevice
 
| PostRemoveFlags || RestartLuna, RestartJava, RestartDevice
|-
 
| <font color=red>'''WebOSVersions'''</font> || <font color=red>'''JSON array of compatible webOS versions (ex. ["1.1.0","1.2.0"])'''</font>
 
 
|}
 
|}
 
|-
 
|-

Revision as of 15:07, 5 December 2014

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 Mojo, Mojo 2, Enyo, Enyo 2, PDK etc
MinLuneOSVersion Stage number as per http://webos-ports.org/wiki/Change_Log this is linked to the release names
MaxLuneOSVersion Stage number as per http://webos-ports.org/wiki/Change_Log this is linked to the release names

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