Subject: [PATCH] gnu: Add libspatialindex.

From: Wiktor Żelazny <[email-masked]>
Date: Fri, 4 Oct 2019 15:25:16 +0200

From: Wiktor Żelazny <[email-masked]>

* gnu/packages/geo.scm (libspatialindex): new variable.
---
 gnu/packages/geo.scm | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 5e1f7e39d7..1d635c4f1f 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2019 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2019 Efraim Flashner <[email-masked]>
+;;; Copyright © 2019 Wiktor Żelazny <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -65,7 +66,8 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages wxwidgets)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (ice-9 regex))
 
 (define-public geos
   (package
@@ -996,3 +998,40 @@ XyGrib is the continuation of the zyGrib software package with a new team of
 volunteers.")
     (home-page "https://opengribs.org")
     (license license:gpl3+)))
+
+(define-public libspatialindex
+  (package
+    (name "libspatialindex")
+    (version "1.8.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://download.osgeo.org/" name "/"
+               (regexp-substitute #f (string-match "^lib" name) 'pre "" 'post)
+               "-src-" version ".tar.gz"))
+        (sha256
+          (base32
+            ; checked <uri>.md5
+            "1vxzm7kczwnb6qdmc0hb00z8ykx11zk3sb68gc7rch4vrfi4dakw"))))
+      (build-system gnu-build-system)
+      (home-page "https://libspatialindex.org")
+      (synopsis "Spatial indexing library")
+      (description "The purpose of this library is to provide:
+
+@itemize
+ @item An extensible framework that will support robust spatial indexing
+methods.
+ @item Support for sophisticated spatial queries.  Range, point location,
+ nearest neighbor and k-nearest neighbor as well as parametric queries (defined
+by spatial constraints) should be easy to deploy and run.
+ @item Easy to use interfaces for inserting, deleting and updating information.
+ @item Wide variety of customization capabilities.  Basic index and storage
+characteristics like the page size, node capacity, minimum fan-out, splitting
+algorithm, etc. should be easy to customize.
+ @item Index persistence.  Internal memory and external memory structures
+should be supported.  Clustered and non-clustered indices should be easy to be
+persisted.
+@end itemize
+")
+      (license license:expat)))
-- 
2.23.0