Hildon-thumbnail's API

2008-08-05 Thread Philip Van Hoof
Dear Hildon developers,


* When you specify a callback, please try to always set "user_data" as
last argument. 

This makes generating language bindings for it far more easy

For example for Vala bindings instead of using a generated binding, the
glue developer needs to change this:

[CCode (cheader_filename = "hildon-thumbnail.h")]
public static delegate void ThumbnailFactoryFinishedCallback
 (Hildon.ThumbnailFactoryHandle handle, void* user_data, Gdk.Pixbuf
 thumbnail, GLib.Error error);

Into this:

[CCode (instance_pos = 1.1)]
public delegate void ThumbnailFactoryFinishedCallback
(Hildon.ThumbnailFactoryHandle handle, Gdk.Pixbuf? thumbnail,
GLib.Error error);

And that's just because Vala is very easy to write a binding for. With
things like PyGTK I guess you have to wrap each user of that callback
into a normal one, and call the actual callback in the abnormal way from
that wrap. Quite cumbersome and hard if everybody would write APIs like
that.


* When you make an API, please always use a real GObject instead of
"typedef gpointer HildonThumbnailFactoryHandle" stuff. 

This makes generating language bindings for it far more easy. 

Far far more easy, actually.

* When you make a type, please try to be consistent with naming header 
files and give them the same name as your type's name. For example 
hildon-thumbnail-factory-handle.h if the type is called like 
HildonThumbnailFactoryHandle

Not hildon-thumbnail-factory.h unless you call it HildonThumbnailFactory,
which would have been, by the way, a fine name too (I don't know why 
adding "Handle" to the type's name makes any sense, but okay).

This makes generating language bindings for it far more easy

* When writing gtk-doc comments, please include all arguments:

Not this:

/**
 * hildon_thumbnail_factory_load_custom:
 * @flags: #HildonThumbnailFlags indicating which flags to use to create the 
thumbnail
 * 
 * ...
 **/

But this:

/**
 * hildon_thumbnail_factory_load_custom:
 * @uri: Thumbnail will be created for this URI
 * @mime_type: MIME type of the resource the URI points to
 * @width: Desired thumbnail width
 * @height: Desired thumbnail height
 * @callback: Function to call when thumbnail creation finished or there was an 
error
 * @user_data: Optional data passed to the callback
 * @flags: #HildonThumbnailFlags indicating which flags to use to create the 
thumbnail
 *
 **/

And given what I recommended above, don't put the flags as last, like
how this API ended up becoming, put it in front of user_data or right
after the self.

If the method is a getter for a singleton, GObject libraries usually
call the method something like:

hildon_thumbnail_factory_get or hildon_thumbnail_factory_get_instance


HildonThumbnailFactory*
hildon_thumbnail_factory_get_instance (const gchar *uri, 
   const gchar *mime_type, 
   guint width, guint height, 
   HildonThumbnailFactoryFinishedCallback 
callback, 
   gpointer user_data);


* If you make a GObject-like API, any API, always include the self
pointer:

Not this:

void hildon_thumbnail_factory_move(const gchar *src_uri, 
   const gchar *dest_uri);

But this:

void hildon_thumbnail_factory_move(HildonThumbnailFactory *self,
   const gchar *src_uri,  
           const gchar *dest_uri);


* Etc etc etc



-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-29 Thread Philip Van Hoof
On Sat, 2008-06-28 at 19:51 +0200, Luca Olivetti wrote:
> En/na Luca Olivetti ha escrit:
> > En/na Dave Cridland ha escrit:
> > 
> >> Tinymail is good - if Luca upgrades his IMAP server to Cyrus 2.3, he'll 
> >> see a big speed increase from both Modest and Polymer, I think.
> > 
> > I'm too old for that, now I stick with whatever version comes with the 
> > distro.
> 

> BTW, after flashing diablo, I tried modest again, and I'm sorry to say 
> that it's till unusable for me.
> The biggest problem is that it cannot cope with big folders (e.g. I have 
> one that has ~26000 messages) and that's after receiving all headers, it 
> is slightly better with a ~12000 messages folder.
> Besides, it has no threading, no "view next unread" button, no "mark 
> thread read", no "mark folder read" and no "show only new messages" 
> option (or at least I couldn't find them).

Sizes above 10,000 items are not supported by Modest. Tinymail can
handle such folders relatively well (if you use the demo-ui), but Modest
does a bunch of sorting operations that makes those sizes unusable slow
indeed.

We know which areas (blocks of code) are responsible for the slowdown
and we can point people to possible optimizations.

Among them are the summary store in Tinymail, order of retrieval (which
influences the amount of sorting needed by Modest. Rob Taylor is
planning to work on this at Guadec too, by the way), sorting itself,
storing sort results, making integer values of strings and store these
so that those can be compared instead of having to compare strings while
sorting, etc etc etc.

During the development of Modest there was, however, relatively low
priority given to supporting really large folders.

About the threading we have discussed this on this mailing list, so you
can read in this discussion-thread the possibilities and POV being
taken. One of the conclusions is that a fully threaded view wastes too
much screen space. Most people just need grouping "discussions", so that
is one possibility indeed. Again we can point people to how to make this
work (and are some people already doing small experiments too).

About the buttons that you would like, the software is opensource and
the features that you describe are all relatively easy to implement. For
Modest we had a strict UI & requirements document that didn't include
your features. Nonetheless would your code that implements them speak
loader than E-mails.

So I can only recommend checking out the code and trying to implement
them. Perhaps provide a plugin-system so that in case Nokia's UI team
decides not to accept your UI enhancements, you can still ship plugins
that enable the features.

If you do, get in touch with the Modest maintainers and developers

hint: you can for example find most of them on the Tinymail mailing
list.

http://mail.gnome.org/mailman/listinfo/tinymail-devel-list


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-25 Thread Philip Van Hoof
On Wed, 2008-06-25 at 16:31 +0100, Dave Cridland wrote:
> On Wed Jun 25 10:23:44 2008, Philip Van Hoof wrote:

> My biggest problem with Modest has always been that the UI  
> requirements seem to have driven the development, to the extent that  
> although Tinymail is pretty good, both its development and its usage  
> has been severely compromised by trying to build a desktop mail  
> program on an internet tablet.

Somewhat agree. I do believe we can extend the IMAP protocol in such a
way that indeed desktop E-mail client features are supportable on mobile
E-mail clients and more importantly "fast enough".

A fully capable Lemonade IMAP server with THREAD is getting very close
to that. Add ESEARCH to that (or has Lemonade this?) and you could even
do relatively nice vFolder like features.

An interesting requirement that you see nowadays is the meme of labels
or tags rather than folders. People want one E-mail item to be tagged by
multiple tags. That's the equivalent of putting on E-mail item into
multiple mailboxes, and then using a mailbox as-if it's at tag instead.

That would already work, but people want to search on things like but
not only those tags. For example alle E-mails tagged "Important" that
came from my girlfriend. When abusing mailboxes as tags that would mean
doing a multimailbox spanned search ...

Anyway, you get the idea. I would like tools in IMAP that improve the
protocol's search capabilities. ESEARCH is a good start, indeed.


> The result is a program that looks the part, and has the right  
> buttons to press, but by insisting on those features as priority over  
> all else, it's hog-tied itself into poor use of the network, so it's  
> totally unusable on my mailboxes, whereas Polymer just trundles  
> through them.

I think Modest's IMAP code could be rewritten or improved to use the
network right (ie. pipelining the STATUS requests, pipeling an ENVELOPE
plus BODYSTRUCTURE fetch, fetching per MIME part, etc)

All that would need to be done in Tinymail's layer. You would probably
make Polymer again better, just for the fun of it ;), but it could come
pretty close to Polymer's network usage. If I could just put resources
behind it.

Which is not trivial. Modest's basic UI problems are solved. As as you
indeed correctly stated is or was Modest's development driven by its UI
requirements. Not by the network usage.

If Modest's Tinymail layer uses the network in a relatively good way,
meaning that it does CONDSTORE and QRESYNC if possible, then that's
because I was too jealous on Polymer's network performance :-)

These implementations were not required by Modest's requirements.

Indeed, competing inspires the passionate mind.

>  
> I wrote Polymer really in order to demonstrate ACAP to people. :-)  
> The low-bandwidth, big mailbox support was mostly accidental  
> initially, and only later turned into a really experimental, cutting  
> edge, thing. (It's now not quite so starkly cutting edge, since  
> Tinymail has caught up rather a lot).

Oh no, no no. Tinymail is not doing pipelining. You and me know that
that's a huge difference compared to Polymer's network utilization.

The on-demand envelope fetching is neat but for offline usage I will
always need to in-background fetch the remaining surroundings anyway.

Nonetheless, it's an interesting concept to focus on getting the content
that the user wants "right now" in time (at scrolling). Meanwhile
storing it for future cached use ... is something Polymer is missing.

So .. there you have it, my evil plans for Tinymail ;-), to make it do
that. Be afraid, Dave, be very afraid. Moehaha! :)

Anyway, we'll/I'll probably do it in such a way that we both can share
that store's implementation.

> > If somebody would pick it up, I'm sure he'd fully support making  
> > Telomer and Polymer full featured E-mail clients indeed.
 
> Heck, if people would simply use it, I'd put some time into tidying  
> it up, but yes, if someone else wants to really run with it, I'd hand  
> it over.

I'm not a Python developer ... we could rewrite it in Vala? :-)


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-25 Thread Philip Van Hoof
On Wed, 2008-06-25 at 11:55 +0200, Luca Olivetti wrote:

> 
> I'm probably too dumb to find those options ;-) (btw, now polymer just 
> crashes)

No you are right, it's supported on your IMAP server. Cyrus is an
excellent choice too, by the way. That's a free software imapd that gets
most right. Which is nice, and exceptional. Another really good one is
Dovecot, by the way. 

There is one, that is regretfully being used far to often by people as a
'personal IMAP server', that gets quite a lot of IMAP core spec things
just wrong. I'll leave it as an exercise for the reading to figure out
which one that is.

That's extremely frustrating for E-mail client developers, of course.

It's "precisely" their mistakes at implementing the specification
correctly that makes developing a good E-mail client that consumes IMAP
unimaginably hard.

It's the fact that this is hard, that makes it more easy for a E-mail
services vendor to sell and develop a new E-mail server that has a
closed protocol, and glue a specialized E-mail client to it.

IMAP server developers have a responsibility in this, in my opinion. If
they want IMAP to succeed, they should NOT misinterpret the RFC.

 
> > Experimentally the client has a lot of value, since it shows how modern
> > IMAP usage would outperform any other offering (Blackberry or Windows
> > Mobile E-mail clients with Exchange) several times in a row.
> 
> I *do* hope he succeed: it would make me very happy if non-standard 
> proprietary protocols just disappeared (though many people seem happy 
> with their crap^H^H^H^Hblackberries and don't mind giving their 
> passwords to a 3rd party and let their mail pass through rim servers).

I'm not against a bit of competition for IMAP. It's that competition
that pushed IMAP developers to start thinking about enhancing the
protocol under the Lemonade umbrella.

Perhaps it would have happened without the competition too. I do think,
however, that competition inspires the passionate mind.

So I'm fine with the Blackberries and the Windows Mobile E-mail clients
and the Exchanges. We'll just compete. It's not that hard, they don't do
that many surprisingly difficult things. In contrary, actually.

Almost zero innovation comes from those factories. Doesn't sound to me
like a lot of passionate people work over there ... must be a really
boring job and it must suck realizing that you are actually blocking
innovation instead of fostering it.

Poor guys ...

> >> I'm currently tunneling imap through ssh with compression enabled.
> > 
> > 
> > That's a good temporary solution indeed. Note that your SSL layer might
> > already do compression, in which case the SSH tunnel will just add
> > latency to your connection.
> 
> Yes, my goal was to avoid ssl altogether (I can do that with 
> thunderbird) and at the same time not to expose the imap server to the 
> internet at large (after all it's my own personal server).

Not everybody has the same possibilities as you have. So most E-mail
clients default to encrypting the connection if possible.

>From a security perspective, that makes a lot of sense. How many people
care about that [x] Use STARTLS option ? Too few. Everybody should,
nobody is. So E-mail clients that just use it if they see it is
available, are right. E-mail clients that don't and yet make it
surprisingly difficult for the user to enable it, are wrong.

> Unfortunately it seems that claws cannot use cram-md5/digest-md5 and 
> it's forcing a starttls. Polymer can do cram-md5/digest-md5 but it's 
> forcing a starttls anyway.

Sounds like right behaviour.

The risk of exposing one person's private details (like passwords and
E-mails) on the naked Internet, outperforms the risk of serving a geek
who has made his own SSH tunnel at a very small extra latency hit.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-25 Thread Philip Van Hoof
On Wed, 2008-06-25 at 10:48 +0200, Luca Olivetti wrote:
> En/na Philip Van Hoof ha escrit:
> 
> > Polymer does a similar thing to Mulberry. The technique is indeed very
> > interesting and could be adapted to work with offline operations too, if
> > downloading is allowed to take place in the background and if when
> > scrolling up and down a higher priority task to get the visible items
> > can be scheduled upfront.
> 
> I just tried Polymer under windows (btw, try googling for Polymer and 
> you don't have a chance of finding it, Infotrope Polymer is the right 
> search term) and it's a bit too basic: either I couldn't find the option 
> or it doesn't even allow to select the sort order, neither it can thread 
> the messages.

