unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: 68596@debbugs.gnu.org
Cc: glv@posteo.net
Subject: [bug#68596] [PATCH] gnu: Add viz1090.
Date: Fri, 19 Jan 2024 18:29:03 -0500	[thread overview]
Message-ID: <77b69c65826a4546659d4f2e399685e9611f0401.1705706943.git.leo@famulari.name> (raw)

* gnu/packages/radio.scm (viz1090): New variable.

Change-Id: I1bee79df0906075728d0faee80eb0ccbbdb368dc
---
 gnu/packages/radio.scm | 141 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 141 insertions(+)

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index f34511b352..f8b10e7061 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2022 Ryan Tolboom <ryan@using.tech>
 ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2024 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1890,6 +1891,146 @@ (define-public dump1090
     (home-page "https://github.com/flightaware/dump1090")
     (license license:gpl2+)))
 
+(define-public viz1090
+  (let ((commit "ec055e1220f897b393f033a4cee02771c69dadc3")
+        (revision "0"))
+    (package
+      (name "viz1090")
+      ;; There are no "releases" of this program yet.
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://www.github.com/nmatsuda/viz1090")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0gksr6dsaa4rffwrfcbhhnclmj5yabrv0dc8mb8q7hmbv8znd232"))))
+      (build-system gnu-build-system)
+      (arguments
+        (list
+          #:tests? #f ; No test suite
+          #:make-flags
+          #~(list (string-append "CXXFLAGS=-I"
+                                 #$(this-package-input "sdl-union")
+                                 "/include/SDL2")
+                  (string-append "CC=" #+(cc-for-target)))
+          #:phases
+          #~(modify-phases %standard-phases
+             (delete 'configure) ; No ./configure script
+             (add-before 'build 'build-map-data
+               (lambda _
+                 (let* ((share (string-append #$output "/share/viz1090")))
+                   ;; Disable the build-time maps downloader and adjust the
+                   ;; decompression procedure accordingly.
+                   (substitute* "getmap.sh"
+                     (("wget") "#wget")
+                     (("unzip.*")
+                      (string-append
+                        "unzip " #$(this-package-native-input "political-maps") " && \n"
+                        "unzip " #$(this-package-native-input "population-maps") " && \n"
+                        "unzip " #$(this-package-native-input "airports-map") " && \n"
+                        "unzip " #$(this-package-native-input "arcgis-data") " && \n")))
+                   ;; Adjust the run-time paths of the map data
+                   (substitute* "Map.cpp"
+                     (("mapdata.bin")
+                      (string-append share "/mapdata.bin"))
+                     (("airportdata.bin")
+                      (string-append share "/airportdata.bin"))
+                     (("\\\(\"mapnames")
+                      (string-append "\(\"" share "/mapnames"))
+                     (("\\\(\"airportnames")
+                      (string-append "\(\"" share "/airportnames")))
+                   (invoke "./getmap.sh"))))
+             (add-before 'build 'patch-font-path
+               (lambda _
+                 (substitute* "View.cpp"
+                   (("font\\/")
+                    (string-append #$output "/font/")))))
+             (replace 'install ; No install target
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let* ((bin (string-append #$output "/bin"))
+                        (share (string-append #$output "/share/viz1090"))
+                        (doc (string-append share "-" #$(package-version this-package) "/doc"))
+                        (fonts (string-append #$output "/font")))
+                   (install-file "viz1090" bin)
+                   (install-file "mapdata.bin" share)
+                   (install-file "airportdata.bin" share)
+                   (install-file "mapnames" share)
+                   (install-file "airportnames" share)
+                   (install-file "README.md" doc)
+                   (mkdir fonts)
+                   (copy-recursively "font" fonts)))))))
+      (native-inputs
+       `(("political-maps"
+          ;; version 5.1.1 of this data
+          ;; The upstream site does not version the URL for the most recent
+          ;; release, so we store them on archive.org to create a stable URL.
+          ;; See 'getmap.sh' in the viz1090 source distribution.
+          ,(origin
+             (method url-fetch)
+             (uri
+               "https://archive.org/download/ne_10m_admin_1_states_provinces/ne_10m_admin_1_states_provinces.zip")
+               ;"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces.zip")
+             (sha256
+              (base32
+               "019bp9ccna1xxrk3c1af6k6pjcb7jvf0l8a6jj7ha8vk6ck9gigg"))))
+         ("population-maps"
+          ;; version 5.1.2 of this data
+          ;; The upstream site does not version the URL for the most recent
+          ;; release, so we store them on archive.org to create a stable URL.
+          ;; See 'getmap.sh' in the viz1090 source distribution.
+          ,(origin
+             (method url-fetch)
+             (uri
+               "https://archive.org/download/ne_10m_populated_places/ne_10m_populated_places.zip")
+               ;"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip")
+             (sha256
+              (base32
+               "0yqxqkydzlwylh2j6fidqc57sdd4h2wrk8qd87h069ixy239256d"))))
+         ("airports-map"
+          ;; version 5.0.0 of this data
+          ;; The upstream site does not version the URL for the most recent
+          ;; release, so we store them on archive.org to create a stable URL.
+          ;; See 'getmap.sh' in the viz1090 source distribution.
+          ,(origin
+             (method url-fetch)
+             (uri
+               "https://archive.org/download/ne_10m_airports/ne_10m_airports.zip")
+               ;"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_airports.zip")
+             (sha256
+              (base32
+               "1cvxgp141i7jy9fd49xxfz3g2k07szh745zd3l9lq7kynrf377m2"))))
+         ("arcgis-data"
+          ;; See 'getmap.sh' in the viz1090 source distribution.
+          ,(origin
+             (method url-fetch)
+             (uri
+               "https://opendata.arcgis.com/datasets/4d8fa46181aa470d809776c57a8ab1f6_0.zip")
+             (sha256
+              (base32
+               "1aqa7dc3xp1mcz7zm3v5m2qjdkzgyzgzlif4cvqsba2l2flc3v74"))))
+         ;; For building the map data
+         ("unzip" ,unzip)
+         ("python" ,python)
+         ("python-numpy" ,python-numpy)
+         ("python-tqdm" ,python-tqdm)))
+      (inputs
+        (list gdal
+              rtl-sdr
+              (sdl-union (list sdl2 sdl2-ttf sdl2-gfx))
+              python-fiona
+              python-shapely
+              python-requests))
+      (synopsis "Visualizer for dump1090 ADS-B data")
+      (description "Viz1090 provides a visual map-based display of
+@acronym{ADS-B, Automatic Dependent Surveillance–Broadcast} data that is
+broadcast from airborne aircraft.  It reads data provided by @code{dump1090} as
+described in @file{README.md} to show nearby aircraft on a map.")
+      (home-page "https://github.com/nmatsuda/viz1090")
+      (license license:bsd-2))))
+
 (define-public rtl-433
   (package
     (name "rtl-433")

base-commit: f7c0ccb1866b559dc2ce0c538d10a150822824c8
-- 
2.41.0





             reply	other threads:[~2024-01-19 23:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-19 23:29 Leo Famulari [this message]
2024-01-31 10:03 ` [bug#68596] [PATCH] gnu: Add viz1090 Guillaume Le Vaillant
2024-01-31 10:22   ` Guillaume Le Vaillant
2024-02-01 21:12     ` Leo Famulari
2024-02-01 21:14   ` Leo Famulari
2024-02-01 21:11 ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=77b69c65826a4546659d4f2e399685e9611f0401.1705706943.git.leo@famulari.name \
    --to=leo@famulari.name \
    --cc=68596@debbugs.gnu.org \
    --cc=glv@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).