[maemo-commits] [maemo-commits] r16554 - projects/haf/doc/mvo
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Sat Nov 1 23:12:51 EET 2008
- Previous message: [maemo-commits] r16553 - projects/haf/doc/mvo
- Next message: [maemo-commits] r16555 - in projects/haf/trunk/hildon-thumbnail: . daemon daemon/plugins thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll
Date: 2008-11-01 23:12:50 +0200 (Sat, 01 Nov 2008)
New Revision: 16554
Modified:
projects/haf/doc/mvo/system-model-2.txt
Log:
Pruning of in-line comments. Typos.
Modified: projects/haf/doc/mvo/system-model-2.txt
===================================================================
--- projects/haf/doc/mvo/system-model-2.txt 2008-11-01 20:28:21 UTC (rev 16553)
+++ projects/haf/doc/mvo/system-model-2.txt 2008-11-01 21:12:50 UTC (rev 16554)
@@ -27,7 +27,7 @@
- Maemo contains applications, plugins, theme graphics and other
optional add-on "modules" that run on the Maemo OS or enhance it.
The current "Extras" repository is part of Maemo, for example, and
- applications like the Browser or EMail are not necessarily part of
+ applications like the Browser or Email are not necessarily part of
the OS module.
- Maemo contains the "Maemo SDK": the tools needed to develop the
@@ -59,6 +59,18 @@
fully: storing the package lists that define a distribution in a VCS
and use VCS operations to maintain them.
+ Most of this is modeled after Debian, of course. The significant
+ differences are:
+
+ - There is no "unstable".
+
+ - We release "modules", not a whole distribution. Modules are
+ prepared in "testing" until they are ready to be copied into
+ "stable".
+
+ - Upload and download rights are more complicated since
+ unfortunately not everyone is equal in the land of Maemo.
+
]
* The Maemo archive
@@ -173,7 +185,7 @@
Packages in harmattan-stable should be installable: all their
run-time dependencies should be available, among other things.
- Packages in harmattan-stable should be rebuildable: all their build
+ Packages in harmattan-stable should be compilable: all their build
dependencies should be available, among other things.
- harmattan-testing
@@ -224,26 +236,24 @@
These problems need to be solved by simply computing the correct
run-time dependencies during build time.
-[ In other words, problems will arise when the interface management is
- too conservative. We will make unrelated packages suffer in order
- to find these flaws, but I think it is worth it. Putting such a big
- responsibility on interface management is a good thing, IMO, and I
- am confident that all flaws can actually be fixed. We will be
- forced to get a very firm grip on the compatibility between one
- release and the next.
-
- As a concrete and very relevant example, consider dpkg-shlibdeps and
- friends. This is the machinery that computes the ${shlibs:Depends}
- substitutions that are used to automatically pick up the right
- dependencies on shared library packages.
+A concrete example might be in order: a program in package P linking
+against a shared library in package L. The harmattan-stable
+distribution contains version 0 of L (L0), and harmattan-testing
+contains L1. P is compiled in harmattan-testing against L1 but then
+installed in a harmattan-stable installation where only L0 is
+available.
- This is done by having the tools take a close look at the symbols
- that are actually used from the shared library. Then the lowest
- version of the library is found that exports that set of symbols.
- In this way, the run-time dependencies are very accurate and not too
- conservative. We should take this system into use.
-]
+One might expect that compiling P against L1 will cause it acquire a
+dependency of the form "L (>= 1)". This would prevent it from being
+released to harmattan-stable, which only contains L0. This is the
+correct behavior when P uses symbols of L that are not available in
+L0. P has to wait until L1 is released.
+However, when P only uses symbols that are available in L0, the
+correct dependency is "L (>= 0)". Our tools and packages will not
+currently figure this out and will produce the incorrect "L (>= 1)"
+dependency. Some effort is needed, and would be well spent.
+
*** Integration snapshots
A "integration snapshot" is short-lived distribution that has been
@@ -251,7 +261,7 @@
typically done to test the result of integrating a new set of packages
into some distribution without actually doing it.
-At the point of creation a intergration snapshot is defined by a list
+At the point of creation a integration snapshot is defined by a list
of distributions, plus a list of packages to take from each
distribution. It is never modified after creation.
@@ -292,18 +302,9 @@
empty. The harmattan-stable distribution is automatically frozen
whenever harmattan-proposed-updates is non-empty.
-[ That is, we use locking to avoid conflicts here, like pre-CVS
- revision control systems. This is appropriate for high-priority,
- urgent updates, I'd say.
-]
-
Care must be taken that the changes that enter harmattan-stable via
harmattan-proposed-updates are also included in harmattan-testing.
-[ Fixes on your release branch must be included in your development
- branch as well.
-]
-
*** Continuity
The Maemo archive can and should contain the distributions for
@@ -403,11 +404,6 @@
are contained in the Maemo archive and are maintained like any other
component.
-[ I hope we are rid of Scratchbox devkits and toolchains in Harmattan.
- I think that the Maemo SDK+ is still much too complicated with too
- much magic, but that's a separate discussion.
-]
-
Both the Maemo OS in a device and the Maemo SDK in a Scratchbox target
are maintained by installing packages from the Maemo archive and
removing already installed packages with the package management tools.
@@ -424,21 +420,15 @@
However, the Browser can also be released independently inbetween OS
releases.
-[ This is different from Debian, where the whole of testing is
- released as a unit. We don't do that since we want to release
- 'modules' independently.
-]
-
When copying a group of packages in this way, the harmattan-stable
distribution must not break, of course. Most run-time and build-time
dependencies between packages should still be satisfiable, and those
that break should be identified and the breakage approved.
-[ Breaking harmattan-stable might be considered OK when we release a
- OS version that is incompatible with a 3rd party application. Such
- an application should ultimately not be able to delay the OS
- release. This should be the exception and not the rule, of course.
-]
+Breaking harmattan-stable might be considered OK when we release a OS
+version that is incompatible with a 3rd party application. Such an
+application should ultimately not be able to delay the OS release.
+This should be the exception and not the rule, of course.
A integration snapshot can be used to test how the new
harmattan-stable would look like. It would be made from all packages
@@ -452,14 +442,10 @@
of the Browser should not be surprised by a new version of the OS
suddenly appearing in harmattan-stable.
-[ In other words, we must detect conflicts and merge the new changes
- until the conflicts are gone, like with CVS, Subversion etc.
-]
-
Note that the SDK does not need to be released: harmattan-testing _is_
the SDK distribution. However, SDK packages should be copied to the
harmattan-stable distribution as well so that that distribution is
-always self-contained and recompilable. This is part of the "do not
+always self-contained and compilable. This is part of the "do not
break harmattan-stable" rule: The harmattan-stable distribution is
also considered broken when its packages can not be recompiled. This
is important when using harmattan-proposed-updates for urgent updates.
@@ -467,7 +453,7 @@
** Upgrade chaining
Some modules are only supported to be upgraded on top of the
-immediately preceeding released version of that module. People should
+immediately preceding released version of that module. People should
not be allowed to skip released versions when upgrading.
Forcing a chain of upgrades like this can be done by creating a new
- Previous message: [maemo-commits] r16553 - projects/haf/doc/mvo
- Next message: [maemo-commits] r16555 - in projects/haf/trunk/hildon-thumbnail: . daemon daemon/plugins thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
