gnu: kdenlive: Add missing dependencies.
[jackhill/guix/guix.git] / gnu / packages / geo.scm
CommitLineData
03c1662e
LF
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
ad1ff78d 3;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
f6c507e1 4;;; Copyright © 2017, 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
eed886f8 5;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
8d26f48e 6;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
d33afa26 7;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
3d60f426 8;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
f1abc566 9;;; Copyright © 2018, 2019, 2020 Julien Lepiller <julien@lepiller.eu>
30fa6b16 10;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
ff1233d8 11;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
41b4b713 12;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
53c9b398 13;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
517c5538 14;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
1192ae94 15;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
03c1662e
LF
16;;;
17;;; This file is part of GNU Guix.
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages geo)
6dd0e41d 33 #:use-module (guix build-system ant)
8fa3451c 34 #:use-module (guix build-system cmake)
03c1662e 35 #:use-module (guix build-system glib-or-gtk)
065d0125 36 #:use-module (guix build-system gnu)
be7c64ba 37 #:use-module (guix build-system go)
5339d2bb 38 #:use-module (guix build-system meson)
f25e1e24 39 #:use-module (guix build-system python)
bccbeece 40 #:use-module (guix build-system qt)
f2b005f6 41 #:use-module (guix build-system scons)
3d60f426 42 #:use-module (guix build-system r)
03c1662e 43 #:use-module (guix download)
d56af1ff 44 #:use-module (guix git-download)
f041db86 45 #:use-module (guix svn-download)
065d0125 46 #:use-module ((guix licenses) #:prefix license:)
03c1662e
LF
47 #:use-module (guix packages)
48 #:use-module (guix utils)
f9d32883 49 #:use-module (gnu packages)
9fce5914 50 #:use-module (gnu packages algebra)
0f7b8a7f 51 #:use-module (gnu packages astronomy)
7b1fb40d 52 #:use-module (gnu packages audio)
ed72a133 53 #:use-module (gnu packages autotools)
7b1fb40d 54 #:use-module (gnu packages backup)
9fce5914
GLV
55 #:use-module (gnu packages bash)
56 #:use-module (gnu packages bison)
f2b005f6 57 #:use-module (gnu packages boost)
f25e1e24 58 #:use-module (gnu packages check)
1a39141d 59 #:use-module (gnu packages compression)
7b1fb40d 60 #:use-module (gnu packages curl)
f2b005f6 61 #:use-module (gnu packages databases)
889e94e3 62 #:use-module (gnu packages datastructures)
7295171e 63 #:use-module (gnu packages docbook)
889e94e3 64 #:use-module (gnu packages documentation)
7b1fb40d 65 #:use-module (gnu packages elf)
9fce5914 66 #:use-module (gnu packages flex)
0f7b8a7f 67 #:use-module (gnu packages fonts)
f2b005f6 68 #:use-module (gnu packages fontutils)
7b1fb40d
GLV
69 #:use-module (gnu packages gettext)
70 #:use-module (gnu packages gl)
03c1662e
LF
71 #:use-module (gnu packages glib)
72 #:use-module (gnu packages gnome)
151f3d41 73 #:use-module (gnu packages gps)
03c1662e 74 #:use-module (gnu packages gtk)
151f3d41 75 #:use-module (gnu packages haskell-apps)
1a39141d 76 #:use-module (gnu packages image)
f7ac2fe1 77 #:use-module (gnu packages image-processing)
f2b005f6 78 #:use-module (gnu packages icu4c)
f041db86 79 #:use-module (gnu packages java)
151f3d41 80 #:use-module (gnu packages kde)
b0e2299a 81 #:use-module (gnu packages lua)
6cde0737 82 #:use-module (gnu packages maths)
996e45cb 83 #:use-module (gnu packages pcre)
f7ac2fe1 84 #:use-module (gnu packages pdf)
2b9be1a6 85 #:use-module (gnu packages perl)
7b1fb40d 86 #:use-module (gnu packages photo)
03c1662e 87 #:use-module (gnu packages pkg-config)
dc8621a2 88 #:use-module (gnu packages protobuf)
7b1fb40d 89 #:use-module (gnu packages pulseaudio)
f2b005f6 90 #:use-module (gnu packages python)
481b0923 91 #:use-module (gnu packages python-check)
0a71e34e 92 #:use-module (gnu packages python-web)
44d10b1f 93 #:use-module (gnu packages python-xyz)
0f7b8a7f 94 #:use-module (gnu packages qt)
9fce5914 95 #:use-module (gnu packages readline)
f7ac2fe1 96 #:use-module (gnu packages swig)
cd0322a3 97 #:use-module (gnu packages sqlite)
7ba300ee 98 #:use-module (gnu packages textutils)
9fce5914 99 #:use-module (gnu packages time)
5b19776e 100 #:use-module (gnu packages web)
03c1662e 101 #:use-module (gnu packages webkit)
a2a53274 102 #:use-module (gnu packages wxwidgets)
151f3d41
GLV
103 #:use-module (gnu packages xml)
104 #:use-module (gnu packages xorg))
03c1662e 105
7295171e
RG
106(define-public memphis
107 (package
108 (name "memphis")
109 (version "0.2.3")
110 (source
111 (origin
112 (method git-fetch)
113 (uri
114 (git-reference
115 (url "https://github.com/jiuka/memphis.git")
116 (commit version)))
117 (file-name (git-file-name name version))
118 (sha256
119 (base32 "068c3943pgbpfjq44pmvn5fmkh005ak5aa67vvrq3fn487c6w54q"))))
120 (build-system glib-or-gtk-build-system)
121 (outputs '("out" "doc"))
122 (arguments
123 `(#:configure-flags
124 (list
125 "--disable-static"
126 "--enable-gtk-doc"
127 "--enable-vala"
128 (string-append "--with-html-dir="
129 (assoc-ref %outputs "doc")
130 "/share/gtk-doc/html"))
131 #:phases
132 (modify-phases %standard-phases
133 (add-after 'unpack 'patch-autogen
134 (lambda _
135 (substitute* "autogen.sh"
136 (("\\./configure \"\\$@\"")
137 ""))
138 #t))
139 (add-after 'patch-autogen 'patch-docbook-xml
140 (lambda* (#:key inputs #:allow-other-keys)
141 (with-directory-excursion "docs/reference"
142 (substitute* "libmemphis-docs.sgml"
143 (("http://www.oasis-open.org/docbook/xml/4.3/")
144 (string-append (assoc-ref inputs "docbook-xml")
145 "/xml/dtd/docbook/"))))
146 #t)))))
147 (native-inputs
148 `(("autoconf" ,autoconf)
149 ("automake" ,automake)
150 ("docbook-xml" ,docbook-xml-4.3)
151 ("gobject-introspection" ,gobject-introspection)
152 ("gtk-doc" ,gtk-doc)
153 ("libtool" ,libtool)
154 ("pkg-config" ,pkg-config)
155 ("python" ,python-wrapper)
156 ("seed" ,seed)
157 ("vala" ,vala)))
158 (inputs
159 `(("expat" ,expat)
160 ("glib" ,glib)))
161 (propagated-inputs
162 `(("cairo" ,cairo)))
163 (synopsis "Map-rendering for OpenSteetMap")
164 (description "Memphis is a map-rendering application and a library for
165OpenStreetMap written in C using eXpat, Cairo and GLib.")
166 (home-page "http://trac.openstreetmap.ch/trac/memphis/")
167 (license license:lgpl2.1+)))
168
a7607572
BH
169(define-public geos
170 (package
171 (name "geos")
eed886f8 172 (version "3.8.1")
a7607572
BH
173 (source (origin
174 (method url-fetch)
175 (uri (string-append "http://download.osgeo.org/geos/geos-"
176 version
177 ".tar.bz2"))
178 (sha256
179 (base32
eed886f8 180 "1xqpmr10xi0n9sj47fbwc89qb0yr9imh4ybk0jsxpffy111syn22"))))
a7607572
BH
181 (build-system gnu-build-system)
182 (arguments `(#:phases
183 (modify-phases %standard-phases
184 (add-after
185 'unpack 'patch-test-shebangs
186 (lambda _
187 (substitute* '("tests/xmltester/testrunner.sh"
188 "tests/geostest/testrunner.sh")
189 (("/bin/sh") (which "sh")))
190 #t)))))
191 (inputs
192 `(("glib" ,glib)))
193 (home-page "https://geos.osgeo.org/")
194 (synopsis "Geometry Engine for Geographic Information Systems")
195 (description
196 "GEOS provides a spatial object model and fundamental geometric
197functions. It is a C++ port of the Java Topology Suite (JTS). As such,
198it aims to contain the complete functionality of JTS in C++. This
199includes all the OpenGIS Simple Features for SQL spatial predicate
200functions and spatial operators, as well as specific JTS enhanced
201topology functions.")
202 (license (list license:lgpl2.1+ ; Main distribution.
203 license:zlib ; tests/xmltester/tinyxml/*
204 license:public-domain)))) ; include/geos/timeval.h
205
03c1662e
LF
206(define-public gnome-maps
207 (package
208 (name "gnome-maps")
5b4ebb42 209 (version "3.34.2")
03c1662e
LF
210 (source (origin
211 (method url-fetch)
212 (uri (string-append "mirror://gnome/sources/" name "/"
213 (version-major+minor version) "/"
214 name "-" version ".tar.xz"))
215 (sha256
216 (base32
5b4ebb42 217 "00xslcnhhwslqglgfv2im7vq3awa49y2jxzr8wsby7f713k28vf5"))))
5339d2bb 218 (build-system meson-build-system)
03c1662e 219 (arguments
5339d2bb 220 `(#:glib-or-gtk? #t
03c1662e
LF
221 #:phases
222 (modify-phases %standard-phases
b0a7c0c3
EF
223 (add-after 'unpack 'skip-gtk-update-icon-cache
224 ;; Don't create 'icon-theme.cache'.
225 (lambda _
226 (substitute* "meson_post_install.py"
227 (("gtk-update-icon-cache") "true"))
228 #t))
67bd376b
KK
229 (add-after 'install 'wrap
230 (lambda* (#:key inputs outputs #:allow-other-keys)
231 (let ((out (assoc-ref outputs "out"))
232 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5339d2bb
RW
233 (geocode-glib-path (string-append
234 (assoc-ref inputs "geocode-glib")
235 "/lib"))
67bd376b 236 (goa-path (string-append
2cf1e37c 237 (assoc-ref inputs "gnome-online-accounts:lib")
67bd376b 238 "/lib"))
2cf1e37c
KK
239 (gdk-pixbuf-path (string-append
240 (assoc-ref inputs "gdk-pixbuf")
241 "/lib"))
67bd376b
KK
242 (webkitgtk-path (string-append
243 (assoc-ref inputs "webkitgtk")
244 "/lib")))
245 (wrap-program (string-append out "/bin/gnome-maps")
246 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
03c1662e 247
67bd376b 248 ;; There seems to be no way to embed the path of
5339d2bb 249 ;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37,
2cf1e37c
KK
250 ;; libgdk_pixbuf-2.0.so, libjavascriptcoregtk-4.0.so.18, and
251 ;; libgeocode-glib.so.0
5339d2bb
RW
252 `("LD_LIBRARY_PATH" ":" prefix (,goa-path
253 ,webkitgtk-path
2cf1e37c 254 ,gdk-pixbuf-path
5339d2bb 255 ,geocode-glib-path)))
67bd376b 256 #t))))))
03c1662e 257 (native-inputs
f7d34fcd
MB
258 `(("gettext" ,gettext-minimal)
259 ("gobject-introspection" ,gobject-introspection)
03c1662e
LF
260 ("pkg-config" ,pkg-config)))
261 (inputs
7d7fedf6
MB
262 `(("evolution-data-server" ,evolution-data-server)
263 ("folks" ,folks)
03c1662e
LF
264 ("libchamplain" ,libchamplain)
265 ("libgee" ,libgee)
8d26f48e
RW
266 ("libsecret" ,libsecret)
267 ("libsoup" ,libsoup)
268 ("libgweather" ,libgweather)
03c1662e 269 ("libxml2" ,libxml2)
2cf1e37c 270 ("gdk-pixbuf" ,gdk-pixbuf+svg)
8d26f48e 271 ("glib-networking" ,glib-networking)
03c1662e
LF
272 ("geoclue" ,geoclue)
273 ("geocode-glib" ,geocode-glib)
274 ("gfbgraph" ,gfbgraph)
275 ("gjs" ,gjs)
276 ("glib" ,glib)
2cf1e37c 277 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8d26f48e 278 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
be7e82f0 279 ("gtk+" ,gtk+)
03c1662e
LF
280 ("rest" ,rest)
281 ("webkitgtk" ,webkitgtk)))
03c1662e
LF
282 (synopsis "Graphical map viewer and wayfinding program")
283 (description "GNOME Maps is a graphical map viewer. It uses map data from
284the OpenStreetMap project. It can provide directions for walking, bicycling,
285and driving.")
286 (home-page "https://wiki.gnome.org/Apps/Maps")
065d0125
BH
287 (license license:gpl2+)))
288
22c7c775
BH
289(define-public libgaiagraphics
290 (package
291 (name "libgaiagraphics")
292 (version "0.5")
293 (source
294 (origin
295 (method url-fetch)
296 (uri (string-append "https://www.gaia-gis.it/gaia-sins/libgaiagraphics-"
297 version ".tar.gz"))
298 (sha256
299 (base32
300 "076afqv417ag3hfvnif0qc7qscmnq1dsf6y431yygwgf34rjkayc"))))
301 (build-system gnu-build-system)
302 (native-inputs
303 `(("pkg-config" ,pkg-config)))
304 (inputs
305 `(("cairo" ,cairo)
306 ("libpng" ,libpng)
56e53392 307 ("libjpeg-turbo" ,libjpeg-turbo)
22c7c775
BH
308 ("libtiff" ,libtiff)
309 ("libgeotiff" ,libgeotiff)
310 ("proj.4" ,proj.4)
311 ("libxml2" ,libxml2)
312 ("zlib" ,zlib)))
313 (synopsis "Gaia common graphics support")
314 (description "libgaiagraphics is a library supporting
315 common-utility raster handling methods.")
316 (home-page "https://www.gaia-gis.it/fossil/libgaiagraphics/index")
317 (license license:lgpl3+)))
318
1a39141d
BH
319(define-public libgeotiff
320 (package
321 (name "libgeotiff")
f9d32883 322 (version "1.5.1")
1a39141d
BH
323 (source
324 (origin
325 (method url-fetch)
326 (uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-"
327 version ".tar.gz"))
f9d32883
AI
328 (patches (search-patches
329 ;; See libgeotiff 1.5.1 issue
330 ;; https://github.com/OSGeo/libgeotiff/issues/22
331 "libgeotiff-adapt-test-script-for-proj-6.2.patch"))
1a39141d 332 (sha256
f9d32883 333 (base32 "0b31mlzcv5b1y7jdvb7p0pa3xradrg3x5g32ym911lbhq4rrgsgr"))
1a39141d
BH
334 (modules '((guix build utils)))
335 (snippet
336 '(begin
337 ;; Remove .csv files, distributed from EPSG under a restricted
338 ;; license. See LICENSE for full license text.
339 (for-each delete-file (find-files "." "\\.csv$"))
6cbee49d 340 #t))))
1a39141d
BH
341 (build-system gnu-build-system)
342 (inputs
343 `(("libjpeg-turbo" ,libjpeg-turbo)
344 ("libtiff" ,libtiff)
1a39141d 345 ("zlib" ,zlib)))
517c5538
MB
346 (propagated-inputs
347 `(;; libgeotiff headers include proj headers, so ensure those are available.
348 ("proj" ,proj)))
1a39141d
BH
349 (arguments
350 `(#:configure-flags
1ecadbfe
MB
351 (list "--disable-static"
352 "--with-zlib" "--with-jpeg"
1a39141d
BH
353 (string-append "--with-libtiff=" (assoc-ref %build-inputs "libtiff")))))
354 (synopsis "Library for handling GeoTIFF (geographic enabled TIFF)")
355 (description "libgeotiff is a library on top of libtiff for reading and
356writing GeoTIFF information tags.")
357 (home-page "https://trac.osgeo.org/geotiff/")
358 ;; This is a mixture of various contributions under different licenses.
359 ;; Note that the EPSG database is NOT "free to use" as the LICENSE file
360 ;; states, as its commercial redistribution is restricted. Hence, we have
361 ;; removed it from the package.
362 (license (list license:public-domain
363 license:x11
364 license:bsd-3
365 (license:non-copyleft "file://LICENSE"
366 "See LICENSE in the distribution.")))))
367
f6c507e1
BH
368(define-public libspatialite
369 (package
370 (name "libspatialite")
371 (version "4.3.0a")
372 (source
373 (origin
374 (method url-fetch)
375 (uri (string-append "https://www.gaia-gis.it/gaia-sins/libspatialite-"
376 version ".tar.gz"))
377 (sha256
378 (base32
379 "16d4lpl7xrm9zy4gphy6nwanpjp8wn9g4wq2i2kh8abnlhq01448"))))
380 (build-system gnu-build-system)
381 (native-inputs
382 `(("pkg-config" ,pkg-config)))
383 (inputs
384 `(("freexl" ,freexl)
385 ("geos" ,geos)
386 ("libxml2" ,libxml2)
387 ("proj.4" ,proj.4)
388 ("sqlite" ,sqlite)
389 ("zlib" ,zlib)))
390 (arguments
391 `(#:phases
392 (modify-phases %standard-phases
393 ;; 3 tests are failing, ignore them:
394 (add-after 'unpack 'ignore-broken-tests
395 (lambda _
396 (substitute* '("test/Makefile.in")
397 (("\tcheck_sql_stm.*" all) "\tcheck_multithread$(EXEEXT) \\\n")
398 (("(\tch.*) check_v.*ble2.*$" all vt1) (string-append vt1 " \\\n"))
399 (("\tch.* (check_v.*ble4.*)$" all vt4) (string-append "\t" vt4)))
400 #t)))))
401 (synopsis "Extend SQLite to support Spatial SQL capabilities")
402 (description
403 "SpatiaLite is a library intended to extend the SQLite core to support
404fully fledged Spatial SQL capabilities.")
405 (home-page "https://www.gaia-gis.it/fossil/libspatialite/index")
406 ;; For the genuine libspatialite-sources holds:
407 ;; Any of the licenses MPL1.1, GPL2+ or LGPL2.1+ may be picked.
408 ;; Files under src/control_points are from GRASS
409 ;; and are licensed under GPL2+ only.
410 ;; src/md5.[ch]: Placed into the public domain by Alexander Peslyak.
411 (license (list license:gpl2+
412 license:lgpl2.1+
413 license:mpl1.1
414 license:public-domain))))
415
3500d7ad
AI
416(define-public proj
417 (package
418 (name "proj")
9147d121 419 (version "6.3.1")
3500d7ad
AI
420 (source
421 (origin
422 (method url-fetch)
423 (uri (string-append "http://download.osgeo.org/proj/proj-"
424 version ".tar.gz"))
425 (sha256
426 (base32
9147d121 427 "1y46ij32j9b4x1kjnnlykcwk3kkjwkg44sfc1ziwm3a3g0ki3q3d"))))
3500d7ad
AI
428 (build-system gnu-build-system)
429 (inputs
430 `(("sqlite" ,sqlite)))
431 (native-inputs
432 `(("pkg-config" ,pkg-config)))
433 (home-page "https://proj.org/")
434 (synopsis "Coordinate transformation software")
435 (description
436 "Proj is a generic coordinate transformation software that transforms
437geospatial coordinates from one coordinate reference system (CRS) to another.
438This includes cartographic projections as well as geodetic transformations.
439PROJ includes command line applications for easy conversion of coordinates
440from text files or directly from user input. In addition, proj also exposes
441an application programming interface that lets developers use the
442functionality of proj in their own software.")
443 (license (list license:expat
444 ;; src/projections/patterson.cpp
445 license:asl2.0
446 ;; src/geodesic.*, src/tests/geodtest.cpp
447 license:x11))))
448
065d0125
BH
449(define-public proj.4
450 (package
451 (name "proj.4")
452 (version "4.9.3")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "http://download.osgeo.org/proj/proj-"
456 version ".tar.gz"))
457 (sha256
458 (base32
459 "1xw5f427xk9p2nbsj04j6m5zyjlyd66sbvl2bkg8hd1kx8pm9139"))))
460 (build-system gnu-build-system)
461 (arguments
462 `(#:phases
463 (modify-phases %standard-phases
464 (add-after 'unpack 'patch-test-paths
465 (lambda _
466 (substitute* '("nad/test27"
467 "nad/test83"
468 "nad/testvarious"
469 "nad/testdatumfile"
470 "nad/testflaky"
471 "nad/testIGNF")
472 (("/bin/rm") (which "rm")))
473 #t))
474 ;; Precision problems on i686 and other platforms. See:
475 ;; https://web.archive.org/web/20151006134301/http://trac.osgeo.org/proj/ticket/255
476 ;; Disable failing test.
477 (add-after 'patch-test-paths 'ignore-failing-tests
478 (lambda _
479 (substitute* '("nad/Makefile.in")
480 (("\tPROJ_LIB.*" all) (string-append "#" all)))
481 #t)))))
482 (inputs
483 `(("glib" ,glib)))
3fbb7bec 484 (home-page "https://proj.org/")
065d0125
BH
485 (synopsis "Cartographic Projections Library")
486 (description
487 "Proj.4 is a library for converting coordinates between cartographic
488projections.")
489 (license (list license:expat
490 ;; src/PJ_patterson.c
491 license:asl2.0
492 ;; src/geodesic.c/h
493 license:x11
494 ;; Embedded EPSG database.
495 (license:non-copyleft "http://www.epsg.org/TermsOfUse")
496 ;; cmake/*
497 license:boost1.0))))
f2b005f6
AI
498
499(define-public mapnik
500 (package
501 (name "mapnik")
502 (version "3.0.18")
503 (source
504 (origin
505 (method url-fetch)
506 (uri (string-append "https://github.com/mapnik/mapnik/releases/download/v"
507 version "/mapnik-v" version ".tar.bz2"))
508 (sha256
509 (base32
510 "06frcikaj2mgz3abfk5h0z4j3hbksi0zikwjngbjv4p5f3pwxf8q"))))
511 (build-system scons-build-system)
512 (inputs
513 `(("boost" ,boost)
514 ("cairo" ,cairo)
515 ("freetype" ,freetype)
516 ("harfbuzz" ,harfbuzz)
517 ("icu4c" ,icu4c)
518 ("libjpeg-turbo" ,libjpeg-turbo)
519 ("libpng" ,libpng)
520 ("libtiff" ,libtiff)
521 ("libwebp" ,libwebp)
522 ("libxml2" ,libxml2)
523 ("proj.4" ,proj.4)
524 ("sqlite" ,sqlite)
525 ("zlib" ,zlib)))
526 (native-inputs
527 `(("pkg-config" ,pkg-config)))
528 (arguments
529 `(#:scons ,scons-python2
530 #:scons-flags
531 (list "CC=gcc"
532 (string-append "PREFIX=" %output)
533 (string-append "CUSTOM_LDFLAGS=-Wl,-rpath=" %output "/lib"))))
711ebe77 534 (home-page "https://mapnik.org/")
f2b005f6
AI
535 (synopsis "Toolkit for developing mapping applications")
536 (description "Mapnik is a toolkit for developing mapping applications. It
537is basically a collection of geographic objects like maps, layers,
538datasources, features, and geometries. At its core is a C++ shared library
539providing algorithms and patterns for spatial data access and visualization.
540The library does not rely on any specific windowing system and can be deployed
541to any server environment. It is intended to play fair in a multi-threaded
542environment and is aimed primarily, but not exclusively, at web-based
543development.")
544 (license (list license:lgpl2.1+
545 ;; demo/viewer, demo/python/rundemo.py
546 license:gpl2+
547 ;; deps/boost, deps/mapbox, deps/agg/include/agg_conv_offset.h
548 license:boost1.0
549 ;; deps/mapnik/sparsehash
550 license:bsd-3
551 ;; deps/agg
552 (license:non-copyleft "file://deps/agg/copying")))))
553
f25e1e24
AI
554(define-public python2-mapnik
555 (package
556 (name "python2-mapnik")
557 (version "3.0.16")
558 (source
559 (origin
560 (method url-fetch)
561 (uri (string-append "https://github.com/mapnik/python-mapnik/archive/v"
562 version ".tar.gz"))
563 (file-name (string-append name "-" version ".tar.gz"))
564 (sha256
565 (base32
566 "0w7wg72gnwmbjani9sqk42p2jwqkrl9hsdkawahni5m05xsifcb4"))))
567 (build-system python-build-system)
568 (inputs
569 `(("boost" ,boost)
570 ("harfbuzz" ,harfbuzz)
571 ("icu4c" ,icu4c)
572 ("libjpeg-turbo" ,libjpeg-turbo)
573 ("libpng" ,libpng)
574 ("libtiff" ,libtiff)
575 ("libwebp" ,libwebp)
576 ("mapnik" ,mapnik)
577 ("proj.4" ,proj.4)
578 ("python2-pycairo" ,python2-pycairo)))
579 (native-inputs
580 (let ((test-data-input
581 (lambda (repository version hash)
582 (origin
583 (method url-fetch)
584 (uri (string-append "https://github.com/mapnik/" repository
585 "/archive/v" version ".tar.gz"))
586 (file-name (string-append "python-mapnik-" repository
587 "-" version ".tar.gz"))
588 (sha256 (base32 hash))))))
589 `(("python2-nose" ,python2-nose)
590 ;; Test data is released as separate tarballs
591 ("test-data"
592 ,(test-data-input "test-data" "3.0.18"
593 "10cvgn5gxn8ldrszj24zr1vzm5w76kqk4s7bl2zzp5yvkhh8lj1n"))
594 ("test-data-visual"
595 ,(test-data-input "test-data-visual" "3.0.18"
596 "1cb9ghy8sis0w5fkp0dvwxdqqx44rhs9a9w8g9r9i7md1c40r80i")))))
597 (arguments
598 `(#:python ,python-2 ; Python 3 support is incomplete, and the build fails
599 #:phases
600 (modify-phases %standard-phases
601 ;; Unpack test data into the source tree
602 (add-after 'unpack 'unpack-submodules
603 (lambda* (#:key inputs #:allow-other-keys)
604 (let ((unpack (lambda (source target)
605 (with-directory-excursion target
606 (invoke "tar" "xvf" (assoc-ref inputs source)
607 "--strip-components=1")))))
608 (unpack "test-data" "test/data")
609 (unpack "test-data-visual" "test/data-visual"))))
610 ;; Skip failing tests
611 (add-after 'unpack 'skip-tests
612 (lambda _
613 (let ((skipped-tests (list "test_vrt_referring_to_missing_files"
614 "test_unicode_regex_replace"
615 "test_proj_antimeridian_bbox"
616 "test_render_with_scale_factor")))
617 (substitute* "setup.cfg"
618 (("\\[nosetests\\]" all)
619 (string-append all "\nexclude=^("
620 (string-join skipped-tests "|") ")$")))))))))
621 (home-page "https://github.com/mapnik/python-mapnik")
622 (synopsis "Python bindings for Mapnik")
623 (description "This package provides Python bindings for Mapnik.")
624 (license license:lgpl2.1+)))
a2a53274
BH
625
626(define-public spatialite-gui
627 (package
628 (name "spatialite-gui")
629 (version "1.7.1")
630 (source
631 (origin
632 (method url-fetch)
633 (uri (string-append "https://www.gaia-gis.it/gaia-sins/spatialite_gui-"
634 version ".tar.gz"))
635 (sha256
636 (base32
637 "1r05dz9pyc8vsd2wbqxcsracpfbaamz470rcyp2myfpqwznv376b"))))
638 (build-system gnu-build-system)
639 (native-inputs
640 `(("pkg-config" ,pkg-config)))
641 (inputs
642 `(("freexl" ,freexl)
643 ("geos" ,geos)
644 ("libgaiagraphics" ,libgaiagraphics)
e8906d86 645 ("libjpeg-turbo" ,libjpeg-turbo)
a2a53274
BH
646 ("libspatialite" ,libspatialite)
647 ("libxml2" ,libxml2)
648 ("proj.4" ,proj.4)
649 ("sqlite" ,sqlite)
650 ("wxwidgets" ,wxwidgets-2)
651 ("zlib" ,zlib)))
f7f67495
GLV
652 (arguments
653 `(#:phases (modify-phases %standard-phases
654 (add-after 'unpack 'fix-gui
655 (lambda _
656 ;; Fix for the GUI not showing up.
657 (substitute* "Main.cpp"
658 (("Hide\\(\\);") ""))
659 #t)))))
a2a53274
BH
660 (synopsis "Graphical user interface for SpatiaLite")
661 (description "Spatialite-gui provides a visual interface for viewing and
662 maintaining a spatialite database. You can easily see the structure of the
663 tables and data contents using point and click functions, many of which
664 construct common SQL queries, or craft your own SQL queries.")
665 (home-page "https://www.gaia-gis.it/fossil/spatialite_gui/index")
666 (license license:gpl3+)))
3d60f426 667
996e45cb
JL
668(define-public gdal
669 (package
670 (name "gdal")
b45be612 671 (version "3.1.2")
996e45cb
JL
672 (source (origin
673 (method url-fetch)
674 (uri (string-append
675 "http://download.osgeo.org/gdal/" version "/gdal-"
676 version ".tar.gz"))
677 (sha256
678 (base32
b45be612 679 "1p6nmlsr8wbyq350pa6c22vrp98dcsa7yjnqsbhdbp74yj53nw9r"))
996e45cb
JL
680 (modules '((guix build utils)))
681 (snippet
682 `(begin
683 ;; TODO: frmts contains a lot more bundled code.
684 (for-each delete-file-recursively
685 ;; bundled code
686 '("frmts/png/libpng"
687 "frmts/gif/giflib"
688 "frmts/jpeg/libjpeg"
689 "frmts/jpeg/libjpeg12"
690 "frmts/gtiff/libtiff"
691 "frmts/gtiff/libgeotiff"
692 "frmts/zlib"
693 "ogr/ogrsf_frmts/geojson/libjson"))))))
694 (build-system gnu-build-system)
695 (arguments
696 `(#:tests? #f
697 #:configure-flags
698 (let-syntax ((with (syntax-rules ()
699 ((_ option input)
700 (string-append option "="
701 (assoc-ref %build-inputs input))))))
702 (list
703 ;; TODO: --with-pcidsk, --with-pcraster
704 (with "--with-freexl" "freexl")
705 (with "--with-libjson-c" "json-c")
706 (with "--with-png" "libpng")
707 (with "--with-webp" "libwebp")
708 (with "--with-gif" "giflib")
109f022e 709 (with "--with-jpeg" "libjpeg-turbo")
996e45cb
JL
710 (with "--with-libtiff" "libtiff")
711 (with "--with-geotiff" "libgeotiff")
712 (with "--with-libz" "zlib")
0f054356 713 (with "--with-expat" "expat")
838db4fc 714 (with "--with-sqlite3" "sqlite")
996e45cb
JL
715 "--with-pcre"))
716 #:phases
717 (modify-phases %standard-phases
718 (add-before 'build 'fix-path
719 (lambda _
720 (substitute* "frmts/mrf/mrf_band.cpp"
721 (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
722 (inputs
0f054356
AI
723 `(("expat" ,expat)
724 ("freexl" ,freexl)
996e45cb
JL
725 ("geos" ,geos)
726 ("giflib" ,giflib)
727 ("json-c" ,json-c)
728 ("libgeotiff" ,libgeotiff)
729 ("libjpeg-turbo" ,libjpeg-turbo)
730 ("libpng" ,libpng)
731 ("libtiff" ,libtiff)
732 ("libwebp" ,libwebp)
6cde0737 733 ("netcdf" ,netcdf)
996e45cb 734 ("pcre" ,pcre)
1ee58405 735 ("postgresql" ,postgresql) ; libpq
e72557c0 736 ("proj" ,proj)
838db4fc 737 ("sqlite" ,sqlite)
996e45cb 738 ("zlib" ,zlib)))
1ee58405
BH
739 (native-inputs
740 `(("pkg-config" ,pkg-config)))
e7453b3c 741 (home-page "https://gdal.org/")
996e45cb
JL
742 (synopsis "Raster and vector geospatial data format library")
743 (description "GDAL is a translator library for raster and vector geospatial
744data formats. As a library, it presents a single raster abstract data model
745and single vector abstract data model to the calling application for all
746supported formats. It also comes with a variety of useful command line
747utilities for data translation and processing.")
748 (license (list
749 ;; general license
750 license:expat
751 ;; frmts/gtiff/tif_float.c, frmts/pcraster/libcsf,
752 ;; ogr/ogrsf_frmts/dxf/intronurbs.cpp, frmts/pdf/pdfdataset.cpp
753 ;; frmts/mrf/
754 license:bsd-3
755 ;; frmts/hdf4/hdf-eos/*
756 ;; similar to the expat license, but without guarantee exclusion
757 (license:non-copyleft "file://frmts/hdf4/hdf-eos/README")
758 ;; frmts/grib/degrib/
759 license:public-domain ; with guarantee exclusion
760 ;; port/cpl_minizip*
761 ;; Some bsd-inspired license
762 (license:non-copyleft "file://port/LICENCE_minizip")
763 ;; alg/internal_libqhull
764 ;; Some 5-clause license
765 (license:non-copyleft "file://alg/internal_libqhull/COPYING.txt")
766 ;; frmts/mrf/libLERC
767 license:asl2.0))))
2b9be1a6 768
a18a27be
SB
769(define-public python-gdal
770 (package (inherit gdal)
771 (name "python-gdal")
772 (build-system python-build-system)
773 (arguments
774 '(#:tests? #f ; no tests
775 #:phases
776 (modify-phases %standard-phases
777 (add-before 'build 'chdir
778 (lambda _
779 (chdir "swig/python")
780 #t)))))
781 (native-inputs '())
782 (propagated-inputs
783 `(("python-numpy" ,python-numpy)))
784 (inputs
785 `(("gdal" ,gdal)))
786 (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
787
2b9be1a6
JL
788(define-public postgis
789 (package
790 (name "postgis")
c5249726 791 (version "3.0.2")
2b9be1a6
JL
792 (source (origin
793 (method url-fetch)
794 (uri (string-append "https://download.osgeo.org/postgis/source/postgis-"
795 version ".tar.gz"))
796 (sha256
797 (base32
c5249726 798 "1jmji8i2wjabkrzqil683lypnmimigdmn64a10j3kj3kzlfn98d3"))))
2b9be1a6
JL
799 (build-system gnu-build-system)
800 (arguments
801 `(#:tests? #f
802 #:make-flags
803 (list (string-append "datadir=" (assoc-ref %outputs "out") "/share")
804 (string-append "docdir="(assoc-ref %outputs "out") "/share/doc")
805 (string-append "pkglibdir="(assoc-ref %outputs "out") "/lib")
806 (string-append "bindir=" (assoc-ref %outputs "out") "/bin"))
807 #:phases
808 (modify-phases %standard-phases
809 (add-before 'build 'fix-install-path
810 (lambda* (#:key outputs #:allow-other-keys)
811 (substitute* '("raster/loader/Makefile" "raster/scripts/python/Makefile")
812 (("\\$\\(DESTDIR\\)\\$\\(PGSQL_BINDIR\\)")
813 (string-append (assoc-ref outputs "out") "/bin"))))))))
814 (inputs
815 `(("gdal" ,gdal)
816 ("geos" ,geos)
bfffe6d2 817 ("giflib" ,giflib)
75e2c054
AI
818 ("json-c" ,json-c)
819 ("libjpeg" ,libjpeg-turbo)
2b9be1a6
JL
820 ("libxml2" ,libxml2)
821 ("pcre" ,pcre)
822 ("postgresql" ,postgresql)
75e2c054 823 ("proj" ,proj)))
2b9be1a6
JL
824 (native-inputs
825 `(("perl" ,perl)
826 ("pkg-config" ,pkg-config)))
827 (home-page "https://postgis.net")
828 (synopsis "Spatial database extender for PostgreSQL")
829 (description "PostGIS is a spatial database extender for PostgreSQL
830object-relational database. It adds support for geographic objects allowing
8e3f06c9
JL
831location queries to be run in SQL. This package provides a PostgreSQL
832extension.")
2b9be1a6
JL
833 (license (list
834 ;; General license
835 license:gpl2+
836 ;; loader/dbfopen, safileio.*, shapefil.h, shpopen.c
837 license:expat
838 ;; loader/getopt.*
839 license:public-domain
840 ;; doc/xsl
841 license:bsd-3 ; files only say "BSD"
842 ;; doc
843 license:cc-by-sa3.0))))
be7c64ba
JL
844
845(define-public tegola
846 (package
847 (name "tegola")
848 (version "0.7.0")
849 (source (origin
850 (method url-fetch)
851 (uri (string-append
852 "https://github.com/go-spatial/tegola/archive/v"
853 version ".tar.gz"))
854 (file-name (string-append name "-" version ".tar.gz"))
855 (sha256
856 (base32
857 "09vnzxfn0r70kmd776kcdfqxhzdj11syxa0b27z4ci1k367v7viw"))))
858 (build-system go-build-system)
859 (arguments
860 `(#:import-path "github.com/go-spatial/tegola/cmd/tegola"
d9ef50b3 861 #:unpack-path "github.com/go-spatial/tegola"
be7c64ba
JL
862 #:phases
863 (modify-phases %standard-phases
864 (add-before 'build 'set-version
865 (lambda _
d9ef50b3 866 (with-directory-excursion "src/github.com/go-spatial/tegola"
be7c64ba
JL
867 (substitute* '("cmd/tegola/cmd/root.go"
868 "cmd/tegola_lambda/main.go")
869 (("version not set") ,version)))
be7c64ba 870 #t)))))
0d49a4bb 871 (home-page "https://tegola.io")
be7c64ba
JL
872 (synopsis "Vector tile server for maps")
873 (description "Tegola is a free vector tile server written in Go. Tegola
874takes geospatial data and slices it into vector tiles that can be efficiently
875delivered to any client.")
876 (license (list
877 license:expat
878 ;; Some packages in vendor have other licenses
879 license:asl2.0
880 license:bsd-2
881 license:bsd-3
882 license:wtfpl2))))
3bd7611e
JL
883
884(define-public imposm3
885 (package
886 (name "imposm3")
887 (version "0.6.0-alpha.4")
888 (source
889 (origin
890 (method url-fetch)
891 (uri (string-append "https://github.com/omniscale/imposm3/archive/v"
892 version ".tar.gz"))
893 (file-name (string-append name "-" version ".tar.gz"))
894 (sha256
895 (base32
896 "06f0kwmv52yd5m9jlckqxqmkf0cnqy3hamakrvg9lspplyqrds80"))))
897 (build-system go-build-system)
898 (arguments
899 `(#:import-path "github.com/omniscale/imposm3/cmd/imposm"
bdc0c20c 900 #:unpack-path "github.com/omniscale/imposm3"
3bd7611e
JL
901 #:phases
902 (modify-phases %standard-phases
3bd7611e
JL
903 (add-before 'build 'set-version
904 (lambda _
905 (substitute* "src/github.com/omniscale/imposm3/version.go"
906 (("0.0.0-dev") ,version))
907 #t)))))
908 (inputs
909 `(("geos" ,geos)
910 ("leveldb" ,leveldb)))
911 (home-page "https://imposm.org/")
912 (synopsis "OpenStreetMap importer for PostGIS")
913 (description "Imposm is an importer for OpenStreetMap data. It reads PBF
914files and imports the data into PostgreSQL/PostGIS databases. It is designed
915to create databases that are optimized for rendering/tile/map-services.")
916 (license (list
917 license:asl2.0
918 ;; Some dependencies in vendor have different licenses
919 license:expat
920 license:bsd-2
921 license:bsd-3))))
8fa3451c 922
889e94e3
JL
923(define-public libosmium
924 (package
925 (name "libosmium")
7953f8b7 926 (version "2.15.6")
889e94e3 927 (source
f4daf250
TGR
928 (origin
929 (method git-fetch)
930 (uri (git-reference
b0e7b699 931 (url "https://github.com/osmcode/libosmium")
f4daf250
TGR
932 (commit (string-append "v" version))))
933 (file-name (git-file-name name version))
934 (sha256
7953f8b7 935 (base32 "0rqy18bbakp41f44y5id9ixh0ar2dby46z17p4115z8k1vv9znq2"))))
889e94e3
JL
936 (build-system cmake-build-system)
937 (propagated-inputs
938 `(("boost" ,boost)
7ba300ee 939 ("bzip2" ,bzip2)
889e94e3
JL
940 ("expat" ,expat)
941 ("gdal" ,gdal)
942 ("geos" ,geos)
7ba300ee 943 ("proj" ,proj)
889e94e3
JL
944 ("protozero" ,protozero)
945 ("sparsehash" ,sparsehash)
7ba300ee 946 ("utfcpp" ,utfcpp)
889e94e3
JL
947 ("zlib" ,zlib)))
948 (native-inputs
949 `(("doxygen" ,doxygen)))
950 (home-page "https://osmcode.org/libosmium/")
951 (synopsis "C++ library for working with OpenStreetMap data")
952 (description "Libosmium is a fast and flexible C++ library for working with
953OpenStreetMap data.")
954 (license license:boost1.0)))
b0e2299a
JL
955
956(define-public osm2pgsql
957 (package
958 (name "osm2pgsql")
12988adf 959 (version "1.2.2")
82b47fd9
TGR
960 (source
961 (origin
962 (method git-fetch)
963 (uri (git-reference
b0e7b699 964 (url "https://github.com/openstreetmap/osm2pgsql")
82b47fd9
TGR
965 (commit version)))
966 (file-name (git-file-name name version))
967 (sha256
12988adf 968 (base32 "1j35aa8qinhavliqi5pdm0viyi7lm5xyk402rliaxxs1r2hbsafn"))
82b47fd9
TGR
969 (modules '((guix build utils)))
970 (snippet
971 '(begin
972 (delete-file-recursively "contrib/protozero")
973 (delete-file-recursively "contrib/libosmium")
974 #t))))
b0e2299a
JL
975 (build-system cmake-build-system)
976 (arguments
977 `(#:tests? #f; tests fail because we need to setup a database
978 #:configure-flags
979 (list (string-append "-DOSMIUM_INCLUDE_DIR="
980 (assoc-ref %build-inputs "libosmium")
981 "/include")
982 (string-append "-DPROTOZERO_INCLUDE_DIR="
983 (assoc-ref %build-inputs "protozero")
984 "/include"))))
985 (inputs
986 `(("boost" ,boost)
6145b167 987 ("bzip2" ,bzip2)
b0e2299a
JL
988 ("expat" ,expat)
989 ("libosmium" ,libosmium)
990 ("lua" ,lua)
991 ("postgresql" ,postgresql)
6145b167 992 ("proj" ,proj)
b0e2299a
JL
993 ("protozero" ,protozero)
994 ("zlib" ,zlib)))
995 (native-inputs
6145b167
GLV
996 `(("python" ,python)
997 ("python-psycopg2" ,python-psycopg2)))
b0e2299a
JL
998 (home-page "https://github.com/openstreetmap/osm2pgsql")
999 (synopsis "OSM data importer to postgresql")
1000 (description "Osm2pgsql is a tool for loading OpenStreetMap data into a
1001PostgreSQL / PostGIS database suitable for applications like rendering into a
1002map, geocoding with Nominatim, or general analysis.")
1003 (license license:gpl2+)))
6f91223f
JL
1004
1005(define-public tippecanoe
1006 (package
1007 (name "tippecanoe")
1008 (version "1.31.5")
8f33d05e
TGR
1009 (source
1010 (origin
1011 (method git-fetch)
1012 (uri (git-reference
b0e7b699 1013 (url "https://github.com/mapbox/tippecanoe")
8f33d05e
TGR
1014 (commit version)))
1015 (file-name (git-file-name name version))
1016 (sha256
1017 (base32 "1m0x931a945sr7axyhcvpwh798m58hx1zxh6ikgf9gsgqhdhmszz"))))
6f91223f
JL
1018 (build-system gnu-build-system)
1019 (arguments
1020 `(#:phases
1021 (modify-phases %standard-phases (delete 'configure))
1022 #:test-target "test"
1023 #:make-flags
1024 (list "CC=gcc"
1025 (string-append "PREFIX=" (assoc-ref %outputs "out")))))
1026 (inputs
1027 `(("perl" ,perl)
1028 ("sqlite" ,sqlite)
1029 ("zlib" ,zlib)))
1030 (home-page "https://github.com/mapbox/tippecanoe")
1031 (synopsis "Vector tile server for maps")
1032 (description "Tippecanoe creates scale-independent view of data, so that
1033the texture and density of features is visible at every zoom level, instead of
1034dropping features at lower levels.")
1035 (license license:bsd-2)))
ed72a133
GLV
1036
1037(define-public osmctools
1038 (package
1039 (name "osmctools")
1040 (version "0.9")
1041 (source
1042 (origin
1043 (method git-fetch)
1044 (uri (git-reference
1045 (url "https://gitlab.com/osm-c-tools/osmctools")
1046 (commit version)))
1047 (file-name (git-file-name name version))
1048 (sha256
1049 (base32
1050 "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f"))))
1051 (build-system gnu-build-system)
1052 (native-inputs
1053 `(("autoconf" ,autoconf)
1054 ("automake" ,automake)))
1055 (inputs
1056 `(("zlib" ,zlib)))
1057 (home-page "https://gitlab.com/osm-c-tools/osmctools")
1058 (synopsis "Tools to convert, filter and update OpenStreetMap data files")
1059 (description "This project contains a few tools which are used in the
1060OpenStreetMap project. They can be used to convert, filter and update
1061OpenStreetMap data files.")
1062 (license license:agpl3)))
ee34be73
GLV
1063
1064(define-public osm-gps-map
1065 (package
1066 (name "osm-gps-map")
1067 (version "1.1.0")
1068 (source
1069 (origin
1070 (method url-fetch)
1071 (uri (string-append
1072 "https://github.com/nzjrs/osm-gps-map/releases/download/"
1073 version "/osm-gps-map-" version ".tar.gz"))
1074 (sha256
1075 (base32
1076 "11imsf4cz1dpxdjh178k2s29axmq86rkfg1pqmn7incyxmjzhbwg"))))
1077 (build-system gnu-build-system)
1078 (native-inputs
1079 `(("gnome-common" ,gnome-common)
1080 ("gtk-doc" ,gtk-doc)
1081 ("pkg-config" ,pkg-config)))
1082 (inputs
1083 `(("cairo" ,cairo)
1084 ("glib" ,glib)
1085 ("gobject-introspection" ,gobject-introspection)
1086 ("gtk+" ,gtk+)
1087 ("libsoup" ,libsoup)))
1088 (home-page "https://nzjrs.github.io/osm-gps-map/")
1089 (synopsis "GTK+ widget for displaying OpenStreetMap tiles")
1090 (description
1091 "This package provides a GTK+ widget (and Python bindings) that when
1092given GPS coordinates,draws a GPS track, and points of interest on a moving
1093map display. Downloads map data from a number of websites, including
1094@url{https://www.openstreetmap.org}.")
1095 (license license:gpl2+)))
0f7b8a7f
EF
1096
1097(define-public xygrib
1098 (package
1099 (name "xygrib")
29bdabb6 1100 (version "1.2.6.1")
0f7b8a7f
EF
1101 (source (origin
1102 (method git-fetch)
1103 (uri (git-reference
b0e7b699 1104 (url "https://github.com/opengribs/XyGrib")
0f7b8a7f
EF
1105 (commit (string-append "v" version))))
1106 (file-name (git-file-name name version))
1107 (sha256
1108 (base32
29bdabb6 1109 "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
0f7b8a7f
EF
1110 (modules '((guix build utils)))
1111 (snippet
1112 '(begin (delete-file-recursively "data/fonts") #t))))
1113 (build-system cmake-build-system)
1114 (arguments
1115 `(#:phases
1116 (modify-phases %standard-phases
1117 (add-after 'unpack 'patch-directories
1118 (lambda* (#:key inputs #:allow-other-keys)
1119 (let ((jpeg (assoc-ref inputs "openjpeg"))
1120 (font (assoc-ref inputs "font-liberation")))
1121 (substitute* "CMakeLists.txt"
1122 ;; Find libjpeg.
1123 (("/usr") jpeg)
1124 ;; Fix install locations.
1125 (("set\\(PREFIX_BIN.*") "set(PREFIX_BIN \"bin\")\n")
1126 (("set\\(PREFIX_PKGDATA.*") "set(PREFIX_PKGDATA \"share/${PROJECT_NAME}\")\n")
1127 ;; Skip looking for the static library.
1128 (("\"libnova.a\"") ""))
1129 ;; Don't use the bundled font-liberation.
1130 (substitute* "src/util/Font.cpp"
1131 (("Util::pathFonts\\(\\)\\+\"liberation-fonts/\"")
1132 (string-append "\"" font "/share/fonts/truetype/\"")))
1133 (substitute* "src/util/Util.h"
1134 (("pathData\\(\\)\\+\"data/fonts/\"")
1135 (string-append "\"" font "/share/fonts/\""))))
1136 #t)))
1137 #:tests? #f)) ; no tests
1138 (native-inputs
1139 `(("qttools" ,qttools)))
1140 (inputs
1141 `(("bzip2" ,bzip2)
1142 ("font-liberation" ,font-liberation)
1143 ("libnova" ,libnova)
1144 ("libpng" ,libpng)
1145 ("openjpeg" ,openjpeg)
1146 ("proj.4" ,proj.4)
1147 ("qtbase" ,qtbase)
1148 ("zlib" ,zlib)))
1149 (synopsis "Weather Forecast Visualization")
1150 (description
1151 "XyGrib is a Grib file reader and visualizes meteorological data providing
1152an off-line capability to analyse weather forecasts or hindcasts. It is
1153intended to be used as a capable weather work station for anyone with a serious
1154interest in examining weather. This would include members of the sailing
1155community, private and sport aviators, farmers, weather buffs and many more.
1156XyGrib is the continuation of the zyGrib software package with a new team of
1157volunteers.")
1158 (home-page "https://opengribs.org")
1159 (license license:gpl3+)))
41b4b713
1160
1161(define-public libspatialindex
1162 (package
1163 (name "libspatialindex")
1cbe7a3e 1164 (version "1.9.3")
41b4b713
1165 (source
1166 (origin
1167 (method url-fetch)
1cbe7a3e
AI
1168 (uri (string-append "https://github.com/libspatialindex/libspatialindex/"
1169 "releases/download/" version "/spatialindex-src-"
1170 version ".tar.bz2"))
41b4b713
1171 (sha256
1172 (base32
1cbe7a3e
AI
1173 "02n5vjcyk04w0djidyp21hfbxfpbbara8ifd9nml6158rwqr8lja"))))
1174 (build-system cmake-build-system)
41b4b713
1175 (home-page "https://libspatialindex.org")
1176 (synopsis "Spatial indexing library")
1177 (description "The purpose of this library is to provide:
1178
1179@itemize
1180 @item An extensible framework that will support robust spatial indexing
1181methods.
1182 @item Support for sophisticated spatial queries. Range, point location,
1183 nearest neighbor and k-nearest neighbor as well as parametric queries (defined
1184by spatial constraints) should be easy to deploy and run.
1185 @item Easy to use interfaces for inserting, deleting and updating information.
1186 @item Wide variety of customization capabilities. Basic index and storage
1187characteristics like the page size, node capacity, minimum fan-out, splitting
1188algorithm, etc. should be easy to customize.
1189 @item Index persistence. Internal memory and external memory structures
1190should be supported. Clustered and non-clustered indices should be easy to be
1191persisted.
1192@end itemize
1193")
1194 (license license:expat)))
6dd0e41d
JL
1195
1196(define-public java-jmapviewer
1197 (package
1198 (name "java-jmapviewer")
8c8c0c63 1199 (version "2.13")
6dd0e41d
JL
1200 (source (origin
1201 (method url-fetch)
1202 (uri (string-append "https://svn.openstreetmap.org/applications/"
1203 "viewer/jmapviewer/releases/" version
1204 "/JMapViewer-" version "-Source.zip"))
1205 (sha256
1206 (base32
8c8c0c63 1207 "0sy6r5fkbb9bclw0is6gwnbzz627m7pjfnsqydxz58pbndakkhrv"))))
6dd0e41d
JL
1208 (build-system ant-build-system)
1209 (native-inputs
1210 `(("unzip" ,unzip)))
1211 (arguments
1212 `(#:build-target "pack"
1213 #:tests? #f; No tests
1214 #:phases
1215 (modify-phases %standard-phases
1216 (add-before 'build 'clean
1217 (lambda* _
1218 (invoke "ant" "clean")))
1219 (replace 'install
1220 (lambda* (#:key outputs #:allow-other-keys)
1221 (let ((dir (string-append (assoc-ref outputs "out") "/share/java/")))
1222 (mkdir-p dir)
54cc2b4e
BH
1223 (copy-file "JMapViewer.jar" (string-append dir "JMapViewer.jar"))
1224 #t))))))
6dd0e41d
JL
1225 (home-page "https://wiki.openstreetmap.org/wiki/JMapViewer")
1226 (synopsis "OSM map integration in Java")
4042f7f8
VC
1227 (description "JMapViewer is a Java component which easily
1228integrates an OSM map view into your Java application. It is maintained as
6dd0e41d
JL
1229an independent project by the JOSM team.")
1230 (license license:gpl2)))
f041db86 1231
f1abc566
JL
1232(define-public java-opening-hours-parser
1233 (package
1234 (name "java-opening-hours-parser")
1235 (version "0.21.4")
1236 (source (origin
1237 (method git-fetch)
1238 (uri (git-reference
1239 (url "https://github.com/simonpoole/OpeningHoursParser")
1240 (commit version)))
1241 (file-name (git-file-name name version))
1242 (sha256
1243 (base32
1244 "1m8sp0jbjyv1nq3ddj8rk6rf3sva3mkacc6vw7rsj0c2n57k3i50"))))
1245 (build-system ant-build-system)
1246 (arguments
1247 `(#:jar-name "java-opening-hours-parser.jar"
1248 #:source-dir "src/main/java"
1249 #:phases
1250 (modify-phases %standard-phases
1251 (add-before 'build 'copy-resources
1252 (lambda _
1253 (copy-recursively "src/main/resources" "build/classes")
1254 #t))
1255 (add-before 'build 'generate-parser
1256 (lambda* _
1257 (let* ((dir "src/main/java/ch/poole/openinghoursparser")
1258 (file (string-append dir "/OpeningHoursParser.jj")))
1259 (invoke "javacc" "-DEBUG_PARSER=false"
1260 "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
1261 "-GRAMMAR_ENCODING=UTF-8"
1262 (string-append "-OUTPUT_DIRECTORY=" dir)
1263 file))
1264 #t)))))
1265 (inputs
1266 `(("java-jetbrains-annotations" ,java-jetbrains-annotations)))
1267 (native-inputs
1268 `(("javacc" ,javacc)
1269 ("java-junit" ,java-junit)
1270 ("java-hamcrest-core" ,java-hamcrest-core)))
1271 (home-page "https://github.com/simonpoole/OpeningHoursParser")
1272 (synopsis "Java parser for the OpenStreetMap opening hour format")
1273 (description "This is a very simplistic parser for string values according
1274to the OSM opening hours specification.")
1275 (license license:expat)))
1276
f041db86
JL
1277(define-public josm
1278 (package
1279 (name "josm")
dd98135a 1280 (version "16812")
f041db86
JL
1281 (source (origin
1282 (method svn-fetch)
1283 (uri (svn-reference
1284 (url "https://josm.openstreetmap.de/svn/trunk")
1285 (revision (string->number version))
1286 (recursive? #f)))
1287 (sha256
1288 (base32
dd98135a 1289 "131ly6ah9ygrah1wq1h2199v4hyzgflnh62ychs4jqvy9wz0dal6"))
f041db86
JL
1290 (file-name (string-append name "-" version "-checkout"))
1291 (modules '((guix build utils)))
1292 (snippet
1293 '(begin
1192ae94 1294 (for-each delete-file (find-files "." ".*.jar$"))
f041db86
JL
1295 #t))))
1296 (build-system ant-build-system)
1297 (native-inputs
1298 `(("javacc" ,javacc)))
1299 (inputs
1300 `(("java-commons-jcs" ,java-commons-jcs)
1301 ("java-commons-compress" ,java-commons-compress)
1302 ("java-jmapviewer" ,java-jmapviewer)
1303 ("java-jsonp-api" ,java-jsonp-api)
1304 ("java-jsonp-impl" ,java-jsonp-impl); runtime dependency
1305 ("java-metadata-extractor" ,java-metadata-extractor)
cfdb6770 1306 ("java-opening-hours-parser" ,java-opening-hours-parser)
f041db86
JL
1307 ("java-openjfx-media" ,java-openjfx-media)
1308 ("java-signpost-core" ,java-signpost-core)
1309 ("java-svg-salamander" ,java-svg-salamander)))
1310 (arguments
1311 `(#:tests? #f
1312 #:jar-name "josm.jar"
1313 #:phases
1314 (modify-phases %standard-phases
1315 (add-after 'unpack 'rm-build.xml
1316 (lambda* _
1317 (delete-file "build.xml")
1318 #t))
1319 (add-before 'build 'fix-revision
1320 (lambda* _
1321 (with-output-to-file "REVISION.XML"
1322 (lambda _
1323 (display
1324 (string-append "<info><entry><commit revision=\"" ,version "\">"
1325 "<date>1970-01-01 00:00:00 +0000</date>"
1326 "</commit></entry></info>"))))
1327 #t))
cfdb6770
JL
1328 (add-before 'build 'fix-jcs
1329 (lambda _
1330 ;; This version of JOSM uses an unreleased version of commons-jcs,
1331 ;; which has renamed its classes to another namespace. Rename them
1332 ;; back so they can be used with our version of jcs.
1333 (substitute* (find-files "." ".*.java$")
1334 (("jcs3") "jcs"))
1335 #t))
f041db86
JL
1336 (add-before 'build 'fix-classpath
1337 (lambda* (#:key inputs #:allow-other-keys)
1338 (setenv "CLASSPATH"
1339 (string-join
1340 (filter
1341 (lambda (s)
1342 (let ((source (assoc-ref inputs "source")))
1192ae94
CB
1343 (not (equal? (substring s 0 (string-length source))
1344 source))))
f041db86
JL
1345 (string-split (getenv "CLASSPATH") #\:))
1346 ":"))
1347 #t))
1348 (add-before 'build 'generate-parser
1349 (lambda* _
1350 (let* ((dir "src/org/openstreetmap/josm/gui/mappaint/mapcss")
1351 (out (string-append dir "/parsergen"))
1352 (file (string-append dir "/MapCSSParser.jj")))
1353 (mkdir-p "src/org/openstreetmap/josm/gui/mappaint/mapcss/parsergen")
1354 (invoke "javacc" "-DEBUG_PARSER=false"
1355 "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
1356 "-GRAMMAR_ENCODING=UTF-8"
1357 (string-append "-OUTPUT_DIRECTORY=" out)
1358 file))
1359 #t))
1360 (add-after 'build 'generate-epsg
1361 (lambda _
1362 (system* "javac" "scripts/BuildProjectionDefinitions.java"
1363 "-cp" "build/classes")
1364 (mkdir-p "data/projection")
1365 (with-output-to-file "data/projection/custom-epsg"
1366 (lambda _ (display "")))
1367 (invoke "java" "-cp" "build/classes:scripts:."
1368 "BuildProjectionDefinitions" ".")
1369 #t))
cfdb6770 1370 (add-after 'generate-epsg 'copy-resources
f041db86 1371 (lambda _
cfdb6770 1372 (copy-recursively "resources" "build/classes")
f041db86
JL
1373 #t))
1374 (add-before 'install 'regenerate-jar
1375 (lambda _
1376 ;; We need to regenerate the jar file to add data.
1377 (delete-file "build/jar/josm.jar")
1378 (invoke "jar" "-cf" "build/jar/josm.jar" "-C"
1379 "build/classes" ".")
1380 #t))
f041db86
JL
1381 (add-before 'build 'copy-revision
1382 (lambda _
1383 (mkdir-p "build/classes")
1384 (with-output-to-file "build/classes/REVISION"
1385 (lambda _
1386 (display
1387 (string-append "Revision: " ,version "\n"
1388 "Is-Local-Build: true\n"
1389 "Build-Date: 1970-01-01 00:00:00 +0000\n"))))
1390 #t))
1192ae94
CB
1391 (add-after 'install 'install-share-directories
1392 (lambda* (#:key outputs #:allow-other-keys)
1393 (let ((out (assoc-ref outputs "out"))
1394 (share-directories '("applications" "icons" "man" "menu"
1395 "metainfo" "mime" "pixmaps")))
1396 (for-each (lambda (directory)
1397 (copy-recursively (string-append
1398 "native/linux/tested/usr/share/"
1399 directory)
1400 (string-append
1401 out "/share/" directory)))
1402 share-directories))
1403 #t))
f041db86
JL
1404 (add-after 'install 'install-bin
1405 (lambda* (#:key outputs inputs #:allow-other-keys)
1406 (let* ((out (assoc-ref outputs "out"))
1407 (bin (string-append out "/bin")))
1408 (mkdir-p bin)
1409 (with-output-to-file (string-append bin "/josm")
1410 (lambda _
1411 (display
1412 (string-append "#!/bin/sh\n"
1413 (assoc-ref inputs "jdk") "/bin/java"
1414 " -cp " out "/share/java/josm.jar:"
1415 (getenv "CLASSPATH")
1416 " org.openstreetmap.josm.gui.MainApplication"))))
1417 (chmod (string-append bin "/josm") #o755))
1418 #t)))))
1419 (home-page "https://josm.openstreetmap.de")
1420 (synopsis "OSM editor")
1421 (description "JOSM is an extensible editor for OpenStreetMap (OSM). It
1422supports loading GPX tracks, background imagery and OSM data from local
9df26b02 1423sources as well as from online sources and allows editing the OSM data (nodes,
f041db86
JL
1424ways, and relations) and their metadata tags.")
1425 (license license:gpl2+)))
53c9b398
HG
1426
1427(define-public libmaxminddb
1428 (package
1429 (name "libmaxminddb")
07c0b3ce 1430 (version "1.4.3")
53c9b398
HG
1431 (source
1432 (origin
1433 (method url-fetch)
1434 (uri (string-append "https://github.com/maxmind/libmaxminddb"
1435 "/releases/download/" version "/"
1436 "/libmaxminddb-" version ".tar.gz"))
1437 (sha256
07c0b3ce 1438 (base32 "0fd4a4sxiiwzbd5h74wl1ijnb7xybjyybb7q41vdq3w8nk3zdzd5"))))
53c9b398
HG
1439 (build-system gnu-build-system)
1440 (arguments
2113ddb7
TGR
1441 `(#:make-flags
1442 (list ,(string-append "CC=" (cc-for-target)))))
53c9b398
HG
1443 (native-inputs
1444 `(("perl" ,perl)))
1445 (home-page "https://maxmind.github.io/libmaxminddb/")
1446 (synopsis "C library for the MaxMind DB file format")
1447 (description "The libmaxminddb library provides a C library for reading
1448MaxMind DB files, including the GeoIP2 databases from MaxMind. The MaxMind DB
1449format is a custom, but open, binary format designed to facilitate fast
1450lookups of IP addresses while allowing flexibility in the type of data
1451associated with an address.")
1452 (license license:asl2.0)))
b1414a81
HG
1453
1454(define-public python-maxminddb
1455 (package
1456 (name "python-maxminddb")
1457 (version "1.5.1")
1458 (source
1459 (origin
1460 (method url-fetch)
1461 (uri (pypi-uri "maxminddb" version))
1462 (sha256
1463 (base32
1464 "0y9giw81k4wdmpryr4k42w50z292mf364a6vs1vxf83ksc9ig6j4"))))
1465 (build-system python-build-system)
1466 (arguments
1467 `(#:tests? #f)) ;; Tests require a copy of the maxmind database
1468 (inputs
1469 `(("libmaxminddb" ,libmaxminddb)))
13b09bfc 1470 (home-page "https://www.maxmind.com/")
b1414a81
HG
1471 (synopsis "Reader for the MaxMind DB format")
1472 (description "MaxMind DB is a binary file format that stores data indexed
1473by IP address subnets (IPv4 or IPv6). This is a Python module for reading
1474MaxMind DB files.")
1475 (license license:asl2.0)))
0a71e34e
HG
1476
1477(define-public python-geoip2
1478 (package
1479 (name "python-geoip2")
1480 (version "2.9.0")
1481 (source
1482 (origin
1483 (method url-fetch)
1484 (uri (pypi-uri "geoip2" version))
1485 (sha256
1486 (base32
1487 "1w7cay5q6zawjzivqbwz5cqx1qbdjw6kbriccb7l46p7b39fkzzp"))))
1488 (build-system python-build-system)
1489 (arguments
1490 `(#:tests? #f)) ;; Tests require a copy of the maxmind database
1491 (inputs
1492 `(("python-maxminddb" ,python-maxminddb)
1493 ("python-requests" ,python-requests)))
13b09bfc 1494 (home-page "https://www.maxmind.com/")
0a71e34e
HG
1495 (synopsis "MaxMind GeoIP2 API")
1496 (description "Provides an API for the GeoIP2 web services and databases.
1497The API also works with MaxMind’s free GeoLite2 databases.")
1498 (license license:asl2.0)))
30fa6b16
GLV
1499
1500(define-public routino
1501 (package
1502 (name "routino")
1503 (version "3.3.2")
1504 (source
1505 (origin
1506 (method url-fetch)
1507 (uri (string-append "http://www.routino.org/download/routino-"
1508 version ".tgz"))
1509 (sha256
1510 (base32
1511 "1ccx3s99j8syxc1gqkzsaqkmyf44l7h3adildnc5iq2md7bp8wab"))))
1512 (build-system gnu-build-system)
1513 (native-inputs
1514 `(("perl" ,perl)))
1515 (inputs
1516 `(("bzip2" ,bzip2)
1517 ("xz" ,xz)
1518 ("zlib" ,zlib)))
1519 (arguments
1520 `(#:test-target "test"
1521 #:phases
1522 (modify-phases %standard-phases
1523 (replace 'configure
1524 (lambda* (#:key outputs #:allow-other-keys)
1525 (substitute* "Makefile.conf"
1526 (("prefix=/usr/local")
1527 (string-append "prefix=" (assoc-ref outputs "out")))
1528 (("LDFLAGS_LDSO=-Wl,-R\\.")
1529 "LDFLAGS_LDSO=-Wl,-R$(libdir)")
1530 (("#CFLAGS\\+=-DUSE_XZ")
1531 "CFLAGS+=-DUSE_XZ")
1532 (("#LDFLAGS\\+=-llzma")
1533 "LDFLAGS+=-llzma"))
1534 #t)))))
1535 (synopsis "Routing application for OpenStreetMap data")
1536 (description
1537 "Routino is an application for finding a route between two points
1538using the dataset of topographical information collected by
1539@url{https://www.OpenStreetMap.org}.")
1540 (home-page "https://www.routino.org/")
1541 (license license:agpl3+)))
bccbeece
GLV
1542
1543(define-public qmapshack
1544 (package
1545 (name "qmapshack")
1546 (version "1.14.0")
1547 (source
1548 (origin
1549 (method git-fetch)
1550 (uri (git-reference
b0e7b699 1551 (url "https://github.com/Maproom/qmapshack")
bccbeece
GLV
1552 (commit (string-append "V_" version))))
1553 (file-name (git-file-name name version))
1554 (sha256
1555 (base32
1556 "07c2hrq9sn456w7l3gdr599rmjfv2k6mh159zza7p1py8r7ywksa"))))
1557 (build-system qt-build-system)
1558 (native-inputs
1559 `(("pkg-config" ,pkg-config)
1560 ("qttools" ,qttools)))
1561 (inputs
1562 `(("gdal" ,gdal)
1563 ("libjpeg-turbo" ,libjpeg-turbo)
1564 ("proj" ,proj)
1565 ("qtbase" ,qtbase)
1566 ("qtdeclarative" ,qtdeclarative)
1567 ("qtlocation" ,qtlocation)
1568 ("qtwebchannel" ,qtwebchannel)
1569 ("qtwebengine" ,qtwebengine)
1570 ("quazip" ,quazip)
1571 ("routino" ,routino)
3cfe76be 1572 ("sqlite" ,sqlite) ; See wrap phase
bccbeece
GLV
1573 ("zlib" ,zlib)))
1574 (arguments
1575 `(#:tests? #f
1576 #:phases
1577 (modify-phases %standard-phases
1578 (add-after 'unpack 'fix-cmake-modules
1579 (lambda* (#:key inputs #:allow-other-keys)
1580 (substitute* "CMakeLists.txt"
1581 (("find_package\\(Qt5PrintSupport REQUIRED\\)" all)
1582 (string-append all "\nfind_package(Qt5Positioning REQUIRED)")))
1583 (substitute* "cmake/Modules/FindROUTINO.cmake"
1584 (("/usr/local")
1585 (assoc-ref inputs "routino")))
1586 ;; The following fixes are included as patches in the sources
1587 ;; of QMapShack, but they are not applied by default, for
1588 ;; some reason...
1589 (invoke "patch" "-p1" "-i" "FindPROJ4.patch")
1590 (invoke "patch" "-p1" "-i" "FindQuaZip5.patch")
1591 #t))
1592 (add-after 'install 'wrap
5fcc5b38 1593 ;; The program fails to find the QtWebEngineProcess program,
bccbeece
GLV
1594 ;; so we set QTWEBENGINEPROCESS_PATH to help it.
1595 (lambda* (#:key inputs outputs #:allow-other-keys)
1596 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
1597 (qtwebengineprocess (string-append
1598 (assoc-ref inputs "qtwebengine")
5fcc5b38 1599 "/lib/qt5/libexec/QtWebEngineProcess")))
bccbeece
GLV
1600 (for-each (lambda (program)
1601 (wrap-program program
bccbeece
GLV
1602 `("QTWEBENGINEPROCESS_PATH" =
1603 (,qtwebengineprocess))))
1604 (find-files bin ".*")))
1605 #t)))))
1606 (synopsis "GPS mapping application")
1607 (description
1608 "QMapShack can be used to plan your next outdoor trip or to visualize and
1609archive all the GPS recordings of your past trips. It is the successor of the
1610QLandkarte GT application.")
1611 (home-page "https://github.com/Maproom/qmapshack/wiki")
1612 (license license:gpl3+)))
133de9ab
GLV
1613
1614(define-public readosm
1615 (package
1616 (name "readosm")
86f8472b 1617 (version "1.1.0a")
133de9ab
GLV
1618 (source
1619 (origin
1620 (method url-fetch)
1621 (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
1622 "readosm-" version ".tar.gz"))
1623 (sha256
86f8472b 1624 (base32 "0zv6p352pqjcv70nvcaf2x3011z35jqa24dcdm27a4ns1wha3cjc"))))
133de9ab
GLV
1625 (build-system gnu-build-system)
1626 (inputs
1627 `(("expat" ,expat)
1628 ("zlib" ,zlib)))
1629 (synopsis "Data extractor for OpenStreetMap files")
1630 (description
1631 "ReadOSM is a library to extract valid data from within an OpenStreetMap
1632input file (in @code{.osm} or @code{.osm.pbf} format).")
1633 (home-page "https://www.gaia-gis.it/fossil/readosm/index")
1634 (license (list license:gpl2+
1635 license:lgpl2.1+
1636 license:mpl1.1))))
0ccc1385
GLV
1637
1638(define-public spatialite-tools
1639 (package
1640 (name "spatialite-tools")
1641 (version "4.3.0")
1642 (source
1643 (origin
1644 (method url-fetch)
1645 (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
1646 "spatialite-tools-" version ".tar.gz"))
1647 (sha256
1648 (base32 "12fggjhi8cgwvw8f6nk76f83b8lqkc07abxyj5ap6f2gq2dqafgp"))))
1649 (build-system gnu-build-system)
1650 (native-inputs
1651 `(("pkg-config" ,pkg-config)))
1652 (inputs
1653 `(("expat" ,expat)
1654 ("freexl" ,freexl)
1655 ("geos" ,geos)
1656 ("libspatialite" ,libspatialite)
1657 ("libxml2" ,libxml2)
1658 ("proj.4" ,proj.4)
1659 ("readosm" ,readosm)
1660 ("sqlite" ,sqlite)
1661 ("zlib" ,zlib)))
1662 (synopsis "Collection of command line tools for SpatiaLite")
1663 (description
1664 "@code{spatialite-tools} is a collection of Command Line Interface (CLI)
1665tools supporting SpatiaLite.")
1666 (home-page "https://www.gaia-gis.it/fossil/spatialite-tools/index")
1667 (license license:gpl3+)))
ec73c90e
GLV
1668
1669(define-public virtualpg
1670 (package
1671 (name "virtualpg")
1672 (version "1.0.2")
1673 (source
1674 (origin
1675 (method url-fetch)
1676 (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
1677 "virtualpg-" version ".tar.gz"))
1678 (sha256
1679 (base32 "0kjipcd08vvn188xmwbs7sw41xcs06x47n2hbqshpjcr51mxbarp"))))
1680 (build-system gnu-build-system)
1681 (inputs
1682 `(("postgresql" ,postgresql)
1683 ("sqlite" ,sqlite)))
1684 (synopsis "Allow SQLite/SpatiaLite to access PostgreSQL/PostGIS tables")
1685 (description
1686 "VirtualPG is a dynamic extension for the SQLite DBMS. It implements
1687the VirtualPostgres driver, allowing to directly exchange data between SQLite
1688and PostgreSQL; if SpatiaLite is available even PostGIS geometries can be
1689exchanged form one Spatial DBMS and the other.")
1690 (home-page "https://www.gaia-gis.it/fossil/virtualpg/index")
1691 (license (list license:gpl2+
1692 license:lgpl2.1+
1693 license:mpl1.1))))
7b1fb40d
GLV
1694
1695(define-public opencpn
1696 (package
1697 (name "opencpn")
1698 (version "5.0.0")
1699 (source
1700 (origin
1701 (method git-fetch)
1702 (uri (git-reference
b0e7b699 1703 (url "https://github.com/OpenCPN/OpenCPN")
7b1fb40d
GLV
1704 (commit (string-append "v" version))))
1705 (file-name (git-file-name name version))
1706 (sha256
1707 (base32 "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja"))))
1708 (build-system cmake-build-system)
1709 (native-inputs
1710 `(("gettext" ,gettext-minimal)
1711 ("pkg-config" ,pkg-config)))
1712 (inputs
1713 `(("bzip2" ,bzip2)
1714 ("cairo" ,cairo)
1715 ("curl" ,curl)
1716 ("glu" ,glu)
1717 ("gtk+" ,gtk+)
1718 ("libarchive" ,libarchive)
1719 ("libelf" ,libelf)
1720 ("libexif" ,libexif)
1721 ("libsndfile" ,libsndfile)
1722 ("lz4" ,lz4)
1723 ("mesa" ,mesa)
1724 ("pango" ,pango)
1725 ("portaudio" ,portaudio)
1726 ("sqlite" ,sqlite)
1727 ("tinyxml" ,tinyxml)
1728 ("wxsvg" ,wxsvg)
1729 ("wxwidgets" ,wxwidgets)
1730 ("xz" ,xz)
1731 ("zlib" ,zlib)))
1732 (arguments
1733 `(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
1734 "-DENABLE_SNDFILE=ON"
1735 "-DBUNDLE_TCDATA=ON"
1736 "-DBUNDLE_GSHHS=CRUDE")
1737 #:tests? #f ; No tests defined
1738 #:phases
1739 (modify-phases %standard-phases
1740 (add-after 'unpack 'fix-build
1741 (lambda _
1742 (substitute* "CMakeLists.txt"
1743 (("set\\(wxWidgets_CONFIG_OPTIONS.*--toolkit=gtk3" all)
1744 (string-append all " --libs all")))
1745 #t)))))
1746 (synopsis "Chart plotter and marine GPS navigation software")
1747 (description
1748 "OpenCPN is a chart plotter and marine navigation software designed to be
1749used at the helm station of your boat while underway. Chart a course and
1750track your position right from your laptop.")
1751 (home-page "https://opencpn.org/")
1752 (license (list license:asl2.0
1753 license:cc0
1754 license:bsd-2
1755 license:bsd-3
1756 license:expat
1757 license:gpl3+
1758 license:lgpl2.1+
1759 license:lgpl3+
1760 license:sgifreeb2.0
1761 license:zlib))))
9fce5914
GLV
1762
1763(define-public grass
1764 (let* ((version "7.8.2")
1765 (majorminor (string-join (list-head (string-split version #\.) 2) ""))
1766 (grassxx (string-append "grass" majorminor)))
1767 (package
1768 (name "grass")
1769 (version version)
1770 (source
1771 (origin
1772 (method url-fetch)
1773 (uri (string-append "https://grass.osgeo.org/" grassxx
1774 "/source/grass-" version ".tar.gz"))
1775 (sha256
1776 (base32 "1fwsm99kz0bxvjk7442qq1h45ikrmhba8bqclafb61gqg1q6ymrk"))))
1777 (build-system gnu-build-system)
1778 (inputs
1779 `(("bzip2", bzip2)
1780 ("cairo" ,cairo)
1781 ("fftw" ,fftw)
1782 ("freetype" ,freetype)
1783 ("gdal" ,gdal)
1784 ("geos" ,geos)
1785 ("glu" ,glu)
1786 ("lapack" ,lapack)
1787 ("libpng" ,libpng)
1788 ("libtiff" ,libtiff)
1789 ("mesa" ,mesa)
1790 ("mariadb-dev" ,mariadb "dev")
1791 ("mariadb-lib" ,mariadb "lib")
1792 ("netcdf" ,netcdf)
1793 ("openblas" ,openblas)
1794 ("perl" ,perl)
1795 ("postgresql" ,postgresql)
1796 ("proj.4" ,proj.4)
1797 ("python" ,python)
1798 ("python-dateutil" ,python-dateutil)
1799 ("python-numpy" ,python-numpy)
1800 ("python-wxpython" ,python-wxpython)
1801 ("readline" ,readline)
1802 ("sqlite" ,sqlite)
1803 ("wxwidgets" ,wxwidgets)
1804 ("zlib" ,zlib)
1805 ("zstd" ,zstd "lib")))
1806 (native-inputs
1807 `(("bash" ,bash-minimal)
1808 ("bison" ,bison)
1809 ("flex" ,flex)
1810 ("pkg-config" ,pkg-config)))
1811 (arguments
1812 `(#:tests? #f ; No tests
1813 #:modules ((guix build gnu-build-system)
1814 ((guix build python-build-system) #:prefix python:)
1815 (guix build utils))
1816 #:imported-modules (,@%gnu-build-system-modules
1817 (guix build python-build-system))
1818 #:phases
1819 (modify-phases %standard-phases
1820 (replace 'configure
1821 (lambda* (#:key inputs outputs #:allow-other-keys)
1822 (let ((shell (string-append (assoc-ref inputs "bash")
1823 "/bin/bash")))
1824 (setenv "SHELL" shell)
1825 (setenv "CONFIG_SHELL" shell)
1826 (setenv "LDFLAGS" (string-append "-Wl,-rpath -Wl,"
1827 (assoc-ref outputs "out")
1828 "/" ,grassxx "/lib")))
1829 (invoke "./configure"
1830 (string-append "--prefix="
1831 (assoc-ref outputs "out"))
1832 "--with-blas"
1833 "--with-bzlib"
1834 (string-append "--with-freetype-includes="
1835 (assoc-ref inputs "freetype")
1836 "/include/freetype2")
1837 (string-append "--with-freetype-libs="
1838 (assoc-ref inputs "freetype")
1839 "/lib")
1840 "--with-geos"
1841 "--with-lapack"
1842 "--with-mysql"
1843 (string-append "--with-mysql-includes="
1844 (assoc-ref inputs "mariadb-dev")
1845 "/include/mysql")
1846 (string-append "--with-mysql-libs="
1847 (assoc-ref inputs "mariadb-lib")
1848 "/lib")
1849 "--with-netcdf"
1850 "--with-postgres"
1851 (string-append "--with-proj-share="
1852 (assoc-ref inputs "proj.4")
1853 "/share/proj")
1854 "--with-pthread"
1855 "--with-readline"
1856 "--with-sqlite"
1857 "--with-wxwidgets")))
1858 (add-after 'install 'install-links
1859 (lambda* (#:key outputs #:allow-other-keys)
1860 ;; Put links for includes and libraries in the standard places.
1861 (let* ((out (assoc-ref outputs "out"))
1862 (dir (string-append out "/" ,grassxx)))
1863 (symlink (string-append dir "/include")
1864 (string-append out "/include"))
1865 (symlink (string-append dir "/lib")
1866 (string-append out "/lib")))
1867 #t))
1868 (add-after 'install-links 'wrap-python
1869 (assoc-ref python:%standard-phases 'wrap)))))
1870 (synopsis "GRASS Geographic Information System")
1871 (description
1872 "GRASS (Geographic Resources Analysis Support System), is a Geographic
1873Information System (GIS) software suite used for geospatial data management and
1874analysis, image processing, graphics and maps production, spatial modeling, and
1875visualization.")
1876 (home-page "https://grass.osgeo.org/")
1877 (license license:gpl2+))))
f7ac2fe1
GLV
1878
1879(define-public saga
1880 (package
1881 (name "saga")
1882 (version "7.6.2")
1883 (source
1884 (origin
1885 (method url-fetch)
1886 (uri (string-append "mirror://sourceforge/saga-gis/SAGA%20-%20"
1887 (version-major version) "/SAGA%20-%20" version
1888 "/saga-" version ".tar.gz"))
1889 (sha256
1890 (base32 "09j5magmayq2y620kqa490mfd1kpdp3lng2ifcgbrmssc079ybm0"))))
1891 (build-system gnu-build-system)
1892 (native-inputs
1893 `(("pkg-config" ,pkg-config)
1894 ("swig" ,swig)))
1895 (inputs
1896 `(("curl" ,curl)
1897 ("fftw" ,fftw)
1898 ("gdal" ,gdal)
1899 ("hdf5" ,hdf5)
1900 ("jasper" ,jasper)
1901 ("libharu" ,libharu)
1902 ("libtiff" ,libtiff)
1903 ("opencv" ,opencv)
1904 ("postgresql" ,postgresql)
1905 ("proj.4" ,proj.4)
1906 ("python" ,python)
1907 ("qhull" ,qhull)
1908 ("unixodbc" ,unixodbc)
1909 ("vigra" ,vigra)
1910 ("wxwidgets" ,wxwidgets)))
1911 (arguments
1912 '(#:configure-flags '("--enable-python")))
1913 (synopsis "System for Automated Geoscientific Analyses")
1914 (description
1915 "SAGA (System for Automated Geoscientific Analyses) is a Geographic
1916Information System (GIS) software. It has been designed for an easy and
1917effective implementation of spatial algorithms and it offers a comprehensive,
1918growing set of geoscientific methods.")
1919 (home-page "http://www.saga-gis.org")
1920 (license (list license:gpl2+ license:lgpl2.1+))))
151f3d41
GLV
1921
1922(define-public qgis
1923 (package
1924 (name "qgis")
1925 (version "3.12.1")
1926 (source
1927 (origin
1928 (method url-fetch)
1929 (uri (string-append "https://qgis.org/downloads/qgis-"
1930 version ".tar.bz2"))
1931 (sha256
1932 (base32 "1a41525y8ac44gzcfaffjx0lyrm49hgnr83jrq40r5mqd3vpmp57"))))
1933 (build-system cmake-build-system)
1934 (arguments
1935 `(#:modules ((guix build cmake-build-system)
1936 ((guix build python-build-system) #:prefix python:)
1937 (guix build qt-utils)
1938 (guix build utils))
1939 #:imported-modules (,@%cmake-build-system-modules
1940 (guix build python-build-system)
1941 (guix build qt-utils))
1942 #:phases
1943 (modify-phases %standard-phases
1944 ;; Configure correct path to PyQt5 SIP directory
1945 (add-after 'unpack 'configure-pyqt5-sip-path
1946 (lambda* (#:key inputs #:allow-other-keys)
1947 (substitute* "cmake/FindPyQt5.cmake"
1948 (("\"\\\\\\\\1\" PYQT5_SIP_DIR")
1949 (string-append "\"" (assoc-ref inputs "python-pyqt+qscintilla")
1950 "/share/sip\" PYQT5_SIP_DIR")))
1951 (substitute* (list "scripts/prepare-commit.sh"
1952 "scripts/runtests-local-travis-config.sh"
1953 "scripts/sip_include.sh"
1954 "scripts/sipdiff"
1955 "scripts/sipify_all.sh"
1956 "scripts/spell_check/check_spelling.sh"
1957 "scripts/spell_check/spell_test.sh"
1958 "scripts/verify-indentation.sh"
1959 "tests/code_layout/test_banned_keywords.sh"
1960 "tests/code_layout/test_licenses.sh"
1961 "tests/code_layout/test_shellcheck.sh"
1962 "tests/code_layout/test_sip_include.sh"
1963 "tests/code_layout/test_sipfiles_uptodate.sh"
1964 "tests/code_layout/test_sipify.sh")
1965 (("\\$\\(git rev-parse --show-toplevel\\)")
1966 (getcwd)))
1967 (substitute* "tests/code_layout/test_sip_include.sh"
1968 (("^REV=.*") "REV=currentrev\n"))
1969 #t))
1970 (replace 'check
1971 (lambda* (#:key inputs #:allow-other-keys)
1972 (setenv "HOME" "/tmp")
1973 (system (string-append (assoc-ref inputs "xorg-server")
1974 "/bin/Xvfb :1 &"))
1975 (setenv "DISPLAY" ":1")
1976 (setenv "TRAVIS" "true")
1977 (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
1978 (invoke "ctest"
1979 "-E" (string-join
1980 '(;; Disable tests that require network access
1981 "qgis_filedownloader"
1982 ;; TODO: Find why the following tests fail
1983 "ProcessingQgisAlgorithmsTestPt1"
0213f094 1984 "ProcessingQgisAlgorithmsTestPt2"
151f3d41
GLV
1985 "ProcessingQgisAlgorithmsTestPt3"
1986 "ProcessingQgisAlgorithmsTestPt4"
1987 "ProcessingGdalAlgorithmsRasterTest"
1988 "ProcessingGdalAlgorithmsVectorTest"
1989 "ProcessingGrass7AlgorithmsImageryTest"
1990 "ProcessingGrass7AlgorithmsRasterTest"
1991 "ProcessingGrass7AlgorithmsVectorTest"
1992 "ProcessingOtbAlgorithmsTest"
1993 "qgis_authmanagertest"
1994 "qgis_compositionconvertertest"
1995 "qgis_coordinatereferencesystemtest"
1996 "qgis_geometrytest"
1997 "qgis_layouthtmltest"
1998 "qgis_layoutmaptest"
0213f094 1999 "qgis_layoutmapgridtest"
151f3d41
GLV
2000 "qgis_painteffecttest"
2001 "qgis_pallabelingtest"
2002 "qgis_svgmarkertest"
2003 "qgis_taskmanagertest"
2004 "qgis_ziplayertest"
2005 "qgis_processingtest"
2006 "qgis_wcsprovidertest"
2007 "qgis_arcgisrestutilstest"
2008 "qgis_grassprovidertest7"
2009 "qgis_gpsinformationwidget"
2010 "PyCoreAdittions"
2011 "PyQgsPythonProvider"
2012 "PyQgsAnnotation"
2013 "PyQgsAuthenticationSystem"
2014 "PyQgsProject"
2015 "PyQgsFileUtils"
2016 "PyQgsGeometryTest"
2017 "PyQgsImageCache"
0213f094
GLV
2018 "PyQgsLayerMetadata"
2019 "PyQgsLayout"
2020 "PyQgsLayoutHtml"
2021 "PyQgsLayoutMapGrid"
2022 "PyQgsMetadataBase"
151f3d41
GLV
2023 "PyQgsLayoutExporter"
2024 "PyQgsLayoutLegend"
2025 "PyQgsMapLayer"
2026 "PyQgsOGRProviderGpkg"
2027 "PyQgsPalLabelingLayout"
2028 "PyQgsImportIntoPostGIS"
2029 "PyQgsProviderConnectionPostgres"
2030 "PyQgsProviderConnectionGpkg"
2031 "PyQgsShapefileProvider"
2032 "PyQgsSvgCache"
2033 "PyQgsTextRenderer"
2034 "PyQgsOGRProvider"
2035 "PyQgsSpatialiteProvider"
2036 "PyQgsVectorFileWriter"
2037 "PyQgsVectorLayer"
2038 "PyQgsVectorLayerUtils"
2039 "PyQgsVirtualLayerProvider"
2040 "PyQgsWFSProvider"
2041 "PyQgsOapifProvider"
2042 "PyQgsLayerDependencies"
2043 "PyQgsDBManagerGpkg"
2044 "PyQgsDBManagerSpatialite"
2045 "PyQgsSettings"
2046 "PyQgsAuxiliaryStorage"
2047 "PyQgsSelectiveMasking"
2048 "PyQgsAppStartup"
2049 "qgis_geometrycheckstest"
2050 "qgis_shellcheck"
2051 "qgis_sipify"
2052 "qgis_sip_include"
2053 "qgis_sip_uptodate")
2054 "|"))))
2055 (add-after 'install 'wrap-python
2056 (assoc-ref python:%standard-phases 'wrap))
2057 (add-after 'wrap-python 'wrap-qt
2058 (lambda* (#:key outputs #:allow-other-keys)
2059 (wrap-qt-program (assoc-ref outputs "out") "qgis")
5ef1b175
GLV
2060 #t))
2061 (add-after 'wrap-qt 'wrap-gis
2062 (lambda* (#:key inputs outputs #:allow-other-keys)
2063 (let* ((out (assoc-ref outputs "out"))
2064 (saga (string-append (assoc-ref inputs "saga") "/bin"))
2065 (grass-version ,(package-version grass))
2066 (grass-majorminor (string-join
2067 (list-head
2068 (string-split grass-version #\.) 2)
2069 ""))
2070 (grass (string-append (assoc-ref inputs "grass")
2071 "/grass" grass-majorminor)))
2072 (wrap-program (string-append out "/bin/qgis")
2073 `("PATH" ":" prefix (,saga))
2074 `("QGIS_PREFIX_PATH" = (,out))
2075 `("GISBASE" = (,grass))))
151f3d41
GLV
2076 #t)))))
2077 (inputs
2078 `(("exiv2" ,exiv2)
2079 ("expat" ,expat)
2080 ("gdal" ,gdal)
2081 ("geos" ,geos)
2082 ("gpsbabel" ,gpsbabel)
2083 ("grass" ,grass)
2084 ("gsl" ,gsl)
2085 ("hdf5" ,hdf5)
2086 ("libspatialindex" ,libspatialindex)
2087 ("libspatialite" ,libspatialite)
2088 ("libxml2" ,libxml2)
2089 ("libzip" ,libzip)
2090 ("netcdf" ,netcdf)
2091 ("postgresql" ,postgresql)
2092 ("proj" ,proj)
2093 ("python" ,python)
2094 ("python-chardet" ,python-chardet)
2095 ("python-dateutil" ,python-dateutil)
2096 ("python-gdal" ,python-gdal)
2097 ("python-jinja2" ,python-jinja2)
2098 ("python-numpy" ,python-numpy)
2099 ("python-owslib" ,python-owslib)
2100 ("python-psycopg2" ,python-psycopg2)
2101 ("python-pygments" ,python-pygments)
2102 ("python-pyqt+qscintilla" ,python-pyqt+qscintilla)
2103 ("python-pytz" ,python-pytz)
2104 ("python-pyyaml" ,python-pyyaml)
2105 ("python-requests" ,python-requests)
2106 ("python-sip" ,python-sip)
2107 ("python-six" ,python-six)
2108 ("python-urllib3" ,python-urllib3)
2109 ("qca" ,qca)
2110 ("qscintilla" ,qscintilla)
2111 ("qtbase" ,qtbase)
2112 ("qtdeclarative" ,qtdeclarative)
2113 ("qtkeychain" ,qtkeychain)
2114 ("qtlocation" ,qtlocation)
2115 ("qtserialport" ,qtserialport)
2116 ("qtsvg" ,qtsvg)
2117 ("qtwebkit" ,qtwebkit)
2118 ("qwt" ,qwt)
2119 ("saga" ,saga)
83e6b064 2120 ("sqlite" ,sqlite)))
151f3d41
GLV
2121 (native-inputs
2122 `(("bison" ,bison)
2123 ("flex" ,flex)
2124 ("perl" ,perl)
2125 ("perl-yaml-tiny" ,perl-yaml-tiny)
2126 ("pkg-config" ,pkg-config)
2127 ("python-mock" ,python-mock)
2128 ("python-nose2" ,python-nose2)
2129 ("qttools" ,qttools)
2130 ("shellcheck" ,shellcheck)
2131 ("xorg-server" ,xorg-server-for-tests)))
2132 (home-page "https://qgis.org")
2133 (synopsis "Geographical information system")
2134 (description "QGIS is an easy to use Geographical Information
2135System (GIS). It is a GIS data viewer and editor. QGIS supports a number of
2136raster and vector data formats, with new support easily added using the plugin
2137architecture.")
2138 (license
2139 (list
2140 license:asl1.1
2141 license:asl2.0
2142 license:bsd-2
2143 license:bsd-3
2144 license:boost1.0
2145 license:cc-by3.0
2146 license:cc-by4.0
2147 license:cc-by-sa3.0
2148 license:cc-by-sa4.0
2149 (license:fsdg-compatible "https://www.deviantart.com/elvensword")
2150 (license:fsf-free "file://debian/copyright" "Go Squared")
2151 license:expat
2152 license:fdl1.2+
2153 (license:fsf-free
2154 "https://www.deviantart.com/webgoddess/art/Reddish-Inspired-Gradients-42208824")
2155 (license:fsf-free
2156 "file://debian/copyright"
2157 "QT-Commercial or LGPL-2.1 with Digia Qt LGPL Exception 1.1 or GPL-3")
2158 license:gpl2
2159 license:gpl2+
2160 license:gpl3
2161 license:gpl3+
2162 license:isc
2163 license:lgpl2.0+
2164 license:lgpl2.1
2165 license:lgpl2.1+
2166 license:lgpl3
2167 (license:non-copyleft "file://debian/copyright" "BSD-like-gist")
2168 (license:non-copyleft "file://debian/copyright" "Jim Mossman Attribution")
2169 (license:non-copyleft
2170 "https://www.ncl.ucar.edu/Download/NCL_source_license.shtml"
2171 "NCL Source Code License")
2172 license:ogl-psi1.0
2173 license:opl1.0+
2174 license:public-domain
2175 license:qwt1.0))))
ff1233d8
EF
2176
2177(define-public python-geographiclib
2178 (package
2179 (name "python-geographiclib")
2180 (version "1.50")
2181 (source
2182 (origin
2183 (method url-fetch)
2184 (uri (pypi-uri "geographiclib" version))
2185 (sha256
2186 (base32
2187 "0cn6ap5fkh3mkfa57l5b44z3gvz7j6lpmc9rl4g2jny2gvp4dg8j"))))
2188 (build-system python-build-system)
2189 (home-page "https://geographiclib.sourceforge.io/1.50/python/")
2190 (synopsis "Python geodesic routines from GeographicLib")
2191 (description
2192 "This is a python implementation of the geodesic routines in GeographicLib.")
2193 (license license:expat)))
481b0923
EF
2194
2195(define-public python-geopy
2196 (package
2197 (name "python-geopy")
2198 (version "2.0.0")
2199 (source
2200 (origin
2201 (method url-fetch)
2202 (uri (pypi-uri "geopy" version))
2203 (sha256
2204 (base32
2205 "0fx0cv0kgbvynpmjgsvq2fpsyngd5idiscdn8pd5201f1ngii3mq"))))
2206 (build-system python-build-system)
2207 (propagated-inputs
2208 `(("python-geographiclib" ,python-geographiclib)))
2209 (native-inputs
2210 `(("python-async-generator" ,python-async-generator)
2211 ("python-coverage" ,python-coverage)
2212 ("python-flake8" ,python-flake8)
2213 ("python-isort" ,python-isort)
2214 ("python-pytest" ,python-pytest)
2215 ("python-pytest-aiohttp" ,python-pytest-aiohttp)
2216 ("python-readme-renderer" ,python-readme-renderer)
2217 ("python-pytz" ,python-pytz)))
2218 (home-page "https://github.com/geopy/geopy")
2219 (synopsis "Geocoding library for Python")
2220 (description "@code{geopy} is a Python client for several popular geocoding
2221web services. @code{geopy} makes it easy for Python developers to locate the
2222coordinates of addresses, cities, countries, and landmarks across the globe
2223using third-party geocoders and other data sources.")
2224 (license license:expat)))