Commit | Line | Data |
---|---|---|
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 | |
92 | popular GPS receivers and mapping programs. It contains extensive data | |
93 | manipulation abilities making it a convenient for server-side processing or as | |
94 | the back-end for other tools. It does not convert, transfer, send, or | |
95 | manipulate 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 | |
141 | tags in digital camera photos, and update the EXIF tags with the location that | |
142 | the photo was taken. It does this by using the timestamp in the photo and | |
143 | finding a data point in the GPS track that matches, or interpolating a point | |
144 | between 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 | |
170 | useful in measurements where Global Positioning System (GPS) is not available, | |
171 | such as underground. It features the ability to adjust in local Cartesian | |
172 | coordinates 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 |
209 | all common GPS log file formats.") | |
53655964 | 210 | (license license:gpl3))) |