That might be because your IMAP server doesn't support either THREAD nor
SORT.

Dave is making Infotrope (and derived E-mail clients like Polymer and
Telomer) mostly for testing IMAP servers that he develops at the place
where he works (at Isode).

He's mostly interested in top-notch interaction between the client and
the IMAP server (pipelining and testing them in combination with newer
Lemonade features).

Experimentally the client has a lot of value, since it shows how modern
IMAP usage would outperform any other offering (Blackberry or Windows
Mobile E-mail clients with Exchange) several times in a row.

> As per the tablet it says that Telomer (the tablet version of Polymer) 
> is even more stripped down, with several key features not working 
> (though I didn't try it yet).

Yeah, the E-mail clients done by Dave are mostly for doing nifty
experiments.

I've put Dave in CC, so that he can again feel proud about how cool I
think his experimental E-mail clients are.

> I'm currently tunneling imap through ssh with compression enabled.


That's a good temporary solution indeed. Note that your SSL layer might
already do compression, in which case the SSH tunnel will just add
latency to your connection.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-25 Thread Philip Van Hoof
On Wed, 2008-06-25 at 10:00 +0100, Graham Cobb wrote:
> On Wednesday 25 June 2008 01:10:28 Philip Van Hoof wrote:
> > Polymer does a similar thing to Mulberry. 
> 
> I also have some very large folders and I liked the Polymer approach a lot.  
> It is a shame the author doesn't have the time/resources to turn it into a 
> full-featured mail application.  Personally I want a, primarily, online mail 
> program (with a few offline features: I would like to be able to download 
> specific messages for reading offline, and would like to be able to create 
> emails offline), designed for large, and fairly rapidly changing mailboxes.
> 
> I haven't tried Modest yet but will do so as soon as I install Diablo as it 
> sounds like it is at least a step in the right direction.

The right direction would be a guy like Dave together with me writing a
nice Tinymail-API like library, and the guys who wrote Modest adapting
that UI to use that.

Who knows, some day? ;-)

One problem with Infotrope is of course the Python part of it. It's not
really cool to have to resort to IPC to talk to it in a reasonably easy
way from Vala, C or C++. infotroped.py ? :) maybe ...

But as pointed out did Dave mostly made the E-mail clients for
experiments (at least afaik).

If somebody would pick it up, I'm sure he'd fully support making Telomer
and Polymer full featured E-mail clients indeed. 

Problem is that relatively a lot of people think to know how their
E-mail client must be done, but relatively few people will put their
energy in it too.

:-)


ps. Adding Dave in CC again. 


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-24 Thread Philip Van Hoof
On Wed, 2008-06-25 at 00:33 +0200, Luca Olivetti wrote:
> En/na Marius Gedminas ha escrit:
> > On Tue, Jun 24, 2008 at 11:24:24PM +0200, Andrea Grandi wrote:
 
> > I want all the messages, and I want them in threaded view.  I believe
> > Modest does the former, but not the latter.
> 
> Claws does both, however it also downloads *all* the headers.
> Mulberry (that's not available on the tablet) uses a different approach: 
> it only downloads enough headers to fill the screen. You scroll down (or 
> up), it fetches more headers. Latency is higher and it cannot use the 
> same mechanism for offline operation, otherwise it's pretty efficient, 
> especially on a constrained device.

Polymer does a similar thing to Mulberry. The technique is indeed very
interesting and could be adapted to work with offline operations too, if
downloading is allowed to take place in the background and if when
scrolling up and down a higher priority task to get the visible items
can be scheduled upfront.

To make this perform good, with few latency problems, we'd need to
implement full pipelining. This is something Tinymail's IMAP code can't
do at this moment. For it to do such pipelining would require an almost
rewrite of the IMAP code (not a trivial task, but planned nonetheless).

> On a pc with a relatively slow connection to the imap server is way 
> faster than thunderbird on the same pc.

That's for Mulberry mostly due to the fact that just visible envelopes
are downloaded, and for Polymer on top of and Tinymail mostly due to the
fact that CONDSTORE and QRESYNC can be used (if the IMAP server supports
it).

What could help a lot is to use very recent OpenSSL or NSS libraries
with your IMAP server and on your device and keep tracking the latest
versions. I have not investigated this fully but in theory can the SSL
layer do compression. With IMAP data that would compress at a very high
compression rate indeed.

Certain IMAP servers also have the COMPRESS capability, but since the
SSL layer should eventually support compression too, relatively few IMAP
servers are implementing this capability.


Cheers,

-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-24 Thread Philip Van Hoof
On Wed, 2008-06-25 at 00:57 +0300, Marius Gedminas wrote:
> On Tue, Jun 24, 2008 at 11:24:24PM +0200, Andrea Grandi wrote:
> > I continue here a discussion you can find in this post:
> > http://pvanhoof.be/blog/index.php/2008/06/24/big-day-for-modest-and-tinymail
> > (Just read the comments).
> 
> > Please let me know what do you think about it.
> 
> I want all the messages, and I want them in threaded view.  I believe
> Modest does the former, but not the latter.

Although threaded view is a UI problem for Modest to solve, ain't
Tinymail passing the necessary info to Modest so that it could do
threading. At this moment.

That's because the UI doesn't support it and because the info required
for threading (the references headers) consume more bandwidth. If the UI
ain't going to use it, then why request it, right?

It's however relatively easy to let Tinymail pass it to Modest. We could
also request THREAD if the IMAP server supports this capability (which
relatively few IMAP servers don't) and build the threading very quickly
this way (less analysis and calculating would need to be performed by
the device, as the server would solve it entirely).


Both would be relatively simple to do.

What would be more difficult would be to write a GtkTreeModel that uses
this extra info to also represent it in a Tree rather than a flat list.

I'm also not convinced that a device with such a small screen could
provide a useful view when threaded.

I think grouping E-mails together based on "discussion", so basically a
one-level Tree instead of a multi-threaded threaded view with each reply
recursively going deeper ... I believe that makes a lot more sense.

For example:

[-] From My Boss, about "Your resignation letter"
.+-- Your resignation letter from My Boss
.+-- RE: Your resignation letter from My Boss
.+-- RE: Your resignation letter from My Boss
.`-- RE: Your resignation letter from My Boss

Rather than


[-]-- Your resignation letter from My Boss
[-]-- RE: Your resignation letter from My Boss
....[-]-- RE: Your resignation letter from My Boss
.`-- RE: Your resignation letter from My Boss

Note that I used dots to indicate the amount of loss screen space in
both UI solutions.

And let's be honest ... does the second UI solution solve that much more
of the problem you try to solve. 

Also if it's a tablet that you are unlikely going to be using for
handling more than ten mails per day and that functions as your
secondary E-mail client (your primary is either KMail, Evolution,
Outlook or Thunderbird, right?).


Anyway, join Tinymail's mailing list if you want to discuss the service-
side of the story. The UI side is always going to be a Modest's team
decision. Best way to ping those people is to make a bug for Maemo in
the product "Mail" or "Modest" (I forgot which is being used atm).

http://mail.gnome.org/mailman/listinfo/tinymail-devel-list


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Modest/TinyMail problems (continue from the blog comments)

2008-06-24 Thread Philip Van Hoof
Hi there,

Problem is that for IMAP you want consistency with the UID and the
sequence number to check whether or not a synchronization is needed.

So you do actually need to build a storage of UIDs versus sequence
numbers (that's the least you need, to ensure that you synchronize
correctly). 

At least ... that's for an IMAP server that has neither CONDSTORE nor
QRSYNC (like most IMAP servers in the field).

What we could do, however, is receive just the sequence number and the
UID, not the rest of the envelope headers, for all items later than n.

The other problem however is that "what is later"? IMAP servers are
'recommended' but I don't think that they are required to have a sorting
order on "date received".

Most IMAP servers only increment the UID for their NEXTUID, but I don't
think this is a requirement (not to fill up holes). 

Fair enough, I already hear you think, so we'll just use SORT and SEARCH
then? That's another problem, IMAP servers are not required to implement
either the SORT nor the SEARCH capability.

So we end up with:

1) Just download the UID, not the rest of the envelope headers, but then
we are not really certain that when we ask "the bottom last 200 items"
that those are the 200 last received ones.

2) To solve that we can SORT/SEARCH, but we might not have that
capability at all.

3) If we can't solve the request, we could fall back to just downloading
all of the envelopes, like what is the only supported current behavior
of Tinymail right now.


Sounds good for me ... I await your patches (for Tinymail) :)


There are also other solutions for handling really large folders of more
than 15,000 items. The problem is not so much network bandwidth of the
envelopes. The problem is rather that each 5000th item the complete
summary storage file is rewritten on a relatively slow flash storage.

That's a file of by that time 12 MB. If any application during that
write causes a fsync() call, that'll indeed hang your device for several
minutes.

A solution for that is to either append instead of rewrite the file, or
rewrite the summary storage solution to use multiple smaller mapped
files. We have an experimental summary storage like that in our code,
but it's currently disabled because we didn't want to release untested
code in the device's Modest instance.

I can point to it and help you out with testing the implementation if
you join the Tinymail mailing list ... because going in detail is going
to be offtopic on this mailing list.

http://mail.gnome.org/mailman/listinfo/tinymail-devel-list


On Tue, 2008-06-24 at 23:24 +0200, Andrea Grandi wrote:
> Hi all,
> 
> I continue here a discussion you can find in this post:
> http://pvanhoof.be/blog/index.php/2008/06/24/big-day-for-modest-and-tinymail
> (Just read the comments).
> 
> This is my idea: I don't want to be able to download 15.000+ messages.
> I just want to download ONLY last 50, 100, 200 at maximum. Modest
> doesn't behave in this way now. Even if you set the option "just
> download ONLY 50 items". Maybe a bug? Don't know...
> 
> I think the minimum number of messages should be the default value,
> then it should let the user keep a maximum of x messages (where x is a
> value that user can choose). When 200th message arrives, just drop the
> first one and so on... (just like a FIFO queue with a maximum number
> of items). Sounds good my idea? I think that Modest could manage 200
> messages quite good.
> 
> Please let me know what do you think about it.
> 
> Best regards,

-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Maemo's glib version, lobbying for GIO

2008-02-13 Thread Philip Van Hoof

On Wed, 2008-02-13 at 08:14 +, Tommi Komulainen wrote:
> On Tue, 2008-02-12 at 17:21 +0100, ext Philip Van Hoof wrote:
> > My questions ...
> > 
> > Therefore I wonder about what the plan is for Maemo's glib version. How
> > soon will Maemo upgrade? What can we do to help speeding up GIO's
> > inclusion into Maemo? Would a standalone version be acceptable?
> 
> In general we prefer stable releases (personally I'd say starting
> from .6 or so) but we also backport specific things. At the moment there
> is no strong demand for GIO so it's not too high up in priority list.
> We'll get GIO latest when we upgrade to 2.16.

Strong demand will happen as soon as people start picking it up, of
course. People will be picking it in during the following weeks, during
the Berlin Hackfest and after the hackfest.

I'm confident the conference at FOSDEM will make people even more aware
of the benefits of standardising on for example async APIs, stream APIs
and etcetera.

I promised one of the developers in #nautilus to give him my 770 if he
maintains and ports gio and gvfs. He sounded very enthusiastic about
this. I also made a quick port of just GIO myself which you can find
here: http://pvanhoof.be/files/gio-ugly-maemo-port.tar.gz


> Then again GIO is just an add-on so it could be easily introduced
> without breaking anything, but all work requires resources we could
> currently use more elsewhere.

That's right. So far only "goffset" is a newly used type that Maemo's
glib doesn't have a typedef for.

> I mean you'd need to do things like coming up with a migration path from
> no-GIO -> glib-without-official-GIO -> glib-with-GIO, figure out when to
> introduce what (taking into account release plans we're not at liberty
> to discuss - duh!), how/who would deal with bugfixes and periodical
> catchup with upstream, etc.

Ok. So I promised my 770 to somebody if he gets GIO and GVFS packaged in
maemo-extras. He promised me he'll maintain it after that too. His name:
A. Walton. I don't yet know whether he'll succeed/proceed of course.

If not, I might do it.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


RE: Maemo's glib version, lobbying for GIO

2008-02-12 Thread Philip Van Hoof

On Tue, 2008-02-12 at 18:46 +0200, [EMAIL PROTECTED] wrote:

[Bla bla]
 
> I think you should try to find a way to get gio to work on the existing
> glib and then provide a package which could be installed into existing
> OS releases.
> Or "yes". Just package it properly and support it. Add it to
> maemo-extras and version it well


http://pvanhoof.be/files/gio-ugly-maemo-port.tar.gz


Have fun



-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Maemo's glib version, lobbying for GIO

2008-02-12 Thread Philip Van Hoof
Hi there,

