2005-12-12 Harish Krishnaswamy * NEWS, configure.in: Release updates, bump version libtool numbers. ***** Release 1.5.3 ***** 2005-12-09 Tor Lillqvist * libedataserver/e-msgport.c: Add some socket API wrappers to hide Unix/Winsock differences. Use separate flag fields to indicate whether we have a thread or not in the EThread and EMutex structs. There is no portable way to check a pthread_t for uninitializedness. Remove the E_THREAD_NONE magic constant. The portable way to check two pthread_t values for equality is pthread_equal(). Use e_util_pthread_id() to get an "id" for the thread in debugging output. (e_pipe): New function, Win32 only. Creates a connected TCP socket pair. Should have this in GLib, I guess. This code snippet is essentially duplicated in ORBit2/linc/src/linc-compat.c:link_pipe() and at least one other place I don't recall now. (e_msgport_prfd): Use PR_NewTCPSocketPair() instead of PR_CreatePipe() on Win32, as we want sockets, not a pipe (file descriptors). * libedataserver/e-util.c (e_util_mkdir_hier): When building against GLib 2.8, use g_mkdir_with_parents(). (e_util_utf8_strcasecmp): New function. Casefolds two UTF-8 strings, then does a linguistically correct comparison using g_utf8_collate(). (e_filename_make_safe): New function, move here from evolution/e-util/e-util.c. (g_rename, g_stat): Win32-only fixed versions of these GLib functions, just until the next GLib version including the same fixes is out. This version of g_rename() overwrites existing files, and this version of g_stat() strips trailing insignificant slashes. * libedataserver/e-util.h: Declare the new functions. 2005-12-08 Tor Lillqvist * libedataserver/e-db3-utils.c * libedataserver/e-file-cache.c: Use gstdio wrappers. * libedataserver/e-source.c (e_source_build_absolute_uri): Don't use G_DIR_SEPARATOR or g_build_filename() to manipulate URIs. URIs always use slashes, not platform-dependent separators. (e_source_set_name): Compare the strings, not the pointers. * libedataserver/e-source-group.c (e_source_group_set_name): Compare the strings, not the pointers. * libedataserver/e-xml-utils.c * libedataserver/e-xml-utils.h: New files. (e_xml_parse_file): Replacement for xmlParseFile(). Needed because the file names we handle on Win32 are in UTF-8, which libxml2 doesn't grok. So, when using GLib 2.8, we map the file with the GMappedFile API and use xmlParseMemory(). When built against older GLibs (which doesn't happen on Win32), just use xmlParseFile(). (e_xml_save_file, e_xml_get_child_by_name): Moved from Evolution's e-xml-utils.c. Presumably should move all the rest of the functions from there, too. * libedataserver/Makefile.am: Add the new files. Install e-xml-utils.h. * libedataserver/e-xml-hash-utils.c: Use e_xml_parse_file() and e_xml_save_file(). As e_xml_save_file() does the very careful saving using a temporary filename and then rename, don't need to that here. 2005-12-07 Irene Huang Fix for #323349. * configure.in: Change iconv_open ("UTF-8", "ISO_8859-1") to iconv_open ("UTF-8", "ISO-8859-1") to avoid build error on solaris. 2005-12-07 Tor Lillqvist * libdb/dbinc/db_int.in: As we are using this file (and not the prebuilt one in libdb/build_win32/db_int.h) when building using autofoo on Win32, need to have the correct PATH_SEPARATOR for Win32, too. Add ifdef. * libdb/os_win32/os_open.c (__os_open): When using a user-registered open function to open the file (and not CreateFile()), we still need to set the DB_FH::handle, too, as all the other stuff in libdb/os_win32 assumes it is correctly set up. On Win32, addressbook/backends/file needs to register an own open function (that uses g_open()) as the pathnames e-d-s handles on Win32 are in the GLib encoding (i.e., UTF-8) and not the system codepage that CreateFile() wants. 2005-12-06 Tor Lillqvist * configure.in: Set LIBEXECDIR_IN_SERVER_FILE to libexecdir on Unix. On Win32, set it to a path relative from lib/bonobo/servers. * src/GNOME_Evolution_DataServer.server.in.in: Use LIBEXECDIR_IN_SERVER_FILE here. We don't want absolute compile-time paths in the .server file on Win32. libbonobo on Win32 interprets relative location paths to exes or shlibs as being relative to the directory where the .server file was found. This makes the .server file point to the correct executable regardless of where e-d-s is installed on the end-user machine. 2005-12-02 Tor Lillqvist * src/GNOME_Evolution_DataServer.server.in.in: Add missing dash in the executable file's name in the InterfaceCheck location. * evolution-data-server-zip.in: New file, a script used to build a Win32 zipfile distribution of E-D-S. (End users will not be expected to install from zipfiles, they would be for power users and developers only.) * Makefile.am * configure.in: Distribute and expand it. 2005-12-01 Chenthill Palanisamy reviewed by Srinivasa Ragavan * libedataserver/e-uid.c: (e_uid_new): Use the functions defined in glib -2.8 only for win32 as it fails to build for OS which has glib 2.4. 2005-12-01 Tor Lillqvist * libedataserver/e-util.c (e_util_pthread_id): Fix silly bug in the ifdef section for "uncommon" platforms. Thanks to Ross Burton for noticing. 2005-11-25 Tor Lillqvist * libedataserver/e-categories.c (add_category_if_not_present): Drop unused static function. (e_categories_add_relative): New function. Form the pathname to the icon file at run-time (for installability in freely chosen location on Windows). (initialize_categories_config): Call e_categories_add_relative() with just the basename of the icon files. * libedataserver/e-data-server-module.c (e_data_server_module_init): Include libedataserver-private.h to get redefinition of E_DATA_SERVER_EXTENSIONDIR (for run-time pathname construction) on Windows. * libedataserver/e-time-utils.c: Include strptime() implementation lifted from glibc for portability. Use it unless HAVE_STRPTIME. Make it local for this file, though. * libedataserver/e-uid.c (e_uid_new): Use g_get_host_name() from GLib 2.8 instead of gethostname(). * libedataserver/e-url.c (e_uri_new): Use g_ascii_strncasecmp() instead of strncasecmp() for portability. * libedataserver/e-util.c: Implement install-anywhere machinery for Win32. (DllMain): Minimal DllMain that just tucks away the handle to the DLL. (_libedataserver_get_extensiondir, _libedataserver_get_imagesdir, _libedataserver_get_ui_gladedir): Functions private to e-d-s. (e_util_get_prefix, e_util_get_cp_prefix, e_util_get_localedir, e_util_replace_prefix): Functions intended also for Evolution. We assume e-d-s and evo are installed in the same folder on the end-user machine. * libedataserver/e-util.h: Declare the above new public Win32-only functions. * libedataserver/libedataserver-private.h: New file. Declares so far some Win32-only functionality, to be used in various parts of e-d-s. * libedataserver/md5-utils.c (md5_get_digest_from_file): Use gstdio wrappers for better non-ASCII filename support on Win32. Open file in binary mode. Don't use sizeof(guchar), it won't be different than 1 in this universe. Do use sizeof(tmp_buf) instead of hardcoding 1024. Drop leftover debugging printouts. * libedataserver/Makefile.am: Add libedataserver-private.h. Pass more configure-time pathname definitions (as used elsewhere in e-d-s) in INCLUDES so that they can be recognized and changed at run-time to end-user machine installation paths on Win32. * src/server.c: No segv handling on Win32. Run-time path construction for the PREFIX, SYSCONFDIR, DATADIR and LIBDIR used in GNOME_PROGRAM_STANDARD_PROPERTIES which is passed to gnome_program_init(). 2005-11-18 Ross Burton * libedataserver/md5-utils.c: * libedataserver/e-component-listener.c: Fix build. 2005-11-17 Ross Burton * libedataserver/md5-utils.c: * libedataserver/md5-utils.h: Don't do byte order checks at runtime but use the GLib G_BYTE_ORDER macro (#319592) 2005-11-17 Ross Burton * libedataserver/e-account-list.c: * libedataserver/e-account.c: * libedataserver/e-component-listener.c: * libedataserver/e-file-cache.c: * libedataserver/e-iterator.c: * libedataserver/e-list-iterator.c: * libedataserver/e-list.c: * libedataserver/e-sexp.c: * libedataserver/e-source-group.c: * libedataserver/e-source-list.c: * libedataserver/e-source.c: Use G_DEFINE_TYPE and add some more const keywords (#319591) 2005-11-15 Ross Burton * libedataserver/e-data-server-module.c Use lazy bindings (#321515)