gnu: Add navit.
* gnu/packages/geo.scm (navit): New variable. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
parent
7ae4cfa5aa
commit
b64a80258b
1 changed files with 106 additions and 0 deletions
|
@ -20,6 +20,7 @@
|
||||||
;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org>
|
;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org>
|
||||||
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
|
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
|
||||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
|
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -114,6 +115,8 @@
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
|
#:use-module (gnu packages sdl)
|
||||||
|
#:use-module (gnu packages speech)
|
||||||
#:use-module (gnu packages swig)
|
#:use-module (gnu packages swig)
|
||||||
#:use-module (gnu packages sqlite)
|
#:use-module (gnu packages sqlite)
|
||||||
#:use-module (gnu packages textutils)
|
#:use-module (gnu packages textutils)
|
||||||
|
@ -2770,3 +2773,106 @@ using third-party geocoders and other data sources.")
|
||||||
reconstructions of geological and paleogeographic features through geological
|
reconstructions of geological and paleogeographic features through geological
|
||||||
time. Interactively visualize vector, raster and volume data.")
|
time. Interactively visualize vector, raster and volume data.")
|
||||||
(license license:gpl2+)))
|
(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)))
|
||||||
|
|
Reference in a new issue