[Gpe-list] Rationalising tasks databases
Matthew Palmer
mpalmer at hezmatt.org
Sat Dec 30 11:55:14 CET 2006
I've just loaded GPE onto my Zaurus SL-C3200 (via OpenZaurus 3.5.4.1), and
one of the first things I noticed was that the tasks in gpe-timesheet and
gpe-todo aren't shared. I want to fix this.
The first thing to do is to rationalise the databases, so that the timesheet
tasks can be stored in the tododb. As far as I can tell, the only database
field that's missing from the tododb when compared to the timesheet db is
the parent task ID. This seems like a fairly simple change to make to
libtododb.
My intent is to make this change in the libtododb code. However, to do this
I'll need to change the todo_item struct. It's been a while since I've
hacked much C, but I'm fairly certain that changing this struct will
incompatibly change the library ABI -- which, if I'm not mistaken, requires
a SONAME change. Except I can't see anywhere to change the SONAME. Could
someone point out what I'm missing here?
Once the tododb handles hierarchical tasks, I'll need to modify the
timesheet app to use the tododb, and migrate the timesheet tasks to the
tododb and fix the task IDs in the log. Does anyone have any suggestions
for how to do the data migration -- not so much the mechanics of the actual
transformation (which I'll work out in code), but the mechanics of the
higher-level stuff -- *when* to do the translation (automatically,
click-a-button, at package upgrade time, or what?).
Modifying the timesheet app seems... trickier than I first thought. There
appears to be some support for linking timesheet tasks with todo tasks, but
it seems mostly hidden behind '#ifdef HILDON' stuff. Am I right in thinking
that Hildon is something for the Nokia 770? At any rate, I think that some
of that stuff needs rethinking -- either to merge the Hildon and regular UI
stuff, or just get rid of the distinction between todo tasks and timesheet
tasks. I'm not about to start making UI decisions, though, so I'd
appreciate some guidance from people who know as to which way to rewrite
this thing.
Finally, how should I go about getting these changes back into the main
tree? Just log a bug, with patch, in bugs.linuxtogo.org?
Thanks,
- Matt
More information about the Gpe-list
mailing list