Efficient streaming affects memory usage and performance on mobile
devices a lot. The more we needlessly copy IO data around, or the more
we need to wrap each other's self-invented stream-like apis, the slower
the final result (the device) will be.

This is absolutely not good. Especially not for the mobile situation.

Therefore I'm pleased that at the level of glib a team has started
working on GIO.

http://svn.gnome.org/viewvc/glib/trunk/gio/

GIO not only comes with a streaming API, but also with a standard way
for making cancellable asynchronous APIs. It uses the Asynchronous
pattern for this which results in types like GAsyncResult and a type
GCancellable.

http://svn.gnome.org/viewvc/glib/trunk/gio/gasyncresult.h
http://svn.gnome.org/viewvc/glib/trunk/gio/gcancellable.h


As Tinymail's main developer I would like to start using these types as
soon as possible (that's instantly after my first release). I would like
to standardise on how future glib GObject based libraries will do async
APIs that are cancellable and I would like to standardise on my stream
related APIs too.

http://svn.gnome.org/viewvc/glib/trunk/gio/goutputstream.h
http://svn.gnome.org/viewvc/glib/trunk/gio/gunixinputstream.h


To sooner I can do this, the fewer times my API will need to be broken,
the fewer major releases I have to do. The less headaches development
teams depending on Tinymail, like Modest's team, will have.

If after this current distro Maemo would not get a glib for half a year
that includes a GIO, people like me could be blocked for the entire time
from delivering APIs like E-mail ones unless I hack-in a standalone
version of GIO (sounds ugly to me, but if necessary ...).

My questions ...

Therefore I wonder about what the plan is for Maemo's glib version. How
soon will Maemo upgrade? What can we do to help speeding up GIO's
inclusion into Maemo? Would a standalone version be acceptable?


My opinion ...

.. is that the sooner we have this API in Maemo, the sooner application
and- library developers will be synchronised with each other's APIs and
IO sharing. For example HTML components need to share IO with the E-mail
framework (inline attached images in base64 encoding). The VFS needs to
share IO with the E-mail framework (Attachment->Save As). The media
player (hi there Valagume developer!) could share IO with the E-mail
framework (streaming an attached MP3), or GStreamer could share the IO
(a source element that knows about GIO's streams).

A lot of libraries expose asynchronous APIs. At this moment are most of
them having their own nuance differences. With a generic infrastructure
for asynchronous APIs in gio, libraries could finally start doing it in
a standardised way.

Making things more easy for application developers. Making things more
easy for language bindings. Making things contain less bugs.



-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Hibernation of applications during ptrace

2007-09-25 Thread Philip Van Hoof
On Tue, 2007-09-25 at 19:23 +0300, Eero Tamminen wrote:
> Hi,

> Desktop kills only applications that have announced themselves to be 
> killable.  Application should do that only when they've saved state,
> are in the background (i.e. not interacting with the user) and able
> to restore the state when restarted.  I.e. it would be a problem in
> the application I think.

Interesting, how would this work? I don't think our application is ever
setting itself in this state, so I wonder why this hibernation key is
created? :-\

> And desktop does this only when it's notified that the device is low
> on memory.  So, close extra applications and if that doesn't help,
> add swap.  You might also try using gdbserver as Gdb can take quite
> a lot of memory.

This also happens in Scratchbox running on a desktop with 2GB of ram.

Using gdbserver is something I can try, yes. Measuring memory
availability shows me that around 20MB is still available when testing
this on a device.

> Another alternative is that the device runs so low on memory that
> your application is OOM-killed.  You can see this from the syslog.

Checked. This ain't happening. Thanks for the hint, though.

> In this case add swap or use gdbserver.  If you know that the device
> should still survive with the amount of memory Gdb and your app
> are using, you could set those processes OOM-protected with:
>   echo -17 > /proc/PID/oom_adj

Aha, also very useful indeed.

> And OOM-unprotect it afterwards by using "0" instead of -17 (as root
> of course), but don't be surprised if the device reboots if they
> use too much memory. :-)

I wont :)

Thanks for the interesting info. Although I think it doesn't yet explain
the ptrace problem that I experience :-(


-- 
Philip Van Hoof, software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://www.pvanhoof.be/blog




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Re: Hibernation of applications during ptrace

2007-09-25 Thread Philip Van Hoof
On Tue, 2007-09-25 at 18:55 +0300, Eero Tamminen wrote:

> You're just not pressing the "Enter" one more time after you type
> "cont"?  If your application crashes, the enter waiting in Gdb
> readline buffer will then cause Gdb immediately to repeat the previous
> command and continue the process (which then promptly exits)...
> 
> This is very annoying Gdb behaviour, it should empty readline
> buffer before getting new input from the developer.


No that's not the problem that I'm experiencing. I also experienced this
once the application was about to hit a breakpoint. Sometimes
immediately after hitting it. 


-- 
Philip Van Hoof, software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://www.pvanhoof.be/blog




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


Hibernation of applications during ptrace

2007-09-25 Thread Philip Van Hoof
Hi there hackers!

While I'm debugging my application using gdb, I noticed that in both
Scratchbox for intel, Scratchbox for ARM and on the device certain
things in the Maemo platform decide that the application is hibernating,
or ... something.

It seems to be the reason why while I'm debugging my application, I very
often get an error from ptrace telling me that the process no longer
exists.

Usually I guess this hibernation support for applications is most likely
absolutely awesome and totally cool. However, while I'm developing and
especially during a gdb session, I'd prefer that nothing touches my
processes and threads.

As debugging info I usually get something like this:

...
hildon-desktop[25510]: GLIB DEBUG default -  computing hibernation key 
hildon-desktop[25510]: GLIB DEBUG default -  hibernation key: appname 
...
hildon-desktop[25510]: GLIB DEBUG default - removing child from AS ...
hildon-desktop[25510]: GLIB DEBUG default - ... no more children, removing app.
...

Is there a way to completely disable all this stuff? I know about
"run-standalone.sh": Even with this tool I am seeing various problems.

Especially when I run my application in gdb. I'd like to disable it
"totally". For example: not starting it, patching it out and overwriting
the library on my device and scratchbox environment, shooting it in the
head before I start my debugging sessions, ... molesting it? Really
hurting it? Anything!

I also know about the alias for gdb, that makes gdb start with
run-standalone.sh. Even that seems to be insufficient as I'm still
seeing threads (usually it's threads) being killed by something. Usually
while I'm debugging (while I'm focusing on finding a bug or race cond,
it's usually really not the moment to kill _my_ thread).

Even after using every possible imaginable runstandalonable run-
standalone.sh script, I'm still seeing threads getting killed.

I have also recompiled GDB from CVS (yesterday's version) and with this
version all problems related to GDB specifically seem vanished, the only
remaining problem appears to be hildon-desktop killing things behind my
back and gdb's ptrace really not enjoying that.


-- 
Philip Van Hoof, software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://www.pvanhoof.be/blog




___
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] [Fwd: [OLPC-devel] Pygtk and garbage collecting]

2006-07-31 Thread Philip Van Hoof









-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be






--- Begin Message ---
This PyGTK bug is going to be important for OLPC as it might slow down
object destruction.

http://bugzilla.gnome.org/show_bug.cgi?id=320428

For example in the tinymail-python-test.py*, you will find a
gc.collect(). This is to speed up the destruction of objects in the
situation described in Bug #320428

https://svn.tinymail.org/svn/tinymail/trunk/libtinymail-test/tinymail-python-test.py

In case of tinymail the GtkTreeModel that holds a reference on all the
headers of the current folder, is such an object. 

model = MsgHeaderListModel ()
treeview.set_model (model)

newmodel = MsgHeaderListModel ()
treeview.set_model (newmodel)

Will not immediately mark "model" for garbage collection (when model
goes out of scope). Adding a gc.collect(), however, will. 

That model instance, in case of tinymail, holds a reference to the
headers of your folder. This is where most of the memory tinymail
consumes is located (the summary information). Therefore it's a small
disaster on a device with few memory resources, that Pythons garbage
collector is slow at detecting this.

Applying the patch of Bug #320428 or performing gc.collect() in your
Python code fixes this.

Note that tinymail isn't going to be the only case.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
Devel mailing list
Devel@laptop.org
http://mailman.laptop.org/mailman/listinfo/devel
--- End Message ---
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Re: The fixes11 mmap patch doesn't respect data alignment on some architectures

2006-07-18 Thread Philip Van Hoof
On Fri, 2006-07-14 at 19:23 +0200, Philip Van Hoof wrote:
> While the x86 handles unaligned access, ARM doesn't. The patch will not
> work on architectures that don't handle unaligned access.
> 
> I will try to fix it, but I don't have a lot experience in this field.

Second attempt to introduce data alignment. It's still getting Killed on
the Nokia 770 ARM device. Regretfully I don't have a debugger for that
device.

In my hexeditor it looks like all of the summary file is now aligned to
4 bytes (or at least something is aligned to 4 bytes).

There's also no dmesg message on the device when the kill happens.

Could use some assistance from an expert in this field ;-) (I'm not)

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be
? camel-mime-tables.c
? providers/groupwise/.deps
? providers/groupwise/.libs
? providers/groupwise/camel-groupwise-folder.lo
? providers/groupwise/camel-groupwise-journal.lo
? providers/groupwise/camel-groupwise-provider.lo
? providers/groupwise/camel-groupwise-store-summary.lo
? providers/groupwise/camel-groupwise-store.lo
? providers/groupwise/camel-groupwise-summary.lo
? providers/groupwise/camel-groupwise-transport.lo
? providers/groupwise/camel-groupwise-utils.lo
? providers/groupwise/libcamelgroupwise.la
? providers/hula/.deps
? providers/hula/.libs
? providers/hula/camel-hula-provider.lo
? providers/hula/libcamelhula.la
Index: camel-file-utils.c
===
RCS file: /cvs/gnome/evolution-data-server/camel/camel-file-utils.c,v
retrieving revision 1.17
diff -u -p -r1.17 camel-file-utils.c
--- camel-file-utils.c	2 Jun 2006 00:52:29 -	1.17
+++ camel-file-utils.c	15 Jul 2006 10:18:26 -
@@ -49,135 +49,120 @@
 
 #define IO_TIMEOUT (60*4)
 
+
 /**
- * camel_file_util_encode_uint32:
+ * camel_file_util_encode_fixed_int32:
  * @out: file to output to
  * @value: value to output
  * 
- * Utility function to save an uint32 to a file.
+ * Encode a gint32, performing no compression, but converting
+ * to network order.
  * 
  * Return value: 0 on success, -1 on error.
  **/
 int
-camel_file_util_encode_uint32 (FILE *out, guint32 value)
+camel_file_util_encode_fixed_int32 (FILE *out, gint32 value)
 {
-	int i;
+	guint32 save;
 
-	for (i = 28; i > 0; i -= 7) {
-		if (value >= (1 << i)) {
-			unsigned int c = (value >> i) & 0x7f;
-			if (fputc (c, out) == -1)
-return -1;
-		}
-	}
-	return fputc (value | 0x80, out);
+	save = g_htonl (value);
+	if (fwrite (&save, sizeof (save), 1, out) != 1)
+		return -1;
+	return 0;
 }
 
 
 /**
- * camel_file_util_decode_uint32:
+ * camel_file_util_decode_fixed_int32:
  * @in: file to read from
  * @dest: pointer to a variable to store the value in
  * 
- * Retrieve an encoded uint32 from a file.
+ * Retrieve a gint32.
  * 
- * Return value: 0 on success, -1 on error.  @*dest will contain the
- * decoded value.
+ * Return value: 0 on success, -1 on error.
  **/
 int
-camel_file_util_decode_uint32 (FILE *in, guint32 *dest)
+camel_file_util_decode_fixed_int32 (FILE *in, gint32 *dest)
 {
-guint32 value = 0;
-	int v;
+	guint32 save;
 
-/* until we get the last byte, keep decoding 7 bits at a time */
-while ( ((v = fgetc (in)) & 0x80) == 0 && v!=EOF) {
-value |= v;
-value <<= 7;
-}
-	if (v == EOF) {
-		*dest = value >> 7;
+	if (fread (&save, sizeof (save), 1, in) == 1) {
+		*dest = g_ntohl (save);
+		return 0;
+	} else {
 		return -1;
 	}
-	*dest = value | (v & 0x7f);
-
-return 0;
 }
 
 
 /**
- * camel_file_util_encode_fixed_int32:
+ * camel_file_util_encode_uint32:
  * @out: file to output to
  * @value: value to output
  * 
- * Encode a gint32, performing no compression, but converting
- * to network order.
+ * Utility function to save an uint32 to a file.
  * 
  * Return value: 0 on success, -1 on error.
  **/
 int
-camel_file_util_encode_fixed_int32 (FILE *out, gint32 value)
+camel_file_util_encode_uint32 (FILE *out, guint32 value)
 {
-	guint32 save;
-
-	save = g_htonl (value);
-	if (fwrite (&save, sizeof (save), 1, out) != 1)
-		return -1;
-	return 0;
+	return camel_file_util_encode_fixed_int32 (out, value);
 }
 
 
 /**
- * camel_file_util_decode_fixed_int32:
+ * camel_file_util_decode_uint32:
  * @in: file to read from
  * @dest: pointer to a variable to store the value in
  * 
- * Retrieve a gint32.
+ * Retrieve an encoded uint32 from a file.
  * 
- * Return value: 0 on success, -1 on error.
+ * Return value: 0 on success, -1 on error.  @*dest will contain the
+ * decoded value.
  **/
 int
-camel_file_util_decode_fixed_int32 (FILE *in, gint32 *dest)
+camel_file_util_decode_uint32 (FILE *in, guint32 *dest)
 {
-	guint32 save;
+	return camel_file_util_decode_fixed_int32 (in, 

Re: [maemo-developers] A good debugger infrastructure

2006-07-18 Thread Philip Van Hoof
On Tue, 2006-07-18 at 09:58 +0300, Ed Bartosh wrote:
> On Mon, 2006-07-17 at 20:16 +0200, ext Philip Van Hoof wrote:
 
> > The gdbserver didn't work. It crashed. But gdb on the device itself (in
> > an xterm), however does work. Pity it's a little bit difficult because
> > my ui's are always full screen. But I'll manage.
> > 
> > Thanks for these packages, whoever made them. This is really helping me.
> >
> > Tapping "u p" and "d o w n" now :)

> How exactly gdbserver crashed? Did you try to run application with it or
> to attach to existing pid? I only tried with simple non-gui applications
> (ping, tracepath) and it worked without any problem.

I only tried once, but I attached it to a new program:

gdbserver 192.168.1.102:5000 /opt/tinymail/bin/tinymail

Other computer: gdb, target remote 192.168.1.102:5000

And gdbserver crashed. I forgot what it said. I think something about
"target not found" or something with the tinymail binary.

But I will very soon do some more tests. Also, for example, using an NFS
share from my /scratchbox/users/$user/SDK_ARMEL/opt :)


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 23:05 +0400, Mikhail Sobolev wrote:
> On Mon, Jul 17, 2006 at 08:58:46PM +0200, Philip Van Hoof wrote:
> > How can I thank you for letting me know there's a gdb package?
> It's not me, it's Ed Bartosh :)

Oh. Thanks Ed :)

