Optional Software Packages - Metadata

From ReelBox Maniacs

Jump to: navigation, search

ipkg depends on metadata to be able to maintain packages and dependencies. The first step to these data is made in the CONTROL/control file. When a package is made available on a feed, these data also find their way into a file named Packages. In Packages information about filename, MD5 checksum and package size are added. When a package is installed, ipkg keeps track of what's installed using this metadata.

So these metadata are quite important for the whole packing system and well worth to be described in detail. The data are kept in plain files. There are several fields. Fieldnames are given (see below), must not contain any spaces and end with a : followed by a space, then followed by the field value.

Here is what we found about the fields and possible values on the net and digging into the sources of ipkg and ipkg-utils.

Package: required This is the name of the package and should match the regular expression [[a-z0-9.+-]\+.
Version: required This should have at least one digit and should match [[a-zA-Z0-9.+]*.
Recommendation for ReelBox-Maniacs.Org Packages:

If you are maintaining packages of the ReelBox-Maniacs.Org stable feed, please use the version number of the original software plus trailing "-rbm[0-9]\+" (rbm for ReelBox Maniacs). This revision should be incremented each time the package changes but the version does not, (ie. a packaging tweak). It may be reset, (or simply omitted), each time the version is incremented.

Architecture: required This specifies the architecture the package has been compiled for. You may check your specifc architecture running ipkg-cl.
Code: display architecture appropiate for your system

ipkg-cl print_installation_architecture

Recommendation for ReelBox-Maniacs.Org Packages:

Valid values for the ReelBox's Linux system currently include "i586", "noarch" and "all".

Maintainer: required This is the name and email address of the person responsible for maintaining the package, (not necessarily the author of the underlying program).
Description: required This is a short, (less than 80 characters) description of the program. It may also include a long description on subsequent lines, (each indented by a single space character). Blank lines in the long description may be indicated by a line consisting of a space character followed by a period, ie " ."
Recommendation for ReelBox-Maniacs.Org Packages:

Packages which found their way into the ReelBox-Maniacs.Org stable feed should contain an URL pointing to the desription of the package in this Wiki as the last line.

Section: required The original ipkg distributors recommend one of the following values: admin, base, comm, editors, extras, graphics, libs, misc, net, text, web, x11.
Recommendation for ReelBox-Maniacs.Org Packages:

ReelBox-Maniacs.Org supports the following sections:

  • base
This section is for packages, which may be installed in the writable area of the DoC. So packages, which go to /etc only (f.e. channel lists), are in section base.
  • libs
Additional libraries go here. An example is libproc.
  • admin
Operating system related packages go here. All software, which extends the capabilities of the ReelBox's Linux system (f.e. at, gnubin, apache etc.)is to be found here.
  • tools
Any software without user interaction used by applications or other tools go here (f.e. projectX).
  • apps
Additional applications go here. We are talking about applications, when the user directly interacts with a piece of software via OSD (f.e. noadaddon, copyext).
  • vdr-plg
Optional plugins for vdr are to be found in this section.
  • web
Web applications go here.
  • text
Manuals, HowTos and descriptions go here.
Priority: required Recommend values are "required, important, standard, optional, extra." Most programs should use optional.
Note:

This field is required to be defined in control by ipkg-build but not handled by the python scripts from ipkg-utils (like makePackage). So Priority: does not find its way into the Packages file.

Recommendation for ReelBox-Maniacs.Org Packages:

At ReelBox-Maniacs.Org we only support "optional" as of this writing.

Source: required The Source field contains the URLs or filenames of the source code and any patches used to build this package. Relative filenames may be used if they are distributed in the same directory as the .ipk file.
Recommendation for ReelBox-Maniacs.Org Packages:

For stable packages we are going to provide a repository for sources in future.

Filename: automagically This field is disallowed in the control file (ipkg-build checks this and complains). It is added automagically while generating the Packages metadata an represents the fully qualified filename.
MD5Sum: autmagically This field is added automagically while generating the Packages metadata.
Size: autmagically This field is added automagically while generating the Packages metadata.
Depends: optional This field indicates other packages which must also be installed in order for this package to work. The packages should be listed on a single line, separated by commas. If these package are not installed already, ipkg will install them before installing the package requested.
Recommendation for ReelBox-Maniacs.Org Packages:

If you are maintaing a package of the ReelBox-Maniacs.Org stable feed, packages yours depends on also have to be accessible via this feed.

Provides: optional Information about what this packages provides.
Replaces: optional If this packages is going to replace (not: update) another one, put this information here.
Conflicts: optional If the requested package does not work while another specific one is installed, put this information here.
Suggests: optional
FixMe No idea!
Recommends: optional
FixMe No idea!
InstalledSize: optional Gives some information about the size of the package once it is installed, so the user can check for sufficient space on his device.
Note:

You may add other fields of your choice. The field name may not contain any spaces, ipkg-build will complain otherwise. However you have to be aware, that addtional fields will not find their way into the Packages file f.e. if created by makePackage!

If you know somethings about the missing field descriptions or have any addtions or corrections, please let us know leaving a message on the discussion page.

Personal tools