source: gs2-extensions/gnome-lib/trunk/src/packages/README.txt@ 30862

Last change on this file since 30862 was 30862, checked in by ak19, 5 years ago

Changes to get libiconv issues on MacOS El Capitan straightened out, since DYLD_LIBRARY_PATH gets wiped out on these newer Mac OS versions. The current solution is to use the system libiconv on MacOS machines that are already specific to Macs (and therefore compatible with Macs).

File size: 3.5 KB
Line 
1README
2
3This file tracks changes made to gnome-lib/packages for Greenstone.
4
5The 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.
6
7
8The bugfixes to get (this version of) gnome-lib to compile on Darwin:
9
101. In gs-glib-2.28.1/glib/gatomic.c
11 Bug error was "gatomic.c:885: error: syntax error before '*' token"
12 Solution described at http://code.google.com/p/osxwinebuilder/issues/detail?id=16 which states
13 'Alternatively I got it to compile by adding an extra #include "gthread.h" just before line 885 in gatomic.c,
14 although I guess from the surrounding comments that that would result in inferior performance'
15
16When compiling on LSB-32bit, ran in to a compilation error because it could
17 not find 'linux/magic.h'. This appears to be linked to the fact that
18 LSB is using quite an old version of the kernal headers (2.4?). Newer
19 version of GLIB have a fix for this. At this stage we're not planning
20 on jumping to such a newer version (in case it break other things, such
21 as cross-compiling for Android). So we have taken the autoconf fix for
22 this, and added it in to this version of the source code. Changed
23 'configure.ac' and 'glib/gfileutils.c'
24
252. In gs-libxml2-2.9.0/threads.c
26
27a. First of 2 bugfixes to version gs-libxml2-2.9.0/threads.c is an INSERT of a new line around line 146
28 For a discussion, see http://stackoverflow.com/questions/12484664/what-am-i-doing-wrong-when-installing-lxml-on-mac-os-x-10-8-1
29 For the bugfixes to the 2.9.0 sourcecode see https://git.gnome.org/browse/libxml2/commit/?id=3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e
30static pthread_once_t once_control_init = PTHREAD_ONCE_INIT;
31+ static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
32
33b. 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
34
35- once_control = PTHREAD_ONCE_INIT;
36+ once_control = once_control_init;
37
38
393. 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.
40
41Besides 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).
42
43$diff gs-glib-2.28.1/glib/gconvert.c
4464,65c64
45< #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)
46---
47> #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) \
48> && !defined (__APPLE_CC__) && !defined (__LP_64__)
Note: See TracBrowser for help on using the repository browser.