> > The mmap() summaries are now working with tinymail on the Nokia 770.

> I believe, there's an issue with mmap on jffs2.  I'm not sure if it was
> already raised in that different thread...

I think it was that mmap can only be used read-only on jff2. But that's
not a problem here. I'm only using it read-only.

And it's working ;-). It can, of course, use some testing.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Re: The mmap stuff definitely needs more eyes!

2006-07-17 Thread Philip Van Hoof
Hi there,

This one works on the Nokia 770 device!

http://pvanhoof.be/files/camel_folder_summary_with_mmap_fixes11_data_alignment04.diff

So my real target has finally been reached. Using this stuff, it should
be possible to display huge folders using tinymail on a Nokia 770. 

With huge I mean: I'm expecting to support more than 20,000 headers per
folder. I don't know .. in theory it should even work with 100,000 or
more headers. But there's theory and reality. Lets test?

ps. It's of course going to take a while to receive the summary of such
a folder over wifi. 
ps. I only tested this (on the device) with the imap implementation.
ps. Other people, please test this?


On Mon, 2006-07-17 at 20:47 +0200, Philip Van Hoof wrote:
> Eeeek. Look at what I just found in my own patches!!
> 
> static CamelMessageInfo *
> message_info_load (CamelFolderSummary *s, FILE *in)
> {
>   CamelMessageInfo *info;
>   CamelImapMessageInfo *iinfo;
> 
>   info = camel_imap_summary_parent->message_info_load (s, in);
> 
>   if (info) {
>   unsigned char* ptrchr = s->filepos;
>   ptrchr = camel_file_util_mmap_decode_uint32 (ptrchr, 
> &iinfo->server_flags, FALSE);
>   s->filepos = ptrchr;
>   label_to_flags(iinfo);
>   }
> 
>   return info;
> }
> 
> 
> The "iinfo" is simply never assigned, yet being used! Eeek! *scared
> by my own mistakes now*. Very strange that didn't crash and burn on x86
> but does crash on ARM.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 22:37 +0400, Mikhail Sobolev wrote:
> On Mon, Jul 17, 2006 at 08:16:21PM +0200, Philip Van Hoof wrote:
> > > > I didn't try, no.
> > > You should definitely try first :)
> > > 
> > > gdbserver is included into gdb package. You can install it from 
> > > http://repository.maemo.org/ repo:
> > > 
> > > echo "deb http://repository.maemo.org/ mistral free non-free"
> > > >> /etc/apt/sources.list
> > > apt-get update && apt-get install gdb
> > The gdbserver didn't work. It crashed.
> Can you get a strace output or something and post a bug at
> https://maemo.org/bugzilla/ ?

How can I thank you for letting me know there's a gdb package?

Using that gdb I fixed the bug that caused the problem of which I
thought it was a data alignment issue.

The mmap() summaries are now working with tinymail on the Nokia 770.

I'm now creating a 50,000 messages IMAP folder for testing. In theory
the device should now have the ability to display such amounts.

What a simple gdb can do :). You Nokians should brag more about what is
available on the platform! I really didn't know that there's a gdb
package.

Anyhow ..

Thanks.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 22:37 +0400, Mikhail Sobolev wrote:
> On Mon, Jul 17, 2006 at 08:16:21PM +0200, Philip Van Hoof wrote:

> > > > I didn't try, no.
> > > You should definitely try first :)
> > > 
> > > gdbserver is included into gdb package. You can install it from 
> > > http://repository.maemo.org/ repo:
> > > 
> > > echo "deb http://repository.maemo.org/ mistral free non-free"
> > > >> /etc/apt/sources.list
> > > apt-get update && apt-get install gdb
> > The gdbserver didn't work. It crashed.
> Can you get a strace output or something and post a bug at
> https://maemo.org/bugzilla/ ?

I will definitely need if more often than just today and now. So I will
indeed try to iron out the problem and will post it on that bugzilla
once I'm certain it's not me doing things incorrectly.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 12:38 +0300, Ed Bartosh wrote:
 
> > I didn't try, no.
> You should definitely try first :)
> 
> gdbserver is included into gdb package. You can install it from 
> http://repository.maemo.org/ repo:
> 
> echo "deb http://repository.maemo.org/ mistral free non-free"
> >> /etc/apt/sources.list
> apt-get update && apt-get install gdb


The gdbserver didn't work. It crashed. But gdb on the device itself (in
an xterm), however does work. Pity it's a little bit difficult because
my ui's are always full screen. But I'll manage.

Thanks for these packages, whoever made them. This is really helping me.

Tapping "u p" and "d o w n" now :)


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 12:29 +0300, Ed Bartosh wrote:
> On Sun, 2006-07-16 at 20:31 +0200, ext Philip Van Hoof wrote:
> > On Sun, 2006-07-16 at 21:45 +0400, Mikhail Sobolev wrote:
> > > On Sun, Jul 16, 2006 at 06:10:18PM +0200, Philip Van Hoof wrote:
> > > > Nevertheless I'd like to re-empathize that software developers working
> > > > on embedded devices like the Nokia 770 are very much in need of a good
> > > > debugging infrastructure like gdbserver.
> > > Could you please be more specific?
> > 
> > 
> > Running gdbserver on the device. Or is that already possible? Afaik it's
> > not.

> It just works in my environment. What makes you think it doesn't work?
> Did you try to use it? What exactly didn't work?

Awesome .. how do I make it work? Is there an ARM package for it?

I didn't try, no.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Tinymail using mmap() gets killed by the kernel of the device

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 11:49 +0300, Eero Tamminen wrote:

> On Mon, Jul 17, 2006 at 10:12:21AM +0200, Philip Van Hoof wrote:


> > I cannot change these "to, from nor subject" pointers. These are used
> > in thousands of lines of Evolution code that I don't want to change.
> 
> There's no need to align access to chars.  Is there something that accesses
> the saved data as shorts, longs (ints), floats or doubles? Or casts the
> char pointers e.g. into int *?  (use -Wcast-align)

Yes. But I already did something to make sure that access is correct.

It's in the patch. Search for "get_unaligned_u32"

http://pvanhoof.be/files/camel_folder_summary_with_mmap_fixes11_data_alignment03.diff

Yet the patch still isn't working on ARM (and I don't have a debug
infrastructure, unless somebody can explain me how to set it up using
some emulator -- like qemu? --).


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Tinymail using mmap() gets killed by the kernel of the device

2006-07-17 Thread Philip Van Hoof
On Mon, 2006-07-17 at 09:55 +0300, Eero Tamminen wrote:
> Hi,
> 

> 
> Otherwise one just needs to be careful.

> As to this:
>   struct MyHeaderSummary
>   {
>  int16 foo;
>  char bar;
>  char string[MAXLEN]  __attribute__ ((aligned (4)));
>   };
> 
> If the point of this is to align the "string" member as a pointer
> would, 4 is not correct alignment for 64-bit architectures.


Regretfully, I can't change the structs. They are, in fact, put in the
structs as char pointers. What I do is calculate the offset in the
memory of the mmap to where these pointers need to point to.

The struct instances are kept alive for as long as the mmap isn't
munmap'ed. When the mmap gets munmap'ed, the struct instances also need
to die.

So it's more 'like' this (almost pseudo):

typedef struct _CamelMessageInfo CamelMessageInfo;
struct _CamelMessageInfo
{
/* .. */
char *to, *from, *subject;
/* .. */

unsigned char *mmap_addr;
};

CamelMessageInfo*
message_info_load (CamelSummaryInfo *s)
{
CamelMessageInfo *mi = malloc (sizeof (CamelMessageInfo ...));

mi->to = mmap_addr;
mmap_addr += length-of mi->to
mi->from = mmap_addr;

etc etc 

return mi;
}

CamelFolderSummary*
folder_summary_load ()
{
CamelFolderSummary *s = ...

s->mmap_addr = mmap (...);

folder_header_load (s);

for (i=0< i< s->message_count_in_header; s++)
{
CamelMessageInfo *mi;
mi = message_info_load (s);

folder_summary_add_mi (s, mi);
}
}


I cannot change these "to, from nor subject" pointers. These are used in
thousands of lines of Evolution code that I don't want to change.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A good debugger infrastructure

2006-07-16 Thread Philip Van Hoof
On Sun, 2006-07-16 at 21:45 +0400, Mikhail Sobolev wrote:
> On Sun, Jul 16, 2006 at 06:10:18PM +0200, Philip Van Hoof wrote:
> > Nevertheless I'd like to re-empathize that software developers working
> > on embedded devices like the Nokia 770 are very much in need of a good
> > debugging infrastructure like gdbserver.
> Could you please be more specific?


Running gdbserver on the device. Or is that already possible? Afaik it's
not.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] The Sardine is finally on the grill

2006-07-16 Thread Philip Van Hoof
On Sun, 2006-07-16 at 19:49 +0300, Carlos Guerreiro wrote:

> > Carlos, are there any plans to start organising the meetings we asked
> 
> No concrete plans yet but a clear understanding that they are needed and
> will happen soon.
> 
> > for during the BOF? I think the more early those get started, the
> > better.
> 
> Agreed. One thing we need to do first and is on my todo list is to setup
> a page in the Maemo Wiki to present the results of the BOF and follow up
> the consequent action. I hope to have that done very soon.

Hey Carlos,

Your efforts to get Nokia and Maemo even more close to the community are
inspiring. Please continue.


Thank you.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] The Sardine is finally on the grill

2006-07-16 Thread Philip Van Hoof
On Thu, 2006-07-13 at 17:45 +0300, Carlos Guerreiro wrote:

> Now, The Sardine is finally on the grill!

Great!

Carlos, are there any plans to start organising the meetings we asked
for during the BOF? I think the more early those get started, the
better.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] A good debugger infrastructure

2006-07-16 Thread Philip Van Hoof
I'm very sure this is well known by Nokians,

Nevertheless I'd like to re-empathize that software developers working
on embedded devices like the Nokia 770 are very much in need of a good
debugging infrastructure like gdbserver.

Please give it a high priority.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Re: The fixes11 mmap patch doesn't respect data alignment on some architectures

2006-07-16 Thread Philip Van Hoof
Hi there everybody who so far assisted me in trying to get the mmap-for-
camel patches to correctly data aligned. Thanks.

I will repeat the situation so that everybody has a clear idea of what
and why about this E-mail.

During the last weeks, I worked on Camel's summary loading. The summary
which Camel (a framework for E-mail access being used by Evolution and
tinymail) loads is typically used by E-mail clients like Evolution and
tinymail for displaying the summary.

The summary is a view with mostly headers like the "date received", the
"from" and the "subject" headers. Most E-mail clients have this and as
you might think, this is indeed one of the most memory and cpu consuming
ui pieces of a E-mail client.

Therefore I decided to mmap() this information rather than the current
fread implementation being used by Camel. You see, tinymail is targeted
for small devices with very few memory availability. Yet tinymail
promises displaying a lot such headers (more than 10,000). Tinymail can
already do this on a device like the Nokia 770. Even with the fread
implementation. But as a passionate software developer, I want more.

