Maemo-releases

(New page)
(The rationale behind maemo-release)
Line 15: Line 15:
   package2-dev,  
   package2-dev,  
   ...,  
   ...,  
-
   foo | maemo-version (= 1.0.0) | maemo-version (= 3.0.0) | maemo-version (= 5.0.0),
+
   foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0),
   ...,
   ...,
   packagen-dev
   packagen-dev
Line 40: Line 40:
| align="center" style="background:red; color:white" colspan="2" | foo is absent
| align="center" style="background:red; color:white" colspan="2" | foo is absent
| align="center" style="background:green; color:white" colspan="2" | foo is present
| align="center" style="background:green; color:white" colspan="2" | foo is present
 +
| align="center" style="background:red; color:white" colspan="1" | foo is absent
 +
|-
 +
|-
 +
|colspan="5" style="border:1px solid;" | Example: <code>foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0)</code>
 +
|-
 +
| align="center" style="background:red; color:white" colspan="1" | foo is absent
 +
| align="center" style="background:green; color:white" colspan="1" | foo is present
 +
| align="center" style="background:red; color:white" colspan="1" | foo is absent
 +
| align="center" style="background:green; color:white" colspan="1" | foo is present
| align="center" style="background:red; color:white" colspan="1" | foo is absent
| align="center" style="background:red; color:white" colspan="1" | foo is absent
|-
|-
|}
|}

Revision as of 13:21, 29 October 2009

The rationale behind maemo-release

The maemo-release package seeks to address the situation wherein a source package is forked into gregale/bora/chinook/diablo/fremantle versions of itself because one set of Build-Depends does not work for all distributions.

Example: Fremantle provides libgstfarsight0.10-dev, whereas previous distributions do not. pidgin needs to Build-Depend on it for voice/video support to be compiled in during the build process. However, the libgstfarsight0.10-dev package does not exist in any previous distribution.

This results in having to provide a different debian/control file for the various distributions, which in turn forces one to make a different debian/changelog file for the various distributions. At this point, different distributions have different source packages.

To prevent this one reason for forking the source package, we need the maemo-release package. Then, knowing which distribution(s) contain a needed package foo, we can create an appropriate debian/control entry.

Example: Suppose Bora and Diablo contain package foo, but the other distributions do not. The corresponding debian/control Build-Depends entry will be:

Build-Depends: package1-dev, 
 package2-dev, 
 ..., 
 foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0),
 ...,
 packagen-dev

This way you can describe intervals of distributions wherein a certain package has become available. Examples:

  (1.0.0) Gregale     (2.0.0) Bora     (3.0.0) Chinook     (4.0.0) Diablo     (5.0.0) Fremantle  
Example: foo | maemo-release (< 3.0.0)
foo is absent foo is present
Example: foo | maemo-release (< 2.0.0) | maemo-release (> 4.0.0)
foo is absent foo is present foo is absent
Example: foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0)
foo is absent foo is present foo is absent foo is present foo is absent