Re: [Evolution-hackers] Missing half of my preferences ... ?

2007-11-23 Thread Milan Crha
Hello,
is there anything on the console? There should be some message
explaining what's going on, probably.

I have there (from top to bottom) Mail Accounts, Autocompletion, Mail
Preferences, Composer Preferences, Calendar and Tasks, Certificates.

All about mail is missing for you, hmm. You've probably broken mail
component. I'm using fresh SVN version and works for me, maybe recompile
whole project, after 'make distclean'. But depends on the messages on
console.

Bye,
Milan


On Fri, 2007-11-23 at 13:34 -0500, Paul Smith wrote:
 I'm using Evo from SVN HEAD, latest version as of just this morning.
 For the last week or so at least, when I select Edit - Preferences,
 most of my options in the left menu are missing.  I have Autocompletion,
 Calendar and Tasks, and Certificates, and that's all; I'm missing Mail
 and Composer stuff altogether, and whatever else should be there (I
 can't actually remember!)
 
 Does anyone else see this, or is there something corrupted about my
 environment?
 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Missing half of my preferences ... ?

2007-11-23 Thread Milan Crha
I think you've mixed up versions, somehow/probably. Try 'make
distclean', check if you've setup right paths for libraries, eds and so
on, and then ./autogen.sh ... whole evolution. I guess it compiled
against older factory, which didn't know those components of version
2.22. (probably older object file, maybe from other directory?)
Milan

On Fri, 2007-11-23 at 15:10 -0500, Paul Smith wrote:
 On Fri, 2007-11-23 at 20:55 +0100, Milan Crha wrote:
  is there anything on the console? There should be some message
  explaining what's going on, probably.
 
 Doh!  I turn on all debugging and carefully keep it around but I forgot
 to look.  You're right, when I select Preferences I get this:
 
 (evolution:30484): evolution-mail-CRITICAL **: file 
 mail-config-factory.c: line 52 (mail_config_control_factory_cb): should not 
 be reached
 
 (evolution:30484): evolution-shell-WARNING **: Cannot activate 
 OAFIID:GNOME_Evolution_Mail_ComposerPrefs_ConfigControl:2.22 -- Factory 
 `OAFIID:GNOME_Evolution_Mail_Factory:2.22' returned NIL for 
 `OAFIID:GNOME_Evolution_Mail_ComposerPrefs_ConfigControl:2.22'
 
 (evolution:30484): evolution-mail-CRITICAL **: file 
 mail-config-factory.c: line 52 (mail_config_control_factory_cb): should not 
 be reached
 
 (evolution:30484): evolution-shell-WARNING **: Cannot activate 
 OAFIID:GNOME_Evolution_Mail_MailerPrefs_ConfigControl:2.22 -- Factory 
 `OAFIID:GNOME_Evolution_Mail_Factory:2.22' returned NIL for 
 `OAFIID:GNOME_Evolution_Mail_MailerPrefs_ConfigControl:2.22'
 
 (evolution:30484): evolution-mail-CRITICAL **: file 
 mail-config-factory.c: line 52 (mail_config_control_factory_cb): should not 
 be reached
 
 (evolution:30484): evolution-shell-WARNING **: Cannot activate 
 OAFIID:GNOME_Evolution_Mail_AccountPrefs_ConfigControl:2.22 -- Factory 
 `OAFIID:GNOME_Evolution_Mail_Factory:2.22' returned NIL for 
 `OAFIID:GNOME_Evolution_Mail_AccountPrefs_ConfigControl:2.22'
 
 

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution doesn't honor LC_TIME (and other LC_ variables)

2008-03-05 Thread Milan Crha
Hello,
please consider already filled bugs too, see
http://bugzilla.gnome.org/buglist.cgi?query=product%3Aevolution+date
+time+format

It gave me 30 bugs today. They are more or less related to the thing you
are going to do.
Bye,
Milan

On Wed, 2008-03-05 at 20:16 +0100, Raúl Núñez de Arenas Coronado wrote:
 I'll try to have some patch by tomorrow evening.
 
 Raúl DervishD Núñez de Arenas Coronado

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Largefile support

2008-04-15 Thread Milan Crha
On Mon, 2008-04-07 at 14:23 -0400, Jeffrey Stedfast wrote:
 On Mon, 2008-04-07 at 13:29 -0400, Matthew Barnes wrote:
  On Mon, 2008-04-07 at 12:43 -0400, Jeffrey Stedfast wrote:
   The only 'gotcha' I can think of by enabling it by default is that it
   might break ABI if old builds were 32bit off_t's (the new off_t's would
   be 64bit).
  
  
   Oh, and fwiw, looking ahead, it may even be worth changing the public
   API to take goffset's rather than off_t's if breaking API is acceptable
   since it will prevent future off_t size issues (since I believe that
   goffset is supposed to be an int64_t)
  
  Yeah, and this would be the opportune time to do that if we're going to
  (early in the development cycle).  Sounds like we should wait to enable
  largefile support by default until we do the goffset replacement, and
  then ship both changes at once with a soname bump.
 
 sounds reasonable to me
 
 Jeff

Hi Jeff,
I looked a bit at this, and even it seemed as 'find and replace' work,
then it finally showed up that off_t is saved in a summary file.

I'm not sure how to properly (and in the simplest way) handle this. The
only thing I can think of is bump summary file version to indicate all
offsets are 64bit regardless of the machine architecture, and for those
old version files read the offset either as 32 bit or 64 bit. The
problem is, when we turn on the large file support, then I cannot
recognize what was the old size of off_t (before turning this on). Maybe
I can do it with sizeof(int), which will tell me whether I'm on 32 or 64
bit machine, but it seems kinda strange (and smells like hack) to me.
Also, I didn't check code completely, but is it right that summaries are
overwritten always whole or did I misread code?

Maybe there is better way, just drop summary if it's an old version and
rebuild it, but I do not want to go by this way, because for local
summaries there are (more or less) important data like user tags/flags,
which I believe we should not delete to the user.

Maybe any migration code? I still think I will need to know the old size
of off_t anyway. And I would like to do that as much transparent as
possible.

What is your idea?

Bye and thanks,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] e_canvas_new in Evolution

2008-06-13 Thread Milan Crha
On Fri, 2008-06-13 at 12:17 +0530, svalbard colaco wrote:
 Yup i got the sources but there is nt any anti-aliasedaa 
  mode of canvas generation . and e_canvas are diffrent from
 gnome_canvases 
 i think.
 Neither did i get a function for repainting a canavs.
 
 Any more suggestions?

Hi,
based on the code, ECanvas is a descendant of the GnomeCanvas. I would
suggest, for testing, changing e_canvas_new from:

GtkWidget *
e_canvas_new (void)
{
return GTK_WIDGET (g_object_new (E_CANVAS_TYPE, NULL));
}

to

GtkWidget *
e_canvas_new (void)
{
return GTK_WIDGET (g_object_new (E_CANVAS_TYPE,
aa, TRUE, NULL));
}

or something like that.
For calling redraw, you can do it in a same way as for GnomeCanvas.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] e_canvas_new in Evolution

2008-06-13 Thread Milan Crha
On Fri, 2008-06-13 at 17:16 +0530, svalbard colaco wrote:
 Thanks for your prompt reply,
 aa is not a member of the ECANVAS structure ;
 
 In gnome_canvas_new_aa() function aa is a member of the Gnome_canvas
 structure , defined as below
 /* Whether the canvas is in antialiased mode or not */
 unsigned int aa : 1;
 And the link below gives us the details of the two modes of gnome
 canvas operation
 http://developer.gnome.org/doc/GGAD/z177.html
 
 So making the aa modification; will it understand as to what is to
 be done?
 
 Are these two modes supported in Ecanvas ?
 
 what do you suggest ?

Hi,
based on this documentation of GnomeCanvas,

http://library.gnome.org/devel/libgnomecanvas/stable/GnomeCanvas.html#GnomeCanvas--aa

you can pass this property in construction time, which I believe means
in call of g_object_new, and because ECanvas is the specialization of
the GnomeCanvas, then the GnomeCanvas will set this property, same as it
does in gnome_canvas_new_aa:

http://svn.gnome.org/viewvc/libgnomecanvas/trunk/libgnomecanvas/gnome-canvas.c?revision=1286view=markup

Hope that helps,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Contact component in Evolution source code

2008-06-19 Thread Milan Crha
On Thu, 2008-06-19 at 15:20 +0530, svalbard colaco wrote:
 Hi Milan
 
 Thanks ...
 I actually want to Know the first view where its writen Double_click
 here to create a new contact
 the source code for it.
 here i can double-click on the canvas and add entries. right?
 so is  it the table or mini card now??
 
 once i make entries the entire canvas changes color red/brown
 etc...
 
 so i need to Know wer to debug..
 
 Thanks  Regards
 sv.

Hi,
just open one of them and search there.
The one is addressbook/gui/widgets/e-minicard-view.c: in function
'set_empty_message' is this text set, but I'm not sure how much this
will help you.

I guess the canvas changed its color because the drawing of the minicard
left it in some state, like set different color or something, but it
doesn't do this on Linux, so possibly something out of evolution? 

Just a guessing, I can be definitely wrong.
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Bug 499932] Not deleting from e-mail server after specified time

2008-08-27 Thread Milan Crha
On Tue, 2008-08-26 at 19:55 +0200, Patrick Ohly wrote:
 Hello,
 
 Can one of the Evolution email hackers have a look at bug 499932 [1]?
 This has been open since 2.12 and still applies to the latest stable
 version. I'm affected myself, so I can help debug this if necessary.
 Thanks!
 
 [1] http://bugzilla.gnome.org/show_bug.cgi?id=499932
 

Hi,
I updated the bug with this text:

I believe this has been fixed within bug #514827 and is included in development
version. Can someone check, please?

Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [Bug 499932] Not deleting from e-mail server after specified time

2008-08-29 Thread Milan Crha
On Thu, 2008-08-28 at 21:04 +0200, Patrick Ohly wrote:
[snip]
 I compiled the trunk and tested it - it works. Thanks! Is this
 something for the distributors to back-port to 2.22.x?

Hi,
it's up on them.
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Getting all mail

2009-06-23 Thread Milan Crha
Hi,

On Mon, 2009-06-22 at 20:43 +0200, Filipe Nepomuceno wrote:
 The problem I'm having now is when I ask for the folderinfo it returns
 a null pointer at the point indicated below.
 Evolution is set-up with a gmail pop account. When I tried it with the
 IMAP settings it worked and I managed to get the CamelFolders.

Might be that it uses On This Computer for storing/showing mails. Look
for mail-component.c:mc_setup_local_store for an example how to open the
local store. (There should be enough to construct proper URL and use it
like the one from an EAccount structure, I guess.) See also
load_accounts in the same file, as you do not check for enabled accounts
only.

 The other thing I don't understand is the threading thing. Could
 someone please explain that.

I'm afraid this is out of scope of this mailing list. What do you mean
exactly?

 One more question, I cant seem to compile the devel-guide, is there an
 online version of it? I've just been grepping everything and wanted to
 know if there is some kind of API out there that makes it easier.

Hmm, I usually look around the code. Some information can be found also
on http://go-evolution.org but I've no idea how much accurate/up-to-date
it is. Maybe someone else knows where to find the online devel-doc
version.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Camel calls causing hangs?

2009-06-24 Thread Milan Crha
On Tue, 2009-06-23 at 22:43 +0200, Filipe Nepomuceno wrote:
for(j = 0; j  uids-len; i++)
  ^^^ use 'j' here?

Try to differentiate between hang and busy loop, there is a little
difference between them :)

Also, those returned CamelObjects are supposed to be unreffed too, not
just free your array. Even I cannot tell you from this code part, as
it's not complete. (Those mail-ops functions I pointed you earlier are
unreffing arguments itself, at the end, thus in the best you should ref
them, and when done with them unref them. There is no reffing necessary
when you use it in the done callback only, but when you left the
callback and still need the pointer, then there should be a ref and
unref done. Just to ensure you'll not lose the pointer before you are
done with it. I think. Check the code where those are used in
evolution.)
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Weird folder selection bug

2009-07-03 Thread Milan Crha
Hi,

On Fri, 2009-07-03 at 13:56 +0200, Christoph Höger wrote:
 * ping *
 
 Has no one a clue on that?

Most likely.

On Tue, 2009-06-30 at 11:17 +0200, Christoph Höger wrote: 
 When I want to select the folder in which evolution puts it's mail, the
 selection button changes it's label to the selected folder name. The
 problem is: The selected folder name is:
 
 a) translated (leading to Verschickt instead of Sent which would be
 the correct name. (Verschickt is the german translation of the
 evolution internal Sent mail folder, Sent is a subfolder of my Maildir
 account)

It shouldn't do that, but it does. I doubt it's question on glade,
it's evo's/eds' fault most likely.

 b) misinterpreted on reopening that dialog. Instead of the selected
 folder (Maildir/Sent) I get Verschickt selected as if the selection
 did not change anything (what in fact it did - new mail is dropped into
 Maildir/Sent)

Probably because of a). Though cannot tell for sure without further
investigation.

 So my first thaught was: Is that glades fault (the buttons label is set
 to translatable) and could that be fixed by setting the buttons
 translatable value to false (or would than _nothing_ get translated at
 all)?

See above, no.

 And: What the f*** does that dialog get as content? Somewhere the
 correct information (aka Path) is stored, as it works. But from that
 point to the dialogs display it gets turned into a completely different
 path. How is that even possible?

That's how it works, it might take much longer to explain you the interns
than spending time on trying to fix it. Basically, there are paths
to the folder how they are used by camel, and how they are used in evo,
the later contains an account name in it.
See em_uri_to_camel/em_uri_from_camel.

I'm not sure if I got it right. It works, with respect of moving
messages to the correct folder, only the UI is confused with the Sent
name, which it considers as a special folder, thus translates it, when
you reopen the account editor dialog again?

Anyway, please file a bug, that's no waste, that's much better way how
to track patches than in a mailing list.
Thanks and bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] GAL Question

