diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2023-01-30 11:33:18 +0200 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-01-30 12:39:40 +0200 |
commit | 4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch) | |
tree | 9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/geo.scm | |
parent | edb8c09addd186d9538d43b12af74d6c7aeea082 (diff) | |
parent | 595b53b74e3ef57a1c0c96108ba86d38a170a241 (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.scm | 423 |
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))) |