You can read some technical information on the mmap stuff here (and on
the Evolution hackers mailing list, and on other GNOME blogs).

http://pvanhoof.be/blog/index.php/the-camel-mmap-summary-stuff-what-is-this-all-about/

I want to display 150,000 headers. And I'm certain this is possible if I
make sure only the visible headers are really in memory. I know doing
that is possible, and I know the shortest path to getting their (going
from A to C without passing B) is mmap.

That is the reason why I did these Camel patches. Surprise, on a x86
architecture I'm already at B. This is actually working stuff on certain
architectures.

On architectures that require data aligned access to memory, however,
this isn't working. An example of a device using such an architecture is
the Nokia 770 which has an ARM cpu. The Nokia 770 *is* definitely a
target device for tinymail.

I have been trying, with very few experience with ARM and such data
aligned memory access, to get the patch to become data aligned.

I've received some very useful pointers and information. As Freddie
Mercury once said: "I thank you all".

I don't have debugger infrastructure for the Nokia 770, nor do I have an
emulator running where I can actually use a debugger on. Nor do I have
good testing infrastructure myself. So this is making it harder for me
to get it right (I'm thinking the problem is a very small one).

Using all these hints and tips, I cooked this version of the patch
(you'll find an URL below).

I will describe how you can get your hands dirty quickly:

It's possible that evolution-data-server is already migrated to GNOME's
Subversion (this migration is happening these days). Nevertheless should
this anonymous CVS infrastructure still work and is this patch based on
the anonymous CVS repository.

cvs -z3 -d :pserver:[EMAIL PROTECTED]:/cvs/gnome co evolution-data-server
cd evolution-data-server/camel
patch -p0 < thepatch
cd ..
./autogen.sh --prefix=/opt/camel && make && make install

The most important files are camel-file-utils.c and
camel-folder-summary.c. There's also some ./providers/*/*-summary.c
files that are also reading things from the mmap memory (like some
version integers).

You can get yourself a simple test E-mail client using tinymail:

svn co https://svn.tinymail.org/svn/tinymail/
cd tinymail/trunk
export PKG_CONFIG_PATH=/opt/camel/lib/pkgconfig
./autogen.sh --prefix=/opt/tinymail && make && make install

You can configure an account in tinymail using this simple script:
http://pvanhoof.be/files/tny-account-create.sh

If you go "online" and open a folder, it will create "summary" files in
for example:

$HOME/.tinymail/mail/imap/$hostname/folders/INBOX/summary

It's that file (for your INBOX folder) that will be mmap-ed if you close
that folder and re-open it (or if you restart the application).


This is the original patch that didn't care about data alignment at all.
This patch works:

http://pvanhoof.be/files/camel_folder_summary_with_mmap_fixes11.diff

This is my 3th attempt to get data alignment correct. It's not working
on a Nokia 770. It will (when the loading of the mmap stuff happens) get
killed. On the tty, it will print "Killed".

http://pvanhoof.be/files/camel_folder_summary_with_mmap_fixes11_data_alignment03.diff

The camel_folder_summary_load method is where all this starts.


On Sat, 2006-07-15 at 10:15 +0200, Philip Van Hoof wrote:
> On Fri, 2006-07-14 at 17:15 -0400, Jeffrey Stedfast wrote:
> > ah, you're going to have to pad strings and possibly other stuff.
> 
> The pstrings themselves and the 7bit encoded unsigned 32 integer bytes.
> Since data padding on ARM is 4 bytes (32bit), unsigned 

Re: [maemo-developers] Re: Tinymail using mmap() gets killed by the kernel of the device

2006-07-16 Thread Philip Van Hoof
On Sat, 2006-07-15 at 23:19 +0300, Tomi Ollila wrote:
> Philip Van Hoof <[EMAIL PROTECTED]> writes:
> 
> >
> > If somebody feels brave, feel free to assist me in getting it 4 byte
> > aligned ;-). I don't have a lot experience here.
> 
> (((char *)address + 3) & ~3)

I simply use this on each char* pointer? That's it?


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] strange thin crack in hardware... see fotos

2006-07-15 Thread Philip Van Hoof
On Sat, 2006-07-15 at 01:33 +0200, Collin R. Mulliner wrote:
> check out: http://www.mulliner.org/nokia770/pool/fotos/broken_hw/
> 
> ..it shows my device with a thin crack on the "connector panel" at the
> lower part of the device. The device still works 100% as far as I can
> tell. I can't recall dropping my device other then once from about 15cm
> to the carpet (this was some weeks ago). Today I discovered the strange
> crack which seems to go right through the "connector panel". Check out
> the 4 fotos I made.

Funny. I have exactly the same crack. I never dropped my device. I
thought it was because I kept the device in my laptop bag between
various other objects like adaptors and stuff


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Re: Tinymail using mmap() gets killed by the kernel of the device

2006-07-15 Thread Philip Van Hoof
On Fri, 2006-07-14 at 11:41 +0200, Philip Van Hoof wrote:
> When I run tinymail behind a camel with the mmap() patch, on the device,
> it will get killed by the kernel (it's not a Segfault, it's a kill by
> the kernel).
> 
> When I run tinymail (behind a camel with the mmap..) on my desktop or in
> scratchbox, everything works perfectly.
> 
> The OOM killer?
 
It turns out that the data of the summary file isn't 4 byte aligned.
This is probably the reason (as I didn't care about alignment when
writing the patch).

If somebody feels brave, feel free to assist me in getting it 4 byte
aligned ;-). I don't have a lot experience here.

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Re: Tinymail using mmap() gets killed by the kernel of the device

2006-07-14 Thread Philip Van Hoof
On Fri, 2006-07-14 at 11:15 +0100, Ross Burton wrote:
> On Fri, 2006-07-14 at 11:41 +0200, Philip Van Hoof wrote:
> > When I run tinymail behind a camel with the mmap() patch, on the device,
> > it will get killed by the kernel (it's not a Segfault, it's a kill by
> > the kernel).
> > 
> > When I run tinymail (behind a camel with the mmap..) on my desktop or in
> > scratchbox, everything works perfectly.
> > 
> > The OOM killer?
> 
> Check dmesg, the kernel logs when it OOMs.

I don't remember a OOM message in dmesg. But at the terminal it prints
"Killed" (if it would have been a segfault, it would have printed
Segmentation fault).

I'm not at a location where I can get Internet access over wifi and I've
been using tinymail using the non-mmap patch (causing it to overwrite my
summary files with ones that can't be opened with the mmap code). So I
can't test at this moment. I will probably recheck the dmesg logs
tomorrow or this evening.

I do know that the mmap() and munmap() syscalls don't make the kill
happen. I know this because I mmap() before I know whether the summary
file has the right version or not. It's also detecting an incorrect
version, so it can at least read the first bytes (for sure). So it must
be something that happens while parsing the memory block.

I know I had to use some guint32's, maybe those are differently written
to the file on ARM?

Regretfully I don't have a debugger for the device (afaik) so I can't
check where or what's happening.

Running tinymail with gdb on SDK_ARMEL also isn't working :-(


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Re: Tinymail using mmap() gets killed by the kernel of the device

2006-07-14 Thread Philip Van Hoof
On Fri, 2006-07-14 at 11:41 +0200, Philip Van Hoof wrote:
> When I run tinymail behind a camel with the mmap() patch, on the device,
> it will get killed by the kernel (it's not a Segfault, it's a kill by
> the kernel).
> 
> When I run tinymail (behind a camel with the mmap..) on my desktop or in
> scratchbox, everything works perfectly.
> 
> The OOM killer?

In this blog entry I describe how you can compile tinymail with this
mmap() patch. There's also binaries.

http://pvanhoof.be/blog/index.php/2006/07/13/its-not-a-release-but-its-available-for-your-nokia-770


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Tinymail using mmap() gets killed by the kernel of the device

2006-07-14 Thread Philip Van Hoof
When I run tinymail behind a camel with the mmap() patch, on the device,
it will get killed by the kernel (it's not a Segfault, it's a kill by
the kernel).

When I run tinymail (behind a camel with the mmap..) on my desktop or in
scratchbox, everything works perfectly.

The OOM killer?

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Fixing osso-email, building a custom treeview model. The technique in demo format

2006-01-12 Thread Philip Van Hoof
Hi there,

In this repository I demo the beginnings of how I would implement the
GtkTreeView crap for a client like osso-email

https://svn.cronos.be/svn/custom-treemodel-demo/trunk/


I also created a wiki pages that explains the major problems with the
current osso-email code, and how it could be fixed.

http://maemo.org/maemowiki/ImprovementIdeasForOssoEmail

Also check out my own wiki for more information

http://www.pvanhoof.be/wiki/index.php/Different_ways_of_using_GtkTreeView


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] New wiki page (IMprovementIdeasForOssoMail)

2006-01-11 Thread Philip Van Hoof
On Wed, 2006-01-11 at 11:22 +0100, Philip Van Hoof wrote:
> On Tue, 2006-01-10 at 12:43 +0100, Philip Van Hoof wrote:

> Somebody cleaned up the page. I added some more documentation and
> explanation. For example about proxy classes and custom models.
> 
> I also created a sample here: http://pastebin.com/500098

I updated the same, it now also actually works and has a IMsgHeader,
MsgHeader and MsgHeaderPrx just like how I explained it in the "Proxy"
solution section.

I attached it.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be
#include 

static int ELEMENT_COUNT = 1;
static int instantiations = 0;

static GtkWidget *window = NULL;

typedef struct _IMsgHeader IMsgHeader;
typedef struct _MsgHeader MsgHeader;
typedef struct _MsgHeaderPrx MsgHeaderPrx;

struct _IMsgHeader {
   const gchar* (*get_from_func) (IMsgHeader *this);
   const gint   (*get_id_func)   (IMsgHeader *this);

   gint id;
};

struct _MsgHeader {
   IMsgHeader parent;
   gchar *from;
};

struct _MsgHeaderPrx {
   IMsgHeader parent;
   MsgHeader *real;
};


/* IMsgHeader (late binding like) impl */
const gint
imsg_header_get_id (IMsgHeader *this)
{
return this->get_id_func (this);
}

const gchar* 
imsg_header_get_from (IMsgHeader *this)
{
return this->get_from_func (this);
}


/* Real subject impl */
MsgHeader* 
msg_header_new (gint id)
{
	MsgHeader *header = g_new0(MsgHeader, 1);

g_print ("Instantiation for id=%d (%d passed)\n!!",
		 id, instantiations);

	instantiations++;

	header->parent.id = id;
	header->from = g_strdup ("A real IMsgHeader subject!");

	return header;
}


/* Proxy impl */
const gchar*
msg_header_proxy_get_from (IMsgHeader *this_i)
{
   MsgHeaderPrx *this = (MsgHeaderPrx*)this_i;

   if (this->real == NULL)
   this->real = msg_header_new (this->parent.id);

   return this->real->from;
}

const gint
msg_header_proxy_get_id (IMsgHeader *this_i)
{
   MsgHeaderPrx *this = (MsgHeaderPrx*)this_i;

   if (this->real == NULL)
   this->real = msg_header_new (this->parent.id);

   return this->real->parent.id;
}


MsgHeaderPrx*
msg_header_proxy_new (gint id)
{
   MsgHeaderPrx *header = g_new0(MsgHeaderPrx, 1);

   header->parent.id = id;
   header->parent.get_from_func = msg_header_proxy_get_from;
   header->parent.get_id_func = msg_header_proxy_get_id;

   header->real = NULL;

   return header;
}


enum
{
   COLUMN_NUMBER,
   COLUMN_HEADER, 
   NUM_COLUMNS
};


static void
msg_header_treeview_destroy_model_item (gpointer data)
{
g_print ("Destroy\n");
}

static void
msg_header_treeview_get_model_item (GtkTreeViewColumn *tree_column,
   GtkCellRenderer   *cell,
   GtkTreeModel  *tree_model,
   GtkTreeIter   *iter,
   gpointer   data)
{
gint number;
IMsgHeader *header;

/* This function can call the getter on the item in the model.
 * Such an item can be a proxy class (IMsgHeaderPrx), triggering
 * this getter causes an instantiation (or getting it from a
 * factory with a cache) of a real subject (a real MsgHeader).
 *
 * The proxy now reads the value from the real subject and
 * returns it to fullfill the contract of the interface IMsgHeader.
 */

gtk_tree_model_get (tree_model, iter, COLUMN_HEADER, &header, -1);
g_print ("from=%s, %d\n", imsg_header_get_from (header), 
			imsg_header_get_id (header));
}

static GtkTreeModel *
create_model (void)
{
  gint i = 0;
  GtkListStore *store;
  GtkTreeIter iter;

  store = gtk_list_store_new (NUM_COLUMNS,
  G_TYPE_INT,
  G_TYPE_POINTER);


  for (i = 0; i < ELEMENT_COUNT; i++)
  {

  MsgHeaderPrx *header = msg_header_proxy_new (i);

  gtk_list_store_append (store, &iter);
  gtk_list_store_set (store, &iter,
			  COLUMN_NUMBER, header->parent.id,
  COLUMN_HEADER, header, -1);
  }

  return GTK_TREE_MODEL (store);
}