2009-07-21 Thread Milan Crha
On Mon, 2009-07-20 at 11:21 -0400, Kevin Boyce wrote:
 I am new to the mailing list.  I apologize if this is the wrong place
 to ask such a question.
 
 I've configured my evolution account to work with my company's
 exchange global address list, and that appears to work OK.
 However, often the GAL server goes offline.  I would like to make an
 offline copy of the GAL to my local computer so that I don't depend on
 the server too much. 
 
 Is there a way I can get a dump of the address book and copy it
 locally?
 
 I tried doing an Advanced Search based on email address containing
 @mydomian.com but it says that the backend refused to process the
 search.
 I was hoping I could select all the contacts in the resulting search
 and drag and drop them to another location.
 
 Any help on the above matter would be appreciated.
 
 Thanks,
 Kevin 

Hi,
it's usually better to use evolution-list, than the evolution-hackers
list, as this is more user-related question than anything about code.

Anyway, since 2.23.90 (I guess based on the time of patches commit from
bug [1]) you can setup your GAL to be browseable (in account
preferences), then with limits large enough you should be able to see
all your contacts. Either dragdrop them, or even better right click
over the GAL address book and choose Save as vCard, and then import
this resulting vCard file to your local address book.

Your way of doing this might work too, though, just do not use advanced
search, (it doesn't seem to be usable with GAL in general) but use just
a simple search on the Name Contains, and choose some very common
latter, like a or similar. Though the browsing method with large
enough limit is more appropriate.

Hope that helps,
Milan

[1] http://bugzilla.gnome.org/show_bug.cgi?id=324203

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] how to initialize bf-priv-file_db

2009-08-13 Thread Milan Crha
On Thu, 2009-08-13 at 09:03 +0800, Saint yeyo wrote:
 
Hi,
 maybe I will sound silly, but what type a bf is? What is its parent
 object? You know, you just give here some expression from somewhere.
 The context is missing, at least for me.
Bye,
Milan
 
 sorry,
 
 the data struct is like following:
 
 EBookBackend *backend;
 
 EBookBackendFile *bf = E_BOOK_BACKEND_FILE (backend);
 
 DB *db = bf-priv-file_db; // here occurence segmentation
 fault
 
 then  I tried
 
 backend = malloc(sizeof(EBookBackend));
 backend-priv = malloc(sizeof(ebookbackendvcfprivate));
 backend-priv-file_db = malloc(sizeof(DB));
 
 it's better, but still can't access the address of file_db, how can I
 do,
 
 than you. 

Hi,
EBookBackend is a GObject, you should create it by g_object_new call.
But, you should never need to create a backend on your own, you should
use EBook with a proper ESource.

What exactly are you trying to do, please?
Bye,
Milan

P.S.: Please, never ever reply to digest, at least on evo lists.
Moreover, you kept there all the mail long because of quoting 5 lines of
text? That's not nice. Not talking about broken threading.

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] how to use e_contact_new_from_vcard function

2009-08-13 Thread Milan Crha
On Thu, 2009-08-13 at 17:26 +0800, Saint yeyo wrote:
 while I used function 'e_contact_new_from_vcard (vcf_file) ' based on
 a exported vcard file 

Hi,
the vcf_file is a file name or a file content? It should be the file
content here, which contains those BEGIN:VCARD/END:VCARD tags.
Something like here [1], just not with a vCard.
Here's [2] a little big about EBooks. Look for other tests in that
folder for other examples.
Hope that helps,
Milan

[1]
http://svn.gnome.org/viewvc/evolution-data-server/trunk/addressbook/tests/vcard/dump-vcard.c?revision=7761view=markup

[2]
http://svn.gnome.org/viewvc/evolution-data-server/trunk/addressbook/tests/ebook/test-ebook.c?view=markup

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Programmatically Invoking Contact Editor

2009-08-14 Thread Milan Crha
On Thu, 2009-08-13 at 16:41 -0700, Kip Warner wrote:
 Thanks Matt. I've found the contact-uid by querying the EContact
 pointer via e_contact_get_const(contact, E_CONTACT_UID), but I can't
 seem to find the source-uid anywhere. 

Hi,
source-uid is the UID of an EBook you've your contact stored in. If it's
just the contact not stored in any EBook, then no such thing is
possible.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Changes from 2.26 to 2.28

2009-10-05 Thread Milan Crha
Hi,

On Sun, 2009-10-04 at 10:22 +0100, Tobias Mueller wrote:
 On 04.10.2009 02:47, Rohan Agrawal wrote:
* In the panel that lists the mails, each mail is given a much
  wider space, which seems like a waste.  GNOME already consumes a
  lot of screen space with very big controls and text, when
  compared to Windows or to KDE.
 Could you make a screenshot and file a bug at https://bugzilla.gnome.org/?

this is your bug:
https://bugzilla.gnome.org/show_bug.cgi?id=565780

* The Date column now uses n days ago for mails within the last
  week, rather than the day of the week.  My impression is that
  Sunday is more understandable than 6 days ago.
  
 If there is no (obvious) setting for this, I'd file a bug :-)

Yeah, there is no such enhancement request (or I'm not aware of it, at
least). The request sounds good to me, please file it and point us to
it.
Thanks and bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Errors logging into MAPI

2009-10-22 Thread Milan Crha
Hi,

On Thu, 2009-10-22 at 02:31 -0400, Paul Smith wrote:
 On Sun, 2009-10-18 at 17:30 -0400, Paul Smith wrote:
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-connectio
 n.c:2856: Leaving exchange_mapi_get_folders_list
 libexchangemapi-Message:
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-folder.c:
 139: exchange_mapi_peek_folder_list: unlock(folder_lock)
  libexchangemapi-Message:
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-connectio
 n.c:3106: exchange_mapi_create_profile: unlock(connect_lock)
  libexchangemapi-Message:
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-folder.c:
 134: exchange_mapi_peek_folder_list: lock(folder_lock)
  libexchangemapi-Message:
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-folder.c:
 139: exchange_mapi_peek_folder_list: unlock(folder_lock)

^^^ this is just a debug output

  e-data-server-ui-Message: Unable to find password(s) in keyring
 (Keyring reports: No matching results)
  e-data-server-ui-Message: Key file does not have group
 'Passwords-ExchangeMAPI'

^^^ this is nothing serious, only keyring reports that the group doesn't
exist. The group will be created the first time you successfully enter
your password. As Evolution is asking keyring for your password first,
and if not found then asks yourself, then the error is shown. It is also
sort-of debug message.

 I re-entered my password (I was leery of this because the other day I
 locked my account by Evo asking for my password too many times in a
 row)
 but the second time it took and worked.

Good it works finally.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Retrieve signal of 'Junk' / 'Not Junk' button in Evolution mail

2009-11-23 Thread Milan Crha
On Mon, 2009-11-23 at 18:00 +0800, Arumugam Vkk wrote:
 My team created a spam filter that is being integrated into Evolution
 mail for our final year project. We have no problem reading the mails
 and everything is almost complete. Currently working on the retraining
 of Bayesian and we need to know how do we retrieve the signal when we
 click the 'junk' / 'not junk' button.

Hi,
have a look how's done the bogofilter junk plugin
http://git.gnome.org/cgit/evolution/tree/plugins/bogo-junk-plugin
or the SpamAssassin plugin
http://git.gnome.org/cgit/evolution/tree/plugins/sa-junk-plugin
in evolution. Doing your spam plugin the similar way you'll be able to
choose it in Edit-Preferences-Mail Preferences, tab Junk. (Maybe you
have it that way already, I do not know.)
Hope that helps,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Failing to build latest GIT code

2009-11-25 Thread Milan Crha
On Tue, 2009-11-24 at 12:25 -0500, Paul Smith wrote:
 On Tue, 2009-11-24 at 12:15 -0500, Paul Smith wrote:
  What am I missing here?
 
 found it.  Please apply this patch to fix the build:

Hi,
hrm, I would like to know why I didn't face that when doing the change
there. Maybe an older gcc or something?
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] MAPI support not even close... ?!?! Can I help?

2009-12-04 Thread Milan Crha
On Thu, 2009-12-03 at 16:10 -0500, Reid Thompson wrote:
 hmm -- is calling evolution supposed to auto-start these two?

On Thu, 2009-12-03 at 16:12 -0500, Reid Thompson wrote:
 (evolution:24437): libebook-WARNING
 **: ../../../../evolution-data-server/addressbook/libebook/e-book.c:2194: 
 cannot activate book: The name org.gnome.evolution.dataserver.AddressBook was 
 not provided by any .service files 

Hi,
yes, those two processes are run as a DBus services. The relevant files
are in your $PREFIX/share/dbus-1/services/ and dbus is supposed to be
directed to that directory too, to know about them.

There are more options to do that, what I do is making a symlink to that
folder:
   $ rm /usr/local/share/dbus-1 2/dev/null
   $ ln -s $PREFIX/share/dbus-1 /usr/local/share/dbus-1
The only disadvantage of this solution is to have changed rights
on /usr/local/share/ to be able to write there even as a regular user.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] I broke junk filtering config -- help!

2009-12-07 Thread Milan Crha
On Fri, 2009-12-04 at 13:47 -0500, Paul Smith wrote:
 On Fri, 2009-12-04 at 12:21 -0500, Reid Thompson wrote:
  On Fri, 2009-12-04 at 12:11 -0500, Paul Smith wrote:
   Looking at the /apps/evolution/mail/junk/bogofilter section of
 gconf
   with gconf-editor, I see only one entry here, unicode which is
   selected (boolean true). 
  
  this is all that i have in my gconf.
  
  one level up has a bunch, of note is check_incoming and
 default_plugin
 
 Grr.  Yes, I have those both set (default_plugin is Bogofilter).
 
 Anyone have any ideas about logs or places I should look?  *sigh*

Hi,
this all should be manageable from Preferences itself, try
Edit-Preferences-Mail Preferences, tab Junk, whether you've enabled
automatic junk filtering in global, then, just in case, in Mail
Account-account-tab Receiving options, whether junk filtering is
enabled on the account.

Note, with the former, you can skip checking with the junk plugin
itself, when, for example, the sender is in your address book.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Error reporting changes

2009-12-08 Thread Milan Crha
On Mon, 2009-12-07 at 14:41 -0500, Reid Thompson wrote:
 if i wished to attempt to update evolution-remove-duplicates to git
 head
 http://www.gnome.org/~carlosg/stuff/evolution/

Hi,
here's your bug report about the same
http://bugzilla.gnome.org/show_bug.cgi?id=587011
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Error reporting changes

2009-12-08 Thread Milan Crha
On Tue, 2009-12-08 at 13:13 -0500, Reid Thompson wrote:
 I applied Ritesh's patch from comment 27 and compilation fails with
 
 ../../../../evolution/modules/mail/e-mail-shell-view-actions.c:505:
 error:
 implicit declaration of function ‘message_list_free_uids’

Hi,
bad luck, it had been removed recently for some reason, see commit
76fbb9d.

 Is/Are one/all of the previous patches required also?

The first patch is for the external plugin itself, applicable to tar.gz
sources of it, whereas the second patch, the ritz's one, is to have this
plugin as internal code, not a plugin. These two are supposed to be
independent.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Moving from the single mbox file format for the local folders

2009-12-16 Thread Milan Crha
On Wed, 2009-12-16 at 11:35 -0500, Jeffrey Stedfast wrote:
 The summary files would have had this problem, but they would have
 just been regenerated, so not really an issue. 

Hi,
a) it's similar as moving from 32bit to 64bit architecture or the other
way; evo crashes for these situations, because the version is fine, but
it doesn't know whether the previous one was a 32bit or 64bit machine,
aka whether it should do some translation or not. (and doing
translation is not as that simple for usage of functions which are doing
sizeof(...); not a problem with db-summary, but still might be with
indexes and store summaries, I didn't check that.)

b) you cannot just drop it and regenerate, because it holds some
information for local providers, like labels, tags and such.

Silly reasons, but that's why I think those bugs are still opened (no
numbers handy).
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Moving from the single mbox file format for the local folders

2009-12-17 Thread Milan Crha
On Wed, 2009-12-16 at 19:56 -0500, Jeffrey Stedfast wrote:
 Does it really crash? It used to just regenerate the summary files.

yes, on out of memory, as it tries to allocate a very large memory block
due to misreading items.


  b) you cannot just drop it and regenerate, because it holds some
  information for local providers, like labels, tags and such.

 
 The point of the version info was so that you could do things like:
 
 if (summary-version  CAMEL_64BIT_SUMMARY_VERSION) {
off_t offset;
camel_file_utils_load_off_t (file, offset);
info-offset = offset;
 } else {
camel_file_utils_load_int64 (file, info-offset);
 }
 
 If you do this, then you don't actually lose any information.

I do not think the above will work together with defaulting to LARGEFILE
compile flag, but the other way would, like defaulting to load_int32 for
older summaries and reading off_t for new. I'm wondering whether some
distro has the largefile support enabled these days, as if so, then the
decision what to use as an off_t size isn't that easy. Maybe they have,
or it's enough to compile under 64 bit to have the size changed.
I didn't try this, I just suppose because of reported issues.
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Access Contacts information from Remote Machine with Python

2010-01-04 Thread Milan Crha
Hi,

On Fri, 2009-12-25 at 11:57 +0100, Michael Pilgermann wrote:
 Could anybody please give some advice, whether
 - there is a way to copy the database to another machine by keeping it
 working, or

It should work as long as the Berkeley DB library is compatible with
that used on the older computer. EDS used to use its own copy of it,
but it was dropped in favor of a system libdb.

Here might be some useful information too, I guess.
http://www.go-evolution.org/FAQ#How_can_I_transfer_all_my_Evolution_data_from_an_old_home_directory_to_a_new_home_directory.3F
Nonetheless, playing with internal evolution files is highly
discouraged.

 - how to remotely access the EDS in Python using the proper way??

I've not much idea about python bindings on EDS side, the nearest I know
are some python binding for plugins in evo itself, but it's far away
from what you want.

Here's an example how to open a system address book and read emails from
contacts stored there:
http://git.gnome.org/browse/evolution-data-server/tree/addressbook/tests/ebook/test-ebook.c

Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] How notifications work?

2010-01-05 Thread Milan Crha
On Tue, 2010-01-05 at 11:24 +0200, Cristian Vrabie wrote:
 Hi guys!
 I've been using Evolution for a long time, but only recently i decided
 to get look into the code and maybe give a hand with the development
 in the little free time i get. 
 I wanted to start small issue that interested me, more exactly why in
 KDE, when you receive a new message, the raised notification does not
 properly indicate the folder where the message ended up after
 filtering. I created this bug
 https://bugzilla.gnome.org/show_bug.cgi?id=605986 which apparently is
 not an Evolution issue but of libindicate. In order to fully
 understand that, can you give me a quick high level description of how
 notifications are raised by Evolution transparently of the
 notification library of the desktop environment?
 Thanks!
 Cristian 

