<br><br><div class="gmail_quote">On Wed, Jul 29, 2009 at 2:20 AM, Lars-Peter Clausen <span dir="ltr">&lt;<a href="mailto:lars@metafoo.de">lars@metafoo.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi<br>
<br>
With the upcoming 2.6.31 kernel release basic support for the freerunner as finally reached upstream. (Well, ok you need a few patches to make it boot, but pretty much all the basics are there).<br>
So this raises the question what does this mean for us, those actively contribute to the om kernel. What does this mean for the community and distributions?<br>
Or more specific how should kernel development in the openmoko tree continue?<br>
<br>
Currently we have andy-tracking which is based on 2.6.29-rc3. And in my opinion andy-tracking is in a very bad shape, there is lot of obsolete stuff in there, like the support for the gta03 and some leftovers from code refactoring. Furthermore it has been merged several times with all kinds of different trees, which results in a rather interesting history. Patches which were applied to the tree usually touch several subsystems at once. So if you want to extract a patch to get a single subsystem running (for example for upstream submission) you have to crawl through several commits and pick the pieces you need. Last but not least the tree contains support for two different (although quite similar) machines, namely the gta01 and gta02. All this sums up to a huge pile of unmaintainable patches making rebasing almost impossible.<br>

<br>
Thus I propose a different development model for future kernel development:<br>
The basic idea behind this approach is to get rid of the centralized development model and go over to a more modular one. Instead of having one big monolithic tree containing everything, we&#39;ll have several subtrees for each driver. On top of that would be two machine trees and maybe one for s3c specific patches. The machine specific trees would  then regularly merge those driver trees they need.<br>

On top of of the machine trees there would be a combined tree where both machine trees get merged. The purpose of this tree is to provide a single point which provides everything needed for openmoko based devices from where distributions can pull to build their kernels.<br>

<br>
Ideally all trees would be initially based on the upstream kernel. Driver trees would only have driver specific code added to them. As you can see, the goal of those trees it not to provide a full functional or bootable kernel but a trackable patchset.<br>

During development a developer would probably work on the machine tree to create and test his patches and rebase those when ready onto the driver tree. And only the commits to the driver tree would be published.<br>
I also suggest to rebase our trees every major upstream release onto the new upstream, to keep up with the latest changes in upstream and again to keep the patchset maintainable.<br>
On the other hand I&#39;m not an git expert and there might be other better approaches, so feel free to send suggestions.<br>
<br>
The benefit of this approach compared to the current model is that we have a clean set of patches for each subsystem which makes rebasing and possible upstream submission a lot easier. Furthermore this clearly defines who is responsible for what. With the current model we have 3 or 4 people who have access to git, but there hasn&#39;t been any agreement about what should be done by whom. Which as a result has led to some confusion in the past, with none committing potential patches.<br>

<br>
To sum this all up, a small diagram ;) (best viewed with a monospace font)<br>
<br>
                 combined openmoko tree<br>
                      /           \<br>
platform level:    gta01 tree    gta02 tree ---- s3c patches<br>
                    /       \   /    \     \<br>
driver level: ...  pcf50606   jbt6k   glamo  bq27000 ...<br>
<br>
What would have to be done to put this plan into action is to set up trees and provide access to those who need it. And to clarify who wants to take care of what.<br>
Nelson would probably regain his position as the &quot;gate keeper&quot;, who as a maintainer decides what goes into the machine trees.<br>
I guess Paul wants to work on battery and regulator stuff, Werner on the ar6000. I would like to take care of the jbt6k and together with Thomas of the glamo.<br>
<br>
I do have patches against 2.6.31 for full gta02 support which could be used to initialize the trees to get them functional.<br>
<br>
Oh, and one downside of the transition could be that we loose patches. So if you know of any important patches which not have been merged upstream, but are for an upstream driver, please try to make sure that they either get merged upstream or find their way into the machine trees.<br>

<br>
Please tell me what you think of this proposal.</blockquote><div><br>I think its a neatly organized and at the same time simple to manage plan. I am not an expert but I can volunteer to take care of the security subsystem of the kernel. I was working on some back porting from 2.6.30 to 2.6.29-rc3 because a lot had been changed. I can track them and merge them to the tree because I have to maintain them for a research program where integrity of the platform needs to be measured and kernel level access controls (MAC) are used to provide fine-grained and granular access controls at the OS level. I am not aware of anyone maintaining the security subsystems at the moment. It might not be a big issue but needs to be taken care off.<br>
<br>So when do you plan to start? Probably when it is clear that who is interested in being involved after the execution of Plan B. Your proposed people and associated responsibilities makes me optimistic about the situation. I am not sure that we can have a long term plan because nobody is manufacturing the OpenMoko devices in future. The Nanonote devices are going to be launched with the kernel supported by X openMoko employees headed by Steve in a new company. There are a few discussion already taking place on the community mailing list. What should be the direction in future is not clear at the moment but for the time being your proposal is very important to keep things going for a while.<br>
<br>There were some hopes from a Brazilian University but haven&#39;t noticed any clear signs till yet.<br><br>Good luck.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><font color="#888888">
<br>
- Lars<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Shaz<br><br>