news 28 Posted April 18, 2008 About: ------ Tinymail is a library for developing mobile applications with E-mail functionality. The framework provides components that aid the developer with the user interface but of course also with the connectivity and the caching of messages. Release highlights: o. Changed the TnyHeader API to return string duplicates o. A lot of major and minor bugfixes o. Deprecated all the synchronous API that has asynchronous API For more information: http://tinymail.org Known E-mail clients using Tinymail: ------------------------------------ Modest (under development, betas are being released): http://modest.garage.maemo.org/ TMut (released software): http://tinymail.org/trac/tmut Let me know if you started a project and want to be in these release notes with it. Demos: ------ http://tinymail.org/demos.html Availability: ------------- Branch in the Subversion repository: https://svn.tinymail.org/svn/tinymail/releases/v1.0/pre-releases/v0.0.9 Trunk in the Subversion repository: https://svn.tinymail.org/svn/tinymail/trunk/ Online API documentation of this pre-release: http://tinymail.org/API/pre-releases/libtinymail-0.0.9 Tarball: http://tinymail.org/files/releases/pre-releases/v0.0.9/libtinymail-0.0.9.tar.gz http://tinymail.org/files/releases/pre-releases/v0.0.9/libtinymail-0.0.9.tar.bz2 MD5SUMS: http://tinymail.org/files/releases/pre-releases/v0.0.9/MD5SUMS 674db3cb4750ba0a3e90aa95ec28bcc7 libtinymail-0.0.9.tar.bz2 8570c8140b07e03a5a6226e786e3094c libtinymail-0.0.9.tar.gz Packages (usually older versions of Tinymail): Ubuntu Gutsy: http://packages.ubuntu.com/gutsy/mail/libtinymail-1.0-0 OpenEmbedded: http://www.openembedded.org/filebrowser/org.openembedded.dev/packages/tinymail Maemo: http://modest.garage.maemo.org/repos/dists/chinook/mail/binary-armel/ http://modest.garage.maemo.org/repos/modest-chinook.install Changes since pre-release 0.0.8: -------------------------------- The pre-release 0.0.8 can be found here: http://tinymail.org/files/releases/pre-releases/v0.0.8 Philip Van Hoof : *Removed unnecessary old code rot in TnyCamelSendQueue that might cause a deathlock *Decprecated tny_send_queue_add, use tny_send_queue_add_async *Corrections to reference handling for TnyCamelSendQueue *Removed a tny_folder_get_headers (deprecated API) *Fixed alerts when get-msg-async takes place to have their account not set to NULL *Moved the POP's get-msg-qasync queue to its normal interactive queue *Various bugfixes *Weak referenced folders in the folder-factor methods *Handling uncaching the password during account finalization *mlock-ing the password memory of accounts *Uncaching of the folder-list in case of tree-changing operations *Experimentally nuked the caching of services ... *Fixed a bug in case LIST and LSUB are not in agreement *Marking certain symbols as deprecated *Fixed a glitch in Jose Dapena Paz's patch of yesterday *Added API documentation about cancelling *Bugfix in folder listing *Refcount problem in async contexts *Fixing the actual problem, too *Merged patch for upstream camel-lite bug #257361 *Bugfix for ticket #76 *Added some robustness code *Added a name file, just like the url_string file, to each account *Moved the sendqueue's outbox and sentbox under a sendqueue subdir *Storing certificate fingerprints in cache_dir *Writing a file called url_string in the account's cache dir, to make it more easy for searchers and meta indexers to identify this account *Status reporting fix for POP accounts *Merging with camel upstream *Creating the POP account's cache dir when/if removed *Cleaning up cache when canceling a POP message download *Support for Importance header *Fixed several problems like documentation problems in Jose's patch *Review of Jose's patch *Fixed several insignificant smaller robustness problems *Fixed a major leak *Fixed a regression due to a performance fix when moving and renaming Maildir folders *Replaced a GByteArray with a EByteArray *Rewrote tny_camel_folder_remove_msgs_default *Added tny_folder_remove_msgs_async *Death-lock bugfix when canceling the sendqueue *This was a minor API change *Implementation of a connect() that will timeout within 15 seconds for the non-SSL connection types. Experimental. *Fast message moves when source and dest folder are both Maildir *Bugfix when sending large E-mails to GMail's SMTP service *When a large mail is being sent, it takes a long time to move it from Outbox to Sentbox. If during that time a flush() is requested on the TnySendQueue, then it's possible that the message gets send twice. To avoid this, we mark the message as TNY_HEADER_FLAG_ANSWERED *Made tny_folder_transfer_msgs_async cancellable *Added extra insurance that an INBOX folder will be present *IMAP provider: bugfix when asking for a list of folders that has no subfolders, on Cyrus. *Experimental improvement in locking *Introduction of TnySeekable *This is experimental *Experimental improvement in locking in the POP3 provider *Bugfix when canceling POP summary retrieval *Check-for-duplicates in TnyFolderObserver and TnyFolderMonitor *Introduction of tny_gtk_header_list_model_set_no_duplicates *Introduction of tny_gtk_header_list_model_get_no_duplicates for completeness of language bindings who'll make getters/setters from this. *This was a minor API change *Leave on disk, MIME parsing. Highly experimental *Smaller bug fixes in the build *filename= encoding fixes *Fixes in the POP code for POP servers that return invalid CAPA responses (like pop.sina.com) *Experimental reduction of libraries (camel-lite merged with camel-lite-providers) *Non-initialization of a variable caused memory corruption on the stack * Fixed race condition in case re-selecting the same folder * Attempt at making mime parsing use the seekable capability of streams in stead of copying them in memory. This is experimental! José Dapena Paz : *libtinymail-camel/tny-camel-mime-part.c (tny_camel_get_decoded_stream_default): now we detect errors getting the decoded stream from camel. *libtinymail-gnomevfs/tny-vfs-stream.c (tny_vfs_stream_read): return -1 if there was an error reading from the vfs stream. *Added libtinymail-camel/camel-lite/camel/camel-certdb-cst.c. Implementation of certificates database using maemo libcst. This makes you can manage certificates using the maemo tablet certificate manager. *libtinymail-camel/camel-lite/camel/camel-certdb.h, libtinymail-camel/camel-lite/camel/camel-private.h: modified to have a pointer to the CST object in certdb and certificate id in certificate object in case we compile with CST support. *libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c: Modified a bit the code for proper integration with cst (mainly removing direct access to internal fields). *libtinymail-camel/camel-lite/configure.ac, libtinymail-camel/camel-lite/camel/Makefile.am: Added support for detection and configuration of libcst. *libtinymail-camel/tny-camel-account.c: (tny_camel_account_set_pass_func_default) reactivate the account always, even when we're setting the same pass func again. *Replace old tny_header_get_ api for strings with tny_header_dup_ api. This should be a bit better for being thread safe. Also modified code using this. The goal is being able to do the string copy in a lock. *Now moving a folder copies all the cached messages, but not the summaries, to avoid crashes trying to reuse the old summary. *Respect better the attachment flag headers also in POP (equivalent to previous change in imap. *libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c (message_from_data): don't free the message before evaluating headers. Also take into account the case we get ms has attachments but we don't have priority flag, for avoiding using heuristics. *libtinymail-gnome-desktop/tny-gnome-device.c: (tny_gnome_device_is_online) if we try to get the network state and find that the network manager context is invalid, we shutdown it AND after this we nullify the context reference. *libtinymail-camel/tny-camel-folder.c: Now poke_status only tries to do the job if folder is connected/active. Should prevent getting lots of attempts to connect in queue that have to be finished later. *tests/c-demo/tny-demoui-summary-view.c: Added a simple syntax to provide different parent folders in rename/copy operation. Now you can provide paths as "/newfolder", "../another-parent/folder", etc. *libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c: (connect_to_server): we don't abort connection attempt if we get LOGINDISABLED but we have secure auth methods in capabilities. *libtinymail-camel/tny-camel-mime-part.c: Now, when we get the parts of a mime part that's a message, we check if any part has an attachment content disposition, and update the attachments flag properly. *Moved bodystructure parser to camel, so that we can use it there. *libtinymail-camel/camel-lite/bs/bodystruct.c: Added missing if, to avoid fetching the header badly (and causing coredumps) for bodystructure strings not including BODYSTRUCTURE prefix. Alberto Garcia Gonzalez : *libtinymail-gnomevfs/tny-vfs-stream.c: (tny_vfs_reset): Set priv->position to 0 after a successful reset *Reverted the "Leave on disk, MIME parsing" patch, as it's causing serious problems. *tinymail/libtinymail-camel/tny-camel-mem-stream.h *tinymail/libtinymail-camel/tny-camel-mem-stream.c: Added tny_camel_mem_stream_new_with_buffer() *debian/libtinymail-camel-1.0-0.install *debian/libtinymail-camel-1.0-0-dev.install: Install libcamel-lite *debian/libtinymail-camel-1.0-0.install *debian/libtinymail-camel-1.0-0-dev.install: Removed obsolete libraries Sergio Villar Senin : * libtinymail-camel/tny-camel-common.c (_string_to_camel_inet_addr): fixes an small memory issue when the email address starts with an " Share this post Link to post