Hi,
Evolution is using a plugin to notify about new messages, and this
plugin is listening for events invoked by Evolution itself.
See the source code at [1] for more information.

Nonetheless, if I understand your request properly, then it was covered
by [2] and is part of the latest git master.

Note also that there are some settings in
Edit-Plugins-Mail-Notification, tab Configuration, where you can
influence how the notifications should behave.

If you are looking for some (usually) simple tasks, then there is a
keyword gnome-love, which developers use to mark some bugs as good for
beginners, thus maybe go through them. Note that something what might
look easy at the beginning can turn to be hard task. See the list for
evolution itself at [3].

[1] http://git.gnome.org/browse/evolution/tree/plugins/mail-notification
[2] https://bugzilla.gnome.org/show_bug.cgi?id=464400#c16
[3] https://bugzilla.gnome.org/buglist.cgi?quicksearch=keywords%
3Agnome-love+product%3A%22Evolution%22+

Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Getting a core in latest git Evolution view Junk folder

2010-01-07 Thread Milan Crha
On Wed, 2010-01-06 at 17:17 -0500, Paul Smith wrote:
 Whenever I click on my Junk folder Evo dumps core.  It seems to
 be an error displaying the summary of my Junk folder.  I'm avoiding it
 right now.

Hi,
I'm on actual master as well, and I do not see this. I tried to select
Junk folder of my IMAP account, under On This Computer, but none of
these exhibits your issue.

What account type is your Junk folder from? Do it all Junk folders or
only some of them? When you close evolution and move out (do not delete
it) folders.db file for that account, will it fix itself?
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Getting a core in latest git Evolution view Junk folder

2010-01-07 Thread Milan Crha
On Thu, 2010-01-07 at 08:04 -0500, Paul Smith wrote:
 ... Since the failure appears to be related to determining something
 about attachments.
 ...
 As I mentioned, it's connecting to an IMAP server.

Oh, my fault, IMAP with mail with an attachment in junk folder. I can
reproduce it too, with a message as an attachment.

Please file a bug report about it. Thanks.
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] evolution-mapi exchange 2007 fails to send messages encoding in non-english characters

2010-02-01 Thread Milan Crha
On Fri, 2010-01-29 at 01:04 -0800, Fred Liu wrote:
 Is there anyone who has ever met this?

Hi,
there have been some bug reports in https://bugzilla.gnome.org but the
fix came to the quite recent:
https://bugzilla.gnome.org/show_bug.cgi?id=608320
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Build failures with latest git in evolution-mapi

2010-02-03 Thread Milan Crha
On Tue, 2010-02-02 at 16:57 -0500, Paul Smith wrote:
   CC exchange-mapi-utils.lo
 In file included from /opt/evo-master/include/util.h:26,
  from /opt/evo-master/include/ndr.h:32,
  from /opt/evo-master/include/dcerpc.h:33,
  from /opt/evo-master/include/libmapi/libmapi.h:50,
 
 from 
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-connection.h:31,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.h:28,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:29:
 /opt/evo-master/include/charset.h:125: warning: redundant
 redeclaration of 'strchr_m'
 /opt/evo-master/include/charset.h:104: note: previous declaration of
 'strchr_m' was here
 In file included from /opt/evo-master/include/dcerpc.h:33,
  from /opt/evo-master/include/libmapi/libmapi.h:50,
 
 from 
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-connection.h:31,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.h:28,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:29:
 /opt/evo-master/include/ndr.h:517: warning: redundant redeclaration of
 'ndr_print_bitmap_flag'
 /opt/evo-master/include/ndr.h:516: note: previous declaration of
 'ndr_print_bitmap_flag' was here
 In file included from /opt/evo-master/include/gen_ndr/exchange.h:9,
  from /opt/evo-master/include/libmapi/libmapi.h:57,
 
 from 
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-connection.h:31,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.h:28,
 
 from ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:29:
 /opt/evo-master/include/gen_ndr/ndr_misc.h:12: warning: redundant
 redeclaration of 'ndr_print_GUID'
 /opt/evo-master/include/ndr.h:375: note: previous declaration of
 'ndr_print_GUID' was here
 /opt/evo-master/include/gen_ndr/ndr_misc.h:17: warning: redundant
 redeclaration of 'ndr_push_policy_handle'
 /opt/evo-master/include/ndr.h:493: note: previous declaration of
 'ndr_push_policy_handle' was here
 /opt/evo-master/include/gen_ndr/ndr_misc.h:18: warning: redundant
 redeclaration of 'ndr_pull_policy_handle'
 /opt/evo-master/include/ndr.h:492: note: previous declaration of
 'ndr_pull_policy_handle' was here
 /opt/evo-master/include/gen_ndr/ndr_misc.h:19: warning: redundant
 redeclaration of 'ndr_print_policy_handle'
 /opt/evo-master/include/ndr.h:494: note: previous declaration of
 'ndr_print_policy_handle' was here

Hi,
I see these as well, but didn't figure out what's going on. I was told
about two different samba's installed, but I didn't check that yet.
Though what we have common is a different install prefix from the one
used by default, which is /usr/local/samba.

 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:
 In function 'utf8tolinux':
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:71: 
 error: implicit declaration of function 'windows_to_utf8'
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:71: 
 warning: nested extern declaration of 'windows_to_utf8'
 ../../../../evolution-mapi/src/libexchangemapi/exchange-mapi-utils.c:71: 
 warning: assignment makes pointer from integer without a cast
 make[4]: *** [exchange-mapi-utils.lo] Error 1
 make[4]: Leaving directory
 `/opt/src/evo/evo-master/obj/evolution-mapi/src/libexchangemapi' 

windows_to_utf8 was removed in Openchange trunk, in favor of correct fix
for this. You can change the utf8tolinux in your build to simply
return g_strdup (wstring);
and that's it. The function had some issues, was able to drop letters
like @!,() from strings, if you noticed.

It's still under its way, but better now. With respect of fixes around
this in evolution-mapi and openchange you mentioned in the other email,
there was a change for reading values in evolution-mapi, but changes for
writing values were in openchange. For example, if your subject contains
any utf8 letter, then that will be properly encoded in the openchange
functions in actual trunk, where it just failed to send such message
before the change. I do not want to go too far with details, thus just
saying there is still some effort to fix even more cases for this,
initially in openchange, and if required then also on evolution-mapi
side, for better experience with utf8 strings received/sent with MAPI.
Bye,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] evolution 2.28 does not load calendars anymore

2010-03-30 Thread Milan Crha
On Tue, 2010-03-30 at 05:03 +0200, Thomas Mittelstaedt wrote:
 There also is an error message:
 
 (evolution:6613): libecal-WARNING
 **: ../../../../evolution-data-server/calendar/libecal/e-cal.c:1046:
 Could not activate calendar factory
 (OAFIID:GNOME_Evolution_DataServer_CalFactory:1.2)
 
 I wiped out my whole /opt/evo directory and installed everything afresh.
 No change.

Hi,
there is definitely something with your bonobo activation server.

Check if yours
$PREFIX/lib/bonobo/servers/GNOME_Evolution_DataServer_1.2.server
contains proper path to an evolution-data-server-2.28 within the
CalFactory section, and whether you can run it on a console and whether
your bonobo-activation-server knows about it (it doesn't, most likely).
Try to search http://live.gnome.org/Evolution/FAQ for bonobo questions.
Hope that helps,
Milan

___
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] WebDAV Addressbook Debugging

2010-04-26 Thread Milan Crha
On Fri, 2010-04-23 at 13:25 -0400, Adam Tauno Williams wrote:
 I am testing Evo with our GroupDAV server and after a moment it
responds
 with 'address book not available' and instructs me to restart
Evolution.
 Running Evolution from the command line doesn't provide any additional
 information.

Hi,
it means your evolution-data-server (for 2.28-) or e-addressbook-factory
(for 2.30+) crashed. Try to run it on another console, maybe under gdb,
and see where it crashed and why.

With respect of the initial question, I do not see any getenv call in
webdav address book sources, thus it seems it doesn't have any such
thing.
Bye,
Milan


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] evolution-mapi is failing to compile on gnome-2.30 branch

2010-04-26 Thread Milan Crha
On Sun, 2010-04-25 at 22:05 -0400, Paul Smith wrote:
 ...
 exchange-mapi-connection.c: In function 'exchange_mapi_events_init':
 exchange-mapi-connection.c:3160: error: too few arguments to function 
 'RegisterNotification'
 ...
 Help?

Hi,
you've too new OpenChange, the API for this function changed. It is
fixed on master, and now on gnome-2-30 too. Please update your git repo
or download 0.30.1 tar-ball.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] GIT master failing evolution-data-server build...

2010-04-26 Thread Milan Crha
On Fri, 2010-04-23 at 20:22 -0400, Paul Smith wrote:
  In function `ebook_test_utils_book_async_add_contact':
  ebook-test-utils.c:160: undefined reference to `g_malloc0_n'

Hi,
I do not see these myself, but from other experience I believe it's
linking to wrong GLib, to the older one, than it is compiled with, or
some other module it is linking to itself is using a newer GLib.

I'm not sure, but try to add glib-2.0 to EVOLUTION_ADDRESSBOOK_DEPS in
configure.ac, whether it'll help. Or maybe any of your environment
variable isn't referring to the right path?
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Base URI for On This Computer

2010-06-09 Thread Milan Crha
On Tue, 2010-06-08 at 21:17 -0400, Matthew Barnes wrote:
 Is there any reason why we can't just use file:// as the base URI for
 the On This Computer source group?  No other group uses that scheme,
 so it seems we could identify the On This Computer group as file://
 as easily as file://home/mbarnes/.evolution/calendar/local.  Plus it
 would solve a whole class of migration issues and help make moving to
 XDG base directories easier.
 
 I can't find anything that actually uses the source group's base URI to
 locate files -- everything I see uses a hard-coded path, which actually
 works out well for me in this case.

Hi,
I'm not much sure what you are trying to do, but even you probably know,
the e_source_get_uri uses ESourceGroup's base uri and a relative uri of
the ESource to build the full uri, if not built/set an absolute uri on
the ESource already.

Are you going to change ESourceGroup's base_uri to contain only the
protocol for all the ESourceGroups? If yes, then I think it's not the
best thing, because for example evolution-mapi uses as base uri
mapi://u...@server/, and each account you have configured and enabled
in the preferences has its own group. It cannot be distinguished just by
mapi://, because for example (I believe) every user has its default
calendar named Calendar.
Hope that helps,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Heads-up: EBookBackend/EBook ECalBackend/ECal ongoing API changes

2010-07-01 Thread Milan Crha
On Thu, 2010-07-01 at 14:42 +0200, Patrick Ohly wrote:
 Will that break libebook and libecal APIs? The issue only mentions
 backends, but the subject of your emails includes EBook and ECal.

Hi,
for EBook it is, all the async API there uses 'status' as an indicator
of the operation result in the async callback. I'm changing it to GError
too. I'm still on ECalBackend, but it seems some similar change will be
in ECal too, though I'm not sure yet, I'm not that far. I'll summarize
changes in the bug report when I'll be done with it, to have them
written somewhere.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evo won't display special characters

2010-07-12 Thread Milan Crha
On Sat, 2010-07-10 at 19:28 -0400, Paul Smith wrote:
 Is there any hope of anyone looking into this?  I'm not even sure if
 it's a gtkhtml bug or an Evo bug at this point, all I know is I'm
 constantly being forced to forward email to my Exchange account and read
 it with Outlook in Crossover Linux, because Evo can't display these
 messages.

Hi,
yup, I've this in my todo list, since 21/06/2010, but due to other work
I didn't get to it yet. I'm sorry.

 If someone provides a patch I'm happy to test it.

Thanks, I appreciate it.

Just to summarize, you've an issue involving
https://bugzilla.gnome.org/show_bug.cgi?id=610797
that with a patch the reading is mostly fixed (when message is
refetched, maybe - as I prefer the recent evolution-mapi git master due
to its changes which couldn't be done in gnome-2-30, and recent
openchange svn trunk (or say at least revision 1922) due to its changes
with unicodeness and such, which are not part of openchange 0.9), but
the patch also broke composer.

Is it only this or more things left?

Thanks and bye,
Milan


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evo won't display special characters

2010-07-12 Thread Milan Crha
On Mon, 2010-07-12 at 12:56 -0400, Paul Smith wrote:
  Just to summarize, you've an issue involving
  https://bugzilla.gnome.org/show_bug.cgi?id=610797
  ...

 To be clear, I'm seeing this with the IMAP (and IMAPX) backends, not
 with MAPI (it might happen with MAPI, too, but it's not MAPI-related).
 ...

Hi,
OK, let's move to the above bug report. I will go by David's pointers
from the other reply, because if you see this in IMAP, then it is quite
different issue than I thought initially.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [evolution-kolab] Datastructures for calendar data

2010-07-14 Thread Milan Crha
On Wed, 2010-07-14 at 17:37 +0530, chen wrote:
 ECalComponent - This holds the calendar event's data in Ical format. It
 wraps Icalcomponent, but has not completely wrapped the same. So both
 are used at places. ECalComponent is better to use as its a Gobject.
 ECalBackendSync - Abstract class from which you would need to subclass
 kolab backend. (http://live.gnome.org/Evolution/CalendarStore)

Hi,
you said you want everything async, thus I agree with Ross, do not use
ECal/BookBackendSync, but rather ECal/BookBackend parents, and do
everything yourself (similar actions like ECal/BookBackendSync does,
only fully asynchronously). I plan to rewrite evolution-mapi backends to
be fully asynchronous. I'm not sure how it'll go and when I get to it,
but maybe you would get inspired, if it'll be as I hope it.

 ...
 http://www.go-evolution.org/EDS_Architecture - I find that its not there
 in lgo, will need to be migrated.

It's there, I'm not sure why it isn't shown up for you:
http://live.gnome.org/Evolution/EDS_Architecture

Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Couple new functions for ECal/EBook

2010-07-19 Thread Milan Crha
On Sun, 2010-07-18 at 20:34 -0400, Matthew Barnes wrote:
 Only reason I wrote them for the client-side libraries is
 because e_cal_get_user_cache_dir() is used to figure out where to
 cache ECal attachments in set_local_attachment_store(). 

Hi,
that's a part which should be changed. The ideal way, as I understand
it, is to have an ECalBackend function to retrieve a path for
attachments, and ECal should ask backend for it, instead of duplicating
the code (it sort of blocks extendibility of ECalBackend, because the
client side depends on the code in evolution-data-server itself, which
is kinda wrong).

It will be good to fix this and move functions to libedata-book/cal,
where they, as you said, belong anyway.

And because there were API changes for ECal/BookBackend anyway, then
this one shouldn't hurt more.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] evolution-kolab: hiding IMAP folders

2010-07-20 Thread Milan Crha
On Tue, 2010-07-20 at 13:18 +0200, Christian Hilberg wrote:
 Hm. Maybe I'm still missing some parts here on how Evolution
 internally works.
 
   Subclassing the Camel Provider in our backends and overloading 
 get_folder_info() will work for the backend part, i.e. PIM data wich
 is accessed and managed from inside E-D-S. So far, no problem.
   But there is standard Email to handle as well, and if I understood 
 correctly, Email handling is (presently) done inside Evolution, not
 E-D-S.

Hi,
others will correct me, but from evolution-mapi point of view (which is,
with evolution-exchange, closest to that what you are trying to do):
- create a Camel provider, which, when placed to the right place, will
be shown in new account creation as an account type (see
camel-mapi-provider.c, there's everything needed for having new mail
provider available in Evolution). Evolution-mapi is extending basic
camel objects, like CamelStore, but as you want to use IMAPX, then less
work for you, derive from it. Note that this Camel part has nothing to
do with EPlugin, the most you define an EPlugin to add menu options on
your folders, like Folder Size option for MAPI folders, but other than
that the EPlugin part is optional for mailer part.
- for calendar and addressbook support create your own
EBookBackend/ECalBackend descendants (with defined all the virtual
methods there). You need an EPlugin to have them accessible from UI, to
be able to setup specific things on it. See
exchange-mapi-account-setup.c:exchange_mapi_create_addressbook and
exchange_mapi_create_calendar as examples. Note these are mentioned in
org-gnome-exchange-mapi.eplug.xml.
- evolution-mapi's EPlugin also listens for changes on EAccountList
(which is a list of configured mail accounts) and adds/removes ESource-s
for addressbooks/calendars based on enabled/disabled MAPI accounts,
keeping these three in sync, so the only thing user needs to setup is an
email account, and the addressbook/calendar are added automatically.

With respect of folder structure changes, the first sync will update
internal caches as necessary, namely camel-store-summary, allowing you
to hold the necessary information about each folder, and also adding the
type annotation on it too. How or when fetch that annotation is a
question for you.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] evolution-kolab: Some design thoughts on Email handling

2010-07-23 Thread Milan Crha
On Fri, 2010-07-23 at 10:43 +0200, Christian Hilberg wrote:
 We would need the possibility to define extra D-Bus communication
 between Evo and E-D-S for that, right? 

Hi,
I'll let Matt answer the rest of your mail, but before he gets to it
here are my two cents:

Camel (the mailer) is running in evolution process
EBookBackend (contacts) is running in e-addressbook-factory process
ECalBackend (calendar) is running in e-calendar-factory process

What I thought you'll do the easiest way was to define your own camel,
subclass of imap/imapx, and add some property of source-type to it,
which will lead folder showing on all of them. This camel part will be
compiled first, because you will need it in book/cal backends. Note
you'll have three simultaneous connections to your server, from three
different processes.

I do not think moving mailer part to eds would help you much, the time
where there was only one evolution-data-server-X.YZ process is gone :)

Evolution exchange had been also running as a separate process,
independently from evo and factories, some time back, which is very
similar to your proxy, but it wasn't working well, so it was also
rewritten in time of 2.29 (I think). Anyway, it is possible this way
too; you'll get less connections to your Kolab server, if nothing else.

Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] XDG Base Directories -- Wrapping Up

2010-07-27 Thread Milan Crha
On Fri, 2010-07-23 at 18:08 -0400, Matthew Barnes wrote:
 For those following the master branch of git, that means that with any
 luck your ~/.evolution directory will soon be gone and you'll have far
 more control over where Evolution writes files. 

Hi,
does this mean that one would be able to keep .evolution folder as is,
with some XDG foo? You know, sometimes is useful to run 2.30.x while
developing 2.31.x on the same machine, where your change makes it
impossible.

But if it's possible, do you know the XDG foo to achieve it?
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Gnome 3.0 delay Evo?

2010-07-29 Thread Milan Crha
On Thu, 2010-07-29 at 01:23 -0400, Paul Smith wrote:
 I wonder if Matthew or Milan or anyone have any thoughts on what the
 delay in Gnome 3.0 means for Evolution.

Hi,
it means couple things, all positive. More work can be done, more
testing can be done, less time pressure. 

 Is the current git master buildable and usable without Gnome 3.0
 components?  Do you expect distros to build and ship both Gnome 2.x and
 3.0 versions, to make transitions simpler?

As far as I know most people are running evo with gtk2, but I have gtk2
on my main machine, and gtk3 on the other. Of course, testing with gtk3
is more appreciated (I have one crasher there already, though to be
filled and fixed), thus also bugs/changes in gtk3 will be spotted on
time. (I guess it doesn't answer your questions much) :)

Let's see what's Chen's and Matthew's (module maintainers) idea on this.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Memory leaks

2010-08-23 Thread Milan Crha
On Mon, 2010-08-23 at 11:12 +0100, David Woodhouse wrote:
 I got offended by Evolution growing to almost 4GiB and having to be
 killed if I wanted to use my workstation for anything else, so I've
 started running it in Valgrind.

 I've filed bugs for the reports of 'definitely lost', and have fixed a
 bunch of them.

Hi,
that's pretty bad. What are the bug numbers/links, please?

 But there are *lots* of reports of memory blocks being 'possibly lost',
 too. Should we be worrying about those?
 
 ...

 I'm therefore tempted to go ahead and file bugs for *every* report of
 'possibly lost' that Valgrind gives me when I run Evolution.

Please do not do that. Evolution has cache of CamelStore-s,
CamelFolder-s and such, so almost anything from evolution can be pointed
by some global/static variable. And indeed, these caches aren't freed by
the application, but by the operating system itself.

 Even if some of them are false positives, I think we should find some
 way to tell Valgrind about them -- either with a suppressions file, or
 preferably by finding some annotation which lets Valgrind know that this
 'interior-pointer' really *is* going to be followed.
 
 Even if it means cleaning up some false positives, I think it would be
 extremely useful to get to a point where valgrind runs cleanly and new
 memory leaks can easily be detected.

I agree, though I'm afraid it's not possible (I didn't check valgrind
yet, but I do not suppose it has any compiler flags/annotations in the
code, because it uses the binary file itself, together with a debug
information). I can be wrong here, though.
Bye,
Milan

P.S.: I didn't CC you intentionally, because I know you are subscribed
on this list, and because I do not want anyone CC'ing me on this list,
because I'm subscribed to it too. ;)

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Memory leaks

2010-08-23 Thread Milan Crha
On Mon, 2010-08-23 at 13:10 +0100, David Woodhouse wrote:
 On Mon, 2010-08-23 at 13:25 +0200, Milan Crha wrote: 
 https://bugzilla.gnome.org/showdependencytree.cgi?id=627707
 
 I've grouped a bunch of different GtkHTML reports together. although I'm
 not sure that was the right thing to do.
 
 The fixes I mentioned are sitting in my working tree, and I'll commit
 and push them today.

Hi,
good, thanks for it.

 ...
 If they're referenced by a global variable, surely valgrind would know
 that they're reachable and would not complain about them?

I do not know how it works precisely.

 And if *not*, can we find a way to teach Valgrind that they're
 reachable, so that it can be useful for us and not have so many false
 positives?
 
 ...
 I had thought briefly about annotating the code, and perhaps extending
 sparse to handle refcounts and 'ownership' of memory so that it can warn
 at compile time if you write code which leaks.

Hmm, I cannot imagine a way doing so with an async API. It would be a
very complex call tree to solve, with evo and eds code mixed together,
from my uneducated point of view (imagine all the libraries used in
them, and all using evo/eds).

 But basically, what you seem to be saying is that Valgrind is
 essentially useless for us.

I'm definitely not saying that. I like valgrind, it helps me (usually)
pretty well.

I just got a thought, what if some of those possibly lost come from
GSlice? Then G_SLICE=always-malloc should help valgrind with it. At
least a bit.

 I'd be very disappointed if that really
 turns out to be the case -- we should definitely talk to Julian about
 that before we give up.

I'm not giving up, and as stated above, I like valgrind :)
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Can't build evolution-data-server master on ubuntu maverick

2010-09-06 Thread Milan Crha
On Sat, 2010-09-04 at 05:30 +0200, Thomas Mittelstaedt wrote:
 .libs/libebook_1_2_la-e-book.o: In function
 `e_book_new_default_addressbook':
 /home/tuxdistro/src/evolution/obj/evolution-data-server/addressbook/libebook/../../../../evolution-data-server/addressbook/libebook/e-book.c:3329:
  undefined reference to `e_source_list_peek_default_source'

Hi,
I suppose you do not have latest master sources of the
evolution-data-server. The missing function is part of
libedataserver/e-source-list.c and it links to libedataserver-1.2.la,
which I see it used in the Makefile.am in addressbook/libebook. The
function was added just recently.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Can't build evolution-data-server master on ubuntu maverick

2010-09-06 Thread Milan Crha
On Sat, 2010-09-04 at 09:12 +0200, Thomas Mittelstaedt wrote:
 More errors trying to compile gtkhtml:
 
 Making all in gtkhtml
 make[2]: Entering directory
 `/home/tuxdistro/src/evolution/obj/gtkhtml/gtkhtml'
   CC htmlengine-edit-cursor.lo
 ../../../gtkhtml/gtkhtml/htmlengine-edit-cursor.c: In function
 ‘draw_cursor_rectangle’:
 ../../../gtkhtml/gtkhtml/htmlengine-edit-cursor.c:129: error: implicit
 declaration of function ‘gdk_gc_new’
 ../../../gtkhtml/gtkhtml/htmlengine-edit-cursor.c:129: warning: nested
 extern declaration of ‘gdk_gc_new’
 ...

Hi,
is it with gtk3 or gtk2? The gtk3 isn't supported fully. The other
option, even with gtk2, I think, is that might be similar to your eds
issue, you might not have latest git master sources, because this commit
seems to be relevant to your issue:
http://git.gnome.org/browse/gtkhtml/commit/?id=e118a01dfefa589ce83fe43b13c5eb2732a0fcfb
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Can't build evolution-data-server master on ubuntu maverick

2010-09-07 Thread Milan Crha
On Mon, 2010-09-06 at 23:27 +0200, Thomas Mittelstaedt wrote:
 Am Montag, den 06.09.2010, 23:20 +0200 schrieb Thomas Mittelstaedt:
I downloaded and built gtk 2.9, the latest from the gtk website, and
installed it into /opt/evo, where I try to build evolution.

Hi,
well, 2.9x is a development version of gtk3. Try the latest
non-development version, like 2.20 from:
http://www.gtk.org/download-linux.html

I just pulled the latest sources from master, the gtkhtml configuration
script tells me, that it's using gtk2:
Configuration:
GTK+ package:   gtk+-2.0

Still the same compilation error.

It might mean it's using your system gtk+. I gave you a commit link at
the first reply, which contains that -DGDK_DISABLE_DEPRECATED removal,
so you probably do not have latest master checkout for some reason, I
guess. Seeing the code, isn't it possible that the makefile checkouts
gnome-2-30 branch instead of the master branch? I ask because the above
mentioned configure.ac change doesn't seem to be part of gnome-2-30
branch.

Using master is a good idea, especially in this stage (few weeks before
release), thus it'll have more testing, which is always good.

With respect of compiling without the Paul's makefile, I do not use the
makefile myself, so I do not know what it does or doesn't, but that one
also checks for dependencies within the configure stage, so you can try
to configure the checkout yourself and see what it'll claim about, if
anything.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Can't build evolution-data-server master on ubuntu maverick

2010-09-13 Thread Milan Crha
On Sat, 2010-09-11 at 03:45 +0200, Thomas Mittelstaedt wrote:
  Finally, I got evolution 2.31 to run, but the restoration of ics files
  from my 2.28 version is a problem. The memo (notes) ics-files are
  somehow not recognized, even if they are set correctly in the gconf
  keys. 
  
 
 I tried the restoration using the installed version 2.30, having made
 sure, that services in /usr/lib are called instead of the ones of 2.31
 in /opt/evo, and the app would restore memo ics files correctly, plus
 tasks and calendars.
 Then I tried to use this new .evolution directory with 2.31, having
 switched to the right services again and 2.31 doesn't show data for
 those memos, even though the list items in the left pane show up, but
 no entries.

Hi,
actual master, 2.31.92 very soon, doesn't use ~/.evolution, but XDG
folders for its data. Everything is migrated on the first run, when
~/.evolution exists, but those XDG folders/files not. (It tries it every
start, and complains on console). For your file backends were changed
protocol from file:// to local:, thus the gconf key differs.

Because you run 2.30 after 2.31, then I suppose you've duplicated
On This Computer/Personal sources in calendar/task/memo/addressbook.

Also see release notes at:
http://mail.gnome.org/archives/ftp-release-list/2010-August/msg00023.html
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Camel Manifesto (update)

2010-09-29 Thread Milan Crha
On Mon, 2010-09-27 at 12:52 -0400, Matthew Barnes wrote:
 Transient operations are now implicit: if you push a new status
 message onto a non-empty message stack, the message is treated as
 transient.  A transient message just means there's a longer delay
 before the message is shown in Evolution's status bar, since transient
 operations tend to come and go quickly.  If the transient operation
 finishes before the timer expires, the transient message is never
 shown at all.  This helps filter out messages that would otherwise
 flash by too quickly for users to read. 

Hi,
I do not like this change. Its result is that I do not see which folder
is getting updated and what percentage is done on it, which I consider
as one of the most valuable information being on the status bar.

I only see there Checking for new mail now, and I have no idea about
actual progress of the operation behind it.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [evolution-kolab] Datastructures for calendar data

2010-09-29 Thread Milan Crha
On Mon, 2010-09-27 at 15:54 +0200, Hendrik Helwich wrote:
 while working on a plugin [1] to connect eds  to a kolab server, i need to 
 convert evolution contacts, events, tasks and notes to a kolab email (and 
 back).
 Right now the idea is to use the class EContact for evolution contacts and 
 ECalComponent for evolution events, tasks and notes.
 I now noticed, that an event in an evolution iCalendar file contains a 
 VTIMEZONE and a VEVENT block, and the VEVENT block depends to a timezone 
 which is defined in the VTIMEZONE block.
 The ECalComponent seems to hold only one block of an iCalendar object and it 
 is therefore not possible to get all the informations of an evolution event  
 from one ECalComponent.

Hi,
I think it was mentioned earlier, the ECalComponent is a wrapper for the
icalcomponent. Evolution's UI is using ECalComponent, but, say as
CalDAV, you can operate with icalcomponent internally, when there is a
need for a VCALENDAR component used in the kolab email.

With respect of VTIMEZONE, the ECalComponent has times/dates stored as
ECalComponentDateTime structure, which has 'tzid' member (it's a const
gchar *), and when the UI or a util function needs the VTIMEZONE, then
it asks ECal through e_cal_get_timezone, which calls, through DBus these
days, ECalBackend's e_cal_backend_get_timezone function.

Note also that there is a default timezone for the ECalBackend, and that
timezones can be also added to the backend from outside, not only from
the server. It's used when copying events between backends, for example.

Most ECalBackend-s are using ECalBackendStore, which has a facility to
store both components and timezones.
Hope that helps,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [evolution-kolab] Datastructures for calendar data

2010-10-01 Thread Milan Crha
On Wed, 2010-09-29 at 17:15 +0200, Hendrik Helwich wrote:
 So one option for us is to operate on the icalcomponent instead of 
 ECalComponent.

Hi,
internally yes, but remember, the ECalBackend API uses ECalComponent in
most cases.

 In our project we do not need any time zone information which is attached to 
 time data. It would be sufficient if all time data is stored in UTC format. 
 Then we could stay with the ECalComponent class.
 Is there an easy way in evolution to strip timezone information from an 
 ECalComponent by converting local time data to UTC time data?

Well, timezone information is crucial for users, usually, and you might
not change they will to use always UTC. You know, when you are adding a
new appointment into a calendar, then you can choose your own timezone
(View-Timezone), also a different one from that used in Evolution
(which is used as a default timezone).

Imagine a user, a businessman, whom is living in US and cooperates with
a Europe partner on regular bases. Say they have a phone meeting twice a
month, which is held in Europe in some certain time. So our businessman
living in America/New_York will enter his meeting in Europe/Berlin, and
he'll see this in his timezone (because he has it set in Evolution),
even though the internal ECalComponent timezone is Europe/Berlin. What
is it good for? I believe you know. It's good because changes from
summer to winter time and vice versa are done in different weeks in
these timezones, and because the organizer is in Europe, then the New
York time will be shifted accordingly based on Europe time in these
periods, so our business man will not miss his meeting. If you would
change timezones for all your components to UTC then the times may be
wrong.

The other thing is that whenever there is recognized an event in
different than Evolution user's timezone, Evolution is showing an icon
about it on the event.

Nonetheless, to answer your question, I didn't find an ECalComponent
function for converting times between timezones, though I didn't search
heavily, but there is used a libical function icaltimezone_convert_time
for it.
Hope that helps,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] latest e-d-s git head won't build out of source tree

2010-10-04 Thread Milan Crha
On Fri, 2010-10-01 at 10:40 -0400, Reid Thompson wrote:
 rthom...@raker~/evo-git-head/obj/evolution-data-server   
   
 $ ../../evolution-data-server/autogen.sh 
 /usr/bin/gnome-autogen.sh
 autopoint: *** Missing configure.in or configure.ac, please cd to your 
 package first.
 autopoint: *** Stop.
 rthom...@raker~/evo-git-head/obj/evolution-data-server


Hi,
might be caused by this commit:

http://git.gnome.org/browse/evolution-data-server/commit/?id=5440f849

though I have no idea what it does and what it should do. Thus CC'ing
the author.

Javier, do you have an idea on this, please?
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [evolution-kolab] Datastructures for calendar data

2010-10-05 Thread Milan Crha
On Tue, 2010-10-05 at 10:00 +0200, Hendrik Helwich wrote:
 I understand this point for recurring events. In the Kolab format it
 is only allowed to store time data in UTC format (see 1.2.1 in [1]).
 So we have to think how we can handle this problem in our software.

Hi,
aha, pity they do not support any timezone, though I understand it's
easier for them to understand only UTC and nothing else. Try whether you
are able to store your own elements in the XML on the server, and if so,
then I would add there a location of the timezone user used for the
event, and when parsing back from XML then convert times to that
timezone too. If they'll reject your own elements, then it'll be bad and
you would have no option to keep user's timezone on component.

Also note of e_cal_backend_set_default_zone and
e_cal_backend_internal_get_default_timezone; I would extend usage of the
default timezone to convert UTC times of events to this timezone, if the
user's timezone is not present. Though it'll be better to do some
testing whether such extension wouldn't bring more trouble than gain.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] [evolution-kolab] Datastructures for calendar data

2010-10-05 Thread Milan Crha
On Tue, 2010-10-05 at 10:58 +0200, Hendrik Helwich wrote:
 But we still have the problem then that the time in some recurring
 events could be shown different in kontact and evolution in winter or
 summer time even if both clients are in the same time zone. 

Err, right, with respect of applications interoperability it's not good
to workaround with timezones from a user when the storage allows only
UTC, thus yes, forget all I said about timezones and do what the storage
allows. :)
Bye,
Milan

P.S.: this one might be useful: icaltimezone_get_utc_timezone()

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Memo CALDAV Query

2010-10-05 Thread Milan Crha
On Tue, 2010-10-05 at 09:04 -0400, Adam Tauno Williams wrote:
 When Evolution does the calendar-query on a collection for memos
 (vjournal) objects if specifies a time-range, like:
 
 ...
 C:time-range start=20100831T125831Z end=20101109T125831Z/
 ...
 Is this time range at all adjustable or configurable?  I haven't found
 anything in the UI that seems to pertain to this - perhaps some setting
 via gconf?

Hi,
those times are taken from your view on the calendar (or such). First
thing the CalDAV does when it's opened is to try to update view for
changes in near future and past, to update view for the time user will
look for the most. When it's done with it it also tries to update whole
calendar, which make take significantly longer.

This functionality is not dependent on the event type
(calendar/tasks/memo), it should work this way for all of them.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution 2.32.0 and pop3 server error

2010-10-18 Thread Milan Crha
On Sat, 2010-10-16 at 14:17 +0300, Dmitry Korzhevin wrote:
 Has anyone come across a bug in Evolution 2.32.0: 
 
 Storage POP3 does not use a hierarchical folder structure

Hi,
I'm not sure what you mean with that. POP3 had never use any folders, as
far as I know, it has only one, the Inbox, which can be fetched and
operated with.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Patch for build failures in gnome-2.32 branch

2010-11-04 Thread Milan Crha
On Wed, 2010-11-03 at 18:13 -0400, Paul Smith wrote:
 The current head of the gnome-2.32 git branch in evolution-data-server
 fails to compile cleanly because necessary -I options are not provided.

Hi,
thanks,
Created commit fda6915 in eds master (2.91.2+)
Created commit b0dbfb6 in eds gnome-2-32 (2.32.1+)

 Not sure if this needs to be applied to the master head as well.

The master had it fixed already, in a similar way, but I change it to
have this done the same way.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution 2.91 installation error

2010-11-04 Thread Milan Crha
On Thu, 2010-11-04 at 12:19 +0100, Stefano Facchini wrote:
 ...

Hi,
hrm, please try update sources again, with commit 9cc43ef.

I'm wondering why I do not see these, because I would like to get them
as well. :(

 Maybe can this depend on the fact that I have an Evolution 2.30
 installed from ubuntu repository?

As long as you take care of libs and DBus services then it should not be
a problem. Note that since 2.32.0 is used GDBus, instead of dbus-glib
(in 2.30.x) and the API also changed, thus using factories
(e-addressbook-factory/e-calendar-factory) which are not for the same
version as Evolution may cause trouble. The thing with DBus service is
most likely it and may explain your below P.S.. (Feel free to search
evolution-list/evolution-hackers archives for hints how to deal with
it.)
Bye,
Milan

 P.S.
 After the failed installation of evolution 2.91 (in /usr/local),
 evolution 2.30 (from /usr/bin/evolution) is unstable, I get a
 segmentation fault when trying to create a New Message, for example.


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rethinking account management

2010-11-10 Thread Milan Crha
On Wed, 2010-11-10 at 11:39 -0500, Matthew Barnes wrote:
 Here's a few built-in top-level stub sources as trivial examples.  They
 don't do anything other than name a backend.  They would appear as bold
 group names in a source selector widget.
 
   1. Filename/UID: on-this-computer
 
  [source]
  name='On This Computer'
  backend='local'
 
 
 The built-in system (a.k.a. Personal) source is an interesting corner
 case because it defines several different groups.  (The comments below
 are just my annotations, they would not appear in the key file.)
 
   Filename/UID: system
 
   [source]# org.gnome.Evolution.Source
   name='Personal'
   parent='on-this-computer'
   
   [extensions/address-book]   # org.gnome.Evolution.Source.Selectable
   color='#00' # would not be used in the UI
   enabled=true# would not be used in the UI
 
   [extensions/calendar]   # org.gnome.Evolution.Source.Selectable
   color='#becedd'
   enabled=true
 
   [extensions/task-list]  # org.gnome.Evolution.Source.Selectable
   color='#becedd'
   enabled=false
 
   [extensions/memo-list]  # org.gnome.Evolution.Source.Selectable
   color='#becedd'
   enabled=false

Hi,
it's pretty confusing to me. I understand from the above that there are
two files, one for groups, which is stored in system directory, and
one for real sources, which is stored in user's home.

Will be there any kind of property inheritance? As in your example
above, I would like to define the 'color' in the [source]
key-file-group, thus all extensions will inherit it, but, if user
changes color for one of them, then it'll create its own key and it will
be used instead of the parent's.

Maybe it's not the best example with the color, but imagine the Exchange
account, I would like to define server address and credentials,
connection setup and such, in the parent, and the children
(mail/calendar/...) will inherit this.

It seems to me that there is no difference between the file in system
and home directory, both are using [source], but each for a different
purpose. I do not think it may work well.

Imagine the exchange account again. Right now you define an account
name, and this name is used as a source group name in Calendar and such,
same as in mailer. With that you wrote I do not see a way of achieve
that just from the user's home. Or is this based on the existence of the
parent/backend key in the [source] key-file-group? In that case the
exchange account will have actually two files instead of one in the home
directory, one for group definition and one for real sources? It's
unnecessary, right? a) you would search for parents, in home and in
system directory. b) you should be able to easily distinguish between
group definitions and real sources definitions (all are named [source]
in your proposal) and be able to _easily_ reconstruct them.

Well, it's not straightforward, from my point of view. I would rather
name groups [group], avoid confusion, and be able to define all this in
one file, thus for usual user they will be able to distribute only one
file with predefined account settings instead of many. Of course, the
groups should either have the 'uid' defined in the file, or it should
inherit uid from the file name itself.

Filename: excha...@my-company

[group]
name='excha...@my-company'
backend='exchange'
server='my-company'
username='me'

[source]
color='#FEFEEF'
parent='excha...@my-company'

[extensions/mail]
enabled=true

[extensions/addressbook]
fragment='personal/Contacts'
name='Contacts'

[extensions/addressbook]
fragment='personal/second-contacts'
name='second-contacts'

[extensions/calendar]
fragment='personal/Calendar'
name='Calendar'
last-notified='2010-10-10T10:10:10'

[extensions/calendar]
fragment='personal/second-calendar'
name='Second Calendar'
color='#80FF80'

...

Well, you cannot have two groups with the same name in the key file,
thus you really meant to have one file per each ESource/EAccount + one
file for the group definition, all these put into one folder in the home
(+ system group definitions in system folder)? I do not like the idea
much, but I agree it can work.

Also, remember that users can name their accounts whatever they want,
but not every latter is usable for the filename - so the files will be
either meaningless strings or something descriptive?

The last two questions (and I see I mostly answered above questions
myself), how will be the group definition propagated to mailer,
respectively how will be defined the POP account, which doesn't have a
group in the folder tree, same as the mbox, which is hacked in and
hidden in the background? Will these two kinds also require its own
group file (for the 'backend' key) or not?

Because you have [source] for groups and [source] for pseudo-sources
(the real source is at the [extension/...]), then will I be able to
define a child of the source, not of the group, and it'll be propagated
to the UI? Just an 

Re: [Evolution-hackers] Rethinking account management

2010-11-15 Thread Milan Crha
Hi,

On Mon, 2010-11-15 at 11:45 -0500, Matthew Barnes wrote:
 I was a bit horrified to realize over the weekend the way we select a
 backend from the factory processes when requesting a new EBook or ECal.
 We convert an ESource object to XML and transmit the -entire- XML string
 over D-Bus, only to have the factory process reconstruct the ESource
 object from the XML string, extract the URI string from the ESource
 object, and extract the scheme from the URI.  The scheme is used as a
 hash table key for registered backends.

Well, it's not complete, the reconstructed ESource is passed into
e_data_book_new, so the backend can access it and knows where to
connect.

 With the new APIs, apart from GConf migration we won't be constructing
 ESources from XML anymore.  So here's how it's gonna work: getCal() and
 getBook() will just take the ESource's UID string, the factory process
 will look up the corresponding ESource object from its own registry and
 call e_source_get_backend() to get the hash table key.  Done.

That's kinda limiting, isn't it? As you allow only saved sources to be
opened, though for example all test suits are not saving their sources,
but just construct them on the fly and pass them to the factory.

 ...
 If there's no objections I'd like to get new interface names into 2.91
 now so I can increment the interface versions on my account-management
 branch and not have to worry about this anymore.

Sounds fine to me.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Use real version in /apps/evolution/last_version

2010-12-02 Thread Milan Crha
On Thu, 2010-12-02 at 07:43 -0600, Matthew Barnes wrote:
 Seems fine to me, as long as we continue to target the last stable
 version as the source to migrate from.

Does it mean that the migration routines should be clever enough to know
whether they were running already, though the version will indicate they
didn't?

I would use the last version in the migration code check, and if any fix
in the migration routine would be done after another release, then just
increase the number in the version check. It might work as long as the
changes will be done non-destructively.

On the other hand, if you think the little breakage is acceptable in
development releases, then this might not worth the trouble. Maybe.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rethinking account management

2010-12-10 Thread Milan Crha
On Thu, 2010-12-09 at 11:00 -0500, Matthew Barnes wrote:
 As usual this is turning out to be a bigger job than expected, and I'm
 less confident now that I can get this all done by 2.91.90 but I'm still
 gonna try.  The alternative, since I -really- don't want these XML blobs
 creeping into GSettings even temporarily, is to depend on GConf for 3.0
 and then land this stuff (along with Rodrigo's GSettings branch) early
 in 3.1.  Were it not for the pressure to get everything converted in
 time for GNOME 3.0, I would already be retargeting this for 3.1.

Hi,
sounds reasonable, this seems to be quite intrusive change, not only for
evo itself, but for everyone using it, so landing in time of .90 might
be rather bad. Apart of that we have enough such changes in sources
already, counting also gtk3, so I'm 111% for postponing to early 3.1.

 libedataserverui
 
 
 - All e-passwords functions will simply take an ESource instead of
   component and key strings.  Keyring entries will contain the
   UID of the corresponding ESource instead of URI components (we'll
   convert existing keyring entries as part of the migration phase).

It would be good to allow also username changing in EPasswords. It's
very unusual to allow only password entering when most applications are
allowing to change both username and password (I'm not aware of any
other with enter password only functionality at the moment). It seems
to be related, a bit, thus I'm bringing it here.

Also note one thing which might require a bit rewriting. If I recall
correctly you would use the ESource's UID for password storing. The
thing is that evolution allows setting auth-method, which is used as
'component'. The advantage of this is that the ESource for calendar can
share password from mailer (while not knowing the parent source/account
at all), because they are using same 'component' and 'key'. So with your
change in the passwords there should be a knowledge to which account is
this ESource tight (which is not always clear right now?), and this
parent account should be used instead of the actual ESource, right?

I do not want to complicate things much here, though with the change
also user name proposal above it might mean that one wouldn't use
different name for calendar and a different name for mailer with this? I
think we are not using any such approach here anyway, so I'm only
brainstorming here.
Bye,
Milan

P.S.: If you'll be changing API, please change also EIterator API, to
not return 'const' pointers from e_iterator_get. We use to forget to
change this release by release :)

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Handling Aliases, Silent Mode, Combo Tasks

2010-12-10 Thread Milan Crha
On Fri, 2010-12-10 at 09:06 +0100, twohot wrote:
 I'm not sure if this should fall into the hacking section or general
 section ... 

Hi,
as this is not about developer thing, then I would rather use
evolution-list, because you are asking as a user. Nonetheless, see
below.

 1. Once an account is set up it becomes difficult to implement an
 alias sending.  Evolution doesn't allow its user change the sender's
 field when composing ... except for accounts created locally.  For
 people involved in open-source projects like Evolution this makes it
 hard to use evolution to send list related mails.  Why? Some users
 have email aliases tied to their email accounts ... and use the
 aliases for such projects.  Is there no way one could override the
 sender's field so users can enter their email aliases instead?

No way at the moment, there is a bug filled in
https://bugzilla.gnome.org for identities or something like that. Evo's
way for this is to create an account for each alias and set only sending
part there (the receiving will hae None). Then you would be able to
choose respective addresses when sending a message.

 2. It would be nice if evolution can start silently ... docked in the
 panel and runs on the background.

No way, no need, will never be part of evolution itself. I'm sorry. Also
see http://live.gnome.org/Evolution/FAQ

 3. I see Combo Tasks (or whatever) as a Task
 that has other tasks inside it -- like a project with small
 objectives.

Yes, sounds like a feature request. I thought it would be enough to
group your tasks based on a category (View-Define view and create a new
one there, and assign categories to your tasks), but it might not work
as you wish, with a relationship to the parent task. Please search the
bugzilla, and if not found there already filled, then feel free to file
a feature request there.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rethinking account management

2010-12-21 Thread Milan Crha
On Mon, 2010-12-20 at 14:17 -0500, Matthew Barnes wrote:
 Since removing an address book or calendar source will be as simple as
 deleting its key file, in theory the backend process should be
 notified of the file deletion event by its ESourceRegistry and can
 then clean up after itself on its own without being told to by the
 client.

Hi,
I like your idea. It might work as long as the backend is running,
otherwise it will not, unless you'll add a listener for this in factory
and run the backend if needed.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Install E-D-S backends into separate directories?

2011-01-05 Thread Milan Crha
On Tue, 2011-01-04 at 15:00 -0500, Matthew Barnes wrote:
 That means e-addressbook-factory is loading calendar backend modules
 and e-calendar-factory is loading address book backend modules.  Until
 now that hasn't been a problem: the foreign backend classes are
 registered but remain dormant. 

Hi,
are you sure they are kept in memory? I see the factory calls
   e_data_server_get_extensions_for_type()
then frees this list with
   e_data_server_extension_list_free()
and finally calls
   e_data_server_module_remove_unused()
which may do the things you are trying to achieve by extension folder
separation, right?

I do not think it worth the change, the overhead on a factory load may
not be so large. Though see below.

 On my account management branch I've started registering other GTypes
 in eds_module_initialize() functions.  For example, the LDAP backend
 now registers both a backend factory class and an ESourceLDAP class
 which holds all the LDAP account details and configuration options.

Do you mean you are returning from the backend module, apart of EBackend
types, also different types in the eds_module_list_types() call? I
always thought this function is mean to return only list of descendants
of EBackend.

There is no need to have a separate module for calendar and book at the
moment, it is only done this way. Separate folders may mean forcing this
two-module model. On the other hand, if you share some parts between
both, where I hope you do with Exchange, where both calendar and book
backends are using same ESourceBackend type (or how you call it), then
having one module may be a benefit.

 The cleanest and most obvious solution is to install the backends into
 separate address book and calendar directories, then have each factory
 process load from the appropriate directory.

I suppose the other approach is to have some kind of hierarchical type
tree in e-data-server-module.c, having separated descendants of EBackend
and the rest returned from eds_module_list_types() and unload those
other types only if every EBackend types from that module are unused.
Is it more dirty way than overloading eds_module_list_types()?

By the way, why cannot be ESourceBackend type registered only on the
backend class creation? It's a similar way as Camel's provider does it,
isn't it?
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Install E-D-S backends into separate directories?

2011-01-05 Thread Milan Crha
On Wed, 2011-01-05 at 08:25 -0500, Matthew Barnes wrote:
 Both the backend factory class and the ESource extension types have to
 be registered with g_type_module_register_type(), and the GTypeModule
 isn't available from the class init function.

 Here's the workaround I'm currently having to add to almost every
 backend.  The lengthy comment explains a bit more technical detail. 

Ah, I see, quite complicated. The g_type_module_register_type() says:
   As long as any instances of the type exist, the type plugin
   will not be unloaded.
Whatever that means. Though if it means what I would expect from it,
then registering unconditionally all types in eds_module_initialize()
and dereferencing those special types in eds_module_shutdown() may
cause unload of the module.

Nonetheless this is just a theory, and I believe the usage of this
showed you that it doesn't behave this way, thus you've a green from my
side, even I would prefer less intrusive change for providers of
calendar/book backends.

Does the proposed change (in ESourceGroup/ESource) also mean that each
backend should provide its own ESourceExtension when it'll need to set
some custom attributes on an ESourceGroup/ESource? I hope not.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Install E-D-S backends into separate directories?

2011-01-06 Thread Milan Crha
On Wed, 2011-01-05 at 12:13 -0500, Matthew Barnes wrote:
 Yes, but I'll write them.  They're nothing more than a bunch of
 GObject properties with simple get/set functions.  The marshalling of
 those values to and from key files is all handled transparently by
 ESource.
 
 Writing those classes is monkey work, as you like to call it.  :)

Nobody likes monkey-work, neither code duplication, and as we are
talking about each backend for addressbook and calendar, then one can
imagine what that might mean. For example, will you write these for
evolution-couchdb, evolution-kolab and possibly many other 3rd party
providers, apart to all of included in eds itself? You may understand
why I dislike the idea.

I thought, from one of your first mails about this, that this code
duplication will be unnecessary, that the basic ESource will have a way,
different from the GObject properties, to get/set any property from the
ESource hierarchy. And what I thought was that it'll not be done through
GObject, but through its own API.

What I'm trying to tell is that the approach of GObject properties is
more limiting and adds more monkey work than an approach with special
get/set API on ESource itself.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Account management and keyrings

2011-01-20 Thread Milan Crha
On Thu, 2011-01-20 at 11:07 -0500, Matthew Barnes wrote:
 With this in place, the only thing left for e-passwords.c to do is put
 up a password dialog.  Although knowing me I'll likely wind up rewriting
 that too.

Hi,
I think I mentioned it somewhere already, please add also possibility to
change/enter username to the dialog (and possibly also domain name,
though this one can be encoded into username too).

 Any strong objections to scrapping e-passwords.c for 3.2?

Nope, go for it. It may also fix an issue with BirthdayAnniversaries
calendar, when using authenticated addressbook, as right now there is no
easy way to ask for a stored password for that book. Of course, there
will be needed new API for book/cal backends to be able to ask for any
password (on any ESource), not only during its authenticate signals.
Even it's another story, please consider these things too.
Thanks and bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Hierarchical Tasks [Was: Multiple child-addressbooks under an account]

2011-01-23 Thread Milan Crha
On Sun, 2011-01-23 at 16:51 -0500, Adam Tauno Williams wrote:
 You'll also run into consistency issues when using
 GroupDAV/CalDAV/CardDAV and the server tries to be 'helpful' or smart.
 For example if on a CalDAV server I have a todo list of many tasks and
 three of those tasks are linked in some way - the client makes a
 modification to one of those tasks which has a side-effect on the
 status
 of the two other tasks the client will remain merrily oblivious to
 that fact that the other objects in the collection have changed.  This
 is just a crappy part of the specs, there isn't any widely supported
 mechanism for the server to notify the client that certain references
 in
 its cache have been invalidated.  The only way the client figures that
 out is if it polls the collection; which can be slow and/or
 computationally expensive.  Polling the entire collection after every
 update would just be brutal - but it is the only way to remain
 consistent. 
 ...

Hi,
there could be done, as the first step, a hierarchical view of
components based on the Andrew's property, and it can do nothing, as a
starter, with respect of implicit impact on related components, keeping
all this on a user (call it a very simple target calendar system). So
Evolution would use it only for viewing.

Because the RFC doesn't dictate whether client or server should do
implicit impact changes, then the rest can be safely done on the
Evolution side (which avoids update issues you mentioned) by some kind
of plugin, rather than making evolution's UI too complex.

Of course, it might not work with every server, but this kind of issue
is there every time.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rebasing gtk3 branches

2011-01-23 Thread Milan Crha
On Sat, 2011-01-22 at 14:01 -0500, Matthew Barnes wrote:
 Would anyone mind if I do another round of gtk3 rebases?

Hi,
what about wait till Wednesday, after evolution team meeting, and then
merge gtk3 branches to master branches, and require gtk3 for the Monday
2.91.6 release? It saves a bit of work for you, and also forces people
to fix new issues related to gtk3, both during Thursday and Friday, and
also benefit from more testers with 2.91.6 release.

This might be doable, especially because:
 ... and it's quite usable.  A few minor glitches left
 but canvas widgets now draw and scroll correctly, and I'm seeing a few
 but not an enormous number of runtime warnings on the terminal.

which can be fixed till the meeting.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rethinking account management

2011-01-25 Thread Milan Crha
On Tue, 2011-01-25 at 16:54 -0500, Matthew Barnes wrote:
 The new names are (with both versions at '0'):
 
Bus Name:org.gnome.evolution.dataserver.AddressBook0
Object Path: org/gnome/evolution/dataserver/AddressBookFactory
Interface:   org.gnome.evolution.dataserver.AddressbookFactory
 
Bus Name:org.gnome.evolution.dataserver.Calendar0
Object Path: org/gnome/evolution/dataserver/CalendarFactory
Interface:   org.gnome.evolution.dataserver.CalendarFactory 

Hi,
thanks for doing this. I'm only wondering, why not a dot or dash (if
available for bus names) between the version number and the bus name
itself? Was there anything preventing it to do it that way? (I'm not
much familiar with DBus itself, so please forgive me if this is a lame
question.)
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Gtk-ERROR **: GTK+ 3 symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

2011-02-03 Thread Milan Crha
On Thu, 2011-02-03 at 12:43 -0500, Reid Thompson wrote: 
 Is there a way to determine where I'm mixing GTK 2  3?


Hi,
try with this:

   $ for i in `ldd $PREFIX/bin/evolution | awk '{print $3}'` ; do \
if [[ `ldd $i | grep gtk` ]] ; then \
   echo -e $i \n `ldd $i | grep gtk` \n ; \
fi ; done

Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Local calendars with custom files

2011-02-07 Thread Milan Crha
On Mon, 2011-02-07 at 09:46 -0500, Matthew Barnes wrote:
 On Mon, 2011-02-07 at 09:50 +0100, Milan Crha wrote:
  And that's what is wrong with it. I do not know the polling interval,
  chosen by gio developers, but I prefer to be able to set the polling
  time myself, for fine-tuning. Not talking about unnecessary network
  traffic for those (rather rare?) cases.
 
 What network traffic?  Evolution only lets you choose a file on the
 local file system.

I thought of something like /mnt/samba/...

  All three options are used for different purposes and use cases, to be
  able to configure one writer and multiple readers, for example, because
  there is done no file-locking and such.
 
 I'm not suggesting dropping the force read-only option.
 
 Users of these custom files expect the calendar data as shown through
 Evolution to be kept up-to-date with the file contents and my guess is
 they don't care how.  They should never be looking at stale data.
 
 A file monitor is clearly the best mechanism for knowing when to refresh
 a local calendar, and if the file never changes then the only resource
 lost in monitoring the file is one file descriptor.  Big deal.  I see no
 need to burden the user with this choice.

Maybe. I let it up to you. I thought those options might be useful when
I was implementing those bits into evolution. If you think it's
overcomplicated, then feel free to drop it and use the best default,
which is surely the file monitoring.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] GroupWise mail issue (Was: (no subject))

