gnu: Add bst.
[jackhill/guix/guix.git] / gnu / packages / gps.scm
CommitLineData
83aabfbc 1;;; GNU Guix --- Functional package management for GNU
ce0614dd 2;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
0f763db4 3;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
6d2ff645 4;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
53655964 5;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
83aabfbc
LC
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages gps)
23 #:use-module (guix packages)
24 #:use-module (guix download)
3b239720 25 #:use-module (guix git-download)
83aabfbc
LC
26 #:use-module (guix build-system gnu)
27 #:use-module ((guix licenses) #:prefix license:)
924b96db 28 #:use-module (gnu packages)
ce0614dd 29 #:use-module (gnu packages base)
3b239720 30 #:use-module (gnu packages pkg-config)
83aabfbc 31 #:use-module (gnu packages compression)
3b239720 32 #:use-module (gnu packages docbook)
023f0fb0 33 #:use-module (gnu packages image)
83aabfbc 34 #:use-module (gnu packages xml)
3b239720 35 #:use-module (gnu packages gtk)
cd0322a3
RW
36 #:use-module (gnu packages qt)
37 #:use-module (gnu packages sqlite))
83aabfbc
LC
38
39(define-public gpsbabel
40 (package
41 (name "gpsbabel")
924b96db 42 (version "1.5.4")
83aabfbc
LC
43 (source (origin
44 (method url-fetch)
45 ;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so
46 ;; get it from elsewhere.
47 (uri (string-append
48 "mirror://debian/pool/main/g/gpsbabel/gpsbabel_"
49 version ".orig.tar.gz"))
50 (sha256
51 (base32
924b96db
MO
52 "19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l"))
53 (patches (search-patches
54 "gpsbabel-minizip.patch"
55 ;; XXX: Remove this patch on the next release.
56 "gpsbabel-qstring.patch"))
03392caa 57 (modules '((guix build utils)))
6d2ff645
TGR
58 (snippet
59 '(begin
60 ;; Delete files under GPL-compatible licences but never used
61 ;; on GNU systems, rather than bloating the LICENSE field.
924b96db
MO
62 (delete-file "gui/serial_mac.cc") ; Apple MIT
63 (delete-file "mingw/include/ddk/hidsdi.h") ; public domain
6d2ff645 64 #t))))
83aabfbc 65 (build-system gnu-build-system)
924b96db 66 ;; TODO: "make doc" requires Docbook & co.
83aabfbc 67 (arguments
15354d86
DC
68 `(#:configure-flags
69 '("--with-zlib=system"
e20dafd0
LF
70 ;; XXX Use -fPIC to work around build problems with Qt, GCC 5, and
71 ;; recent binutils:
72 ;; https://codereview.qt-project.org/#/c/111787/
73 "CXXFLAGS=-std=gnu++11 -fPIC")
82350397
LC
74 ;; On i686, 'raymarine.test' fails because of a rounding error:
75 ;; <http://hydra.gnu.org/build/133040>. As a workaround, disable tests
76 ;; on these platforms.
15354d86
DC
77 ;; FIXME: On x86_64 with -std=gnu++11 tests also fail due to rounding
78 ;; error.
79 #:tests? #f))
83aabfbc
LC
80 (inputs
81 `(("expat" ,expat)
82 ("zlib" ,zlib)
e2814984
EF
83 ("qtbase" ,qtbase)
84 ("qttools" ,qttools)))
83aabfbc
LC
85 (native-inputs
86 `(("which" ,which)
87 ("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests
facee794 88 (home-page "https://www.gpsbabel.org/")
83aabfbc
LC
89 (synopsis "Convert and exchange data with GPS and map programs")
90 (description
91 "GPSBabel converts waypoints, tracks, and routes between hundreds of
92popular GPS receivers and mapping programs. It contains extensive data
93manipulation abilities making it a convenient for server-side processing or as
94the back-end for other tools. It does not convert, transfer, send, or
95manipulate maps.")
6d2ff645
TGR
96 (license (list license:expat ; shapelib/*.[ch]
97 license:gpl2+)))) ; everything else
3b239720
LC
98
99(define-public gpscorrelate
100 ;; This program is "lightly maintained", so to speak, so we end up taking it
101 ;; directly from its Git repo.
102 (let ((commit "365f6e1b3f"))
103 (package
104 (name "gpscorrelate")
105 (version (string-append "1.6.1." commit))
106 (source (origin
107 (method git-fetch)
108 (uri (git-reference
2508b075 109 (url "https://github.com/dfandrich/gpscorrelate")
3b239720 110 (commit commit)))
87d868cc 111 (file-name (git-file-name name version))
3b239720
LC
112 (sha256
113 (base32
114 "006a6l8p38a4h7y2959sqrmjjn29d8pd50zj9nypcp5ph18nybjb"))))
115 (build-system gnu-build-system)
116 (arguments
dc1d3cde
KK
117 `(#:phases
118 (modify-phases %standard-phases
119 (replace 'configure
120 (lambda* (#:key inputs outputs #:allow-other-keys)
121 ;; This is a rudimentary build system.
122 (substitute* "Makefile"
123 (("prefix[[:blank:]]*=.*$")
124 (string-append "prefix = " (assoc-ref outputs "out")
125 "\n")))
126 #t)))
3b239720
LC
127 #:tests? #f))
128 (inputs
129 `(("gtk+" ,gtk+-2)
130 ("libxml2" ,libxml2)
131 ("exiv2" ,exiv2)))
132 (native-inputs
133 `(("pkg-config" ,pkg-config)
134 ("docbook-xml" ,docbook-xml)
135 ("docbook-xsl" ,docbook-xsl)
136 ("libxslt" ,libxslt)))
2508b075 137 (home-page "https://dfandrich.github.io/gpscorrelate/")
3b239720
LC
138 (synopsis "GPS photo correlation tool to geo-localize images")
139 (description
140 "GPS Correlate is a program to match a recorded GPS track with the EXIF
141tags in digital camera photos, and update the EXIF tags with the location that
142the photo was taken. It does this by using the timestamp in the photo and
143finding a data point in the GPS track that matches, or interpolating a point
144between two other data points.")
145 (license license:gpl2+))))
b200ecde
EF
146
147(define-public gama
148 (package
149 (name "gama")
6b4ed9ad 150 (version "2.07")
b200ecde
EF
151 (source
152 (origin
153 (method url-fetch)
154 (uri (string-append "mirror://gnu/gama/gama-"
155 version ".tar.gz"))
156 (sha256
157 (base32
6b4ed9ad 158 "0nmc6mkd55nryfffq5k9c09dhkbq6bfs06af8ammhbh5jzdn3s36"))))
b200ecde
EF
159 (build-system gnu-build-system)
160 (arguments '(#:parallel-tests? #f)) ; race condition
161 (native-inputs
162 `(("libxml2" ,libxml2)))
163 (inputs
164 `(("expat" ,expat)
165 ("sqlite" ,sqlite)))
166 (home-page "https://www.gnu.org/software/gama")
167 (synopsis "Adjustment of geodetic networks")
168 (description
169 "GNU Gama is a program for the adjustment of geodetic networks. It is
170useful in measurements where Global Positioning System (GPS) is not available,
171such as underground. It features the ability to adjust in local Cartesian
172coordinates as well as partial support for adjustments in global coordinate systems.")
173 (license license:gpl3+)))
53655964
MO
174
175(define-public gpxsee
176 (package
177 (name "gpxsee")
286ef5d9 178 (version "7.8")
53655964 179 (source (origin
ed8a5516
LC
180 (method git-fetch)
181 (uri (git-reference
182 (url "https://github.com/tumic0/GPXSee")
183 (commit version)))
184 (file-name (git-file-name name version))
53655964
MO
185 (sha256
186 (base32
ed8a5516 187 "1ymqz4wrl9ghkyyqi2vrnlyvz3fc84s3p8a1dkiqlvyvj360ck9j"))))
53655964
MO
188 (build-system gnu-build-system)
189 (arguments
190 '(#:phases
191 (modify-phases %standard-phases
192 (replace 'configure
193 ;; Use lrelease to convert TS translation files into QM files.
194 (lambda* (#:key inputs outputs #:allow-other-keys)
195 (for-each (lambda (file)
d64b79fa 196 (invoke "lrelease" file))
53655964 197 (find-files "lang" "\\.ts"))
53655964
MO
198 (invoke "qmake"
199 (string-append "PREFIX="
286ef5d9 200 (assoc-ref outputs "out"))))))))
53655964
MO
201 (inputs
202 `(("qtbase" ,qtbase)))
203 (native-inputs
204 `(("qttools" ,qttools)))
286ef5d9
NK
205 (home-page "https://www.gpxsee.org")
206 (synopsis "GPS log file viewer and analyzer")
53655964 207 (description
286ef5d9
NK
208 "GPXSee is a Qt-based GPS log file viewer and analyzer that supports
209all common GPS log file formats.")
53655964 210 (license license:gpl3)))