README This file tracks changes made to imagemagick/packages for Greenstone. 1. libxml2-2.9.0 seems to contain changes for Greenstone, resulting in a gs-libxml2-2.9.0 that we use instead. Not sure what the changes are. It was first committed with revision 30675 by Dr Bainbridge, not as the libxml version but directly as the gs-libxml version: http://trac.greenstone.org/browser/gs2-extensions/imagemagick/trunk/src/packages/gs-libxml2-2.9.0.tar.gz And CASCADE-MAKE/LIBXML.SH only states libxml2.2.9.0 was modified for Greenstone to allow compilation to succeed on a Mac, so it has acquired a 'gs-' prefix 2. 13 July 2017 ak19 To get imagemagick's libiconv to compile up on Ubuntu 16.04 (a machine that contains perl 5.22.1, but where I was also trying with perl 5.24.x), I found that imagemagick failed to compile with an error about gets vs fgets. The error message was: > stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function) > _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets > instead"); The following was the solution, found at https://lists.gnu.org/archive/html/bug-gnu-libiconv/2016-04/msg00001.html ****************************** 698c698,703 < _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); --- > // Needs a patch to compile imagemagick (testing on Ubuntu v 16.04 LTS) > // https://gist.github.com/paulczar/5493708 > // https://lists.gnu.org/archive/html/bug-gnu-libiconv/2016-04/msg00001.html > # if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16) > _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); > # endif ****************************** 3. 6 June 2021 davidb The above fix (2) is now breaking on newer MacOS version. Based on a patch note from a software project that was getting the same compiler error: https://github.com/jschueller/openturns/commit/9d229efde4f3775578be5bba8104b0e2f419fd67 it looks like you want to keep Macs away from the #if defined test entirely, e.g., have a precheck like: # if !defined(WIN32) && !defined(__APPLE__) /* __GLIBC_PREREQ not defined on mingw or OSX */ # if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16) Rather than add more custom fixes, bumping the version of iconv used up to 1.16 which (from a test build) looks to factor all this in.