static void
add_columns (GtkTreeView *treeview)
{
  GtkCellRenderer *renderer;
  GtkTreeViewColumn *column;
  GtkTreeModel *model = gtk_tree_view_get_model (treeview);

  renderer = gtk_cell_renderer_text_new ();
  column = gtk_tree_view_column_new_with_attributes ("Number",
 renderer,
 "text",
 COLUMN_NUMBER,
 NULL);
  gtk_tree_view_column_set_sort_column_id (column, COLUMN_NUMBER);
  gtk_tree_view_colu

Re: [maemo-developers] New wiki page (IMprovementIdeasForOssoMail)

2006-01-11 Thread Philip Van Hoof
On Tue, 2006-01-10 at 12:43 +0100, Philip Van Hoof wrote:
> New wiki page.
> 
> Don't take what I've already mentioned on the wiki page personal.
> 
> As a software developer myself I know how things in a software
> development project go.
> 
> http://maemo.org/maemowiki/ImprovementIdeasForOssoEmail
> 
> And of course, feel free to improve the wiki page.

Somebody cleaned up the page. I added some more documentation and
explanation. For example about proxy classes and custom models.

I also created a sample here: http://pastebin.com/500098

Try the same sample without the fixed-width properties of the columns
and without the fixed-row-height properties of the treeview.

The result will be that in the background, a lot rows will be processed.

This is something you don't want to let happen on the Nokia 770, as this
would take enormous amounts of (mainly) I/O and CPU processing time in
case the instances in de list model are proxy classes and/or in case
you've created a custom model with 'lazy' getters.

I'll add this E-mail to the document . . .

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] New wiki page (IMprovementIdeasForOssoMail)

2006-01-10 Thread Philip Van Hoof
New wiki page.

Don't take what I've already mentioned on the wiki page personal.

As a software developer myself I know how things in a software
development project go. 

http://maemo.org/maemowiki/ImprovementIdeasForOssoEmail

And of course, feel free to improve the wiki page.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


RE: [maemo-developers] Integration with the backup tool

2006-01-09 Thread Philip Van Hoof
On Mon, 2006-01-09 at 01:23 -0800, Jason Mills wrote:

> I think (though I can't speak for Philip directly) that the request was for a
> more strongly-worded and detailed backup specification, including both
> run-state (i.e., pause-to-disk) and saved-state (backup/restore) of both the
> installed application's user data /and/ the application binary/libraries
> themselves.

Correct

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Integration with the backup tool

2006-01-08 Thread Philip Van Hoof
Hi there,

It would be nice if it would be possible to integrate with the backup
software of the Nokia.

That way, in case an upgrade of the device is a necessity, the user
wouldn't have to run all the backup softwares of all the ISV's that
created softwares for his mobility solution. In stead, using just one
tool would suffice: The Nokia tool. As all the ISV's had a standard to
implement backups of the application state.

It would also be 'nice' to some day have ABI and perhaps API stability.
And once that (ABI stability) is set in place, the flasher shouldn't
overwrite custom applications (but should perhaps warn about the fact
that the upgrade might break those).

I'm seeing the Nokia 770 as a potential candidate for development of
custom softwares. And since a lot of the device is free software,
therefore source included, I see it as a usable platform that is highly
customizable. 

If I where one of the Nokia decision makers, I'd "use" that fact. But
you guys are free to go in any direction you like. Just like how
developers and decision makers at ISV's (like my employer) are free to
pick other devices for such applications ;-).


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] A way to create my own flashable binaries

2006-01-08 Thread Philip Van Hoof

Hi there,

For a customer I'd like a way to create my own binaries which I can use
to flash a Nokia 770.

The reason is that this would make it more easy to do large deployments.

I was thinking like this:

mount -o loop -t nokia Nokia_770_$x.bin /mnt
mv /mnt/bin/sh /mnt/bin/sh.recoverme
cp /bin/sh /mnt/bin/sh
cp /usr/bin/dpkg /mnt/usr/bin/dkpg.x86
cp mystuff.deb /mnt/
chroot /mnt
cd /
dpkg.x86 -i mystuff.deb
exit
cp /mnt/bin/sh.recoverme /mnt/bin/sh
umount /mnt

for a in *.devices
do
  DEVNAME=`cat $a | grep DENAME | cut -d "=" -f 1`
  echo "Attach the next device ($DEVNAME) please"
  read

  flasher -F Nokia_770_$x.bin -f -R
  flasher --set-device-name $DEVNAME --reboot
done

-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] ANN: screenshot tool (mst 0.4)

2005-10-10 Thread Philip Van Hoof
On Tue, 2005-10-11 at 00:38 +0400, Mikhail Sobolev wrote:
> Hi
> 
> Let me announce the availability of the screenshot tool I mentioned
> earlier.
> 
> You can grab it at http://only.mawhrin.net/~mss/thingies/mst/
> 
> All feedback is welcome.

Perhaps it's a good idea to create an apt repository for non-official
Maemo packages (packages packaged and/or developed by non-Maemo
developers and/or packages that aren't included with the default
device)?

I hereby offer my bandwidth and server-harddisk for this specific
purpose. You can test the speed at, for example, http://mirror.freax.be/
(the device is co-located at realroot.be). But perhaps is the
Maemo-team/Nokia interested in doing this themselves? Which would also
be great, of course. Just note that it will most likely happen sooner or
later anyway.

If somebody (preferably somebody who knows a lot about Debian package
mirrors) is interested in setting it up, contact me.


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Documentation

2005-10-01 Thread Philip Van Hoof
On Sat, 2005-10-01 at 23:09 +0100, Andrew Wafaa wrote:
> Hi and great work so far guys and girls.
> 
> I'm just starting to learn about programming and thought that Maemo
> would be the best platform to start on.  I downloaded the SDK
> documentation, and noticed a few problems - spelling mistakes, grammar
> etc.  I know it's nothing big or anything, but I'm finding it a bit
> slow going with the mistakes and I'd hate it if people ended up
> holding it against the project.

> So with this in mind, could someone tell me how I would go about,
> rectifying these little problems within the documentation.  I mean is
> the an easily editable format available or would I have to basically
> re-write the whole damned thing?

Also note that the scratchbox related documentation (on Maemo.org) is a
bit outdated. And there's also a tiny issue with the d-bus package on
the latest stable scratchbox release.

I'd be nice to update this documentation (and fix the d-bus package). I
think many newcomers will have troubles trying to get the scratchbox
environment working cause of this outdated info.


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


RE: [maemo-developers] A few questions about the developmentplatforms internals

2005-09-29 Thread Philip Van Hoof
On Thu, 2005-09-29 at 11:55 +0200, Philip Van Hoof wrote:

> 
> Hey Karoliina,
> 
> I understand that it's harder than just applying my patches. So please
> take your time. It's urgent enough to destabilize Maemo.

Of course I meant that it's NOT urgent enough to ... :-)


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


RE: [maemo-developers] A few questions about the developmentplatforms internals

2005-09-29 Thread Philip Van Hoof
On Wed, 2005-09-28 at 14:51 +0300, [EMAIL PROTECTED] wrote:
> Hello,
> 
> Thanks for the patches for maemo-af-desktop and hildon-control-panel
> (plus libosso). 
> We will consider these after we do the d-bus upgrade.
> It requires further branching to start it, so I can't apply this right
> away, but
> I try to return to these as soon as I have branched the maemo-af-desktop
> and hildon-control-panel.

Hey Karoliina,

I understand that it's harder than just applying my patches. So please
take your time. It's urgent enough to destabilize Maemo.

The stability of the platform is more important than having a very
recent version of D-BUS.

Since D-BUS is going to stabilize their API, however, it's going to be
useful to eventually upgrade to a D-BUS version with a stabilized API. 

This will make it much more easy to target the Maemo devices for
development of applications (which is what we are planning to do at for
example X-Tend, the company where I am professionally employed).

Depending on the greatness of the platform and openness of the
Nokia/Maemo team you guys can expect more such patches and contributions
from people like me. That is a promise.

I'm confident for example the GNOME free software developers community
is very happy with how you guys are attempting to open up as much as
possible.

I'm looking forward and am excited to making this dream (an open
development platform for mobile devices) come true. Together with you
guys.


> >-Original Message-
> >From: [EMAIL PROTECTED] 
> >[mailto:[EMAIL PROTECTED] On Behalf Of ext 
> >Philip Van Hoof
> >Sent: 28 September, 2005 14:14
> >To: maemo-developers@maemo.org
> >Subject: Re: [maemo-developers] A few questions about the 
> >developmentplatforms internals
> >
> >This patch upgrades the D-BUS version of maemo-af-desktop
> >
> >--
> >Philip Van Hoof, software developer at x-tend
> >home: me at pvanhoof dot be
> >gnome: pvanhoof at gnome dot org
> >work: vanhoof at x-tend dot be
> >http://www.pvanhoof.be - http://www.x-tend.be
> >
-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Bug 98 (Was: Re: [maemo-developers] A few questions about the development platforms internals)

2005-09-28 Thread Philip Van Hoof
On request I've moved the patches to bugzilla:

https://www.maemo.org/bugzilla/show_bug.cgi?id=98

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
On Wed, 2005-09-28 at 13:39 +0200, Philip Van Hoof wrote:
> Disregard previous "dbus upgrade" patch for libosso, and use this one

No no no take this one :-)

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be
Index: src/osso-hw.c
===
--- src/osso-hw.c	(revision 1007)
+++ src/osso-hw.c	(working copy)
@@ -405,7 +405,7 @@
 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 }
 