2011-02-15 Thread Milan Crha
On Tue, 2011-02-15 at 23:16 -0700, Sankar P wrote:
 Your last few mails are displayed as I have attached below in a
 non-open mail client that I use (GroupWise).

Hi,
I guess it's the X-Face header doing trouble for GroupWise.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution requesting info on every year from 2011 down to 65535

2011-02-16 Thread Milan Crha
On Thu, 2011-02-17 at 00:48 +0100, Carlos Martín Nieto wrote:
  I've attached the backtrace for a year of 167 (I think) though I don't
 think it gives much information. This happens even if I have my main
 calendar off (which I think it's the only one with recurring events).

Hi,
this is from your CalDAV calendar, based on the backtrace. Try to get
the component which is causing this trouble, and see whether there is
something wrong either with that component or with evolution. You can
achieve that if you breakpoint as you did earlier, then move to frame
of e_cal_backend_sexp_match_comp function and invoke gdb command:
   (gdb) printf %s\n, e_cal_component_get_as_string (comp)
then strip any private information (the best by replacing with 'x' or
similar letter) and maybe share it here, if you think it's correct,
or better file a bug report and post here a link to it.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Sqlite cache for address-book storage in EDS

2011-03-09 Thread Milan Crha
On Thu, 2011-03-10 at 12:09 +0530, Chenthill Palanisamy wrote:
 file, groupwise, exchange uses EBookBackendDBCache.

Hi,
do not forget that the DB cache is compiled conditionally, because some
distros do not ship libdb. Using SQLite for this was mentioned months
ago, only no-one got time to actually do it, so go for it.

Only think of two things:
- using binary storage for this kind of data is bad for cases where
  the binary file breaks, either due to an update/downgrade of the
  library providing access to it, or just by a crash. It's not so hot
  with camel as SQLite has there only summary data, but if you want to
  store also real data in it, then it can be a problem. There are people
  having issues recovering their data from addressbook storage already,
  but if you are going to do any change on it, then it would be good to
  think of that from the beginning. It would be good to store raw vCards
  in some plain text file(s) which will be indexed by SQLite summary.
  This plain text file(s) will be then easy to import to evolution if
  something goes wrong, and with erasing SQLite file user will not
  loose any valuable data. (I'm thinking of a flat maildir approach
  here.)

- be able to store custom values in the summary - backends can have
  a need to make its own notes in the summary, so make it possible for
  it. As these might not be so critical as contact information itself,
  then it should be fine to store to summary only.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Handy GObject debugging trick

2011-03-10 Thread Milan Crha
On Thu, 2011-03-10 at 13:42 +, David Woodhouse wrote:
 Are we not *ever* closing a folder, after the UI has visited it once?

Hi,
CamelStore keeps list of opened folders in its bag-container, and
because there are caches of CamelStore-s which are not freed properly,
then neither folders are freed as ought to be. Did you ever notice a
flash in the folder tree when you change something in the account
preferences, but those changes were not propagated till next start? I
believe it's a side-effect of such CamelStore caches issue in evo
itself.

 No wonder Evolution tends to grow until it's eating all the memory in my
 system... :)

Well, it depends. There were some bugs fixed already (in 2.91.91), but
many are still there which no-one is aware of, I'm sure of that.

Two most significant I recall right now:
a) any attachments shown in the message preview were never freed,
together with its content - so with large attachments memory usage could
grow pretty quickly
b) the templates plugin used to leak folder infos when building menu
options for itself. It's not much leaking in a byte-size, but as the
menu is regenerated on each click/move/change in the message list, then
this can grow in time also quite quickly.

Thinking of Matt's change, I wrote something similar recently too, not
that sophisticated, and it did slightly different things too, but it did
what I wanted from it as well. Mine change was for pointer tracking.
Simple routines to track and untrack concrete pointer (usually track a
pointer in its init method and untrack it in its finalize method), and
list left pointers when exiting the application. I thought I'll add it
to Camel, but then I realized it's not about Camel only, so it could
come to e-data-server-util.h/.c, but then I couldn't decide, so I simply
dropped it. Maybe it would be useful for debugging purposes too. It was
for me. 
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Headers

2011-03-11 Thread Milan Crha
On Wed, 2011-03-09 at 14:58 -0500, Richard Bromwich wrote:
 I really think Evolution is great mail program but its lacking a very 
 important feature for someone who travels.
 
 The ability to just download message headers, and then being able to 
 download only the messages you want to read at the moment
  and leave the rest on the server or delete the junk without downloading.
 
 Hope to see this feature before too long.
 Thanks Richard

Hi,
well, this is rather question for an evolution-list, than to hackers,
but anyway, what is your protocol you are using? I hope it's IMAP. Note
that you can setup evolution to download headers only, and the message
is downloaded only when you open it, like in the preview below the
message list.

In other words, I believe your above statement is wrong, at least for
IMAP servers.

 I now have to use thunderbird  when I travel

Part of freedom you have :)
Bye,
Milan


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Front-end header files for E-D-S libraries

2011-03-23 Thread Milan Crha
On Tue, 2011-03-22 at 14:35 -0400, Matthew Barnes wrote:
 For 3.1, I would like to provide a top-level header file for each of the
 libraries in E-D-S and deprecate including individual header files.  The
 benefits should be clear by now: more flexibility to change or rearrange
 header files without breaking the public API.

Hi,
I never got why one wants this, I recall some Java guidelines which
encourage the opposite, never include whole unit, but only pieces you
actually use. It made more sense to me, to not get in things you never
use (quicker parsing/compilation too, probably, to not openparse spare
header files). Also, one does not rearrange code so often, I believe.

Anyway, if you really think this change (which actually affects anyone
using eds client API) worth the effort, then feel free to do it.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Rethinking account management

2011-03-29 Thread Milan Crha
On Tue, 2011-03-29 at 09:26 -0400, Matthew Barnes wrote:
 The hierarchy just ensures that deleting the mail account from the
 ESource registry will also take out the default identity and transport
 for that account.

Hi,
should it delete them too? I've a feeling there is no need for it,
especially when you want to have them as three separate independent
objects. But that's just a feeling.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Backend requesting arbitrary user input from frontend

2011-03-29 Thread Milan Crha
On Wed, 2011-03-23 at 19:04 +0100, Christian Hilberg wrote:
 Of course, this is going to be fun - how to tell which of the possibly 
 multiple EDS-frontends should receive the request? Ideally, the backends 
 should be unaware of EDS-frontends... trouble galore! :)

Hi,
Matt suggested in his Account management that the server will ask for
credentials with an information for which source this request is made,
so the auth_required signal may contain this information. I'll add a
strv parameter to that, just for being ready even for more expansion.

What kind of information will be known in this parameter depends on the
receiver for the signal. Let's have it opened for now, but I believe
this may cover your issue too.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Maintenance fork for Evolution / EDS 2.32

2011-04-04 Thread Milan Crha
On Fri, 2011-04-01 at 20:07 +0100, David Woodhouse wrote:
 That's great; thanks. I'll do a little more testing on the patches
 I've cherry-picked into my trees, and then unless someone else has
 objected in the meantime I'll push them. 

Hi,
I objected against this many times, directly to you, on IRC, with no
effect, obviously. If I recall correctly, the reason why release-team
decreased releases is that distributions were *not* using .2 release.
Which is just the opposite you are trying to convince us. If they are
not using official releases, why should they use unofficial branch?

By the way, how would you look for a fix user reported to your
distribution, as a distribution maintainer? The work-flow, as I
understand it, is like this:
a) user enters a bug report in your distro bugzilla
b) maintainer gathers enough information to identify the issue
c) check upstream bugzilla for a duplicate or possible fix
d) decide on the change whether backport or indicate will be fixed
   in the next stable/unstable release

Note that I do not expect anyone looking into git branch for a
particular fix, with a very good reason, they would rather check in
bugzilla, which offers much better searching ability and contains enough
information for possible bug matching, with compare of git commit. And
the bugzilla should have enough information about the fix, like either a
patch or a link to particular commit. The evolution-related products use
to it that way.

That's my opinion.
Bye,
Milan

P.S.: as of today (or tomorrow, if you wish), the official stable
release is 3.0.0.

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Calendar PIM objects with inlined attachments

2011-04-08 Thread Milan Crha
On Fri, 2011-04-08 at 10:04 +0200, Christian Hilberg wrote:
 We could use Evolution's file-link attachment mechanism by writing into Evos 
 file cache from the backend and placing the file paths into the ECalComponent 
 when reading calendar objects from the Kolab server, and read attachment file 
 data from this same cache when creating a new object with attached files. We 
 found a whole lot of issues with this approach (at least for Evo2.30), which 
 I 
 can detail if anyone is interested.

Hi,
CalDAV calendar plugin uses this approach, and it seems to work. It's
surely better than passing rather-long attachments over the wire (D-Bus)
in both ways. Check the CalDAV sources how it's done there, maybe you
would be able to mimic that approach.
Hope that helps,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Calendar PIM objects with inlined attachments

2011-04-08 Thread Milan Crha
On Fri, 2011-04-08 at 15:06 +0200, Christian Hilberg wrote:
 There's no e_cal_backend_get_cache_dir() in Evo2.30 (which is the one we're 
 sitting on presently). That means we cannot maintain a backend-private file 
 cache with this version, since we cannot inform Evo about it ... is that 
 correct?

Hi,
basically correct, unfortunately:
http://git.gnome.org/browse/evolution-data-server/tree/calendar/libecal/e-cal.c?h=gnome-2-30#n725

Though you might be able to set full URI in the attachment object and
evo should be able to read it, but not write, probably. Maybe the UI
will create a store for you when creating a new event with attached
files. To be honest, I do not recall details, it's too long time ago
with 2.30.x for me. I would suggest you to try and see.

With respect of fetch on demand, it'll be tricky to achieve, to make
this done right on each operation which deals with the calendar
component in a certain way (operations like copy, move, send and so on).
But there is some API function, probably meant for something like that,
already, the e_cal_backend_get_attachment_list, used by
e_cal_get_attachments_for_comp.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Fedora builds with 2.32.2+ patches

2011-04-11 Thread Milan Crha
On Mon, 2011-04-11 at 10:54 +0200, Patrick Ohly wrote:
 Listing sources shows local:/system instead of local:system and opening
 local:system also still fails.
 
 Milan pointed to the history of e-source.c, but I don't see which
 (other?) commits are needed to fix these issues.

Hi,
try these commits from eds:

1443076ae96133f7046f7ea96cb39352f0ca4508
fc9462d477b098b8f15db5cde3952db6d92e2868

and probably this from evo:

8e33ff0fbb5908d06c9f32f58f35eca694b3f50c

I didn't check if they had any followup commits done by others, I only
chose commits I did in this area, though I've a feeling there might be
some followups.
Hope that helps,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Finding memory leaks in EWS with Valgrind

2011-04-12 Thread Milan Crha
On Tue, 2011-04-12 at 11:13 +0100, David Woodhouse wrote:
 I started testing under Valgrind and fixed a bunch of memory leaks...
 and now someone has introduced some more :)
 
 Note that you have to use 'GSLICE=always-malloc' when testing for
 memory leaks, because otherwise the glib internal pool allocator will
 confuse valgrind.

Hi,
I'm just wondering, how does this mail belong to evolution-hackers list,
please? I do not see anything general evolution-related in it, maybe
apart of the above paragraph, but that's usually known to people whom
are coping with valgrind on daily basis.

Was this mail meant to punish certain people in public? Really?
I certainly do not see the point of this mail, I'm sorry.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Pre-alpha test builds of Evolution-EWS for Fedora / MeeGo

2011-04-18 Thread Milan Crha
On Sun, 2011-04-17 at 09:16 +0100, David Woodhouse wrote:
 Since the early QA has also shown up a bunch of evo/eds bugs

Hi,
were any of them still present in master/3.0? If so, which bugs is this
about, please?
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Pre-alpha test builds of Evolution-EWS for Fedora / MeeGo

2011-04-18 Thread Milan Crha
On Mon, 2011-04-18 at 10:36 +0100, David Woodhouse wrote:
 I'm trying to operate a 'trickle down' policy, where I only commit fixes
 to gnome-2-32 if they are already in master *and* gnome-3-0. That way,
 things don't get lost — and we don't end up in the odd situation where a
 bug is fixed in 2.32 but not 3.0.

Hi,
thanks for the answer. The above was my unspoken interest behind the
question.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] New 'eclient' branch in eds

2011-04-18 Thread Milan Crha
Hi,
I just created a new branch 'eclient' in eds [1] where is added my work
on the new API which will deprecate EBook/ECal. It is following glib/gio
async pattern and, I believe, makes things more coherent.

This change, apart of other things, influences also backends, as I added
GCancellable to each virtual function which deserved it, made
ECalBackend authentication process similar to that used on
EBookBackend-s (with authenticate_user function), and I dropped unused
and/or unnecessary virtual functions from backends as well (mostly
from ECalBackend).

The GDBus interface functions were also completely rewritten, for better
readability, I believe (and hope).

Please have a look and comment here, before I'll commit this to git
master, which I would like to do before the first 3.1 release of eds,
thus all other descendants of backends will have enough time to change
their code appropriately.

The next step, after such commit, will be to slowly adapt evolution
itself, with which I would prefer to wait till Matt's account management
changes will land, definitely on places which are interleaving, because
I would like to avoid most of the pain when merging changes, unless
we'll make other deal on this.

Bye,
Milan

[1] http://git.gnome.org/browse/evolution-data-server/log/?h=eclient

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-18 Thread Milan Crha
On Mon, 2011-04-18 at 15:36 +0100, Philip Withnall wrote:
 I haven't had a chance to look at it all in detail, but two things
 strike me from a quick glance:
 
  • If we're following the GIO async pattern, why do the
 e_data_book_respond_*() functions still exist?

Hi,
the server part (e-data*) didn't change much, not with respect of API
changes, apart of dropping outdated functions. The part which changed
was the client side. The 'respond' functions are there to tell the
client, from the server, that the certain operation was finished.

What I forgot to mention in the previous mail is that the asynchronous
server operation have been divided into two parts, the first is to start
the operation by calling particular function on the client side, and
then notifying the client from the server that this operation was
finished. It's done by a done signal for the particular operation. It
avoids timeouts on DBus, as long as the main thread isn't stuck, because
when an operation is started, then the first thing the EDataBook/Cal
does is a response to the client with an operation ID, (this ID can be
used to cancel this particular operation). Only after that is the
function run and is considered running until backend finishes it by the
'respond' function.

