aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testing/geos/10-isnan.patch108
-rw-r--r--testing/geos/APKBUILD67
2 files changed, 175 insertions, 0 deletions
diff --git a/testing/geos/10-isnan.patch b/testing/geos/10-isnan.patch
new file mode 100644
index 0000000000..f3415aff8b
--- /dev/null
+++ b/testing/geos/10-isnan.patch
@@ -0,0 +1,108 @@
+diff -urp geos-3.5.0-old/configure geos-3.5.0/configure
+--- geos-3.5.0-old/configure 2015-08-16 18:22:07.000000000 -0400
++++ geos-3.5.0/configure 2016-04-18 09:03:56.912678918 -0400
+@@ -17822,6 +17822,39 @@ if test x"$ac_cv_isnan" = x"yes"; then
+
+ $as_echo "#define HAVE_ISNAN 1" >>confdefs.h
+
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for std::isnan" >&5
++$as_echo_n "checking for std::isnan... " >&6; }
++if ${ac_cv_std_isnan+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <cmath>
++int
++main ()
++{
++double x; int y; y = std::isnan(x);
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++ ac_cv_std_isnan=yes
++else
++ ac_cv_std_isnan=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_std_isnan" >&5
++$as_echo "$ac_cv_std_isnan" >&6; }
++ if test x"$ac_cv_std_isnan" = x"yes"; then
++
++$as_echo "#define HAVE_STD_ISNAN 1" >>confdefs.h
++
++ fi
+ fi
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+diff -urp geos-3.5.0-old/configure.ac geos-3.5.0/configure.ac
+--- geos-3.5.0-old/configure.ac 2015-08-14 14:31:26.000000000 -0400
++++ geos-3.5.0/configure.ac 2016-04-18 09:03:37.064679323 -0400
+@@ -192,7 +192,7 @@ fi
+ dnl --------------------------------------------------------------------
+ dnl Test for presence of isnan function when using C++ and <cmath>
+ dnl This is for a particular bug in OS/X where <cmath> drops the definition
+-dnl of isnan().
++dnl of isnan(). A number of other systems appear to do the same thing.
+
+ AC_LANG_PUSH([C++])
+ AC_CACHE_CHECK([for isnan], ac_cv_isnan,
+@@ -203,6 +203,16 @@ AC_CACHE_CHECK([for isnan], ac_cv_isnan,
+ )])
+ if test x"$ac_cv_isnan" = x"yes"; then
+ AC_DEFINE(HAVE_ISNAN, [1], [Has isnan])
++else
++ AC_CACHE_CHECK([for std::isnan], ac_cv_std_isnan,
++ [AC_TRY_LINK([#include <cmath>],
++ [double x; int y; y = std::isnan(x);],
++ ac_cv_std_isnan=yes,
++ ac_cv_std_isnan=no
++ )])
++ if test x"$ac_cv_std_isnan" = x"yes"; then
++ AC_DEFINE(HAVE_STD_ISNAN, [1], [Has std::isnan])
++ fi
+ fi
+ AC_LANG_POP([C++])
+
+diff -urp geos-3.5.0-old/include/geos/platform.h.in geos-3.5.0/include/geos/platform.h.in
+--- geos-3.5.0-old/include/geos/platform.h.in 2015-08-14 14:23:18.000000000 -0400
++++ geos-3.5.0/include/geos/platform.h.in 2016-04-18 08:52:50.480692517 -0400
+@@ -22,6 +22,9 @@
+ /* Has isnan */
+ #undef HAVE_ISNAN
+
++/* Has std::isnan */
++#undef HAVE_STD_ISNAN
++
+ #ifdef HAVE_IEEEFP_H
+ extern "C"
+ {
+@@ -87,18 +90,16 @@ extern "C"
+
+ #if defined(HAVE_ISNAN)
+ # define ISNAN(x) (isnan(x))
++#elif defined(HAVE_STD_ISNAN)
++ // Hack for OS/X <cmath> incorrectly re-defining isnan() into oblivion.
++ // It does leave a version in std.
++# define ISNAN(x) (std::isnan(x))
+ #else
+ # if defined(_MSC_VER)
+ # define ISNAN(x) _isnan(x)
+ # elif defined(__MINGW32__) || defined(__CYGWIN__)
+ // sandro furieri: sanitizing MinGW32
+ # define ISNAN(x) (std::isnan(x))
+-# elif defined(__OSX__) || defined(__APPLE__) || \
+- defined(__NetBSD__) || defined(__DragonFly__) || defined (__OpenBSD__) || \
+- (defined(__sun) && defined(__GNUC__))
+- // Hack for OS/X <cmath> incorrectly re-defining isnan() into oblivion.
+- // It does leave a version in std.
+-# define ISNAN(x) (std::isnan(x))
+ # elif (defined(__sun) || defined(__sun__)) && defined(__SUNPRO_CC)
+ # include <math.h>
+ # define ISNAN(x) (::isnan(x))
diff --git a/testing/geos/APKBUILD b/testing/geos/APKBUILD
new file mode 100644
index 0000000000..238f715ce1
--- /dev/null
+++ b/testing/geos/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Eric Kidd <git@randomhacks.net>
+# Maintainer:
+pkgname=geos
+pkgver=3.5.0
+pkgrel=0
+pkgdesc="GEOS is a library providing OpenGIS and JTS spatial operations in C++."
+url="http://trac.osgeo.org/geos/"
+arch="all"
+license="LGPL2.1"
+depends=""
+depends_dev=""
+makedepends="swig python-dev $depends_dev"
+install=""
+subpackages="py-$pkgname:py $pkgname-dev"
+source="http://download.osgeo.org/geos/geos-$pkgver.tar.bz2 10-isnan.patch"
+
+builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ cd "$builddir"
+ for i in "$srcdir"/*.patch; do
+ msg "Applying ${i}"
+ patch -p1 -i $i || return 1
+ done
+}
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-python \
+ || return 1
+
+ # --enable-ruby produces a gem which crashes, and which seems to
+ # mostly ignored in favor of the rgeo and ffi-geos modules, anyway.
+
+ make || return 1
+
+ # This is a complex library that does lots of complicated numeric
+ # stuff, and the unit tests are fast, so let's run them just to be
+ # safe.
+ make check || return 1
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+py() {
+ cd "$builddir"
+ pkgdesc="$pkgname Python bindings"
+ install -d "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+}
+
+md5sums="136842690be7f504fba46b3c539438dd geos-3.5.0.tar.bz2
+05cb0ecb132c4d20b5444a7ec926d68c 10-isnan.patch"
+sha256sums="49982b23bcfa64a53333dab136b82e25354edeb806e5a2e2f5b8aa98b1d0ae02 geos-3.5.0.tar.bz2
+1bce38b84d5ba67bc0f4725cc13d69b89654b3cd37e4189090691e8abe008040 10-isnan.patch"
+sha512sums="cd9c008c19213eb90959f950b03958e6abd9c22d83e6eb5f5a9020263ad8b0045dd5c5af60417c548fc130a57756ae1ef706710086cc277498b9ba6a0a6256b7 geos-3.5.0.tar.bz2
+3bb8a11e56f9f03138e46b96c31c57f7f080a7115d5d64a3d84c1dbd077ab61e32e7c8b441d5d167ba0f9b87ac6b978291b507ab0ef7d9f27f3fb282766a3db6 10-isnan.patch"