-new_state = dbus_message_iter_get_boolean(&i);
+dbus_message_iter_get_basic (&i, &new_state);
 if (osso->hw_state.system_inactivity_ind != new_state) {
 osso->hw_state.system_inactivity_ind = new_state;
 if (osso->hw_cbs.system_inactivity_ind.set) {
@@ -425,7 +425,7 @@
 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 }
 
-s = dbus_message_iter_get_string(&i);
+dbus_message_iter_get_basic (&i, &s);
 if (strncmp(s, NORMAL_MODE, strlen(NORMAL_MODE)) == 0) {
 osso->hw_state.sig_device_mode_ind = OSSO_DEVMODE_NORMAL;
 write_device_state_to_file(NORMAL_MODE);
Index: src/osso-state.c
===
--- src/osso-state.c	(revision 1007)
+++ src/osso-state.c	(working copy)
@@ -23,6 +23,9 @@
 #include "osso-state.h"
 #include "osso-log.h"
 
+static osso_return_t _write_state(const gchar *statefile, osso_state_t *state);
+static osso_return_t _read_state(const gchar *statefile, osso_state_t *state);
+
 /**
  * This internal function performs a simple validation for the application
  * and version information of the osso_context regarding their validity
Index: src/osso-rpc.c
===
--- src/osso-rpc.c	(revision 1007)
+++ src/osso-rpc.c	(working copy)
@@ -96,7 +96,7 @@
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(retval == NULL) {
 	dbus_message_set_no_reply(msg, TRUE);
@@ -261,7 +261,7 @@
 if(msg == NULL)
 	return OSSO_ERROR;
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
@@ -412,9 +412,10 @@
 
 dbus_error_init(&err);
 
-dprint("acquiring service '%s'", service);
-i = dbus_bus_acquire_service(use_system_bus?osso->sys_conn:osso->conn,
- service, 0, &err);
+dprint("requesting service '%s'", service);
+
+i = dbus_bus_request_name (use_system_bus?osso->sys_conn:osso->conn,
+ service, 0, &err);		 
 #ifdef LIBOSSO_DEBUG
 if(i <= 0) {
 	if(i == 0) {
@@ -644,7 +645,7 @@
 	reply = dbus_message_new_error(msg, err_name, retval.value.s);
 	}
 	if(reply != NULL) {
-	int serial;
+	dbus_uint32_t serial;
 	dprint("sending message to '%s'",
 		   dbus_message_get_destination(reply));
 	
@@ -687,15 +688,11 @@
 	  case DBUS_TYPE_STRING:
 	s = va_arg(var_args, gchar *);
 	if(s == NULL)
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
+		dbus_message_append_args(msg, DBUS_TYPE_INT32,
 	 DBUS_TYPE_INVALID);
 	else
 		dbus_message_append_args(msg, type, s, DBUS_TYPE_INVALID);
 	break;
-	  case DBUS_TYPE_NIL:	
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
-	 DBUS_TYPE_INVALID);
-	break;
 	  default:
 	break;	
 	}
@@ -736,14 +733,11 @@
   case DBUS_TYPE_STRING:
 	dprint("Appending STR:'%s'",arg->value.s);
 	if(arg->value.s == NULL)
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
+	dbus_message_append_args(msg, DBUS_TYPE_INT32, DBUS_TYPE_INVALID);
 	else
 	dbus_message_append_args(msg, DBUS_TYPE_STRING, arg->value.s,
  DBUS_TYPE_INVALID);
 	break;
-  case DBUS_TYPE_NIL:
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
-	break;
   default:
 	break;	
 }
@@ -760,23 +754,23 @@
 retval->type = dbus_message_iter_get_arg_type(iter);
 switch(retval->type) {
   case DBUS_TYPE_INT32:
-	retval->value.i = dbus_message_iter_get_int32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.i);
 	dprint("got INT32:%d",retval->value.i);
 	break;
   case DBUS_TYPE_UINT32:
-	retval->value.u = dbus_message_iter_get_uint32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.u);
 	dprint("got UINT32:%u",retval->value.u);
 	break;
   case DBUS_TYPE_BOOLEAN:
-	retval->value.b = dbus_message_iter_get_boolean(iter);

Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
Disregard previous "dbus upgrade" patch for libosso, and use this one

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

Index: src/osso-hw.c
===
--- src/osso-hw.c	(revision 1007)
+++ src/osso-hw.c	(working copy)
@@ -405,7 +405,7 @@
 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 }
 
-new_state = dbus_message_iter_get_boolean(&i);
+dbus_message_iter_get_basic (&i, &new_state);
 if (osso->hw_state.system_inactivity_ind != new_state) {
 osso->hw_state.system_inactivity_ind = new_state;
 if (osso->hw_cbs.system_inactivity_ind.set) {
Index: src/osso-state.c
===
--- src/osso-state.c	(revision 1007)
+++ src/osso-state.c	(working copy)
@@ -23,6 +23,9 @@
 #include "osso-state.h"
 #include "osso-log.h"
 
+static osso_return_t _write_state(const gchar *statefile, osso_state_t *state);
+static osso_return_t _read_state(const gchar *statefile, osso_state_t *state);
+
 /**
  * This internal function performs a simple validation for the application
  * and version information of the osso_context regarding their validity
Index: src/osso-rpc.c
===
--- src/osso-rpc.c	(revision 1007)
+++ src/osso-rpc.c	(working copy)
@@ -96,7 +96,7 @@
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(retval == NULL) {
 	dbus_message_set_no_reply(msg, TRUE);
@@ -261,7 +261,7 @@
 if(msg == NULL)
 	return OSSO_ERROR;
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
@@ -412,9 +412,10 @@
 
 dbus_error_init(&err);
 
-dprint("acquiring service '%s'", service);
-i = dbus_bus_acquire_service(use_system_bus?osso->sys_conn:osso->conn,
- service, 0, &err);
+dprint("requesting service '%s'", service);
+
+i = dbus_bus_request_name (use_system_bus?osso->sys_conn:osso->conn,
+ service, 0, &err);		 
 #ifdef LIBOSSO_DEBUG
 if(i <= 0) {
 	if(i == 0) {
@@ -644,7 +645,7 @@
 	reply = dbus_message_new_error(msg, err_name, retval.value.s);
 	}
 	if(reply != NULL) {
-	int serial;
+	dbus_uint32_t serial;
 	dprint("sending message to '%s'",
 		   dbus_message_get_destination(reply));
 	
@@ -687,15 +688,11 @@
 	  case DBUS_TYPE_STRING:
 	s = va_arg(var_args, gchar *);
 	if(s == NULL)
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
+		dbus_message_append_args(msg, DBUS_TYPE_INT32,
 	 DBUS_TYPE_INVALID);
 	else
 		dbus_message_append_args(msg, type, s, DBUS_TYPE_INVALID);
 	break;
-	  case DBUS_TYPE_NIL:	
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
-	 DBUS_TYPE_INVALID);
-	break;
 	  default:
 	break;	
 	}
@@ -736,14 +733,11 @@
   case DBUS_TYPE_STRING:
 	dprint("Appending STR:'%s'",arg->value.s);
 	if(arg->value.s == NULL)
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
+	dbus_message_append_args(msg, DBUS_TYPE_INT32, DBUS_TYPE_INVALID);
 	else
 	dbus_message_append_args(msg, DBUS_TYPE_STRING, arg->value.s,
  DBUS_TYPE_INVALID);
 	break;
-  case DBUS_TYPE_NIL:
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
-	break;
   default:
 	break;	
 }
@@ -760,23 +754,23 @@
 retval->type = dbus_message_iter_get_arg_type(iter);
 switch(retval->type) {
   case DBUS_TYPE_INT32:
-	retval->value.i = dbus_message_iter_get_int32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.i);
 	dprint("got INT32:%d",retval->value.i);
 	break;
   case DBUS_TYPE_UINT32:
-	retval->value.u = dbus_message_iter_get_uint32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.u);
 	dprint("got UINT32:%u",retval->value.u);
 	break;
   case DBUS_TYPE_BOOLEAN:
-	retval->value.b = dbus_message_iter_get_boolean(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.b);
 	dprint("got BOOLEAN:%s",retval->value.s?"TRUE":"FALSE");
 	break;
   case DBUS_TYPE_DOUBLE:
-	retval->value.d = dbus_message_iter_get_double(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.d);
 	dprint("got DOUBLE:%f",retval->value.d);
 	break;
   case DBUS_TYPE_STRING:
-	str = dbus_message_iter_get_string (iter);
+	dbus_message_iter_get_bas

Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
This patch upgrades the D-BUS version of hildon-control-panel

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be
Index: hildon-control-panel-main.c
===
--- hildon-control-panel-main.c	(revision 1007)
+++ hildon-control-panel-main.c	(working copy)
@@ -905,12 +905,13 @@
 confirm_dialog = hildon_note_new_confirmation
 (GTK_WINDOW(state_data.window), 
  RESET_FACTORY_SETTINGS_INFOBANNER);
-
+ /* TODO:   
 hildon_note_set_button_texts
 (HILDON_NOTE(confirm_dialog),
  RESET_FACTORY_SETTINGS_INFOBANNER_CLOSE_ALL,
  RESET_FACTORY_SETTINGS_INFOBANNER_CANCEL);
-
+   */
+	
 gtk_widget_show_all(confirm_dialog);
 i = gtk_dialog_run(GTK_DIALOG(confirm_dialog));
 
@@ -929,6 +930,7 @@
 GtkWidget *pw_dialog = (hildon_get_password_dialog_new(
 GTK_WINDOW(state_data.window), FALSE));
 
+/* TODO
 hildon_get_password_dialog_set_title
 (HILDON_GET_PASSWORD_DIALOG(pw_dialog), 
  RESET_FACTORY_SETTINGS_PASSWORD_DIALOG_TITLE);
@@ -936,7 +938,7 @@
 hildon_get_password_dialog_set_caption
 (HILDON_GET_PASSWORD_DIALOG(pw_dialog), 
  RESET_FACTORY_SETTINGS_PASSWORD_DIALOG_CAPTION);
-/*
+
 hildon_get_password_dialog_set_max_characters
 (HILDON_GET_PASSWORD_DIALOG(pw_dialog),
  HILDON_CP_ASSUMED_LOCKCODE_MAXLENGTH);
@@ -1228,7 +1230,7 @@
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
 
-dbus_message_set_auto_activation(msg, FALSE);
+dbus_message_set_auto_start(msg, FALSE);
 
 dbus_error_init(&err);
 timeout_retval = osso_rpc_get_timeout(osso, &timeout);
@@ -1300,15 +1302,11 @@
 	  case DBUS_TYPE_STRING:
 	s = va_arg(var_args, gchar *);
 	if(s == NULL)
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
+		dbus_message_append_args(msg, DBUS_TYPE_INT32,
 	 DBUS_TYPE_INVALID);
 	else
 		dbus_message_append_args(msg, type, s, DBUS_TYPE_INVALID);
 	break;
-	  case DBUS_TYPE_NIL:	
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
-	 DBUS_TYPE_INVALID);
-	break;
 	  default:
 	break;	
 	}
@@ -1325,33 +1323,36 @@
 retval->type = dbus_message_iter_get_arg_type(iter);
 switch(retval->type) {
   case DBUS_TYPE_INT32:
-	retval->value.i = dbus_message_iter_get_int32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.i);
 	dprint("got INT32:%d",retval->value.i);
 	break;
   case DBUS_TYPE_UINT32:
-	retval->value.u = dbus_message_iter_get_uint32(iter);
+	dbus_message_iter_get_basic(iter, &retval->value.u);
 	dprint("got UINT32:%u",retval->value.u);
 	break;
   case DBUS_TYPE_BOOLEAN:
-	retval->value.b = dbus_message_iter_get_boolean(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.b);
 	dprint("got BOOLEAN:%s",retval->value.s?"TRUE":"FALSE");
 	break;
   case DBUS_TYPE_DOUBLE:
-	retval->value.d = dbus_message_iter_get_double(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.d);
 	dprint("got DOUBLE:%f",retval->value.d);
 	break;
   case DBUS_TYPE_STRING:
-	retval->value.s = 
-	g_strdup(dbus_message_iter_get_string(iter));
+  {
+char *str;
+	dbus_message_iter_get_basic (iter, &str);
+	
+	retval->value.s = g_strdup(str);
+	dbus_free (str);
+	
 	if(retval->value.s == NULL) {
 	retval->type = DBUS_TYPE_INVALID;
 	}
 	dprint("got STRING:'%s'",retval->value.s);
+	}
 	break;
-  case DBUS_TYPE_NIL:
-	retval->value.s = NULL;	
-	dprint("got NIL");
-	break;
+
   default:
 	retval->type = DBUS_TYPE_INVALID;
 	retval->value.i = 0;	
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
This patch upgrades the D-BUS version of maemo-af-desktop

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be
Index: hildon-status-bar/hildon-status-bar-main.c
===
--- hildon-status-bar/hildon-status-bar-main.c	(revision 1007)
+++ hildon-status-bar/hildon-status-bar-main.c	(working copy)
@@ -298,8 +298,7 @@
 val[0]->type != DBUS_TYPE_STRING ||
 val[1]->type != DBUS_TYPE_INT32 ||
 val[2]->type != DBUS_TYPE_INT32 ||
-( val[3]->type != DBUS_TYPE_STRING && 
-  val[3]->type != DBUS_TYPE_NIL ) )
+( val[3]->type != DBUS_TYPE_STRING ) )
 {
 retval->type = DBUS_TYPE_STRING;
 if( arguments->len < 4 )
@@ -313,7 +312,7 @@
  val[3]->type,
  DBUS_TYPE_STRING, DBUS_TYPE_INT32,
  DBUS_TYPE_INT32, DBUS_TYPE_STRING,
- DBUS_TYPE_NIL);
+ DBUS_TYPE_INT32);
 }
 osso_log( LOG_ERR, retval->value.s );
 if(retval->value.s){
@@ -354,8 +353,7 @@
 val[1]->type != DBUS_TYPE_INT32 ||
 val[2]->type != DBUS_TYPE_INT32 ||
 val[3]->type != DBUS_TYPE_STRING || 
-	(arguments->len == 5 && val[5]->type != DBUS_TYPE_NIL 
-	) )
+	(arguments->len == 5 ) )
 	  {
 retval->type = DBUS_TYPE_STRING;
 if( arguments->len < 5 ) {
Index: hildon-navigator/others-menu.c
===
--- hildon-navigator/others-menu.c	(revision 1007)
+++ hildon-navigator/others-menu.c	(working copy)
@@ -413,7 +413,7 @@
 static void others_menu_changed_cb( char *path, _om_changed_cb_data_t *data )
 {
 	/* Remove callbacks */
- 	hildon_dnotify_remove_every_cb();
+ 	/* TODO: hildon_dnotify_remove_every_cb(); */
 
 	/* Destroy the menu */
 	gtk_widget_destroy( data->widget );
Index: hildon-navigator/osso-manager.c
===
--- hildon-navigator/osso-manager.c	(revision 1007)
+++ hildon-navigator/osso-manager.c	(working copy)
@@ -241,7 +241,7 @@
 con = (DBusConnection *)osso_get_dbus_connection(man->osso);
 
 dbus_error_init(&error);
-n = dbus_bus_service_exists(con,buf,&error);
+n = dbus_bus_name_has_owner(con,buf,&error);
 
 if (dbus_error_is_set(&error))
 {
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
On Wed, 2005-09-28 at 10:51 +0200, Philip Van Hoof wrote:

> o. What is libmb?
> 
> [EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name libmb.pc
> [EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name mb.pc
> [EMAIL PROTECTED]:~/cvs/maemo/trunk $

Aha, that is libmatchbox

> o. What is libouto?
> 
> [EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name outo
> [EMAIL PROTECTED]:~/cvs/maemo/trunk $

And this is for unit testing, right?


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof

Oh, about the attachment of previous E-mail.

I ported libosso to a newer D-BUS version. 

Note that I can't compile the other D-BUS parts because I don't have or
know about the libmb and libouto libraries.


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] A few questions about the development platforms internals

2005-09-28 Thread Philip Van Hoof
Hi there,

I was wondering 

o. Why isn't libosso created as a clean and correct GObject library?
This would have made it more easy to create language bindings. No?

I could imagine a GObject would be dangerous if you'd use a lot
threading (and then still it's manageable and are people working on
fixing those issues), but I don't see a lot other thread-safety related
code in the library. So I'm assuming that isn't an issue?

Because ... osso_context_t (and osso_af_context_t) isn't inheriting from
GObject. So that must mean that it isn't GObject? And if it would, I'd
rather make more objects in stead of only a context one (but, okay .. I
can live with that).

o. What is libmb?

[EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name libmb.pc
[EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name mb.pc
[EMAIL PROTECTED]:~/cvs/maemo/trunk $

o. What is libouto?

[EMAIL PROTECTED]:~/cvs/maemo/trunk $ find . -name outo
[EMAIL PROTECTED]:~/cvs/maemo/trunk $



-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be
Index: osso-state.c
===
--- osso-state.c	(revision 1007)
+++ osso-state.c	(working copy)
@@ -23,6 +23,9 @@
 #include "osso-state.h"
 #include "osso-log.h"
 
+static osso_return_t _write_state(const gchar *statefile, osso_state_t *state);
+static osso_return_t _read_state(const gchar *statefile, osso_state_t *state);
+
 /**
  * This internal function performs a simple validation for the application
  * and version information of the osso_context regarding their validity
Index: osso-rpc.c
===
--- osso-rpc.c	(revision 1007)
+++ osso-rpc.c	(working copy)
@@ -96,7 +96,7 @@
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(retval == NULL) {
 	dbus_message_set_no_reply(msg, TRUE);
@@ -261,7 +261,7 @@
 if(msg == NULL)
 	return OSSO_ERROR;
 
-dbus_message_set_auto_activation(msg, TRUE);
+dbus_message_set_auto_start(msg, TRUE);
 
 if(first_arg_type != DBUS_TYPE_INVALID)
 	_append_args(msg, first_arg_type, var_args);
@@ -412,9 +412,10 @@
 
 dbus_error_init(&err);
 
-dprint("acquiring service '%s'", service);
-i = dbus_bus_acquire_service(use_system_bus?osso->sys_conn:osso->conn,
- service, 0, &err);
+dprint("requesting service '%s'", service);
+
+i = dbus_bus_request_name (use_system_bus?osso->sys_conn:osso->conn,
+ service, 0, &err);		 
 #ifdef LIBOSSO_DEBUG
 if(i <= 0) {
 	if(i == 0) {
@@ -644,7 +645,7 @@
 	reply = dbus_message_new_error(msg, err_name, retval.value.s);
 	}
 	if(reply != NULL) {
-	int serial;
+	dbus_uint32_t serial;
 	dprint("sending message to '%s'",
 		   dbus_message_get_destination(reply));
 	
@@ -687,15 +688,11 @@
 	  case DBUS_TYPE_STRING:
 	s = va_arg(var_args, gchar *);
 	if(s == NULL)
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
+		dbus_message_append_args(msg, DBUS_TYPE_INT32,
 	 DBUS_TYPE_INVALID);
 	else
 		dbus_message_append_args(msg, type, s, DBUS_TYPE_INVALID);
 	break;
-	  case DBUS_TYPE_NIL:	
-		dbus_message_append_args(msg, DBUS_TYPE_NIL,
-	 DBUS_TYPE_INVALID);
-	break;
 	  default:
 	break;	
 	}
@@ -736,14 +733,11 @@
   case DBUS_TYPE_STRING:
 	dprint("Appending STR:'%s'",arg->value.s);
 	if(arg->value.s == NULL)
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
+	dbus_message_append_args(msg, DBUS_TYPE_INT32, DBUS_TYPE_INVALID);
 	else
 	dbus_message_append_args(msg, DBUS_TYPE_STRING, arg->value.s,
  DBUS_TYPE_INVALID);
 	break;
-  case DBUS_TYPE_NIL:
-	dbus_message_append_args(msg, DBUS_TYPE_NIL, DBUS_TYPE_INVALID);
-	break;
   default:
 	break;	
 }
@@ -760,23 +754,23 @@
 retval->type = dbus_message_iter_get_arg_type(iter);
 switch(retval->type) {
   case DBUS_TYPE_INT32:
-	retval->value.i = dbus_message_iter_get_int32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.i);
 	dprint("got INT32:%d",retval->value.i);
 	break;
   case DBUS_TYPE_UINT32:
-	retval->value.u = dbus_message_iter_get_uint32(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.u);
 	dprint("got UINT32:%u",retval->value.u);
 	break;
   case DBUS_TYPE_BOOLEAN:
-	retval->value.b = dbus_message_iter_get_boolean(iter);
+	dbus_message_iter_get_basic (iter, &retval->value.b);
 	dprint("got BOOLEAN:%s",retval->value.s?"TRUE":"FALSE&q

Re: [Evolution-hackers] Re: [maemo-developers] Ross' D-BUS port of evolution-data-server on maemo x86

2005-09-28 Thread Philip Van Hoof
On Wed, 2005-09-28 at 09:37 +0300, Tor Lillqvist wrote:
> On on, 2005-09-28 at 01:39 +0200, Philip Van Hoof wrote:
> 
> > However. Building "servers" first also temporarily fixes the issue.
> 
> But shouldn't it have been built first in any case? It's mentioned first
> in e-d-s/Makefile.am's SUBDIRS.
> 

Perhaps is the groupware-server/provider target in another targets
_DEPENDENCIES (and does it get build long before it should get build)?

Well, it's a strange problem indeed. Also because it doesn't get fixed
by adding a _DEPENDENCIES to the target in question.

But I've had many autotools related strange problems like this before :(


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Ross' D-BUS port of evolution-data-server on maemo x86

2005-09-27 Thread Philip Van Hoof
On Tue, 2005-09-27 at 01:04 +0200, Philip Van Hoof wrote:

Hey Ross,

I noticed you've read this thread,

[CUT]

> ps. It stops here. But I'm not sure whether this is related to the Maemo
> platform, since I can reproduce this build-error on a non scratchbox
> environment.
> 
> se-transport.Tpo -c camel-groupwise-transport.c  -fPIC -DPIC
> -o .libs/camel-groupwise-transport.o
> make[4]: *** No rule to make target
> `../../../servers/groupwise/libegroupwise-1.2.la', needed by
> `libcamelgroupwise.la'.  Stop.
> make[4]: Leaving directory
> `/home/freax/dev/evolution-data-server/camel/providers/groupwise'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory
> `/home/freax/dev/evolution-data-server/camel/providers'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/home/freax/dev/evolution-data-server/camel'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/freax/dev/evolution-data-server'
> make: *** [all] Error 2
> [sbox-SDK_PC: ~/dev/evolution-data-server] >

This should be fixable using a DEPENDENCIES macro in the Makefile.am,
but it doesn't fix the problem for me (guessing this is a autotools
issue).

However. Building "servers" first also temporarily fixes the issue.

Other than that what I basically had to do was to disable groupwise. And
then everything works out fine.

http://pvanhoof.be/files/eds_on_maemo.png

I can send you a patch if you like, but I don't think it's going to be
very useful. It basically disables all the groupwise stuff . . .



-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] TomTom on Maemo/Nokia 770?

2005-09-27 Thread Philip Van Hoof
Hi there,

At our company (X-Tend) we'd be very interested in having the option to
let TomTom run on the Nokia 770.

Are there plans (at TomTom) to sell/package their software in such a way
that it's installable and usable on the Nokia 770?

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: [maemo-developers] Ross' D-BUS port of evolution-data-server on maemo x86

2005-09-27 Thread Philip Van Hoof
On Tue, 2005-09-27 at 09:03 +0300, Kalle Vahlman wrote:

> You might get it running, but even without any thorough meditation on
> this, I'd say you need to dump most of the UI anyway to make it
> feasible for usage on the device. Not only due to the small screen
> size[1], but also for performance reasons. The device is very limited
> memory wise (for desktop app scale), and basically you don't need or
> can to have all the options present for a device like this.


Of course, however. A lot of the functionality of evolution is being
implemented in evolution-data-server. Creating a new specialised shell
is also feasible.

Evolution-data-server is less memory intensive than the (current) shell.

ps. I altered the Evolution mailing list address in the CC header,
because that mailing list has changed since a few months.


-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


[maemo-developers] Ross' D-BUS port of evolution-data-server on maemo x86

2005-09-26 Thread Philip Van Hoof
Hi there fellow hackitiehackers,

I've just tried compiling libsoup and Ross's D-BUS port of evolution-
data-server on Maemo-x86 in a scratchbox.

Note that this is only the first part of evolution, of course. The shell
is, of course, the most difficult part. Mainly because it heavily relies
on Bonobo and ORBit-2. So to get Evolution running on Maemo, it might be
more easy to get ORBit-2/Bonobo running first rather than to attempt
removing this dependency right now.

I had to alter the configure.in of Ross's evolution-data-server a little
bit. I attached the patch.

evolution-data-server has been configured as follows:
LDAP support: no
NNTP support: yes
LibSoup support:yes
Kerberos 4/5: no/no
SSL support:  no
SMIME support:no
IPv6 support: yes
Exchange support: no
Dot Locking:  yes
File Locking: fcntl
Gtk Doc:  no


Steps:

cvs -z3 co -r gnome-2-10 libsoup
cd libsoup
./autogen.sh --prefix=/opt/evo
make
make install
cd ..
cd evolution-data-server/trunk
patch < patch.diff
PKG_CONFIG_PATH=/opt/evo/lib/pkgconfig ./autogen.sh --with-dbus=yes
--with-libgnome=no --prefix=/opt/evo/
make
make install


ps. It stops here. But I'm not sure whether this is related to the Maemo
platform, since I can reproduce this build-error on a non scratchbox
environment.

se-transport.Tpo -c camel-groupwise-transport.c  -fPIC -DPIC
-o .libs/camel-groupwise-transport.o
make[4]: *** No rule to make target
`../../../servers/groupwise/libegroupwise-1.2.la', needed by
`libcamelgroupwise.la'.  Stop.
make[4]: Leaving directory
`/home/freax/dev/evolution-data-server/camel/providers/groupwise'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/home/freax/dev/evolution-data-server/camel/providers'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/freax/dev/evolution-data-server/camel'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/freax/dev/evolution-data-server'
make: *** [all] Error 2
[sbox-SDK_PC: ~/dev/evolution-data-server] >



By the way, Nokia dudes: We are waiting for the device to become
available here in Belgium. Oh and ... since I won one at Guadec. I can't
wait! Send it! :-) *spasm, spasm*

-- 
Philip Van Hoof, software developer at x-tend
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
work: vanhoof at x-tend dot be
http://www.pvanhoof.be - http://www.x-tend.be
Index: configure.in
===
--- configure.in	(revision 212)
+++ configure.in	(working copy)
@@ -1124,6 +1124,7 @@
 AC_MSG_RESULT($with_dbus)
 
 dnl Should we use libgnome functions or not
+if test "x${with_dbus}" = "xno"; then
 AC_MSG_CHECKING(if we should use libgnome)
 AC_ARG_WITH(libgnome, [  --with-libgnome=[yes,no]Disable the use of libgnome.],
 	with_libgnome="$withval", with_libgnome="yes")
@@ -1131,9 +1132,10 @@
 AC_DEFINE(WITH_LIBGNOME, 1, [Define if libgnome should be used])
 fi
 AC_MSG_RESULT($with_libgnome)
+fi
 
 if test "x${with_dbus}" = "xno"; then
-AM_PATH_ORBIT2(2.9.8)
+dnl AM_PATH_ORBIT2(2.9.8)
 
 AC_MSG_CHECKING(for CORBA include paths)
 IDL_INCLUDES="-I "`pkg-config --variable=idldir libbonobo-2.0`" -I "`pkg-config --variable=idldir bonobo-activation-2.0`
@@ -1145,12 +1147,14 @@
 IPC_DEPS="dbus-glib-1"
 fi
 
+if test "x${with_dbus}" = "xno"; then
 if test "x${with_libgnome}" != "xno"; then
 AC_MSG_CHECKING(for libgnomeui server directory)
 GNOMEUI_SERVERDIR="`$PKG_CONFIG --variable=libgnomeui_serverdir libgnomeui-2.0`"
 AC_MSG_RESULT($GNOMEUI_SERVERDIR)
 AC_DEFINE_UNQUOTED(GNOMEUI_SERVERDIR, "$GNOMEUI_SERVERDIR", [Path where we can find gnome_segv2])
 fi
+fi
 
 dnl Utility macro to set compiler flags for a specific lib.
 dnl  EVO_SET_COMPILE_FLAGS(VAR-PREFIX, DEPS, EXTRA-CFLAGS, EXTRA-LIBS)
@@ -1172,7 +1176,11 @@
 AC_SUBST(E_DATA_SERVER_CFLAGS)
 AC_SUBST(E_DATA_SERVER_LIBS)
 
+if test "x${with_dbus}" = "xno"; then
 E_DATA_SERVER_UI_DEPS="gtk+-2.0 libglade-2.0 gconf-2.0 libgnome-2.0"
+else
+E_DATA_SERVER_UI_DEPS="gtk+-2.0 libglade-2.0 gconf-2.0"
+fi
 
 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, $THREADS_CFLAGS, $THREADS_LIBS)
 AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers