;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system scons)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix utils)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages base)
- #:use-module (gnu packages pkg-config)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
- #:use-module (gnu packages geeqie) ;exiv2
- #:use-module (gnu packages xml)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
- #:use-module (gnu packages qt))
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages xml))
(define-public gpsbabel
(package
(name "gpsbabel")
- (version "1.5.2")
+ (version "1.5.4")
(source (origin
(method url-fetch)
;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so
version ".orig.tar.gz"))
(sha256
(base32
- "0xf7wmy2m29g2lm8lqc74yf8rf7sxfl3cfwbk7dpf0yf42pb0b6w"))))
+ "19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l"))
+ (patches (search-patches
+ "gpsbabel-minizip.patch"
+ ;; XXX: Remove this patch on the next release.
+ "gpsbabel-qstring.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete files under GPL-compatible licences but never used
+ ;; on GNU systems, rather than bloating the LICENSE field.
+ (delete-file "gui/serial_mac.cc") ; Apple MIT
+ (delete-file "mingw/include/ddk/hidsdi.h") ; public domain
+ #t))))
(build-system gnu-build-system)
+ ;; TODO: "make doc" requires Docbook & co.
(arguments
`(#:configure-flags
- '("--with-zlib=system"
- "CXXFLAGS=-std=gnu++11")
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'pre-configure
- (lambda _
- (chdir "gpsbabel"))))
- ;; TODO: "make doc" requires Docbook & co.
-
+ '("--with-zlib=system")
;; On i686, 'raymarine.test' fails because of a rounding error:
;; <http://hydra.gnu.org/build/133040>. As a workaround, disable tests
;; on these platforms.
(native-inputs
`(("which" ,which)
("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests
- (home-page "http://www.gpsbabel.org/")
+ (home-page "https://www.gpsbabel.org/")
(synopsis "Convert and exchange data with GPS and map programs")
(description
"GPSBabel converts waypoints, tracks, and routes between hundreds of
manipulation abilities making it a convenient for server-side processing or as
the back-end for other tools. It does not convert, transfer, send, or
manipulate maps.")
- (license license:gpl2+)))
+ (license (list license:expat ; shapelib/*.[ch]
+ license:gpl2+)))) ; everything else
(define-public gpscorrelate
;; This program is "lightly maintained", so to speak, so we end up taking it
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/freefoote/gpscorrelate")
+ (url "https://github.com/dfandrich/gpscorrelate")
(commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32
"006a6l8p38a4h7y2959sqrmjjn29d8pd50zj9nypcp5ph18nybjb"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (alist-replace
- 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; This is a rudimentary build system.
- (substitute* "Makefile"
- (("prefix[[:blank:]]*=.*$")
- (string-append "prefix = " (assoc-ref outputs "out")
- "\n"))))
- %standard-phases)
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; This is a rudimentary build system.
+ (substitute* "Makefile"
+ (("prefix[[:blank:]]*=.*$")
+ (string-append "prefix = " (assoc-ref outputs "out")
+ "\n")))
+ #t)))
#:tests? #f))
(inputs
`(("gtk+" ,gtk+-2)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("libxslt" ,libxslt)))
- (home-page "http://freefoote.dview.net/linux/gpscorrelate")
+ (home-page "https://dfandrich.github.io/gpscorrelate/")
(synopsis "GPS photo correlation tool to geo-localize images")
(description
"GPS Correlate is a program to match a recorded GPS track with the EXIF
finding a data point in the GPS track that matches, or interpolating a point
between two other data points.")
(license license:gpl2+))))
+
+(define-public gama
+ (package
+ (name "gama")
+ (version "2.07")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gama/gama-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0nmc6mkd55nryfffq5k9c09dhkbq6bfs06af8ammhbh5jzdn3s36"))))
+ (build-system gnu-build-system)
+ (arguments '(#:parallel-tests? #f)) ; race condition
+ (native-inputs
+ `(("libxml2" ,libxml2)))
+ (inputs
+ `(("expat" ,expat)
+ ("sqlite" ,sqlite)))
+ (home-page "https://www.gnu.org/software/gama")
+ (synopsis "Adjustment of geodetic networks")
+ (description
+ "GNU Gama is a program for the adjustment of geodetic networks. It is
+useful in measurements where Global Positioning System (GPS) is not available,
+such as underground. It features the ability to adjust in local Cartesian
+coordinates as well as partial support for adjustments in global coordinate systems.")
+ (license license:gpl3+)))
+
+(define-public gpxsee
+ (package
+ (name "gpxsee")
+ (version "7.25")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tumic0/GPXSee")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lml3hz2zxljl9j5wnh7bn9bj8k9v3wf6bk3g77x9nnarsmw0fcx"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; Use lrelease to convert TS translation files into QM files.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (invoke "lrelease" file))
+ (find-files "lang" "\\.ts"))
+ (invoke "qmake"
+ (string-append "PREFIX="
+ (assoc-ref outputs "out"))))))))
+ (inputs
+ `(("qtbase" ,qtbase)))
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (home-page "https://www.gpxsee.org")
+ (synopsis "GPS log file viewer and analyzer")
+ (description
+ "GPXSee is a Qt-based GPS log file viewer and analyzer that supports all
+common GPS log file formats. It can display multiple tracks on various on-
+and off-line maps. You can easily add more maps and graph other captured data
+such as elevation, speed, heart rate, power, temperature, and gear shifts.")
+ (license license:gpl3)))
+
+(define-public gpsd
+ (package
+ (name "gpsd")
+ (version "3.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download-mirror.savannah.gnu.org"
+ "/releases/gpsd/gpsd-" version ".tar.gz"))
+ (sha256
+ (base32 "0faz2mvk82hi7ispxxih07lhpyz5dazs4gcknym9piiabga29p97"))))
+ (build-system scons-build-system)
+ (native-inputs
+ `(("bc" ,bc)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("bluez" ,bluez)
+ ("dbus" ,dbus)
+ ("libcap" ,libcap)
+ ("libusb" ,libusb)
+ ("ncurses" ,ncurses)
+ ("python" ,python)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pyserial" ,python-pyserial)
+ ("python-wrapper" ,python-wrapper)
+ ("qtbase" ,qtbase)))
+ (arguments
+ `(#:scons-flags
+ (list (string-append "prefix=" %output)
+ (let ((version ,(version-major+minor (package-version python))))
+ (string-append "python_libdir=" %output
+ "/lib/python" version
+ "/site-packages"))
+ "qt_versioned=5")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "SConstruct"
+ (("envs = \\{\\}")
+ "envs = os.environ"))
+ #t))
+ (add-after 'install 'wrap-python-scripts
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (pycairo (assoc-ref inputs "python-pycairo"))
+ (pygobject (assoc-ref inputs "python-pygobject"))
+ (pyserial (assoc-ref inputs "python-pyserial"))
+ (sitedir (lambda (package)
+ (string-append package
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages")))
+ (pythonpath (string-join (map sitedir
+ (list out pycairo pygobject
+ pyserial))
+ ":")))
+ (for-each (lambda (script)
+ (wrap-program (string-append out "/bin/" script)
+ `("PYTHONPATH" ":" prefix (,pythonpath))))
+ '("gegps" "gpscat" "gpsfake" "gpsprof"
+ "ubxtool" "xgps" "xgpsspeed" "zerk")))
+ #t)))))
+ (synopsis "GPS service daemon")
+ (description
+ "@code{gpsd} is a service daemon that monitors one or more GPSes or AIS
+receivers attached to a host computer through serial or USB ports, making all
+data on the location/course/velocity of the sensors available to be queried on
+TCP port 2947 of the host computer.")
+ (home-page "https://gpsd.gitlab.io/gpsd/")
+ (license license:bsd-2)))