Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!

Styleguide

From Openembedded.org
Revision as of 01:14, 28 July 2008 by Laibsch (Talk | contribs)

Jump to: navigation, search

Contents

Version policy for OE recipes

There is general confusion about what a correct PV string should look like. This page attempts to define a standard for packages in OpenEmbedded to follow. Whilst not mandatory, it is strongly recommended.

OE's versioning policy aims to follow that from Debian (and is hence compatible with ipkg). One key phrase to note is "The lexical comparison is a comparison of ASCII values modified so that all the letters sort earlier than all the non-letters." This means characters like + and - have a higher priority than alphanumeric characters. If in doubt, experiment with the ipkg-compare-versions program from ipkg-utils.

NOTE: this page was based on a email-thread from openembedded-devel@lists.openembedded.org and subsequent dicussions.

Hyphens

Our current policy is:

  • PN may contain hypens
  • PV should avoid containing hypens
  • PR must not contain hyphens

It is a common misconception that hyphens are not allowed in PV. Looking at packages/linux shows they can be used but extreme caution is recommended (see pitfalls below). They wouldn't be allowed under Debian rules if PR wasn't specificed but since OE always sets PR by default, hyphens are allowed by default.

Date based packages

The current policy is to use the format PV = "1.2+scmYYYYMMDD".

  • cvs packages should use <latest released version>+cvs<date>, e.g. foo_1.3+cvs20051106
  • svn packages should use <latest released version>+svn<date>, e.g. foo_1.3+svn20051106

Pitfalls

Prerelease packages such as

  • foo_2.4.4rc2
  • foo_2.4.4b1
  • foo_2.4.4-git5
  • foo_2.4.4-pre1

cause a lot of trouble with package managers when foo_2.4.4 gets released. So we should use the following:

  • foo_2.4.3+2.4.4rc2
Personal tools
Namespaces

Variants
Actions
Navigation
Categories
OE services
Toolbox