README This file tracks changes made to gnome-lib/packages for Greenstone. The contents of glib-2.28.1.tar.gz and libxml2-2.9.0.tar.gz have been modified to allow these to compile on Darwin. They were already compiling on Linux machines without requiring any changes. After the changes were made, they compile on Darwin while still compiling on Linux. Checked by compiling GS3 on both Mac Darwin and CentOS Linux. The bugfixes to get (this version of) gnome-lib to compile on Darwin: 1. In gs-glib-2.28.1/glib/gatomic.c Bug error was "gatomic.c:885: error: syntax error before '*' token" Solution described at http://code.google.com/p/osxwinebuilder/issues/detail?id=16 which states 'Alternatively I got it to compile by adding an extra #include "gthread.h" just before line 885 in gatomic.c, although I guess from the surrounding comments that that would result in inferior performance' When compiling on LSB-32bit, ran in to a compilation error because it could not find 'linux/magic.h'. This appears to be linked to the fact that LSB is using quite an old version of the kernal headers (2.4?). Newer version of GLIB have a fix for this. At this stage we're not planning on jumping to such a newer version (in case it break other things, such as cross-compiling for Android). So we have taken the autoconf fix for this, and added it in to this version of the source code. Changed 'configure.ac' and 'glib/gfileutils.c' 2. In gs-libxml2-2.9.0/threads.c a. First of 2 bugfixes to version gs-libxml2-2.9.0/threads.c is an INSERT of a new line around line 146 For a discussion, see http://stackoverflow.com/questions/12484664/what-am-i-doing-wrong-when-installing-lxml-on-mac-os-x-10-8-1 For the bugfixes to the 2.9.0 sourcecode see https://git.gnome.org/browse/libxml2/commit/?id=3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; + static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; b. The 2nd and final bugfix to version gs-libxml2-2.9.0/threads.c is a DELETION of a line followed by an INSERT of a new line around line 146 - once_control = PTHREAD_ONCE_INIT; + once_control = once_control_init; 3. On 14 Oct 2016, Dr Bainbridge reworked Greenstone for the upcomign 3.08 release to use the system libiconv for MacOS, since we found that using the 2 versions of libiconv included with GS didn't work with Mac El Capitan (Mac 10.11.3/v15 when testing with `uname -r`), because the DYLD_LIBRARY_PATH was being emptied on these newer Macs. The solution was to get MacOS to use the system libiconv (libiconv.2.dylib which is actually libiconv.2.4.0.dylib, see https://discussions.apple.com/thread/1931034?start=0&tstart=0) , since the MacOS had its own tweaked libiconv that would work on Macs, and its presence in a system location seemed to be a given. Besides the changes that were necessary to common-src/packages/configure, mgpp/jni/Makefile.in and mgpp/text/Makefile.in to use a system Mac, the gnome-lib extension's glib uses libiconv too and had to find the right one to get gconvert.c to compile properly. This required the following change, copied from glib-2.50.1.tar.xz (see also https://discussions.apple.com/thread/2378361?start=0&tstart=0, found searching google for: error: GNU libiconv not in use but included iconv.h is from libiconv macos). $diff gs-glib-2.28.1/glib/gconvert.c 64,65c64 < #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) --- > #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) \ > && !defined (__APPLE_CC__) && !defined (__LP_64__)