Re: [Evolution-hackers] Bonobo activation fails... gconf/schema related?
On Thu, 2005-09-01 at 13:02 +0200, Jules Colding wrote: On Thu, 2005-09-01 at 12:04 +0200, Jules Colding wrote: OK, top-posting but... this has me completely baffled: and still does, cause now it won't start again :-( Killing bonobo-activation-server helps, but I can't see why as it should inspect and use the BONOBO_ACTIVATION_PATH env variable, but maybe bonobo-activation-server don't read this properly? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camale] When is the store finalize() called?
On Tue, 2005-09-13 at 03:15 -0600, Susarla Parthasarathi wrote: Thats a known issue. A little complicated to fix. But is surely fixable. Is it in Bugzilla? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel] Folder names
On Tue, 2005-09-13 at 14:06 +0200, Jules Colding wrote: Hi, Are folder names absolute path names in unix convention starting from the top folder, e.g.: /Inbox/evolution ?? My problem is that two folders might have identical paths if the above is correct. I can't e.g. see any reason why two folders on Exchange couldn't both be named: /Inbox/Evolution /Inbox/Evolution but have different entryid. So how do I interpret the folder name in the various methods where it participates? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel] When is the store finalize() called?
On Tue, 2005-09-13 at 22:17 +0800, Not Zed wrote: How important is it? Not really that important, more in the line of If it was designed to be called then it should be called-issue. Nitpicking i guess. Exactly what are you requiring it for? Freeing local resources. If you're using it to free remote resources, like connections, then this is the wrong place to do it. disconnect() is the place for these types of resource deallocations. OK, I do that already. Otherwise, if it is just memory leaks, it just isn't important. It is only due to memory leaks. Regards, jules On Tue, 2005-09-13 at 12:00 +0200, Jules Colding wrote: On Tue, 2005-09-13 at 17:24 +0800, Not Zed wrote: No. Sync could be called at any time. I wasn't aware it was a known issue either, stores certainly used to be finalised at one point. Is this an issue that will be fixed in the 2.4 branch or has it to low of a priority to fix unless there isn't anything else to hack on? Thanks, jules On Tue, 2005-09-13 at 11:24 +0200, Jules Colding wrote: On Tue, 2005-09-13 at 03:15 -0600, Susarla Parthasarathi wrote: Thats a known issue. A little complicated to fix. But is surely fixable. So, none of the providers have their finalize method called. OK, thanks. I can see that the last method being called is sync(). Could/should I safely call finalize() from that one? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel] Folder names
On Wed, 2005-09-14 at 18:10 +0800, Not Zed wrote: It certainly would. Does any upper-level component do any string manipulation with the full name? My idea is to put the entryid at the end of the full name and separate the full name readable part from the entryid part with '\0'. Something like (non-compilable short-hand): fi = { .name = evolution; .full_name = Inbox/evolution'\0'b7d33043-cfb0-4ea9-8aa1-941b0616e891; }; Would that wreck havoc up-source? The full_name may be strcpy'd, so if that is a \0 and not a \\0, then i doubt it would work. It wouldn't work anyway, you'd have to add it to every folder name in the path. If you list: Inbox-UID Inbox/evolution-UID That wont work, since the parent path must be able to be found by stripping off the /.* off a given path. Yes, and it won't work for even more reasons. A .name like child'\0' would expand into parent'\0'/child'\0' with more than one '\0'... Now ... with IMAP, the path we list doesn't map to the server name directly either. snip You could do something like this to store the real folder name/id, and have a mapping function, using some fat-like 'low impact' munging to give you a unique name that isn't too messy, in the few cases you have overlaps. I just got another idea. Is trailing whitespace ever removed from a name being it full or not? I could then add one or more trailing ' 's to any name to make it unique among other folders with identical display name. Like this: fi_a = { .name = evolution ; .full_name = Inbox /evolution ; }; fi_b = { .name = evolution ; .full_name = Inbox /evolution ; }; and keep an internal mapping table that gives me the entryid for any given full name. These name are as unique as any other string could be, you can strcpy() it without any ill effects and you can strip off the /* for any given path to get the parent name. A folder name without any trailing ' ' would indicate that the folder hasn't got an entryid yet. This won't happen on Exchange before it is committed to db. This scheme has the added advantage of producing names that looks identical to the human eye as we are prone to overlook ' ' characters, especially the trailing ones. Thoughts? jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel] Folder names
On Fri, 2005-09-16 at 11:36 +0800, Not Zed wrote: I just got another idea. Is trailing whitespace ever removed from a name being it full or not? I could then add one or more trailing ' 's to any name to make it unique among other folders with identical display name. Like this: fi_a = { .name = evolution ; .full_name = Inbox /evolution ; }; fi_b = { .name = evolution ; .full_name = Inbox /evolution ; }; You dont need to add it to name, only full_name is used to uniquely identify folders. OK. and keep an internal mapping table that gives me the entryid for any given full name. These name are as unique as any other string could be, you can strcpy() it without any ill effects and you can strip off the /* for any given path to get the parent name. A folder name without any trailing ' ' would indicate that the folder hasn't got an entryid yet. This won't happen on Exchange before it is committed to db. This scheme has the added advantage of producing names that looks identical to the human eye as we are prone to overlook ' ' characters, especially the trailing ones. Hmm, i dunno it's up to you! ;-) Thanks a lot, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Link error in evolution-data-server/servers/groupwise
Hi, CVS (gnome-2-12 branch) gives: # SNIP make all-recursive make[1]: Entering directory `/home/andersca/work/src/evolution-data-server' Making all in libdb make[2]: Entering directory `/home/andersca/work/src/evolution-data-server/libdb' Making all in dist make[3]: Entering directory `/home/andersca/work/src/evolution-data-server/libdb/dist' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/home/andersca/work/src/evolution-data-server/libdb/dist' make[3]: Entering directory `/home/andersca/work/src/evolution-data-server/libdb' make[3]: Nothing to be done for `all-am'. make[3]: Leaving directory `/home/andersca/work/src/evolution-data-server/libdb' make[2]: Leaving directory `/home/andersca/work/src/evolution-data-server/libdb' Making all in libedataserver make[2]: Entering directory `/home/andersca/work/src/evolution-data-server/libedataserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/andersca/work/src/evolution-data-server/libedataserver' Making all in servers make[2]: Entering directory `/home/andersca/work/src/evolution-data-server/servers' Making all in groupwise make[3]: Entering directory `/home/andersca/work/src/evolution-data-server/servers/groupwise' /bin/sh ../../libtool --tag=CC --mode=link gcc -g -O0 -Wall -Wmissing-prototypes -Wno-sign-compare -o soap-test soap-test.o -L/home/andersca/opt/lib -lsoup-2.2 -lgnutls -lgcrypt -lgpg-error -lxml2 -lpthread -lz -lm -lglib-2.0libegroupwise-1.2.la -pthread -Wl,--export-dynamic -L/home/andersca/opt/lib -lxml2 -lpthread -lz -lgobject-2.0 -lgnome-2 -lpopt -lgnomevfs-2 -lbonobo-2 -lgconf-2 -lbonobo-activation -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -lpthread -L/usr/lib/mozilla -ldl -lplc4 -lplds4 -lnspr4 gcc -g -O0 -Wall -Wmissing-prototypes -Wno-sign-compare -o .libs/soap-test soap-test.o -pthread -Wl,--export-dynamic -L/home/andersca/opt/lib -L/usr/lib64 ./.libs/libegroupwise-1.2.so -L/usr/lib/mozilla /home/andersca/opt/lib/libsoup-2.2.so /usr/lib64/libgnutls.so /usr/lib64/libgcrypt.so -lnsl /usr/lib64/libgpg-error.so /usr/lib64/libgnome-2.so /usr/lib64/libesd.so /usr/lib64/libasound.so /usr/lib64/libaudiofile.so /usr/lib64/libgnomevfs-2.so /usr/lib64/libxml2.so -lz -lssl -lcrypto -lresolv -lrt /usr/lib64/libbonobo-2.so /usr/lib64/libgconf-2.so /usr/lib64/libbonobo-activation.so /usr/lib64/libORBitCosNaming-2.so /usr/lib64/libORBit-2.so /home/andersca/opt/lib/libORBit-2.so /usr/lib64/libpopt.so /usr/lib64/libgobject-2.0.so -lm /usr/lib64/libgmodule-2.0.so /usr/lib64/libgthread-2.0.so /usr/lib64/libglib-2.0.so -lpthread -ldl -lplc4 -lplds4 -lnspr4 -Wl,--rpath -Wl,/home/andersca/opt/lib ./.libs/libegroupwise-1.2.so: undefined reference to `e_gw_item_set_delivered_date' collect2: ld returned 1 exit status make[3]: *** [soap-test] Error 1 make[3]: Leaving directory `/home/andersca/work/src/evolution-data-server/servers/groupwise' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/andersca/work/src/evolution-data-server/servers' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/andersca/work/src/evolution-data-server' make: *** [all] Error 2 # SNIP -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel] How can I get a reference to the store class from another class?
On Tue, 2005-09-13 at 22:15 +0800, Not Zed wrote: On Tue, 2005-09-13 at 04:31 -0600, Susarla Parthasarathi wrote: On Tue, 2005-09-13 at 10:26 +, Jules Colding wrote: On Tue, 2005-09-13 at 04:08 -0600, Susarla Parthasarathi wrote: On Tue, 2005-09-13 at 09:56 +, Jules Colding wrote: Hi, There is a connect method in the transport class. I would like to use the connect method that I implemented in the store class. How do I get a reference to that one from a CamelService? If you want to use the same session, just implementing the send_to method should do. You could get the service object from CamelTransport and further get the pointer to the CamelStore. Getting a session from the store should be easy. Something like: CAMEL_SERVICE_CLASS(parent_class)-connect(service, ex); from within the transport connect() method? yup. you could do it. Should be no problem. Guess its a clean way to do it. Partha, what are you saying here? parent_class.connect() will only call the super-class method. Transport doesn't derive from Store, they both derive from Service. So if you want to share the connect() implementation from both classes, then it must be implemented in a sharable manner, and not separately. I just noticed this recently added wiki entry: http://go-evolution.org/Camel.Transport#Example:_Sending_a_message where camel_service_connect() is used. It looks very much like camel_service_connect() is using the inherited Camel store connect() method: ## snip ### trans = (CamelTransport *)camel_session_get_service(session, smtp://localhost/, ex); if (camel_exception_is_set(ex)) return; camel_service_connect(trans, ex); if (camel_exception_is_set(ex)) goto noconnect; ## snip ### and from camel-service.c: ret = CSERV_CLASS (service)-connect (service, ex); Can the camel_service_connect() method be used from the transport class to invoke the provider specific Camel store connect() method or am I totally off here once again? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...
Hi, Is the folder_name argument guaranteed to be a unique name in the context of the parent folder? An example: parent_name is Save/Evolution. folder_name is doc. Is it guaranteed that no sub-folder with the name doc exists in Save/Evolution when the function is invoked? Is it guaranteed that the create_folder() method is invoked in a thread-safe manner or must the provider specific store-create_folder() method invoke its own locking mechanism? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...
On Mon, 2005-10-17 at 16:24 +0530, Parthasarathi Susarla wrote: On Mon, 2005-10-17 at 12:13 +0200, Jules Colding wrote: Is it guaranteed that no sub-folder with the name doc exists in Save/Evolution when the function is invoked? Yes. OK, good. Is it guaranteed that the create_folder() method is invoked in a thread-safe manner or must the provider specific store-create_folder() method invoke its own locking mechanism? Typically you would have to use a connect lock, ofcourse that is entirely dependent on the protocol specs your providers supports. Thanks a lot, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?
Hi, I can see several providers implementing a *_getv() method. It seems that it just provides a descriptive name of the folder in question. Is that correct? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?
On Mon, 2005-10-17 at 16:48 +0530, Parthasarathi Susarla wrote: On Mon, 2005-10-17 at 13:04 +0200, Jules Colding wrote: Hi, I can see several providers implementing a *_getv() method. It seems that it just provides a descriptive name of the folder in question. Is that correct? It does a lot more than that. getv provides info based on the type of argument that we require to know about. This would include Total count, Unread count, flags, full name. check the 'folder_getv' method in camel-folder.c. The implementation is clear enough OK, thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] CamelStore create_folder() name constraints...
On Tue, 2005-10-18 at 11:13 +0530, Parthasarathi Susarla wrote: On Mon, 2005-10-17 at 12:02 -0400, Jeffrey Stedfast wrote: On Mon, 2005-10-17 at 16:24 +0530, Parthasarathi Susarla wrote: On Mon, 2005-10-17 at 12:13 +0200, Jules Colding wrote: Is it guaranteed that no sub-folder with the name doc exists in Save/Evolution when the function is invoked? Yes. no, it is not. Thanks for pointing that out jeff. kinda had missed the point there. So sibling folders with identical names might very well exist in any folder? I can not create any such folder with Evolution 2.2.x so it is up to the Camel provider to enforce any such constraint I guess?? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Camel/Exchange] What do I do with un-deletable folders?
On Mon, 2005-10-31 at 14:13 +0100, Jules Colding wrote: Does Camel have a flag or something that I can use to mark those message stores as un-deletable folders or should I just ignore attempts to delete/modify them? Never mind... I just noticed CAMEL_FOLDER_SYSTEM. -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] [CAMEL] CamelFolderInfo clarification please...
Hi, I think that I know how to interpret CamelFolderInfo but I would really appreciate to have my understanding confirmed in the context of get_folder_info(). CamelFolderInfo is declared as: typedef struct _CamelFolderInfo { struct _CamelFolderInfo *next; struct _CamelFolderInfo *parent; struct _CamelFolderInfo *child; char *uri; char *name; char *full_name; guint32 flags; guint32 unread; guint32 total; } CamelFolderInfo; get_folder_info() is declared as: static CamelFolderInfo* brutus_get_folder_info(CamelStore *store, const char *top, guint32 flags, CamelException *ex); My understanding is: next: A pointer to a CamelFolderInfo structure for the next folder on the same tree-level as the current one. The current folder is top. parent: If top is NULL then parent is NULL too. If top is non-NULL then parent is a pointer to the CamelFolderInfo structure for the folder containing top child: This one is the one I am mostly confused about. I think that it is an array of pointers to CamelFolderInfo structures of all folders which is contained within top. The array is terminated with NULL. uri: A string based upon the Camel.Service uri and the full folder name. Its format is otherwise totally unspecified except that it must uniquely identify a given folder. It does not seem to be used anywhere else in Camel. Design oversight? name: A basename()-ish version of full_name. full_name: An absolute path to top. flags: Flags describing top. unread: The number of unread message objects in top. total: The total number of message objects in top. Could someone please confirm that my interpretation is correct? Thanks a lot in advance, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CAMEL_FOLDER_HIDDEN?
Hi, I can see a CAMEL_FOLDER_VISIBLE but no HIDDEN. Is there a way to mark a folder invisible?? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] CAMEL_FOLDER_HIDDEN?
On Wed, 2005-11-02 at 09:18 +0800, Not Zed wrote: No. CAMEL_FOLDER_VISIBLE is a count of the number of visible messages in the folder, it has nothing to do with folder flags. OK, thanks jules On Tue, 2005-11-01 at 13:35 +0100, Jules Colding wrote: Hi, I can see a CAMEL_FOLDER_VISIBLE but no HIDDEN. Is there a way to mark a folder invisible?? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] Can a CamelFolder do without a CamelFolderSummary?
On Thu, 2005-11-10 at 12:25 +0100, Jules Colding wrote: Hi, Is the folder-summary member required to be non-NULL? I am seeing segvs all over the place, after having done my folder implementation, which I suspect is because of access to the folder-summary member which, being NULL, can't be accessed. I was wrong. I discovered that Evolution did not check for uids being NULL in message-list.c line 3474 after retrieving the uids from camel_folder_get_uids(). Fixing my return value fixed the segvs. -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?
Hi, On Mon, 2005-10-17 at 16:48 +0530, Parthasarathi Susarla wrote: On Mon, 2005-10-17 at 13:04 +0200, Jules Colding wrote: Hi, I can see several providers implementing a *_getv() method. It seems that it just provides a descriptive name of the folder in question. Is that correct? It does a lot more than that. getv provides info based on the type of argument that we require to know about. This would include Total count, Unread count, flags, full name. check the 'folder_getv' method in camel-folder.c. The implementation is clear enough Looking at folder_getv() raises memory handling questions. See e.g: ### snip # case CAMEL_FOLDER_ARG_NAME: *arg-ca_str = folder-name; break; case CAMEL_FOLDER_ARG_UID_ARRAY: { int j; CamelMessageInfo *info; GPtrArray *array; count = camel_folder_summary_count(folder-summary); array = g_ptr_array_new(); g_ptr_array_set_size(array, count); for (j=0; jcount; j++) { if ((info = camel_folder_summary_index(folder-summary, j))) { array-pdata[i] = g_strdup(camel_message_info_uid(info)); camel_message_info_free(info); } } *arg-ca_ptr = array; break; } ### snip # arg-ca_ptr must be freed while folder-name is managed by the folder instance. Whom is responsible for freeing the GPtrArray ? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] When do I update the Camel.FolderSummary?
Hi, Reading the comments in the code, it seems that I should only update the folder summary when explicitly told so by Evolution invoking the camel_folder_refresh_info() method or, obviously, when I know something changed server-side. Is that correct? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] When do I update the Camel.FolderSummary?
On Tue, 2005-11-15 at 16:36 +0530, Parthasarathi Susarla wrote: On Tue, 2005-11-15 at 11:45 +0100, Jules Colding wrote: Hi, Reading the comments in the code, it seems that I should only update the folder summary when explicitly told so by Evolution invoking the camel_folder_refresh_info() method or, obviously, when I know something changed server-side. refresh_info can be called in 3 ways: * either by clicking on Send/Receive button * auto sync (timed sync) based on your settings. * or when you select a folder, the selected folder is refreshed. You could explicitly call call camel_folder_refresh_info() when you want to, ofcourse, that is entirely provider implementation specific. But mostly, its usually done in one of the 3 ways mentioned above OK, thanks. Another thing, it is possible to establish a notification mechanism from the remote Exchange server, thereby making it possible to make refresh_info() a do-nothing method. Would that be considered bad practice from an Evolution hackers point of view? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Are SMTP header field names case sensitive?
Hi, RFC 2822 (or RFC 822 for that matter) doesn't explicitly states whether SMTP header field names are case sensitive or not. I would think not but could someone please confirm this? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Are SMTP header field names case sensitive?
On Mon, 2005-11-21 at 11:00 -0500, Jeffrey Stedfast wrote: They're not SMTP header fields, they are Message header fields :) But no, they are not case-sensitive. OK, thanks. That clears it up. -- jules Jeff On Mon, 2005-11-21 at 10:48 +0100, Jules Colding wrote: Hi, RFC 2822 (or RFC 822 for that matter) doesn't explicitly states whether SMTP header field names are case sensitive or not. I would think not but could someone please confirm this? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] I am confused about CamelMessageInfoBase.message_id
Hi, How do I populate this field? I can see in camel-nntp-utils.c:l196 that it is a strdup() of the Message-ID message header filed, but CamelSummaryMessageID is only 8 bytes big, so how can it fit in there? This can't be right, so I am certain that I am missing something in a really stupid and embarrassing way :-( Could someone please lift the clouds from my eyes? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Re: [Apologies] Can camel-mime-utils.[ch] be made public please?
On Mon, 2005-11-28 at 13:59 +0100, Jules Colding wrote: Hi, camel-mime-utils.[ch] contains a *lot* of extremely useful utility functions for Camel providers but those functions are inaccessible for provider backends being developed outside the main tree. Other utility functions, such as those in camel-file-utils.h, are already installed so why not camel-mime-utils? Please consider making these functions public. Please accept my apologies. camel-mime-utils is already public and I have no idea why I couldn't find the file in the include install directory. Again, I am sincerely sorry for the noise :-( jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] camel_header_unfold()
On Mon, 2005-11-28 at 15:10 +0100, Jules Colding wrote: *dst = *rfc822_header; if (!dst) break; That should be: *dst = *rfc822_header; if ('\0' == *dst) break; -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] I am confused about CamelMessageInfoBase.message_id
On Mon, 2005-11-28 at 11:41 -0500, Jeffrey Stedfast wrote: I believe it's the first 8 bytes of a 16-byte MD5 hash of the Message-Id (or it might be the second 8 bytes) You can check the code in camel-folder-summary.c to find out how to calculate it. Yes, at line 1653. Thanks, jules Jeff On Fri, 2005-11-25 at 13:38 +0100, Jules Colding wrote: Hi, How do I populate this field? I can see in camel-nntp-utils.c:l196 that it is a strdup() of the Message-ID message header filed, but CamelSummaryMessageID is only 8 bytes big, so how can it fit in there? This can't be right, so I am certain that I am missing something in a really stupid and embarrassing way :-( Could someone please lift the clouds from my eyes? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] What do I do about missing data in the message summary?
On Tue, 2005-11-29 at 03:04 +0530, Parthasarathi Susarla wrote: On Mon, 2005-11-28 at 10:20 -0500, Jeffrey Stedfast wrote: actually, that's not true. date_sent is gotten from the MIME message headers (Date: header, fwiw). But isnt that the Date received or the date created and not the date send per se?? (RFC 822) Hmm... so which is it? Hands?? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] camel_header_unfold()
On Mon, 2005-11-28 at 12:12 -0500, Jeffrey Stedfast wrote: I see what you are thinking, but by the time this code is run on any input, the \r has already been stripped and you cannot, by definition, have \n\n in a header (it terminates the header block so we don't have to worry about that). I suppose the following modification could be made to be more clear: char * camel_header_unfold(const char *in) { char *out = g_malloc(strlen(in)+1); const char *inptr = in; char c, *o = out; o = out; while ((c = *inptr++)) { if (c == '\n') { if (*inptr == ' ' || *inptr == '\t') { do { inptr++; } while (*inptr == ' ' || *inptr == '\t'); *o++ = ' '; Might be nitpicking, but RFC 2822 says: The process of moving from this folded multiple-line representation of a header field to its single line representation is called unfolding. Unfolding is accomplished by simply removing any CRLF that is immediately followed by WSP. Each header field should be treated in its unfolded form for further syntactic and semantic evaluation. So it appears to me that too much is being removed above. Shouldn't the unfolding operation simply remove the CRLF and nothing else? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] camel_header_unfold()
On Tue, 2005-11-29 at 10:25 -0500, Jeffrey Stedfast wrote: Might be nitpicking, but RFC 2822 says: The process of moving from this folded multiple-line representation of a header field to its single line representation is called unfolding. Unfolding is accomplished by simply removing any CRLF that is immediately followed by WSP. Each header field should be treated in its unfolded form for further syntactic and semantic evaluation. So it appears to me that too much is being removed above. Shouldn't the unfolding operation simply remove the CRLF and nothing else? if you wanted to get nitty gritty to the finer details of the spec, sure, but in reality it's much nicer to get rid of the extra whitespace many clients stick in there when folding. Sigh... I see. I guess I am a nitpicking kind of guy when it comes to standards, but I see the need for recognizing that strangely nonconforming place called the real world. Often, mailers will folder part1 part2 into part1\n\tpart2 or part1 \n\t part2 or sometimes even part1\npart2 Anyways, if we wanted to remove the unfolding niceness, we'd simply remove that inner loop and it'd be fixed. Yes, but your reasons for keeping this behavior seems sound. Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Weird late relase of CamelContentType* in camel-folder-summary.c
Hi, The ct valiable (of type CamelContentType*) in the camel-folder-summary.c function message_info_new_from_header(), is not released until line 1628, but the last time it is used is in a big if statement at line 1614. Why can't it be released at line 1618? Is it mysteriously being used elsewhere in an invisible way?? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] CamelMessageInfoBase.from/to/cc
On Mon, 2005-12-05 at 19:46 +0530, Parthasarathi Susarla wrote: On Mon, 2005-12-05 at 14:14 +0100, Jules Colding wrote: Hi, Must the from, to and cc members be valid email addresses? I am trying to make my CamelMessageInfoBase-building function be as tolerant as possible towards missing or incomplete rfc822 data server-wise. Yes. They should be valid email addresses. What should I do if all of the above message fields is missing? Theres nothing much you can do, if you dont have enough information to populate the MessageInfo structure. The most obvious problem, if you dont populate the structure, is that you wont be able to view all the summary details in Evolution, like from, to, etc Hmm.. OK. May I set the fields to NULL? The most likely situation is that evolution-brutus stumbles upon a draft email where To, CC, From and Subject is still missing. Creating such a message is possible in evo as today, so is the correct way to handle it to set those entries to NULL?? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Should I unref a CamelMesageInfoBase?
Hi, Must I unref a reference to a message info when retrieved by camel_folder_summary_uid()? This function increases the refcount before returning it. I can see from gw_update_summary() in the GroupWise provider that it never unrefs the reference. Is that wrong? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] [Fwd: Weird late relase of CamelContentType* in camel-folder-summary.c]
Hi, Forwarded as my original reply is gone... # snip ## The ct valiable (of type CamelContentType*) in the camel-folder-summary.c function message_info_new_from_header(), is not released until line 1628, but the last time it is used is in a big if statement at line 1614. Why can't it be released at line 1618? Is it mysteriously being used elsewhere in an invisible way?? # snip ## ct can actually not be released early. the returned charset will be garbage if ct is released any earlier. -- jules ---BeginMessage--- Hi, The ct valiable (of type CamelContentType*) in the camel-folder-summary.c function message_info_new_from_header(), is not released until line 1628, but the last time it is used is in a big if statement at line 1614. Why can't it be released at line 1618? Is it mysteriously being used elsewhere in an invisible way?? Thanks, jules ---End Message--- ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Weird logic in Camel Groupwise provider...
Hi, The GW provider has this code snippet in camel-groupwise-folder.c:gw_update_cache(): # snip ### mi = (CamelGroupwiseMessageInfo *)camel_folder_summary_uid (folder-summary, id); if (mi) { exists = TRUE; camel_message_info_free (mi-info); // == unref } if (!exists) { type = e_gw_item_get_item_type (item); if ((type == E_GW_ITEM_TYPE_CONTACT) || (type == E_GW_ITEM_TYPE_UNKNOWN)) { exists = FALSE; continue; } mi = camel_message_info_new (folder-summary); if (mi-info.content == NULL) { mi-info.content = camel_folder_summary_content_info_new (folder-summary); mi-info.content-type = camel_content_type_new (multipart, mixed); } } ## snip ## What I do not understand is that mi is being unref-ed right after having confirmed that mi indeed is a reference to an existing message info. The source then proceeds to populate mi with new data without releasing the pre-existing data in the info (such as to, from and subject). The mi structure members are just being overwritten. Doesn't this lead to memory leaks? Another thing is that the mi structure can suddenly vanish if another thread unrefs it. This shouldn't work if my reading of the source is correct, so I must obviously be missing something very fundamental here :-( Could someone please help me understand what I am missing? Thanks a lot, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Possible bug in GW Camel provider
Hi Partha, On Tue, 2005-12-13 at 18:40 +0530, Parthasarathi Susarla wrote: On Tue, 2005-12-13 at 13:36 +0100, Jules Colding wrote: [snip] Problems seems to arise if exists is TRUE. Issue 1) pstrings, such as mi-info.from, are being overwritten without being released. Issue 2) mi is being unref-ed but subsequently used. mi could vanish while in use if another thread unrefs it once more. The logic there is quite simple and straight forward, if a message exists in the summary already, then we just do a pstring_free and allocate memory for individual items of the MessageInfo structure. I can not see any explicit camel_pstring_free() in the source. I do see a call to camel_message_info_free() if exists if TRUE. This call will unconditionally unref the message info struct as far as I can see. Please correct me if I am wrong here I dont know which source you are using, but i see that its being freed and used properly (if you are not updated, please do so) I am using the gnome-2-12 branch of e-d-s as of today. And the messageinfo is *not* being unreffed But camel_message_info_free() will unconditionally unref the message info, won't it? I'm sure it's me, but I can't make this add up in my head :-( Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] http://go-evolution.org/ - Offline copy?
Hi, There is a wealth of information on the evo wiki, but is there any easy way to save a local copy for offline viewing? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] http://go-evolution.org/ - Offline copy?
On Thu, 2005-12-15 at 13:03 -0500, Lee Revell wrote: On Thu, 2005-12-15 at 12:41 +0100, Jules Colding wrote: Hi, There is a wealth of information on the evo wiki, but is there any easy way to save a local copy for offline viewing? wget No. I tried that a few weeks ago, but nothing usable came back. -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] http://go-evolution.org/ - Offline copy?
On Thu, 2005-12-15 at 14:32 -0500, Saikat Guha wrote: On Thu, 2005-12-15 at 13:03 -0500, Lee Revell wrote: On Thu, 2005-12-15 at 12:41 +0100, Jules Colding wrote: Hi, There is a wealth of information on the evo wiki, but is there any easy way to save a local copy for offline viewing? wget wget \ --convert-links \ --page-requisites \ --html-extension \ --recursive \ --level=2 \ --reject *edit*,*history*,*Special*,*oldid* \ http://url/ does a good job of ripping MediaWiki wikis Indeed it does. My apologies to Lee for not realizing that my set of wget options wasn't the only good set of options ;-) Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CamelMimeMessage - Should I set all or a subset of the headers?
Hi, I can not figure out if I should manually extract as many message header fields from the remote server or if just a few of them (which?) are needed to create a good CamelMimeMessage... I think that I need to set as many as possible, but could someone please confirm this? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] [CAMEL] Can't get Evolution to detect UTF-8 message body
Hi, I get the following message source when I build a CamelMimeMessage from Exchange 5.5: ### snip From [EMAIL PROTECTED] Tue Jan 3 09:38:42 2006 Date: Tue, 03 Jan 2006 09:38:42 +0001 Subject: Most certainly UTF-8 Message-Id: [EMAIL PROTECTED] From: Jules Colding [EMAIL PROTECTED] To: OMC User_0 [EMAIL PROTECTED] Content-Type: multipart/mixed; boundary==-o18WtrkSaIZE4bTvVF8K Mime-Version: 1.0 --=-o18WtrkSaIZE4bTvVF8K Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit æøå ÆØÅ == UTF-8 text (7 characters in all, the middle one a ' ') --=-o18WtrkSaIZE4bTvVF8K-- ### snip This message body displays correctly in my current day-to-day Evolution client (2.2.x) but I can't make Evolution 2.4 (current CVS) to display the UTF-8 characters unless I explicitly do View-Character Encodings-Unicode (UTF-8) in the Evolution UI. Shouldn't Evolution 2.4.x be able to detect the character encoding and display the above message correctly with all UTF-8 characters showing? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [CAMEL] Can't get Evolution to detect UTF-8 message body
On Wed, 2006-01-04 at 13:14 +0100, Jules Colding wrote: I get the following message source when I build a CamelMimeMessage from Exchange 5.5: ### snip From [EMAIL PROTECTED] Tue Jan 3 09:38:42 2006 ^ That character is not in the message source. -- jules # correct message source repeated ### From [EMAIL PROTECTED] Tue Jan 3 09:38:42 2006 Date: Tue, 03 Jan 2006 09:38:42 +0001 Subject: Most certainly UTF-8 Message-Id: [EMAIL PROTECTED] From: Jules Colding [EMAIL PROTECTED] To: OMC User_0 [EMAIL PROTECTED] Content-Type: multipart/mixed; boundary==-o18WtrkSaIZE4bTvVF8K Mime-Version: 1.0 --=-o18WtrkSaIZE4bTvVF8K Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit æøå ÆØÅ == UTF-8 text (7 characters in all, the middle one a ' ') --=-o18WtrkSaIZE4bTvVF8K-- ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CamelStore.get_folder() with no folder name
Hi, I am seeing that get_folder() is being invoked with the empty string as folder name as in: my_provider_store-get_folder(some_store, , 0, ex); What am I expected to return here? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] How do I make the transport capability of my Camel provider public?
Hi, I am doing the usual brutus_provider.object_types[CAMEL_PROVIDER_STORE] = camel_brutus_store_get_type() ; brutus_provider.object_types[CAMEL_PROVIDER_TRANSPORT] = camel_brutus_transport_get_type(); registration of the provider, but it does not seem to be accepted by Evolution: 1) There is no Sending Email pane in the account properties for a Brutus account. Any ideas why this is so? 2) Brutus does not show up as a Server Type option when selecting the Sending Email pane in the account preferences for a POP3 account. How can I make Brutus show up there? I can see that camel_brutus_transport_get_type() and camel_brutus_transport_class_init() is being invoked by Evolution with no errors so I am really confused as to why my transport class is being ignored. Thanks a lot in advance, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Camel.Store - create_folder() confusion
Hi, I am slightly confused about the parent_name and folder_name arguments to create_store(). Is parent_name a leading substring of folder_name? I mean: parent_name = /foo/bar/folder folder_name = /foo/bar/folder/new_folder/yet_another_folder Can folder_name contain non-existing parents and expect them to be created in a 'mkdir -p like fashion? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] camel_store_get_folder_info() memory handling
Hi, Please correct me if I am wrong, but I have suddenly become in doubt about who owns the memory returned by camel_store_get_folder_info(). camel_store_get_folder_info() returns a CamelFolderInfo* so the memory pointed returned by my provider implementation of get_folder_info() must be freed by the caller. Is that correct? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] camel_store_get_folder_info() memory handling
On Wed, 2006-02-15 at 10:37 -0500, Jeffrey Stedfast wrote: CamelStore::free_folder_info()'s v.method can be overridden, so it's really up to your CamelStore implementation. The consumer of the ::get_folder_info() API is supposed to call ::free_folder_info(), but since it can be overridden - you can make it noop, free the info, or free some subset of the info (e.g. it could free the structs but not the strings or some such if the strings point to some internal memory). There are at least 2 convenience implementations in camel-store.h, one is a noop and one is a free-all type. Hope that helps, It does. Thanks a lot :-) jules Jeff On Wed, 2006-02-15 at 14:21 +0100, Jules Colding wrote: Hi, Please correct me if I am wrong, but I have suddenly become in doubt about who owns the memory returned by camel_store_get_folder_info(). camel_store_get_folder_info() returns a CamelFolderInfo* so the memory pointed returned by my provider implementation of get_folder_info() must be freed by the caller. Is that correct? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Camel.Store or Camel.Folder sync()
On Wed, 2006-03-01 at 11:19 +0530, Parthasarathi Susarla wrote: On Tue, 2006-02-28 at 15:21 +0100, Jules Colding wrote: Hi, Both methods seem to be designed to do the same wrt deleted messages - namely to expunge them if the option is set. Where should I put the expunge functionality? In the store implementation or in the folder implementation?? Expunge is a folder operation, so it would go into the CamelFolder Class. There is a method you need to implement in CamelFolderClass for expunge Yes sure, but my question was more directed towards the expunge functionality of sync(). Both camel_store_sync() and camel_folder_sync() have an option for expunging folders. The functionality is therefore shared between the Camel.Store and Camel.Folder classes. I am therefore in doubt about which one is the preferred place to actually implement the expunge functionality. I would guess in Camel.Folder but is that correct? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CamelMessageInfoBase level dirty flag somewhere?
Hi, I am implementing camel_folder_sync(). It would be really nice to know, when loping over the message summaries, if a summary has changed since it was loaded. Imagine that the CAMEL_MESSAGE_FLAGGED flag has been set by the user in CamelMessageInfoBase.flags. Is there any way for my provider to detect if that flag has been set by the user or must a poll the server-side message to detect any changes? Likewise for other flags. Changes to message flags since the last summary load should be detectable by the provider for performance reasons. A message_info_dirty somewhere would be nice. Is there a way to achieve that? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] When do I set the read flag?
Hi, A mail will be non-highlighted after about 1 or 2 seconds when clicked upon if it hasn't been opened before. How do I detect this change in the CamelMessageInfoBase flags? I would like to delay the setting of the READ flag on the remote mail until it happens visually for the user instead at message_get() time. Can that be done? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] CamelMessageInfoBase level dirty flag somewhere?
On Thu, 2006-03-02 at 10:00 -0500, Jeffrey Stedfast wrote: There's a flag CAMEL_MESSAGE_FOLDER_FLAGGED - if set, it means that particular message-info is dirty. As far as figiuring out which particular flags changed, you can add a server_flags variable to your own implementation's CamelMessageInfo and then diff those flags from the CamelMessageInfoBase.flags. OK, thanks a lot. -- jules Jeff On Thu, 2006-03-02 at 11:13 +0100, Jules Colding wrote: Hi, I am implementing camel_folder_sync(). It would be really nice to know, when loping over the message summaries, if a summary has changed since it was loaded. Imagine that the CAMEL_MESSAGE_FLAGGED flag has been set by the user in CamelMessageInfoBase.flags. Is there any way for my provider to detect if that flag has been set by the user or must a poll the server-side message to detect any changes? Likewise for other flags. Changes to message flags since the last summary load should be detectable by the provider for performance reasons. A message_info_dirty somewhere would be nice. Is there a way to achieve that? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Can we *PLEASE* get the go-evolution.org DNS restored?
On Wed, 2006-03-29 at 09:54 +0200, guenther wrote: On Tue, 2006-03-28 at 09:27 +0200, Jules Colding wrote: On Mon, 2006-03-27 at 23:33 +0200, guenther wrote: 'nuff said. Let me repeat it anyway: Can we *PLEASE* get the go-evolution.org DNS restored? I have a reasonably resent wget copy of the wiki. Shall I send a tar-ball your way? Thanks, but no thanks. ;) I don't want it myself. I try to get it back up for anyone who actually uses it. Besides some devel and build stuff in there, my original post points out why it is useful even for the users... Certainly. I really can't imagine why it should go away... Anyway, please keep the tarball for reference till this is fixed, in case we'd need it at any point later. :) OK. I'll leave it here for now: http://www.omesc.com/content/downloads/go-evolution.org.tar.gz Best regards, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] New calendar backend - How do I make it appear?
Hi, I am writing a calendar backend for Brutus. I am (to the best of my knowledge) following the wiki to the letter: http://go-evolution.org/EDS_Architecture#Calendar_backends The problem is that my calendar backend don't show up when trying to create a new calendar in the Evolution 2.4 UI. I haven't yet tried Evolution 2.6 but it should work in 2.4 as well... I can't event see (using strace) that any of the libecalbackend*.so libraries are being read by Evolution. So, are there any magical trick (such as the .urls file for Camel) that I must use? Thanks a lot in advance, jules PS: Full source (look in brutus/idl/products/evolution/2.4) here: http://go-evolution.org/EDS_Architecture#Calendar_backends ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] New calendar backend - How do I make it appear?
On Mon, 2006-04-10 at 15:41 +0200, Jules Colding wrote: PS: Full source (look in brutus/idl/products/evolution/2.4) here: Corrected link: http://www.omesc.com/content/downloads/brutus-snapshot.tar.bz2 -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] How do I use e_passwords_ask_password() without segvs?
Hi, I am trying to invoke e_passwords_ask_password() from a standalone application as well as from my Calendar backend. Both attempts fails miserably with a segv. The segv is in gtk_icon_set_render_icon() and I have no idea of why this happens. The standalone test code that calls e_passwords_ask_password() is rather trivial. Essentially linking all the right libraries, including all the right headers and just doing: int main (int argc, char *argv[]) { gboolean remember = FALSE; char *password = NULL; g_type_init(); g_thread_init(NULL); password = e_passwords_ask_password(Enter password, Brutus, profile, prompt, E_PASSWORDS_REMEMBER_NEVER, remember, NULL); return EXIT_SUCCESS; } I would really appreciate any help in with this and have appended the (lengthly) valgrind output below. Thanks a lot in advance, jules ### valgrind output ==11895== Memcheck, a memory error detector. ==11895== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==11895== Using LibVEX rev 1471, a library for dynamic binary translation. ==11895== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==11895== Using valgrind-3.1.0, a dynamic binary instrumentation framework. ==11895== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==11895== For more details, rerun with: -v ==11895== (process:11895): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed (process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed ==11895== Conditional jump or move depends on uninitialised value(s) ==11895==at 0xCDAFF9: g_param_value_validate (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD9B8A: g_object_set_valist (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD9FA5: g_object_set (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0x7295740: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x7295C97: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD89D8: g_object_new_valist (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD8ADF: g_object_new (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0x729560B: gtk_button_new_from_stock (in /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x72E120E: gtk_dialog_add_button (in /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x7371F1C: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0xCDA1DB: (within /usr/lib/libgobject-2.0.so.0.1000.2) ==11895== ==11895== Conditional jump or move depends on uninitialised value(s) ==11895==at 0xCF7390: (within /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCF4CB4: g_value_transform (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCF8F11: g_strdup_value_contents (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD9DE6: g_object_set_valist (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD9FA5: g_object_set (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0x7295740: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x7295C97: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD89D8: g_object_new_valist (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD8ADF: g_object_new (in /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0x729560B: gtk_button_new_from_stock (in /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x72E120E: gtk_dialog_add_button (in /usr/lib/libgtk-x11-2.0.so.0.800.17) (process:11895): GLib-GObject-WARNING **: value TRUE of type `gboolean' is invalid or out of range for property `visible' of type `gboolean' (process:11895): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed (process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed (process:11895): GLib-GObject-WARNING **: value TRUE of type `gboolean' is invalid or out of range for property `visible' of type `gboolean' (process:11895): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed ==11895== ==11895== Conditional jump or move depends on uninitialised value(s) ==11895==at 0x72E0818: gtk_dialog_set_alternative_button_order (in /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0x7371F5C: (within /usr/lib/libgtk-x11-2.0.so.0.800.17) ==11895==by 0xCDA1DB: (within /usr/lib/libgobject-2.0.so.0.1000.2) ==11895==by 0xCD7E59: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.2)
Re: [Evolution-hackers] How do I use e_passwords_ask_password() without segvs?
On Wed, 2006-04-26 at 11:46 +0100, Ross Burton wrote: On Wed, 2006-04-26 at 12:27 +0200, Jules Colding wrote: I am trying to invoke e_passwords_ask_password() from a standalone application as well as from my Calendar backend. Both attempts fails miserably with a segv. The segv is in gtk_icon_set_render_icon() and I have no idea of why this happens. You don't call gtk_init() so any calls to GTK will randomly crash. Yep, that was it. Thanks a lot :-) jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] How do I query a password from a calendar backend?
Hi, I am having difficulties using e_passwords_ask_password() from with my calendar backend. I am trying to query the password from within the open_sync() method. I have tried wrapping the e_passwords_ask_password() in gdk_threads_enter()/gdk_threads_leave() but that will only result in Evolution freezing when invoking e_passwords_ask_password(). Not doing the gdk_threads_enter()/gdk_threads_leave() wrapping will make Xlib complain about an unexpected async call. I can not simply put auth=1 in the gconf source as that would force a password dialog to open even if I didn't want one to open. So I need a way to query a password from the user when a password is really needed. So, what can I do except from launching an external helper application? In Camel I could use camel_session_get_password(). Is there anything like that from within a calendar backend? Thanks a lot in advance, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] emacs ChangeLog macro
On Mon, 2006-05-01 at 10:56 -0400, Jeffrey Stedfast wrote: I've noticed a lot of inconsistantly formatted ChangeLog entries so I'm sending out this email so the hackers can all add it to their .emacs file (since I'm guessing they don't have it?). C-x 4 a should do the same. -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Camel password - Remembered?
Hi, How do I figure out if the user has chosen to check the Remember password check box when queried by Camel for a password? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Camel password - Remembered?
On Wed, 2006-05-03 at 12:30 -0400, Jeffrey Stedfast wrote: There's no way for a camel provider to know this... This is all handled in the front-end. OK, thanks. jules Jeff On Wed, 2006-05-03 at 14:15 +0200, Jules Colding wrote: Hi, How do I figure out if the user has chosen to check the Remember password check box when queried by Camel for a password? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] How do I query a password from a calendar backend?
Hi Chenthill, On Thu, 2006-05-04 at 22:16 +0530, Chenthill wrote: Hi jules, It is not a good idea to prompt password from the backend. Probably you could write a plugin in evolution for creating the specific calendar and check if you need authentication before setting the auth property. e_password_get_password would get the password if the password has been remembered. Thanks for the advise. I've tried different approaches and have settled on an external helper application that pops up the libedataserverui password GUI and saves the password in gnome-keyring. My problem is that I want the mail account to integrate with the calendar and tasks backends. This means that one password query for an Exchange account is all that it should take for mail, calendar and task accounts to logon to Exchange using evolution-brutus. I really dislike the idea of having separate password/settings dialogs for the calendar, mail and tasks even though they in reality refer to the very same Exchange mailbox. My approach integrates these account(s) into a single user-perceived account - the mail account. Once the mail account is configured it automatically enables the Exchange Calendar and Tasks in the Evolution UI. This works just fine here. Best regards, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] When do open_sync() gets called from a calendar backend?
Hi, I am a bit mystified, due to my lack of intellectual resources, about the behavior of my calendar backend. I have created the gconf source for the calendar and are trying to get Evolution to call open_sync() on it, but that never happens. Instead I am seeing set_mode_sync() and set_default_timezone_sync() being invoked (in that order). The next thing to happen is that Evolution tells me that it is unable to open the calendar. Do I have to invoke open_sync() myself at some appropriate time? Thanks, jules BTW: I have invoked e_cal_backend_sync_set_lock(backend, TRUE) in e_cal_backend_brutus_init() to force serialization of method invocations. ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] When do open_sync() gets called from a calendar backend?
Hi Chenthill, On Sat, 2006-05-06 at 15:06 +0530, Chenthill wrote: Hi Jules, Once the mode and timezone is set, e_cal_open_async would be called to open the calendar. Please check if e_cal_open_async is being called from evolution. You need not invoke it separately. Hmm... I can see that e_cal_open() is being called, not e_cal_open_async(). My calendar inherits from ECalBackendSync so isn't that as it should be? Well, I'll better spread a few printf()'s in e_cal_open() to see where it fails. Thanks, jules thanks, Chenthill. On Fri, 2006-05-05 at 14:05 +0200, Jules Colding wrote: Hi, I am a bit mystified, due to my lack of intellectual resources, about the behavior of my calendar backend. I have created the gconf source for the calendar and are trying to get Evolution to call open_sync() on it, but that never happens. Instead I am seeing set_mode_sync() and set_default_timezone_sync() being invoked (in that order). The next thing to happen is that Evolution tells me that it is unable to open the calendar. Do I have to invoke open_sync() myself at some appropriate time? Thanks, jules BTW: I have invoked e_cal_backend_sync_set_lock(backend, TRUE) in e_cal_backend_brutus_init() to force serialization of method invocations. ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?
Hi, Does any documentation as to the precise meaning of the capabilities exists? Some of these aren't entirely obvious. Here is my take on the definitions: * CAL_STATIC_CAPABILITY_NO_ALARM_REPEAT No repeating alarms. How is this related to the backend? Isn't it the Evolution front-end that do the alarm stuff? * CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS No audio alarms. Again, how is this related to the backend? * CAL_STATIC_CAPABILITY_NO_DISPLAY_ALARMS No visual alarms. Again, how is this related to the backend? * CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS No email alarms. Again, how is this related to the backend? * CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS What is this? * CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT The backend can not assign tasks to individual entities. * CAL_STATIC_CAPABILITY_NO_THISANDFUTURE The backend can not do a search for events/tasks that are starting at any time from and including now. * CAL_STATIC_CAPABILITY_NO_THISANDPRIOR The backend can not do a search for events/tasks that are starting at any time before but including now. * CAL_STATIC_CAPABILITY_NO_TRANSPARENCY What is this? * CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY Only one alarm can be active at any one time. Again, how is this related to the backend? Isn't it the Evolution front-end that do the alarm stuff? * CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ATTEND The organizer is a required participant in any meeting. * CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS What is this? * CAL_STATIC_CAPABILITY_REMOVE_ALARMS Alarms can be removed. * CAL_STATIC_CAPABILITY_SAVE_SCHEDULES What is this? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?
On Tue, 2006-05-09 at 14:30 +0200, Jules Colding wrote: * CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS No audio alarms. Again, how is this related to the backend? Hmm... cut'n paste from a HTML page. These horizontal lines wasn't intended to be in the mail. Sorry, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] CAL_STATIC_CAPABILITY_* documentation?
Hi Harry, Thanks a lot for these explanations. Most helpful :-) Does any one know about the remaining ones below? Thanks, jules On Tue, 2006-05-09 at 20:59 +0800, Harry Lu wrote: * CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK What is this? Convert from what? * CAL_STATIC_CAPABILITY_NO_CONV_TO_RECUR What is this? Convert from what? A normal event can not be converted to a recurrence event.(???) * CAL_STATIC_CAPABILITY_NO_GEN_OPTIONS What is this? * CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS What is this? * CAL_STATIC_CAPABILITY_RECURRENCES_NO_MASTER What is this? * CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ACCEPT The organizer must accept the meeting. * CAL_STATIC_CAPABILITY_DELEGATE_SUPPORTED Support for delegation * CAL_STATIC_CAPABILITY_NO_ORGANIZER Support for meeting without any organizer. * CAL_STATIC_CAPABILITY_DELEGATE_TO_MANY Can delegate to more than one at the same time. * CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING What is this? ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Calendar backend - ECalComponent properties
Hi, How do I set properties on an ECalComponent to the effect that the following check boxes are checked: 1) All day event 2) Show time as busy I can't see any methods in e-cal-component.h to that effect... Thanks a lot, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] What 'role' should a resource-type cutype have?
Hi, I can't decide upon the ICAL role that a ECalComponentAttendee should have if cutype is a resource. I am currently doing: attendee-cutype = ICAL_CUTYPE_RESOURCE; attendee-role = ICAL_ROLE_NONPARTICIPANT; // what else? Is that the best thing to do? - Thoughts? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] What 'role' should a resource-type cutype have?
On Fri, 2006-06-16 at 11:46 +0530, Chenthill wrote: Hi Jules, On Thu, 2006-06-08 at 13:15 +0200, Jules Colding wrote: Hi, I can't decide upon the ICAL role that a ECalComponentAttendee should have if cutype is a resource. I am currently doing: attendee-cutype = ICAL_CUTYPE_RESOURCE; attendee-role = ICAL_ROLE_NONPARTICIPANT; // what else? Is that the best thing to do? - Thoughts? yes, AFAIK the resource would be a non-participant. OK, thanks a lot. -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Events diplayed as tasks?
Hi, I have a functioning calendar backend that supports events as well as tasks. The events are displayed in the calendar as expected, but they are also appearing as tasks in the summary list. Why?? I haven't even populated the task cache yet, so everything displayed in the task list is really nothing but a common event. Should events display in the task list or how can I stop them from doing so?? Illustrative screenshot: http://www.omesc.com/content/downloads/screenshots/event_tasks.png Thanks a lot in advance, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Calendar backend: RepositoryOffline V. OfflineUnavailable
Hi, What exactly is the difference between those two return values? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Multiple calendars
Hi Scott, On Fri, 2006-07-07 at 16:27 -0700, Scott Herscher wrote: Hey all. I'm struggling to understand something that I think should be obvious. I'll try a shot at an explanation below despite my very limited knowledge... I'm writing a new e-cal backend, and it connects to a server that supports multiple calendars. I get that when I create the account, my eplugin will query the server, learn about all the calendars, create one group and then create multiple sources (one for each calendar). But what happens after I've added the account? What part of the evolution data server framework is responsible for monitoring if new calendars are added remotely, or calendars are delete remotely? I think you should hide this in the implementation of your backend. The gconf source will reflect an instance of a calendar as supported by your backend. You can choose to get all of the data in your different simultaneously supported calendars and display it in one single calendar or you can choose to created multible gconf sources, one for each remote calendar, and display that data in different calendars. My experience is that newly create gconf sources will show up almost instantaneously in the calendar view, but I'm creating the sources in the Camel provider, so my experiences might not be applicable to you. Related to this first question...if I have multiple calendars and they all are individual e-sources, wouldn't they sync up to the server individually? It seems like I'd want the e-group instance to initiate syncs, and then tell the individual e-sources what was added or deleted. I'm sure I'm missing something here...I just don't know what it is yet. Hmm - I'm not sure that I understand your question... Any help would be oh so greatly appreciated. The usual answer is that you should look in the existing backends and see what they do. Take a look into my Brutus backend too as it may illuminate the problems in a different way. Best regards, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Multiple calendars
Hi Scott, On Mon, 2006-07-10 at 16:48 -0700, Scott Herscher wrote: Hey Jules! Thanks a lot for your reply. I know my questions weren't so clearly worded. So I guess I can boil down my questions to this question (and least until I think of more questions): is there a one-to-one relationship between an e-source and an e-cal backend? There is a one-to-one relationship between an e-source and an e-cal backend object instance. The same physical backend library can serve multiple calendars/task/whatever accounts. For my purposes, I don't think it would work to hide the multiple calendars and only display one calendar. So I think I'm going to have to create an e-source for every calendar. I'm just not sure how that relates to e-cal backend. Again...any help would be greatly appreciated. Any e-source with the right protocol (brutus:// in my case, maybe zimbra:// in yours) will make the eds frontend instantiate an e-cal backend object for that specific e-source. The supported e-cal backend protocol is returned by the factory method _get_protocol(). You have to check for the specifics (what calendar in particular) by looking at the e-source from within your backend. Just hide something that identifies the particular calendar within the e-source uri. HTH, jules Thanks, Scott - Original Message - From: Jules Colding [EMAIL PROTECTED] To: Scott Herscher [EMAIL PROTECTED] Cc: evolution-hackers@gnome.org Sent: Monday, July 10, 2006 2:36:26 AM GMT-0800 Subject: Re: [Evolution-hackers] Multiple calendars Hi Scott, On Fri, 2006-07-07 at 16:27 -0700, Scott Herscher wrote: Hey all. I'm struggling to understand something that I think should be obvious. I'll try a shot at an explanation below despite my very limited knowledge... I'm writing a new e-cal backend, and it connects to a server that supports multiple calendars. I get that when I create the account, my eplugin will query the server, learn about all the calendars, create one group and then create multiple sources (one for each calendar). But what happens after I've added the account? What part of the evolution data server framework is responsible for monitoring if new calendars are added remotely, or calendars are delete remotely? I think you should hide this in the implementation of your backend. The gconf source will reflect an instance of a calendar as supported by your backend. You can choose to get all of the data in your different simultaneously supported calendars and display it in one single calendar or you can choose to created multible gconf sources, one for each remote calendar, and display that data in different calendars. My experience is that newly create gconf sources will show up almost instantaneously in the calendar view, but I'm creating the sources in the Camel provider, so my experiences might not be applicable to you. Related to this first question...if I have multiple calendars and they all are individual e-sources, wouldn't they sync up to the server individually? It seems like I'd want the e-group instance to initiate syncs, and then tell the individual e-sources what was added or deleted. I'm sure I'm missing something here...I just don't know what it is yet. Hmm - I'm not sure that I understand your question... Any help would be oh so greatly appreciated. The usual answer is that you should look in the existing backends and see what they do. Take a look into my Brutus backend too as it may illuminate the problems in a different way. Best regards, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Camel: Recommended way to reload folder summary?
Hi, This is rather unusual, but I need a good way of reloading the folder summary from file for a CamelFolder. Any recommended utility function(s) to do that? Or should I just unref the summary and then use camel_folder_summary_load()? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Camel unreferencing question
On Fri, 2006-08-25 at 12:10 +0200, Philip Van Hoof wrote: Camel hackers, It's not clear from the gtk-doc API documentation* whether or not you must unreference a store after getting it using camel_session_get_store *) http://pvanhoof.be/files/libcamel-api/html/CamelSession.html The source is: CamelService * camel_session_get_service_connected (CamelSession *session, const char *url_string, CamelProviderType type, CamelException *ex) { CamelService *svc; svc = camel_session_get_service (session, url_string, type, ex); if (svc == NULL) return NULL; if (svc-status != CAMEL_SERVICE_CONNECTED) { if (camel_service_connect (svc, ex) == FALSE) { camel_object_unref (svc); return NULL; } } return svc; } #define camel_session_get_store(session, url_string, ex) \ ((CamelStore *) camel_session_get_service_connected (session, url_string, CAMEL_PROVIDER_STORE, ex)) The comment for camel_session_get_service() says that the reference count for the service is incremented for each retrieval. This seems to conclusively prove that you should indeed unref the store after you are done with it. HTH, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Recurrence ID?
Hi, What is the format of the recurrence ID (const char *rid) as used in get_object(), remove_object() and other related calendar methods? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Recurrence ID?
On Tue, 2006-10-17 at 22:34 +0530, chenthill wrote: Hi Jules, The format of the recurrence id (datetime value) is the same as that is specified in rfc 2445. OK, thanks! jules thanks, Chenthill. On Fri, 2006-10-13 at 14:49 +0200, Jules Colding wrote: Hi, What is the format of the recurrence ID (const char *rid) as used in get_object(), remove_object() and other related calendar methods? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [PATCH] Adding execversion to evolution-shell.pc
Hi Harish, On Thu, 2006-11-02 at 13:50 +0530, Harish Krishnaswamy wrote: Jules, The change is fine to commit. Add a ChangeLog before committing this though and please include ChangeLogs while submitting patches in future. TIA. Sure, will do. It is also preferred to do patch submissions on bugzilla.gnome.org (first choice) or at least on evolution-patches. Will do too ;-) Best regards, jules - Harish On Tue, 2006-10-31 at 14:47 +0100, Jules Colding wrote: Hi, Would anyone object to the following patch? It makes it a lot easier to detect the Evolution version. I don't know if anyone else has that problem, but I do... Please reject or accept. Thanks, jules Index: evolution-shell.pc.in === RCS file: /cvs/gnome/evolution/evolution-shell.pc.in,v retrieving revision 1.13 diff -u -p -r1.13 evolution-shell.pc.in --- evolution-shell.pc.in 19 Aug 2006 06:30:06 - 1.13 +++ evolution-shell.pc.in 31 Oct 2006 13:44:55 - @@ -14,6 +14,8 @@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ + IDL_INCLUDES=-I ${idldir} @IDL_INCLUDES@ Name: evolution-shell ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] what's the function of RECURRENCE-ID
On Wed, 2006-11-15 at 10:39 +0800, yanglin wrote: Hi, The rfc2445 has the definition of RECURRENCE-ID, and the libical provides the interface: icalcomponent_get_recurrenceid ( ). The rid can be used in the function e_cal_get_object ( ) to specify the rid of the icalcomponent. But the libical doesn't provide example of the usage of RECURRENCE-ID. I'm puzzled by the functions of RECURRENCE-ID. Rfc2445 has provided the recurrence component properties like recurrence rule, recurrence date/time, Exception rule... These are enough to describe a repeating component. Can anybody give me a use case that the RECURRENCE-ID must be used? The recurrence ID is the ID of a specific occurrence. HTH, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] what's the f unction of RECURRENCE-ID
On Wed, 2006-11-15 at 18:55 +0800, yanglin wrote: Yes, I got it. When an instance of an repeating event needs to be modified instead of the whole set of the events, the RECURRENCE-ID is useful. In other word, To reschedule an event to a set of explicit dates/times but not replace the set with a new rule pattern, the sender shuld send a set of components with RECURRENCE-ID being set in each to handle the explicit override of the rule's date/time. It seems that the libical doesn't provide the interface to remove an instance of a repeating event from the backend. Is that right? See e-cal-backend-sync.h:L47 and e-cal.c. HTH, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] CamelStreamMem == CamelStream ?
Hi, I'm looking for an easy way to transfer the content of a CamelStreamMem to a CamelStream without having a duplicate of the content around. Does anyone know a non-hackish(*) way to do that? What I want to accomplish is to read a structure from memory into a CamelStreamMem and then store it in a CamelDataCache. Maybe there is a better way to do this? Thanks, jules (*) Without accessing the private buffer member. ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Why a bitfield in CamelOfflineFolder?
Hi, Is this really necessary? struct _CamelOfflineFolder { CamelFolder parent_object; unsigned int sync_offline:1; }; Wouldn't it be much better/simpler/cleaner simply to do: struct _CamelOfflineFolder { CamelFolder parent_object; gboolean sync_offline; }; ?? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] How do I detect changes in the sync_offline checkbox?
Hi, Is there a standard way to detect whenever a user checks or un-checks the Copy folder content locally for offline operation check box(*) short of creating a thread to check periodically? A call-bak function or something like that? Thanks, jules (*) For a CamelOfflineFolder instance ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?
On Thu, 2006-11-30 at 10:23 +, Ross Burton wrote: On Thu, 2006-11-30 at 11:07 +0100, Jules Colding wrote: Sorry, I must be dim-witted here, but I don't understand your answer. The present definition of CamelOfflineFolder has: unsigned int sync_offline:1; ^^== bit field I'm asking why we don't simply do: gboolean sync_offline; instead? I'm presuming to save memory -- maybe the folder is nested in another struct and the compiler can compact the bitfields into a single word. However that doesn't appear to be the case so in this situation a gboolean would use the same amount of memory as the int:1. I'm guessing this was a style choice: always use a bitfield so future boolean flags are compacted. A bit over-designed (and not consequently applied to other data structures) if I may say so... Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?
On Thu, 2006-11-30 at 12:08 -0500, Matthew Barnes wrote: On Thu, 2006-11-30 at 11:51 -0500, Jeffrey Stedfast wrote: wow, that came out totally wrong... using a single bit allows us to extend the structure with more bitfields w/o breaking ABI if we find we need to. it's akin to having: unsigned int sync_offline:1; unsigned int unused:31; I'm just curious, but what's the advantage of bitfields over just having an integer field called flags and defining the individual flags as enum values? The latter approach has all the advantages that Jeff enumerated, but it also allows you to work with groups of flags at once (e.g. masking, copying, etc.). Perhaps that's not relevant for this particular case? As far as I see it there is no difference/advantage at all. It is just a matter of personal coding style if you prefer to handle bit fields instead of bit flags. I would have preferred a bit flags, but who am I to criticize the style of another coder if there is no factual advantage of choosing one style over the other? Best regards, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Why a bitfield in CamelOfflineFolder?
On Fri, 2006-12-01 at 10:18 -0500, David Malcolm wrote: On Fri, 2006-12-01 at 11:39 +0100, Jules Colding wrote: On Thu, 2006-11-30 at 12:08 -0500, Matthew Barnes wrote: On Thu, 2006-11-30 at 11:51 -0500, Jeffrey Stedfast wrote: wow, that came out totally wrong... using a single bit allows us to extend the structure with more bitfields w/o breaking ABI if we find we need to. it's akin to having: unsigned int sync_offline:1; unsigned int unused:31; I'm just curious, but what's the advantage of bitfields over just having an integer field called flags and defining the individual flags as enum values? The latter approach has all the advantages that Jeff enumerated, but it also allows you to work with groups of flags at once (e.g. masking, copying, etc.). Perhaps that's not relevant for this particular case? As far as I see it there is no difference/advantage at all. It is just a matter of personal coding style if you prefer to handle bit fields instead of bit flags. I would have preferred a bit flags, but who am I to criticize the style of another coder if there is no factual advantage of choosing one style over the other? A debugger has a chance of deciphering single-bit fields, whereas if you do it with #defined masks on a plain uint32, it (probably) can't. Hmm... good point. At least it seems easier to read while debugging when you are presented with a name instead of just a plain uint that you must decipher in your head. So the difference points down to a matter of what is easier to read when things go south. Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Visual indication of online/offline?
Hi Srini, On Wed, 2006-12-06 at 17:20 +, Srinivasa Ragavan wrote: Hey Jules, I have some plans on the intrusive error dialogs stuff. I dont think I can work on the current release time frame. May be post 2.10 is what I'm looking at. Basically cancel-able should be tasks, with a 'x' button in the status bar. If any errors occur, a '!' next to the status bar text and a visual cue to indicate error, which user can click and see the respective errors. The user can choose to see or cancel all tasks/errors and no more intrusive popups. All background/foreground tasks will have a visible entry in the status bar. This is an initial idea I had, but Im sure, there could be lots of improvements to it. Sounds like a good way to do it. Please tell me when you have something that I can test so that I can give you some constructive feedback. The idea of having a visual indication at the store level is good. This idea will also add more value if we can have store level online/offline state. Exactly. I've recently put a great deal of work into getting evolution-brutus to handle various offline situations gracefully and it is really annoying to see the Sorry the folder is offline popup every time I click on an offline folder. Please do remember that there are tree kinds of offline mode at the store level: 1) A store level version of the current offline mode. This mode basically say Please do not attempt to pull mail from the server, thanks. It is therefore not an error but merely a user request. The present implementation lack the ability to put the store in real offline mode. All it does, as far as I can see, is to disable the periodic mail check. Which lead us to: 2) A store level voluntary offline mode. This is more than the current offline state. A user requesting to be put in voluntary offline mode knows that he will be truly offline. This could be a user which is about to disconnect his laptop. This is therefore not an error condition either. 3) A store level hard offline mode. This mode indicates that the provider can't communicate flawlessly (if at all) with the remote server. It might be down or something. It is therefore a true error condition. 1), 2) and 3) should therefore be signalled differently to the user. The user will have to deal with 2) or 3) every time he clicks on a voluntary or hard offline folder. It is therefore not always convenient to throw an exception (with will show a popup window) each and every time. I will propose the following scheme: Voluntary offline - The user can choose to go into voluntary offline mode. This mode is not an error condition, so it should not be signalled as one. The store and all of its folder should look like a disabled UI element, like a disabled button. Hard offline The store is technically incapable of communication with the remote server. This is a true error condition and should therefore promptly be presented to the user with a popup windows (CamelException) the first time the error is encountered. No other popup windows should be shown in subsequent store operations, but the store should make it very clear that the error persists by showing some dramatic visual indication of the error. The store might be blinking in bright red or something. The user can choose to put the store in voluntary offline mode while his admin fixes the problem. Much of the above is store level implementation tasks, but the ability to do the proposed signaling to the user is something that must be supported by up-source e-d-s code. Best regards, jules -Srini. On Wed, 2006-12-06 at 12:06 +0100, Jules Colding wrote: Hi, Is there any way to signal a visual indication that a specific CamelStore is offline? I'm thinking that making the account blink in bright red or maybe just a little store specific offline icon next to the account in the side bar would be much better than a CamelException. An exception is presented as an error to the user in a popup window. I would rather like to gently show a warning to the user. A popup is really disturbing... Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] camel_operation_cancel_check() not working?
Hi, I have a big and potentially slow loop running when updating the folder summaries. I'm basically initializing a CamelOperation like this: CamelOperation *cop = camel_operation_registered(); if (!cop) { cop = camel_operation_new (NULL, NULL); if (!cop) return; camel_operation_register(cop); cop_unreg = TRUE; } camel_operation_start(cop, _(Fetching folder summary information)); camel_operation_progress(cop, 0); Then in the loop I do like this: do { if (camel_operation_cancel_check(cop)) { d(Cancelled); camel_exception_set(ex, CAMEL_EXCEPTION_USER_CANCEL, _(Fetching folder summary information canceled)); goto cancelled; } do lots of stuff cancelled: camel_operation_progress(cop, 100); camel_operation_end(cop); if (cop_unreg) camel_operation_unregister(cop); camel_operation_unref(cop); break; } while (TRUE); Now I expect that I'm able to press cancel after pressing f9 and have my loop exit gracefully. In what way do I err? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] camel_operation_cancel_check() not working?
On Thu, 2006-12-07 at 13:13 +0100, Jules Colding wrote: Now I expect that I'm able to press cancel after pressing f9 and have my loop exit gracefully. OK, I've discovered that if I press the big red Cancel button in the Toolbar then it works, but not if I press the small Cancel button(s) in the Send Receive Mail popup window. Also - The Send Receive Mail progress bar does not progress even if I see the progress count progress steadily from 0% to 100% in the Status Bar. What is going on here? Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Removal of implementation details from public API, any breakages?
On Sun, 2007-05-20 at 11:29 +0100, Ross Burton wrote: Hi, Last week I committed a patch to libebook, and want to commit a patch to libecal[1], which removes private functions and types from the installed headers. This has several consequences: - e_cal_view_new() is removed - ECalListener is removed - ECalViewListener is removed I believe that nobody is using these functions apart from libecal itself, so this removal is safe. However, I'd appreciate it if anyone writing advanced clients to EDS (like Zimbra or Brutas) remove their currently installed headers, apply the patch, and rebuild. Brutus is safe. Thanks for the notice, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Error dialogs in evolution data server plugin
On Wed, 2007-06-20 at 14:10 -0700, Scott Herscher wrote: Thanks Jules! Appreciate the help. No problem ;-) Please just look at my source before you spend any time on coding your own helper. I've made it identical to the official Evolution password dialog so that it should fit into the overall design. Best regards, jules Scott On Jun 20, 2007, at 12:29 AM, Jules Colding wrote: On Tue, 2007-06-19 at 16:59 -0700, Scott Herscher wrote: Okay, hopefully this will be my last question of the day. I'd like to throw up a dialog box in my Zimbra Connector for Evolution when a server's SSL certificate is bad. I was going down the path of using gtk_message_dialog_new(...), but it doesn't seem to be working. So I have two questions: 1) Is there a better way of notifying the user of SSL certificate problems than using gtk_message_dialog_new? I've had the same problem in e-b when trying to get input (passwords) from the user. I ended up coding a separate helper application that displayed the dialog. No other way to do it I'm afraid... HTH, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] [Evolution] Debug enhancements for evo
On Wed, 2007-09-05 at 16:05 -0400, Matthew Barnes wrote: On Wed, 2007-09-05 at 15:03 -0400, Paul Smith wrote: It seems that Evo is using a standard library (glib maybe?) to provide debug/logging facilities. Is there any way to either resolve these issues in Evo itself, or else get them resolved by whomever manages the libraries? I don't have an answer to your immediate question but I have thought about Evolution's debug/logging facilities a bit. A lot of good debugging information is disabled in the released tarballs using this technique: #define d(x) ... d(printf (Useful debugging info...)); A developer or interested hacker then has to redefine d as #define d(x) x and recompile to unlock those debug messages. The problem with this is there's no central logging mechanism that all the messages flow through, so adding a timestamp as you suggested (and an excellent suggestion it is) would require changing all the messages individually. Instead, we should better utilize GLib's logging features. For starters, change all debug messages over to g_debug (Useful debugging info...); and give each Makefile.am a unique G_LOG_DOMAIN. Then register a handler function for all DEBUG-level messages. Depending on whether a DEBUG message's log domain is turned on or off (off by default), the handler function could time-stamp and print the message or silently eat it, respectively. Log domains could be turned on perhaps by way of an environment variable (and/or make the --debug option actually do something useful): EVO_DEBUG=colon:separated:list:of:logging:domains There's a lot we could do here. These are just a few ideas. Something to shoot for in Evolution 2.14, perhaps? Further discussion should be moved to evolution-hackers. Hereby moved. Maybe something like what I do in e-b could be used or maybe inspire evo debugging... I've had many of the same problems that Paul describes. One of the most annoying ones was that I had to start evolution and e-d-s in separate terminals to get debugging output from both. My solution was to write a small log daemon and then use a combination of macros and utility functions to write to the log daemon. The result can be seen if you download this tarball: http://www.omesc.com/sites/default/files/downloads/dist/evolution-brutus/SOURCES/evolution-brutus-1.1.29.8.tar.gz and inspect the log sub-directory as well as 'server/brutus.h' and 'server/brutus_debug.c'. All logging happens conditionally depending on whether the BRUTUS_DEBUG environment variable is defined and whether or not debugging has been enabled at compile time. Timestamps are on or off depending on yet another environment variable. HTH, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] SVN issues
On Fri, 2007-09-21 at 13:10 +0530, Veerapuram Varadhan wrote: On Fri, 2007-09-21 at 09:18 +0200, Jules Colding wrote: On Thu, 2007-09-20 at 15:43 -0400, Paul Smith wrote: Hi all; I'm not an evolution developer but I'm trying to understand the way the project uses subversion. I have some questions, especially now that there's been a release of 2.12: * Shouldn't there be a gnome-2-20 branch on evolution-webcal? there may be other Evo modules that don't have the right branch. * I notice that the versions of the code that I'm building still say 2.11.92, rather than 2.12, but I thought that 2.12 was officially released? I don't see anything on the gnome-2-20 branch that changes the version number, which is where you'd expect it to be. * Are we adding tags to the code to denote the release? I don't see any tags that seem to be related to this release. I can only join you in your puzzlement. The following are excepts from configure.in and shell/Makefile.am: configure.in: AC_INIT(evolution, 2.11.92, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution) shell/Makefile.am: noinst_PROGRAMS = evolution install-exec-local: install-evolution $(mkinstalldirs) $(DESTDIR)$(libexecdir) mv $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) $(DESTDIR)$(libexecdir)/evolution-$(BASE_VERSION) $(INSTALL_PROGRAM) evolution-nognome $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) These tree excerpts alone makes me believe that svn.gnome.org/svn/evolution/trunk isn't the primary repository that the Novell developers checks their source into... Certain instances make us believe somethings to be true, but, they are necessarily not. puzzled, When kisses and misses happen, they leave us puzzled. ;-) ;-) Will be fixed shortly and thanks for bringing it out. Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Evo svn head requires libgtkhtml-3.14 = 3.16.0' but gtkhtml svn head is Version: 3.15.92
On Tue, 2007-09-25 at 08:23 -0400, Matthew Barnes wrote: On Tue, 2007-09-25 at 12:11 +0530, Srinivasa Ragavan wrote: This also would do. But normally we would bump it during the next dot release. Anyways is fine IMO. Hi Srini, I think we still have a misunderstanding here. The latest revision of Subversion trunk still has the version in configure.in at 3.15.92 and the latest ChangeLog entry is: 2007-09-03 Srinivasa Ragavan [EMAIL PROTECTED] ** GtkHTML 3.15.92 release * NEWS, configure.in: But the latest ChangeLog entry in the 3.16.0 tarball is: 2007-09-17 Srinivasa Ragavan [EMAIL PROTECTED] ** GtkHTML 3.16.0 release * NEWS: * configure.in: So it looks like at least the ChangeLog, NEWS, and configure.in changes prior to the 3.16.0 tarball upload were never committed. Which, BTW, is still the case for evolution (version 2.11.92 in svn) and e-d-s (version 1.11.92 in svn). The changes up to and including x.12.0 must still be on someones disk. Please commit. Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Evo svn head requires libgtkhtml-3.14 = 3.16.0' but gtkhtml svn head is Version: 3.15.92
On Wed, 2007-09-26 at 10:07 +0530, Srinivasa Ragavan wrote: On Tue, 2007-09-25 at 14:34 +0200, Jules Colding wrote: On Tue, 2007-09-25 at 08:23 -0400, Matthew Barnes wrote: On Tue, 2007-09-25 at 12:11 +0530, Srinivasa Ragavan wrote: This also would do. But normally we would bump it during the next dot release. Anyways is fine IMO. Hi Srini, I think we still have a misunderstanding here. The latest revision of Subversion trunk still has the version in configure.in at 3.15.92 and the latest ChangeLog entry is: 2007-09-03 Srinivasa Ragavan [EMAIL PROTECTED] ** GtkHTML 3.15.92 release * NEWS, configure.in: But the latest ChangeLog entry in the 3.16.0 tarball is: 2007-09-17 Srinivasa Ragavan [EMAIL PROTECTED] ** GtkHTML 3.16.0 release * NEWS: * configure.in: So it looks like at least the ChangeLog, NEWS, and configure.in changes prior to the 3.16.0 tarball upload were never committed. Which, BTW, is still the case for evolution (version 2.11.92 in svn) and e-d-s (version 1.11.92 in svn). The changes up to and including x.12.0 must still be on someones disk. It is there in gnome-2-20 branch as well. It isn't there in trunk. So the gnome-2-20 branch is further along than trunk? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] New version of the Evo SVN Makefile
On Tue, 2007-10-02 at 18:42 -0400, Paul Smith wrote: Hi all; I just uploaded a new version of my Makefile to build Evo from SVN. This version allows for building the current SVN trunk HEAD (up until today I was building on the 2.20 branch). Really excellent I must say. Thanks, jules Thanks to Reid Thompson for pointing out that gnome-icon-theme is now necessary for the build. I also added a package prerequisite on the icon-naming-utils package, which is needed to build gnome-icon-theme. One potentially odd thing: gnome-icon-theme adds its pkgconfig info into $prefix/share/pkgconfig instead of $prefix/lib/pkgconfig like all the other packages; is this correct? Maybe because the icon-theme package contains no architecture-specific content? Anyway, if you want a simple way to build Evo from SVN without rebuilding all of Gnome (as with GARNOME), give it a whirl! http://mad-scientist.us/evolution.html ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] EBook query string format?
Hi, Does anyone know the format of the query string in EBook functions such as e_book_backend_db_cache_get_contacts()? Naturally I can start digesting e-book-backend-sexp.c but I would rather not... Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Exchange MAPI Connector
On Tue, 2007-10-23 at 12:07 +0530, Srinivasa Ragavan wrote: Hello everyone, For Evolution 2.22 we should be having MAPI based Exchange connector which developed in parallel with Openchange based libmapi. The team is currently working on that and the code is currently maintianed at GNOME SVN in EXCHANGE_MAPI_BRANCH (both for evolution and evolution-data-server) http://svn.gnome.org/viewvc/evolution/branches/EXCHANGE_MAPI_BRANCH/ http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/ I created the branch yesterday and we committed our week long effort there. We now have a working account setup plugin, base camel/calendar code and a partially working addressbook impl. Things should get to a working shape in another week or two. I hope that soon, Johnny would be able to create a OpenSUSE Build Service repository (rpms for OpenSUSE, Fedora, Ubuntu and few more) for Evolution and its dependencies so that users can install the rpms and get a feel of it even before the release. Does this mean that evo + e-d-s will go GPLv3? -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Exchange MAPI Connector
On Tue, 2007-10-23 at 13:55 +0530, Srinivasa Ragavan wrote: On Tue, 2007-10-23 at 09:53 +0200, Frederic Crozat wrote: Le mardi 23 octobre 2007 à 13:01 +0530, Srinivasa Ragavan a écrit : On Tue, 2007-10-23 at 09:19 +0200, Jules Colding wrote: On Tue, 2007-10-23 at 12:07 +0530, Srinivasa Ragavan wrote: Hello everyone, For Evolution 2.22 we should be having MAPI based Exchange connector which developed in parallel with Openchange based libmapi. The team is currently working on that and the code is currently maintianed at GNOME SVN in EXCHANGE_MAPI_BRANCH (both for evolution and evolution-data-server) http://svn.gnome.org/viewvc/evolution/branches/EXCHANGE_MAPI_BRANCH/ http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/ I created the branch yesterday and we committed our week long effort there. We now have a working account setup plugin, base camel/calendar code and a partially working addressbook impl. Things should get to a working shape in another week or two. I hope that soon, Johnny would be able to create a OpenSUSE Build Service repository (rpms for OpenSUSE, Fedora, Ubuntu and few more) for Evolution and its dependencies so that users can install the rpms and get a feel of it even before the release. Does this mean that evo + e-d-s will go GPLv3? Jules, as I replied in a previous email thread, Im working with Novell legal team to modify the license to either GPLV2 or later or dual-license Evolution/EDS under GPLv2 and GPLv3. I dont have yet received the final nod. But the mapi providers/plugins are developed under GPLv3 which can be a issue now, but may not be after the license change. Well, it will be also a problem for other applications linking with e-d-s libraries. Since EDS is LGPLv2, it may not have much issues. IIRC when Harish moved EDS from GPL to LGPL, he made it LGPLv2 or later. (I'm not a licensing expert. Just posting from what we had discussed sometime back on e-h list). Generally it is a mess down there in the eds source license wise. Many files are LGPLv2 some are LGPLv2+ and many doesn't even have a license notice. Some samples: LGPLv2 only: http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/addressbook/libebook/e-contact.c?revision=8126view=markup LGPLv2+: http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/camel/camel-certdb.c?revision=8126view=markup No license header: http://svn.gnome.org/viewvc/evolution-data-server/branches/EXCHANGE_MAPI_BRANCH/addressbook/idl/Evolution-DataServer-Addressbook.idl?revision=8126view=markup -- jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] e-book-backend-db-cache.[ch] - clearing?
Hi, Is there any way to unconditionally clear an e-book-backend-db cache from all of its content? One could get all EContacts from the db and clear them one by one, but that seems rather inelegant... Thanks, jules ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers