Index: /gs2-extensions/gnome-lib/trunk/src/README
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/README	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/README	(revision 34983)
@@ -1,3 +1,6 @@
-A. To configure and compile wvware in Greenstone2/3, it used to be required to first:
+A. For compiling glib-2.54.3 onwards, need python2.7+. On LSB, python needs to be manually compiled up (we're using 2.7.18 on 64 bit LSB) and put into a user location e.g. /home/sjm84/python2.7/bin in our case, with its bin folder added to the PATH: 
+(  export PATH=/home/sjm84/python2.7/bin:$PATH   )
+
+To configure and compile wvware in Greenstone2/3, it used to be required to first:
    source ./devel.bash
 
@@ -12,6 +15,8 @@
    cd gnome-lib
 
+For compiling glib-2.54.3 onwards, need python2.7+. On LSB this needs to be manually compiled up and put into a user location and its bin folder on the PATH, e.g. /home/sjm84/python2.7/bin
+
 Then:
-
+(  export PATH=/home/sjm84/python2.7/bin:$PATH   )
    export CFLAGS="-fPIC $CFLAGS"
    export CXXFLAGS="-fPIC $CXXFLAGS"
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE.sh	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE.sh	(revision 34983)
@@ -5,5 +5,5 @@
 # The standard list of packages
 # For Mac Yosemite we found that PKG-CONFIG is dependent on GLIB, so we've moved GLIB ahead of PKG-CONFIG in the list
-pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE XMLPARSER INTLTOOL GETTEXT GLIB PKG-CONFIG LIBXML LIBXSLT LIBFFI LIBGSF"
+pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE XMLPARSER INTLTOOL GETTEXT LIBFFI PCRE GLIB PKG-CONFIG LIBXML LIBXSLT LIBGSF"
 
 # libiconv was found to be necessary on the latest DL mac (2013)
@@ -19,5 +19,5 @@
 if [ "x$GSDLOS" = "xdarwin" -a $osversion -ge 11 ] ; then
 #    pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE XMLPARSER INTLTOOL CUPS LIBICONV GETTEXT GLIB PKG-CONFIG LIBXML LIBFFI LIBGSF"    
-    pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE XMLPARSER INTLTOOL GETTEXT GLIB PKG-CONFIG LIBXML LIBXSLT LIBFFI LIBGSF"    
+    pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE XMLPARSER INTLTOOL GETTEXT LIBFFI PCRE GLIB PKG-CONFIG LIBXML LIBXSLT LIBGSF"    
 fi
 
@@ -26,5 +26,5 @@
   windows_pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE INTLTOOL LIBICONV GETTEXT GLIB LIBXML LIBGSF"
 
-  android_pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE INTLTOOL LIBICONV GETTEXT GLIB LIBXML DBUS LIBFFI LIBGSF"
+  android_pkglist="LIBZ LIBBZ2 EXPAT LIBPNG READLINE INTLTOOL LIBICONV GETTEXT LIBFFI GLIB LIBXML DBUS LIBGSF"
 
 
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/GLIB.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/GLIB.sh	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/GLIB.sh	(revision 34983)
@@ -2,8 +2,15 @@
 
 # glib2.28.1 was modified for Greenstone to allow compilation to succed on a Mac, so it has acquired a 'gs-' prefix
+# More recently compiling on Mojave (MacOS) newer compilation errors were encountered, 
+# prompting a signficant bump up in version number
+# Back to using gs- prefix as this newer glib needed customisations for linux 64 bit LSB env,
+# see packages/README.txt for details
+
 package=gs-glib
+#package=glib
 #version=-2.24.2
-version=-2.28.1
-#version=-2.34.3
+#version=-2.28.1
+##version=-2.34.3
+version=-2.54.3
 
 progname=$0
@@ -17,4 +24,10 @@
 export CXXFLAGS="$CXXFLAGS -I$GEXTGNOME_INSTALLED/include"
 export LDFLAGS="$LDFLAGS -L$GEXTGNOME_INSTALLED/lib"
+
+export LIBFFI_CFLAGS="-I$GEXTGNOME_INSTALLED/lib/libffi-3.0.11/include"
+export LIBFFI_LIBS="-L$GEXTGNOME_INSTALLED/lib -lffi"
+
+export PCRE_CFLAGS="-I$GEXTGNOME_INSTALLED/include"
+export PCRE_LIBS="-L$GEXTGNOME_INSTALLED/lib -lpcre"
 
 if [ "x$crossOS" = "xandroid" ] ; then
@@ -37,7 +50,14 @@
 fi
 
+# Disabling libmount, as it breaks compilation:
+# - http://unix.stackexchange.com/questions/327019/ddg#398242
+#   "Unless you actually need libmount for something it's much easier
+#   to simply disable it by passing --enable-libmount=no to configure"
+# - http://linuxfromscratch.org/lfs/view/systemd/chapter08/util-linux.html
+#   "Purpose of libmount: Contains routines for block device mounting and unmounting"
 opt_run_untar $force_untar $auto_untar $package $version
 opt_run_configure $force_config $auto_config $package $version $prefix \
-  --disable-shared --enable-static --disable-dtrace --disable-systemtap $extra_config_args
+		  --disable-shared --enable-static --disable-dtrace --disable-systemtap \
+		  --enable-libmount=no $extra_config_args
 
 # In the above ...
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBGSF.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBGSF.sh	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBGSF.sh	(revision 34983)
@@ -12,8 +12,17 @@
 export CFLAGS="$CFLAGS -DLIBXML_STATIC"
 
-export CFLAGS="$CFLAGS -I$GEXTGNOME_INSTALLED/include"
+export CFLAGS="-Dg_memmove=memmove $CFLAGS -I$GEXTGNOME_INSTALLED/include"
 export CPPFLAGS="$CPPFLAGS -I$GEXTGNOME_INSTALLED/include"
 export CXXFLAGS="$CXXFLAGS -I$GEXTGNOME_INSTALLED/include"
 export LDFLAGS="$LDFLAGS -L$GEXTGNOME_INSTALLED/lib"
+
+osversion=`uname -r | sed 's/\..*$//'`;
+if [ "x$GSDLOS" = "xdarwin" -a $osversion -ge 11 ] ; then
+    export CFLAGS="$CFLAGS -framework Carbon -framework CoreFoundation -framework Security"
+    if [ -d /usr/local/lib/pkgconfig ] ; then
+	export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
+    fi
+fi
+
 
 opt_run_untar $force_untar $auto_untar $package $version
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBZ.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBZ.sh	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/LIBZ.sh	(revision 34983)
@@ -2,5 +2,5 @@
 
 package=zlib
-version=-1.2.7
+version=-1.2.11
 
 progname=$0
@@ -33,6 +33,6 @@
     echo "[pushd $package$version]"
     ( cd $package$version ; \
-      echo $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ ; \
-      eval $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ )
+      echo $CROSSCONFIGURE_VARS ./configure --static --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ ; \
+      eval $CROSSCONFIGURE_VARS ./configure --static --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ )
     if [ $? != 0 ] ; then
         echo "      Error encountered running *configure* stage of $progname"
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PCRE.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PCRE.sh	(revision 34983)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PCRE.sh	(revision 34983)
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+package=pcre
+version=-8.44
+
+progname=$0
+
+source ../cascade-make/lib/cascade-lib.bash GEXTGNOME ../.. $*
+
+prefix=$GEXTGNOME_INSTALLED
+
+export CFLAGS="$CFLAGS -I$GEXTGNOME_INSTALLED/include"
+export CPPFLAGS="$CPPFLAGS -I$GEXTGNOME_INSTALLED/include"
+export CXXFLAGS="$CXXFLAGS -I$GEXTGNOME_INSTALLED/include"
+export LDFLAGS="$LDFLAGS -L$GEXTGNOME_INSTALLED/lib"
+
+echo GSDLOS = $GSDLOS
+
+opt_run_untar $force_untar $auto_untar $package $version
+opt_run_configure $force_config $auto_config $package $version $prefix \
+  --enable-utf --enable-unicode-properties \
+  --enable-static --disable-shared
+
+opt_run_make $compile $package $version
+opt_run_make $install $package $version "install"
+opt_run_make $clean $package $version "clean"
+opt_run_make $distclean $package $version "distclean"
+
+opt_run_tarclean $tarclean $package $version
+
Index: /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PKG-CONFIG.sh
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PKG-CONFIG.sh	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/CASCADE-MAKE/PKG-CONFIG.sh	(revision 34983)
@@ -14,4 +14,9 @@
 export GLIB_LIBS="-L$GEXTGNOME_INSTALLED/lib -lglib-2.0" 
 
+osversion=`uname -r | sed 's/\..*$//'`;
+if [ "x$GSDLOS" = "xdarwin" -a $osversion -ge 11 ] ; then
+    export CFLAGS="$CFLAGS -framework Carbon -framework CoreFoundation -framework Security"
+fi
+
 opt_run_untar $force_untar $auto_untar $package $version
 opt_run_configure $force_config $auto_config $package $version $prefix --disable-shared --enable-static
Index: /gs2-extensions/gnome-lib/trunk/src/packages/README.txt
===================================================================
--- /gs2-extensions/gnome-lib/trunk/src/packages/README.txt	(revision 34982)
+++ /gs2-extensions/gnome-lib/trunk/src/packages/README.txt	(revision 34983)
@@ -41,8 +41,48 @@
 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__)
+ff gs-glib-2.28.1/glib/gconvert.c
+
+4. On 30/03/2021, the following customisations to glib-2.54.3/glib/gmessages.c were necessary as part of getting the gnome-lib (merged into main trunk from Mojave/Catalina branch) to compile on the 64 bit Linux LSB.
+
+These changes were taken from a future version of glib, at https://github.com/GNOME/glib/blob/master/glib/gmessages.c
+but should not affect Catalina or Mojave MacOS, as the #if defined tests for linux and next a test concerning Bionic, an Ubuntu distribution.
+
+
+a. Change:
+
+	#if defined(__linux__) && !defined(__BIONIC__)
+	static int
+	journal_sendv (struct iovec *iov,
+      	      	       gsize         iovlen)
+
+To:
+	/* Enable support for the journal if we're on a recent enough Linux */
+	#if defined(__linux__) && !defined(__BIONIC__) && defined(HAVE_MKOSTEMP) && defined(O_CLOEXEC)
+	#define ENABLE_JOURNAL_SENDV
+	#endif
+
+	#ifdef ENABLE_JOURNAL_SENDV
+	static int
+	journal_sendv (struct iovec *iov,
+      	      	       gsize         iovlen)
+
+
+
+b. And Change:
+    GLogWriterOutput
+    g_log_writer_journald (GLogLevelFlags   log_level,
+    const GLogField *fields,
+    gsize            n_fields,
+    gpointer         user_data)
+    {
+    #if defined(__linux__) && !defined(__BIONIC__)
+
+To:
+    GLogWriterOutput
+    g_log_writer_journald (GLogLevelFlags   log_level,
+    const GLogField *fields,
+    gsize            n_fields,
+    gpointer         user_data)
+    {
+    #ifdef ENABLE_JOURNAL_SENDV
+
