summaryrefslogtreecommitdiff
path: root/gnu/packages/geo.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/geo.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/geo.scm')
-rw-r--r--gnu/packages/geo.scm423
1 files changed, 312 insertions, 111 deletions
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index c49cda3b0b..78d1131788 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -7,8 +7,8 @@
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2019, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
@@ -20,6 +20,7 @@
;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org>
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -64,6 +65,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
+ #:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
@@ -78,6 +80,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -114,6 +117,8 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sdl)
+ #:use-module (gnu packages speech)
#:use-module (gnu packages swig)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages textutils)
@@ -125,25 +130,94 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
+(define-public libaec
+ (package
+ (name "libaec")
+ (version "1.0.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.dkrz.de/k202009/libaec")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14myrmmiz9z6wgxqywf3a63cq514vrzsd6z4zvpwigvawlk30iip"))))
+ (build-system cmake-build-system)
+ (home-page "https://gitlab.dkrz.de/k202009/libaec")
+ (synopsis "Adaptive Entropy Coding library")
+ (description "Libaec provides fast lossless compression of 1 up to 32 bit
+wide signed or unsigned integers (samples). The library achieves best results
+for low entropy data as often encountered in space imaging instrument data or
+numerical model output from weather or climate simulations. While floating
+point representations are not directly supported, they can also be efficiently
+coded by grouping exponents and mantissa.")
+ (license license:bsd-2)))
+
+(define-public eccodes
+ (package
+ (name "eccodes")
+ (version "2.27.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://confluence.ecmwf.int/download/attachments/45757960/"
+ "eccodes-" version "-Source.tar.gz"))
+ (sha256
+ (base32 "16cw4v2d0kjq6gq04paqny0sh5jymn70w449mig7m5h3spzv7rgd"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DENABLE_MEMFS=ON" "-DENABLE_PNG=ON")
+ #:validate-runpath? #f))
+ (inputs
+ (list jasper libaec libjpeg-turbo libpng netcdf openjpeg))
+ (native-inputs
+ (list gfortran perl pkg-config python))
+ (home-page "https://confluence.ecmwf.int/display/ECC")
+ (synopsis "Library for handling the GRIB, BUFR and GTS file formats")
+ (description "ecCodes is a package developed by @acronym{ECMWF, European
+Centre for Medium-Range Weather Forecasts} which provides an application
+programming interface and a set of tools for decoding and encoding messages in
+the @acronym{WMO, World Meteorological Organization} FM-92 GRIB, WMO FM-94
+BUFR and WMO GTS abbreviated header formats.")
+ (license license:asl2.0)))
+
(define-public cdo
(package
(name "cdo")
- (version "2.0.5")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://code.mpimet.mpg.de/attachments/download/26823/cdo-"
- version ".tar.gz"))
- (sha256
- (base32
- "1khdbd5cmnn7qm6hcqg4md5wbq14fs6brrns8b3g18diqgqvpvpd"))))
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://code.mpimet.mpg.de/attachments/download/27481/cdo-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1k18llghpf3jnjn0xcnhmbg7arb1fiy854qqn9m5c1abjin38wdq"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
- #~(list (string-append "--with-netcdf="
- #$(this-package-input "netcdf")))))
+ #~(list (string-append "--with-curl="
+ #$(this-package-input "curl"))
+ (string-append "--with-eccodes="
+ #$(this-package-input "eccodes"))
+ (string-append "--with-fftw3="
+ #$(this-package-input "fftw"))
+ (string-append "--with-hdf5="
+ #$(this-package-input "hdf5"))
+ (string-append "--with-netcdf="
+ #$(this-package-input "netcdf"))
+ (string-append "--with-proj="
+ #$(this-package-input "proj"))
+ (string-append "--with-udunits2="
+ #$(this-package-input "udunits"))
+ (string-append "--with-libxml2="
+ #$(this-package-input "libxml2")))
+ ;; Some tests can fail on machines with many threads.
+ #:parallel-tests? #f))
(inputs
- (list netcdf))
+ (list curl eccodes fftw hdf5 libxml2 netcdf proj udunits))
(native-inputs
(list pkg-config))
(home-page "https://code.mpimet.mpg.de/projects/cdo")
@@ -219,7 +293,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
(define-public geos
(package
(name "geos")
- (version "3.11.0")
+ (version "3.11.1")
(source (origin
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geos/geos-"
@@ -227,7 +301,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
".tar.bz2"))
(sha256
(base32
- "12l59pxawyizmc4wn20dvjn7aifqwkim4ysmc78h91mayjmqravr"))))
+ "1qhbirv1rbznv99ha0pa0zybvcsn0dsz2xfc65vr8bgrm77v63kd"))))
(build-system cmake-build-system)
(arguments `(#:phases
(modify-phases %standard-phases
@@ -255,7 +329,7 @@ topology functions.")
(define-public gnome-maps
(package
(name "gnome-maps")
- (version "43.rc") ;for libsoup 3 support
+ (version "43.0") ;for libsoup 3 support
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -263,27 +337,33 @@ topology functions.")
name "-" version ".tar.xz"))
(sha256
(base32
- "16a3j896fwxgnvrmx27jnrvhxzh3v22paaq87ad57yp8wkq946il"))))
+ "1r1l6ajs6zz316m8zac5r0l3qgdv616xh376bfn2fflcnz7wys08"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
+ #:meson meson-0.63
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'skip-gtk-update-icon-cache
- ;; Don't create 'icon-theme.cache'.
- (lambda _
- (substitute* "meson_post_install.py"
- (("gtk-update-icon-cache") "true"))))
- (add-after 'unpack 'patch-dbus-service
+ (add-after 'unpack 'skip-cache-and-database-updates
(lambda _
- (substitute* "data/org.gnome.Maps.service.in"
- (("@pkgdatadir@/org.gnome.Maps")
- (string-append #$output "/bin/gnome-maps")))))
+ (substitute* "meson.build"
+ (("([a-z_]*): true" all option)
+ (cond ; cond rather than match saves an import
+ ((member option '("gtk_update_icon_cache"
+ "update_desktop_database"))
+ (string-append option ": false"))
+ (else all))))))
(add-after 'install 'wrap
(lambda _
- (wrap-program (string-append #$output "/bin/gnome-maps")
- `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))))))))
+ (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (substitute* (string-append #$output "/share/gnome-maps/"
+ "org.gnome.Maps")
+ (("imports\\.package\\.init" all)
+ (string-append "'" gi-typelib-path "'.split(':').forEach("
+ "path => imports.gi.GIRepository.Repository."
+ "prepend_search_path(path));\n"
+ all)))))))))
(native-inputs
(list gettext-minimal
`(,glib "bin")
@@ -307,7 +387,7 @@ topology functions.")
libhandy
librsvg
libsecret
- libshumate
+ libshumate
libsoup
libxml2
rest-next
@@ -328,6 +408,7 @@ and driving.")
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-"
version ".tar.gz"))
+ (patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"))
(sha256
(base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5"))
(modules '((guix build utils)))
@@ -518,7 +599,7 @@ fully fledged Spatial SQL capabilities.")
(define-public proj
(package
(name "proj")
- (version "9.1.0")
+ (version "9.1.1")
(source
(origin
(method url-fetch)
@@ -526,7 +607,7 @@ fully fledged Spatial SQL capabilities.")
version ".tar.gz"))
(sha256
(base32
- "0593vd9sac0c98j1f4rammd90d4xnhygbr6d49i8il6ajjdj7cl1"))))
+ "0fbd1vj4cj19kwh03vdn0a4hr0xaacvi876yyyw5xfsj1q0x8g00"))))
(build-system cmake-build-system)
(native-inputs (list googletest pkg-config))
(propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc
@@ -620,14 +701,14 @@ projections.")
(define-public python-pyproj
(package
(name "python-pyproj")
- (version "3.3.1")
+ (version "3.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyproj" version))
(sha256
(base32
- "1gjg63irs44djyqbp9gg7s02d0y5i9cd1a83phyzp5fcj56y3n5k"))))
+ "0czbfl5dd7jckbwvinfwiwdb99sxj796gfn3a9zqbsdc4xcl8257"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -964,7 +1045,7 @@ development.")
(define-public gdal
(package
(name "gdal")
- (version "3.5.1")
+ (version "3.6.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -972,7 +1053,7 @@ development.")
version ".tar.gz"))
(sha256
(base32
- "1l93q7xf6qx9ck5axfkf3ygmvclxkvrjd8x00ckn7j0d0750ci3w"))
+ "1qckwnygszxkkq40bf87s3m1sab6jj9jyakdvskh0qf7dq8zjarf"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -1002,19 +1083,27 @@ development.")
json-c
libgeotiff
libjpeg-turbo
+ libjxl
libpng
libtiff
libwebp
+ lz4
netcdf
openssl
+ openjpeg
pcre2
postgresql ; libpq
proj
qhull
sqlite
- zlib))
+ swig
+ zlib
+ zstd))
(native-inputs
- (list pkg-config))
+ (list pkg-config
+ python))
+ (propagated-inputs
+ (list python-numpy))
(home-page "https://gdal.org/")
(synopsis "Raster and vector geospatial data format library")
(description "GDAL is a translator library for raster and vector geospatial
@@ -1043,25 +1132,6 @@ utilities for data translation and processing.")
;; frmts/mrf/libLERC
license:asl2.0))))
-(define-public python-gdal
- (package (inherit gdal)
- (name "python-gdal")
- (build-system python-build-system)
- (arguments
- '(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'chdir
- (lambda _
- (chdir "swig/python")
- #t)))))
- (native-inputs '())
- (propagated-inputs
- (list python-numpy))
- (inputs
- (list gdal))
- (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
-
(define-public python-pyshp
(package
(name "python-pyshp")
@@ -1096,13 +1166,13 @@ utilities for data translation and processing.")
(package
(name "python-cartopy")
;; This is a post-release fix that adds build_ext to setup.py.
- (version "0.20.3")
+ (version "0.21.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cartopy" version))
(sha256
- (base32 "01lhnkhw22jp6hnrs5qvgkq4fqcni2sx7ydiyv8w8xxx5wpglq0d"))))
+ (base32 "0hnfs75dcnz12ximah5xn9566r8zz189lxikmj4lrs9jl4l3l7ff"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1125,13 +1195,12 @@ utilities for data translation and processing.")
python-scipy
python-shapely))
(inputs
- (list geos
- ;; cartopy's setup.py looks for the proj executable.
- ;; Not sure if it actually makes use of it since it
- ;; probably uses proj only through pyproj.
- proj))
+ (list geos))
(native-inputs
- (list python-cython python-flufl-lock python-pytest))
+ (list python-cython
+ python-flufl-lock
+ python-pytest
+ python-pytest-mpl))
(home-page "https://scitools.org.uk/cartopy/docs/latest/")
(synopsis "Cartographic library for visualisation")
(description
@@ -1211,29 +1280,22 @@ extension.")
(define-public tegola
(package
(name "tegola")
- (version "0.7.0")
+ (version "0.16.0")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/go-spatial/tegola/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/go-spatial/tegola")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "09vnzxfn0r70kmd776kcdfqxhzdj11syxa0b27z4ci1k367v7viw"))))
+ "1mjfn0izf1lj402845mx0cv9fald8s5443q35y16d9crqf3i6mav"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/go-spatial/tegola/cmd/tegola"
#:unpack-path "github.com/go-spatial/tegola"
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'set-version
- (lambda _
- (with-directory-excursion "src/github.com/go-spatial/tegola"
- (substitute* '("cmd/tegola/cmd/root.go"
- "cmd/tegola_lambda/main.go")
- (("version not set") ,version)))
- #t)))))
+ #:build-flags '(,(string-append "-ldflags=-X github.com/go-spatial/tegola/internal/build.Version=" version))
+ #:install-source? #f))
(home-page "https://tegola.io")
(synopsis "Vector tile server for maps")
(description "Tegola is a free vector tile server written in Go. Tegola
@@ -1253,13 +1315,14 @@ delivered to any client.")
(version "0.11.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/omniscale/imposm3/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/omniscale/imposm3")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1w7b221z5k9254zn01imycxkyw62xigqizhwvrgxqmq1m9r5410l"))))
+ "1ifniw57l3s0sl7nb3zwxxm86i46451yrhfqnnkxr46cnpbzmwxr"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/omniscale/imposm3/cmd/imposm"
@@ -1377,7 +1440,7 @@ based on the Osmium library.")
(list boost
bzip2
expat
- fmt
+ fmt-8
libosmium
lua
postgresql
@@ -1397,16 +1460,16 @@ map, geocoding with Nominatim, or general analysis.")
(define-public tippecanoe
(package
(name "tippecanoe")
- (version "1.36.0")
+ (version "2.17.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/mapbox/tippecanoe")
+ (url "https://github.com/felt/tippecanoe")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m"))))
+ (base32 "1q2snvsbs10l9pjydid3zxkidlha5hav8gvb0p731m2pwg3xw0qr"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -1657,7 +1720,7 @@ an independent project by the JOSM team.")
(define-public java-opening-hours-parser
(package
(name "java-opening-hours-parser")
- (version "0.23.0")
+ (version "0.27.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1666,11 +1729,12 @@ an independent project by the JOSM team.")
(file-name (git-file-name name version))
(sha256
(base32
- "0yhbd2ix6h506aljh0jkrnp28m4xcqdcdpnqm30fn08kawdgxgsh"))))
+ "1sw5ccxqw4ly5hzxnnljjqx4876gyvagi10sg8r9w25n211lq0x4"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-opening-hours-parser.jar"
#:source-dir "src/main/java"
+ #:test-exclude (list "**/IndividualTest.java")
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-resources
@@ -1685,8 +1749,7 @@ an independent project by the JOSM team.")
"-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
"-GRAMMAR_ENCODING=UTF-8"
(string-append "-OUTPUT_DIRECTORY=" dir)
- file))
- #t)))))
+ file)))))))
(inputs
(list java-jetbrains-annotations))
(native-inputs
@@ -1700,7 +1763,7 @@ to the OSM opening hours specification.")
(define-public josm
(package
(name "josm")
- (version "18360")
+ (version "18583")
(source (origin
(method svn-fetch)
(uri (svn-reference
@@ -1709,7 +1772,7 @@ to the OSM opening hours specification.")
(recursive? #f)))
(sha256
(base32
- "0j7fhzh6hs2b5r1a3d1xpy6f5r6q1kh79bck28raang8ldd754c6"))
+ "01ghh9kl984lr8f70jsks31p6a4cqpxqjpmbc4x6mzbmvy87dfvy"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
@@ -1749,15 +1812,6 @@ to the OSM opening hours specification.")
"<date>1970-01-01 00:00:00 +0000</date>"
"</commit></entry></info>"))))
#t))
- (add-before 'build 'fix-jcs
- (lambda _
- ;; This version of JOSM uses an unreleased version of commons-jcs,
- ;; which has renamed its classes to another namespace. Rename them
- ;; back so they can be used with our version of jcs.
- (substitute* (find-files "." ".*.java$")
- (("jcs3") "jcs")
- (("ICache.NAME_COMPONENT_DELIMITER") "\":\""))
- #t))
(add-before 'build 'fix-classpath
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CLASSPATH"
@@ -2121,7 +2175,7 @@ exchanged form one Spatial DBMS and the other.")
(define-public opencpn
(package
(name "opencpn")
- (version "5.6.0")
+ (version "5.6.2")
(source
(origin
(method git-fetch)
@@ -2130,11 +2184,10 @@ exchanged form one Spatial DBMS and the other.")
(commit (string-append "Release_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0g5x45wv3djfjmigk6kgs0i63yp8rs1fbmm4pb15wb3z6dml624y"))))
+ (base32 "16hb0ycp0kbx2h8fx08rqkgrlz48kaym0d6wqvpjrcfa2r4myss8"))))
(build-system cmake-build-system)
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ (list gettext-minimal pkg-config))
(inputs
(list alsa-utils
bzip2
@@ -2157,7 +2210,7 @@ exchanged form one Spatial DBMS and the other.")
sqlite
tinyxml
wxsvg
- wxwidgets
+ wxwidgets-3.0
xz
zlib))
(arguments
@@ -2479,6 +2532,7 @@ growing set of geoscientific methods.")
"ProcessingQgisAlgorithmsTestPt2"
"ProcessingQgisAlgorithmsTestPt3"
"ProcessingQgisAlgorithmsTestPt4"
+ "ProcessingGdalAlgorithmsRasterTest"
"ProcessingGdalAlgorithmsVectorTest"
"ProcessingGrass7AlgorithmsImageryTest"
"ProcessingGrass7AlgorithmsRasterTestPt1"
@@ -2596,7 +2650,6 @@ growing set of geoscientific methods.")
python-chardet
python-dateutil
python-future
- python-gdal
python-jinja2
python-numpy
python-owslib
@@ -2678,6 +2731,51 @@ architecture.")
license:public-domain
license:qwt1.0))))
+(define-public splat
+ (package
+ (name "splat")
+ (version "1.5.0b3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hoche/splat")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10djwjwb1pvznr0fjwnxdm5d961f3yngispb4zj9hyzdgq1xh217"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete pre-compiled libraries.
+ (delete-file-recursively "vstudio")))))
+ (build-system gnu-build-system)
+ (inputs
+ (list bzip2 libjpeg-turbo libpng zlib))
+ (arguments
+ (list #:tests? #f ; No test suite.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-installation-scripts
+ (lambda _
+ (substitute* (list "install" "utils/install")
+ (("/usr/local")
+ #$output)
+ (("whoami=`whoami`")
+ "whoami=root"))))
+ (delete 'configure)
+ (add-before 'install 'create-bin-directory
+ (lambda _
+ (mkdir-p (string-append #$output "/bin")))))))
+ (synopsis "Signal propagation and coverage analysis tool")
+ (description
+ "The SPLAT (Signal Propagation, Loss, And Terrain) program can use the
+Longley-Rice path loss and coverage prediction using the Irregular Terrain
+Model to predict the behaviour and reliability of radio links, and to predict
+path loss.")
+ (home-page "https://www.qsl.net/kd2bd/splat.html")
+ (license license:gpl2+)))
+
(define-public python-geographiclib
(package
(name "python-geographiclib")
@@ -2771,3 +2869,106 @@ using third-party geocoders and other data sources.")
reconstructions of geological and paleogeographic features through geological
time. Interactively visualize vector, raster and volume data.")
(license license:gpl2+)))
+
+(define-public navit
+ (package
+ (name "navit")
+ (version "0.5.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/navit-gps/navit")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1jhlif0sc5m8wqb5j985g1xba2ki7b7mm14pkvzdghjd0q0gf15s"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; There are no tests
+ #:tests? #f
+ ;; With -DSAMPLE_MAP=TRUE (the default), it tries to download a
+ ;; map during the build process.
+ #:configure-flags #~(list "-DSAMPLE_MAP=FALSE")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after
+ 'unpack 'patch-navit-config
+ (lambda _
+ ;; For now this package only supports SDL, so if we keep
+ ;; the configuration as-is, Navit doesn't start.
+ (substitute*
+ "navit/navit_shipped.xml"
+ (("<graphics type=\"gtk_drawing_area\"/>")
+ "<graphics type=\"sdl\"/>"))
+ ;; Users are expected to be able to add XML files inside
+ ;; $NAVIT_SHAREDIR, however that directory is in the store.
+ (substitute*
+ "navit/navit_shipped.xml"
+ (("<xi:include href=\"\\$NAVIT_SHAREDIR/maps/\\*\\.xml\"/>")
+ "<xi:include href=\"$NAVIT_USER_DATADIR/maps/*.xml\"/>"))
+ ;; Navit also works without GPS but in that case there is
+ ;; no automatic zooming, so we need zoom buttons to be able
+ ;; to manually zoom in or out.
+ (substitute*
+ "navit/navit_shipped.xml"
+ (((string-append
+ "<osd enabled=\"no\" type=\"button\" x=\"-96\" y=\"-96\" "
+ "command=\"zoom_in()"))
+ (string-append
+ "<osd enabled=\"yes\" type=\"button\" x=\"-96\" y=\"-96\" "
+ "command=\"zoom_in()"))
+ (((string-append
+ "<osd enabled=\"no\" type=\"button\" x=\"0\" y=\"-96\" "
+ "command=\"zoom_out()"))
+ (string-append
+ "<osd enabled=\"yes\" type=\"button\" x=\"0\" y=\"-96\" "
+ "command=\"zoom_out()\" src=\"zoom_out.png\"/>")))))
+ (add-before
+ 'build 'set-cache
+ ;; During the build, svg icons are converted in different
+ ;; formats, and this needs XDG_CACHE_HOME to work.
+ (lambda _
+ (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache"))))))
+ (inputs (list dbus-glib
+ espeak
+ freeglut
+ freeimage
+ freetype
+ glib
+ gettext-minimal
+ gpsd
+ gdk-pixbuf
+ imlib2
+ python
+ sdl
+ sdl-image))
+ (native-inputs (list fontconfig
+ (librsvg-for-system)
+ pkg-config))
+ (home-page "https://www.navit-project.org")
+ (synopsis "Car navigation system with routing engine that uses vector maps data")
+ (description "Navit is a car navigation system with a routing engine.
+
+It is meant to work with touchscreen devices, but it also works
+without a touchscreen. It also supports text to speech.
+
+It can be configured extensively through its own configuration file
+format. For instance we can configure the graphical interface, and
+which map data is to be displayed at which zoom level.
+
+It supports different routing profiles: bike, car, car_avoid_toll,
+car_pedantic, car_shortest, horse, pedestrian, truck.
+
+It can use gpsd or NMEA GPS directly to get position data. It also
+works without GPS: in this case users can also enter position data
+directly.
+
+It can also be used to log GPS data to files using the GPX or NMEA
+formats, or to replay NMEA data.
+
+For maps, it can uses its own \"binfile\" map format, or Garmin map
+file format, and data from OpenStreetMap, Garmin maps, Marco Polo
+Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.")
+ (license license:gpl2)))