The only disadvantage I faced with this approach is that the _sync
client calls are supposed to run their own mainloop, to behave like
blocking, but still being able to receive the done notification, when
invoked from the main thread.

  • Please, please, please add some documentation to the new EDataBook.
 Trying to understand how the old one was supposed to function was a
 nightmare, and I would hope that the same mistake isn't repeated with
 the shiny new version.

Yeah, can be added any time later, though you may use EBookBackend
documentation, rather than a wrapper around dbus and factory, for which
the EDataBook is.

Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-18 Thread Milan Crha
On Mon, 2011-04-18 at 12:48 -0400, Matthew Barnes wrote:
 * There's some overlap between the new EClient API and the new
   ESource API that I'm working on.  Some functions will need to be
   dropped once the new ESource API is in place, so I don't know if
   you want to do this now or wait.

 ...

Hi,
I do not think dropping all of them is any of gain, just the opposite.
Why to write same code, even 4-lined, all around instead of call one
simple function? Notice that all these functions are hiding where the
sources' configuration is stored. (4-lined is because you may get
somewhere the registry pointer and free it afterwards, instead of your
simplified 2-lined sample). There are also simplified functions for
freeing GSList-s and their content, which is mostly two-lined code too.

 * We should use GIO error codes whenever possible, and I see quite a bit
   of overlap here.  I think following error codes should be dropped:

Well, from my point of view, the error also tells you the place of
origin, and the origin for these is not a GIO at all.

 E_CAL_CLIENT_ERROR_SUCCESS
 E_BOOK_CLIENT_ERROR_SUCCESS
 
   There's no need for an error code for successful operations.

Ah, right, since returning GError instead of error status/code only it
doesn't make sense to be there anymore.

 ...
 E_CAL_CLIENT_ERROR_INVALID_SERVER_VERSION
 E_BOOK_CLIENT_ERROR_INVALID_SERVER_VERSION
 
   I don't think these are necessary anymore since we started
   using versioned bus names for the addressbook and calendar
   services.  If there's a client/server version mismatch,
   the client will get a D-Bus error about it.

It's used by Groupwise exclusively.

 * Of the remaining error codes, a number of them in ECalClient and
   EBookClient can be combined and moved to EClient.  Especially ones
   related to offline and authentication, since that's what EClient
   handles.

Good idea, I didn't think of it in this way, also because the codes are
different when passed through D-Bus, but it can be done on the client
side for sure.

 * I would really prefer we use GList instead of GSList throughout the
   API.  GSList is silly and really should never have been added to GLib,
   in my opinion.  Most modern GNOME APIs that I've seen prefer GList,
   and it's a pain in the butt having to convert between the two.

Yeah, my other goal was to harmonize internal API to consistently use
one of these types, and I chose GSList, because it's simpler and smaller
than GList, and because the usual case is to traverse the list in one
direction and not both, thus the GSList is sufficient. If there will be
more voices for this, then I can make it GList.

 * I thought backends could send their own custom error messages now, so
   are e_cal_client_error_to_string() and e_book_client_error_to_string()
   still necessary?

Hmm, maybe it isn't. Consider it as debugging function :)

 * In EBookClient, drop the 'const' qualifier from EContact arguments.
   Trying to use 'const' with GObjects is misguided and pointless.  I've
   cursed at EIterator many times for this.

Yet another thing I wanted to address was a clear memory management
recongnizable from function prototype. Thus if the function doesn't
change object's/variable's content, then I made it 'const' to indicate
it's used for reading only. Of course, inconsistencies all around the
code in this makes it hard to do right, so the function type-casts it
back to non-const pointer internally, because EContact API is not
written in that way. (Though it's not only about EContact.)

 * Why do we have get_capabilities functions in EClient, ECalClient and
   EBookClient?  Are they different sets of capabilities?  And if getting
   capabilities involves a D-Bus call then doesn't it need to be async
   everywhere?

They are same capabilities. Same as ECal/EBook the EClient caches
capabilities once it's asked for them, and reuses them, same as is
responsible for its memory. The cached values are also used for
capability checking. These are fetched on demand, and are always
synchronous. For cases where this is unusable, and where the caller will
take care of the memory, I added also get_capabilities functions to
ECalClient/EBookClient, which has both sync and async versions.

Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-19 Thread Milan Crha
On Tue, 2011-04-19 at 09:27 -0400, Matthew Barnes wrote:
 Havoc Pennington kept having to answer this same type of thing in the
 early days of GLib/GTK+ when people would ask why the API never uses
 const in functions that take but don't modify a GObject and GLib data
 structure.
 
 http://mail.gnome.org/archives/gtk-devel-list/2001-May/msg00485.html
 
 The take away there for me has always been const is useless for any
 kind of struct that has a pointer member, which virtually all GObjects
 do.  The API docs are a better place to document that the argument is
 not modified.  Don't try to do it in the function prototype.

I'm not sure if it's an apologize for it, but making it /* const */ may
not hurt.

   * Why do we have get_capabilities functions in EClient, ECalClient and
 EBookClient?  Are they different sets of capabilities?  And if getting
 capabilities involves a D-Bus call then doesn't it need to be async
 everywhere?
  
  They are same capabilities. Same as ECal/EBook the EClient caches
  capabilities once it's asked for them, and reuses them, same as is
  responsible for its memory. The cached values are also used for
  capability checking. These are fetched on demand, and are always
  synchronous. For cases where this is unusable, and where the caller will
  take care of the memory, I added also get_capabilities functions to
  ECalClient/EBookClient, which has both sync and async versions.
 
 Hmm, so you're saying I first have to fetch the capabilities via the
 async calls in ECalClient and EBookClient, then the result is cached in
 EClient?  I'd suggest renaming the EClient function then to something
 like e_client_get_cached_capabilities().

No, not at all, EClient calls descendant's get_capabilities_sync on its
own, when it's needed. The public get_capabilities API on descendants is
sort of redundant in this case.

 There's a couple other simple things I forgot to mention yesterday.
 
 * We should add some padding to all the public class structs so we can
   add new class methods in the future without breaking ABI.  Something
   like this:
 
 struct _ECalClientClass {
 
 ... methods and stuff ...
 
 gpointer reserved[16];
 };

I never understood a need for this, neither used it when changing
structs. There was done a soname version bump when changing public
class structures, which, from my point of view, always involves also
API changes, and freezes on these both are tight together. If you add a
new member to the struct and not change the reserved array size (by
how many, by the way), then you end up with a crash/critical warning
about different structure size anyway. Doing change-and-try loops here
sounds rather silly, from my point of view.

 * Also, GLib 2.26 gained its own timezone API: GTimezone.
 
   http://developer.gnome.org/glib/unstable/glib-GTimeZone.html
 
   It would be good to eventually try and correlate GTimezone and
   icaltimezone.  Other projects will be using GTimezone now since
   it's part of the GNOME platform libraries, and will likely expect
   to be able to use GTimezone with E-D-S libraries.
 
   I'd like to add least make room for this in the name space now by
   renaming all functions that expose libicaltimezone pointers from
   timezone to icaltimezone.

As icaltimezone is the main timezone for calendar in
evolution-data-server, and will be as long as libical will be used
there, then what about having e_cal_client_set_default_gtimezone as a
possible alternative for e_cal_client_set_default_timezone? On the other
hand, wouldn't e-cal-time-util.h/.c fit better here?

Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-19 Thread Milan Crha
On Tue, 2011-04-19 at 19:39 +0530, Chenthill Palanisamy wrote:
 I would like you to a incorporate some change to the free/busy api.
 Some servers allow querying free/busy information
 for multiple users at a time and the results appear in a iterative
 fashion. The freebusy information of some
 users are delivered first, while the server keeps fetching other
 user's free/busy information. So if we could have he
 FreeBusy api such as this, we could leverage those features,
 
 ECalClientFreeBusy
 e_cal_client_get_freebusy_object_sync (ECalClient *client, time_t
 start, time_t end, const GSList *users, GCancellable *cancellable,
 GError **error);
 (with a async counter-part)
 
 Signal: freebusy_received (ECalClientFreeBusy *fbobject, const gchar
 *user, GSList *ecalcomps)
 
 The clients could watch for the signal and update the freebusy
 information as and when they receive from eds. 

Hi,
one more function would be needed, to tell backend from the client that
it may stop delivering free/busy information and/or focus on a new
query. Otherwise you may get responses really any time, which is not
what you actually want.

It all seems to me like an ECalView for free/busy, rather than anything
doable on the backend client itself.

Remember the factory shares backends between data-book/cal-s. With
views, all known are notified about changes on objects (if they belong
to the view), thus even as a view this will not be that easy on the
server side to do, with some hard management of who (EDataCal) is
looking for what (different users, time interval...).
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-19 Thread Milan Crha
On Tue, 2011-04-19 at 10:40 -0400, Matthew Barnes wrote:
 1) There's no need for apps to use numeric IDs to track asynchronous
operations; GCancellable fills that role.  GCancellable is the app's
handle to the ongoing operation.  If the app wants to cancel an
unfinished operation, it calls g_cancellable_cancel().
 
The following functions should be dropped from the public API:
 
  e_client_cancel_op()
  e_client_register_op()
  e_client_unregister_op()
 
All functions that kick off an asynchronous operation should return
void.  If you need to use numeric IDs to track D-Bus operations,
do so internally.  Create an e-client-private.h if you need to.
Don't expose it in the public API.

I was afraid of an overuse of the GCancellable, as it is used for the
DBus communication and then for the whole operation lifetime too. But
you've right, both ways are probably not needed.


 2) ECredentials is way too complex.  My intent for ECredentials was to
have a self-contained authentication handling interface to avoid all
the current nonsense with ECal and EBook where you have to always
remember to connect to authentication signals and then implement the
keyring lookup and user password prompting yourself.
 
 ...
The benefit here is that apps can simply pass some pre-packaged
ECredentials implementation when creating calendar or address book
connections and not have to worry about handling authentication
beyond that.
 
The ECredentials API you came up with would be one possible
implementation of the raw ECredentials interface illustrated above.
It should live in libedataserverui or maybe just in Evolution so it
can run a password dialog or whatever other GTK-related things it
may need to do.

Please see libedataserverui/e-client-authenticate.*. It does that. The
ECredentials is also used in authenticate_user backend implementations,
allowing ask for any backend (as you cannot ask for a password for an
address book from a contact calendar backend right now), and one is also
able to ask for a PIN, as was asked for by the kolab developers.

I covered your requirements and (at least) those two above in a simpler
way, at least for me.

 3) The new functions for EClient classes should be asynchronous, and
 ...
I'd really like for establishing a D-Bus connection to the backend,
connecting to a remote server, and authenticating via ECredentials to
be *one* step for the app.  It either all works and you get back a
fully connected and authenticated EClient object, or something fails
and you get back NULL with a GError set.
 
I want to avoid these weird in-between states where you're holding a
client object but you haven't connected to the backend yet, or you
failed to authenticate with the remoter server, etc.  It just makes
life difficult and confusing for apps trying to figure what they're
supposed to do in these cases.
 ...

Hmm, I think I understand, but I do not see clearly the point. Sometimes
you do not know if the server requires the authentication, only after
open, which will deliver (on idle) the auth-required signal, which can
come before the backend notified open-done, or after, it depends. What
about offline mode? What about offline server which requires
authentication when evolution is online? (The CalDAV calendar backend
deals with that case, somehow.)

I agree that invoking operations on backends which are opened but not
authenticated yet leads to issues, bugzilla shows couple of them, but
I seem to miss here something too.

Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-20 Thread Milan Crha
On Tue, 2011-04-19 at 19:02 -0400, Matthew Barnes wrote:
 On Tue, 2011-04-19 at 23:25 +0100, David Woodhouse wrote: 
  Note the 'gboolean retrying' argument to the libsoup authenticate
  signal handler. We probably want to have something similar in the above
  API too, because that's what tells the UI that it needs to ditch the
  existing remembered password and ask for a new one.
 
 Excellent point, definitely want that.

e_credentials_equal() or e_credentials_equal_keys() offers such
functionality without a need of an extra parameter in a callback - I do
that in the http calendar backend, if you want to look. Maybe it needs a
little bit fixing, but such logic may work, mostly.

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] New 'eclient' branch in eds

2011-04-21 Thread Milan Crha
On Tue, 2011-04-19 at 17:00 +0200, Milan Crha wrote:
 On Tue, 2011-04-19 at 19:39 +0530, Chenthill Palanisamy wrote:
  I would like you to a incorporate some change to the free/busy api.
  Some servers allow querying free/busy information
  for multiple users at a time and the results appear in a iterative
  fashion. The freebusy information of some
  users are delivered first, while the server keeps fetching other
  user's free/busy information. So if we could have he
  FreeBusy api such as this, we could leverage those features,
  
  ECalClientFreeBusy
  e_cal_client_get_freebusy_object_sync (ECalClient *client, time_t
  start, time_t end, const GSList *users, GCancellable *cancellable,
  GError **error);
  (with a async counter-part)
  
  Signal: freebusy_received (ECalClientFreeBusy *fbobject, const gchar
  *user, GSList *ecalcomps)
  
  The clients could watch for the signal and update the freebusy
  information as and when they receive from eds. 

Hi,
I rethought my thoughts about this and I think I follow your idea more
closely now. If I try to rephrase it, then it might be:

On the server side, add new
   e_data_cal_notify_free_busy_data (..., const GSList *ecalcomps);
which invokes a signal on the D-Bus connection about (partial) result
for a free/busy request (note it doesn't provide user separately).
This signal will be valid only while a get_free_busy request is running.
Calling e_data_cal_notify_free_busy_data() out of these functions will
not fail, but the ECalClient consumer may not expect that being done.
With this limitation we'll have a possibility to cancel pending request,
if needed. The e_data_cal_respond_get_free_busy() will have no return
values.

On the client side, the 'finish' function will be also void and any
information about free-busy will be available exclusively in a
free-busy-received signal, which will have a parameter GSList
*ecalcomps.

I hope we are on the same line now. If you agree, then I'll make a
change in this way.
Thanks and bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
http://mail.gnome.org/mailman/listinfo/evolution-hackers


  1   2   3   4   5   >