From 056518c71263b8f17826f68e15d969526c1301ee Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Tue, 10 Aug 2021 09:54:11 -0700 Subject: [PATCH] net-wireless/dump1090: bump w/ improvements Signed-off-by: Robin H. Johnson --- net-wireless/dump1090/Manifest | 1 + net-wireless/dump1090/dump1090-4.0.ebuild | 4 +- net-wireless/dump1090/dump1090-5.0.ebuild | 95 +++++++++++++++++++ net-wireless/dump1090/dump1090-9999.ebuild | 69 +++++++++++--- .../dump1090/files/dump1090-5.0.confd | 20 ++++ .../dump1090/files/dump1090-5.0.initd | 15 +++ .../files/tmpfilesd-dump1090-5.0.conf | 4 + net-wireless/dump1090/metadata.xml | 2 + 8 files changed, 193 insertions(+), 17 deletions(-) create mode 100644 net-wireless/dump1090/dump1090-5.0.ebuild create mode 100644 net-wireless/dump1090/files/dump1090-5.0.confd create mode 100644 net-wireless/dump1090/files/dump1090-5.0.initd create mode 100644 net-wireless/dump1090/files/tmpfilesd-dump1090-5.0.conf diff --git a/net-wireless/dump1090/Manifest b/net-wireless/dump1090/Manifest index 2e1c6203b23c1..c9f99e8b0b24b 100644 --- a/net-wireless/dump1090/Manifest +++ b/net-wireless/dump1090/Manifest @@ -1 +1,2 @@ DIST dump1090-4.0.tar.gz 6663754 BLAKE2B bf0a6c8dfd8b2da5ed0e7ae5f7b862c57a54e5d48bc24b29e42ebffec4e0606604fbe4b8502e85df60a3a618568bf9e2eba88e5ad2fdec7fb93043b823435362 SHA512 97dc872e4d0ac8df2f46e17b590e970a62a78baf81e18a9beeb23d37a4401a2e52591ca96cc01e1465b22aa234cf9e88f84a7b0f27d0144b3afeac62f6252c95 +DIST dump1090-5.0.tar.gz 10124422 BLAKE2B d6b26a444f73cccd002558b6863431537078e1fe9f61e4e240d4a5f06181b9ff713387aad623c2ee8257c2568bd4dd373746606c356ac3ff0f27f411d4949997 SHA512 1104982308db788993bf5dc130a5ca369c8bfaaae56cd5a435bbd22ed99b0633594789334d7f256bad2b288c4906923baf8bc73e2f7b7f9f52f7068b9b519142 diff --git a/net-wireless/dump1090/dump1090-4.0.ebuild b/net-wireless/dump1090/dump1090-4.0.ebuild index acbbbb805755b..c49bf27909f22 100644 --- a/net-wireless/dump1090/dump1090-4.0.ebuild +++ b/net-wireless/dump1090/dump1090-4.0.ebuild @@ -30,8 +30,8 @@ BDEPEND="virtual/pkgconfig" src_prepare() { default - sed -i -e 's#-O3 -g -Wall -Wmissing-declarations -Werror -W##' Makefile || die - sed -i -e "s#-lncurses#$($(tc-getPKG_CONFIG) --libs ncurses)#" Makefile || die + sed -i -e '/CFLAGS/s# -O3 -g -Wall -Wmissing-declarations -Werror -W # #' Makefile || die + sed -i -e "/LIBS_CURSES/s#-lncurses#$($(tc-getPKG_CONFIG) --libs ncurses)#" Makefile || die } src_compile() { diff --git a/net-wireless/dump1090/dump1090-5.0.ebuild b/net-wireless/dump1090/dump1090-5.0.ebuild new file mode 100644 index 0000000000000..dc9893bd0a785 --- /dev/null +++ b/net-wireless/dump1090/dump1090-5.0.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit tmpfiles toolchain-funcs + +DESCRIPTION="simple Mode S decoder for RTLSDR devices" +HOMEPAGE="https://github.com/flightaware/dump1090" + +if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/flightaware/${PN}.git" +else + KEYWORDS="~amd64 ~x86" + SRC_URI="https://github.com/flightaware/dump1090/archive/v${PV}.tar.gz -> ${P}.tar.gz" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="bladerf hackrf +rtlsdr minimal" + +DEPEND=" + sys-libs/ncurses:=[tinfo] + bladerf? ( net-wireless/bladerf:= virtual/libusb:1 ) + hackrf? ( net-libs/libhackrf:= virtual/libusb:1 ) + rtlsdr? ( net-wireless/rtl-sdr:= virtual/libusb:1 )" +RDEPEND="${DEPEND}" +BDEPEND="virtual/pkgconfig" + +src_prepare() { + default + sed -i -e '/CFLAGS/s# -O3 -g -Wall -Wmissing-declarations -Werror -W # #' Makefile || die + sed -i -e "/LIBS_CURSES/s#-lncurses#$($(tc-getPKG_CONFIG) --libs ncurses)#" Makefile || die +} + +src_compile() { + emake CC="$(tc-getCC)" \ + BLADERF=$(usex bladerf) \ + RTLSDR=$(usex rtlsdr) \ + HACKRF=$(usex hackrf) \ + CPUFEATURES=yes \ + LIMESDR=no +} + +src_install() { + dobin ${PN} + dobin view1090 + dodoc README.md README-json.md + # DSP config for bladerf + if use bladerf; then + insinto usr/share/${PN}/bladerf + doins bladerf/* + fi + + newtmpfiles "${FILESDIR}"/tmpfilesd-dump1090-5.0.conf ${PN}.conf + newconfd "${FILESDIR}"/dump1090-5.0.confd ${PN} + newinitd "${FILESDIR}"/dump1090-5.0.initd ${PN} + + if use !minimal; then + insinto /usr/share/${PN} + doins -r tools + + # Some tooling expects the -fa variant directory to contain the files + dosym ../../usr/share/${PN} /usr/share/dump1090-fa + + # Older HTML + insinto /usr/share/${PN}/html + doins -r public_html/* + # Newer HTML + insinto /usr/share/skyaware/html + doins -r public_html_merged/* + + # One of these this should be included into other lighttpd configs + insinto /usr/share/${PN}/lighttpd + # Old style: + doins debian/lighttpd/89-dump1090-fa.conf + doins debian/lighttpd/88-dump1090-fa-statcache.conf + # New style: + doins debian/lighttpd/89-skyaware.conf + + # See README.md for how to use custom wisdom files + exeinto /usr/share/${PN}/wisdom + doexe debian/generate-wisdom + insinto /usr/share/${PN}/wisdom + doins wisdom.* + doins wisdom/wisdom.* + # For /etc/dump1090-fa/wisdom.local + keepdir /etc/dump1090-fa/ + + # Tooling to generate custom wisdom: + exeinto /usr/libexec/${PN} + doexe starch-benchmark + fi +} diff --git a/net-wireless/dump1090/dump1090-9999.ebuild b/net-wireless/dump1090/dump1090-9999.ebuild index b6d89bd1d31a7..dc9893bd0a785 100644 --- a/net-wireless/dump1090/dump1090-9999.ebuild +++ b/net-wireless/dump1090/dump1090-9999.ebuild @@ -3,7 +3,7 @@ EAPI=7 -inherit toolchain-funcs +inherit tmpfiles toolchain-funcs DESCRIPTION="simple Mode S decoder for RTLSDR devices" HOMEPAGE="https://github.com/flightaware/dump1090" @@ -18,39 +18,78 @@ fi LICENSE="BSD" SLOT="0" -IUSE="bladerf +rtlsdr" +IUSE="bladerf hackrf +rtlsdr minimal" DEPEND=" sys-libs/ncurses:=[tinfo] - virtual/libusb:1 - bladerf? ( net-wireless/bladerf:= ) - rtlsdr? ( net-wireless/rtl-sdr:= )" + bladerf? ( net-wireless/bladerf:= virtual/libusb:1 ) + hackrf? ( net-libs/libhackrf:= virtual/libusb:1 ) + rtlsdr? ( net-wireless/rtl-sdr:= virtual/libusb:1 )" RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" src_prepare() { default - sed -i -e 's#-O2 -g -Wall -Werror -W##' Makefile || die - sed -i -e "s#-lncurses#$($(tc-getPKG_CONFIG) --libs ncurses)#" Makefile || die + sed -i -e '/CFLAGS/s# -O3 -g -Wall -Wmissing-declarations -Werror -W # #' Makefile || die + sed -i -e "/LIBS_CURSES/s#-lncurses#$($(tc-getPKG_CONFIG) --libs ncurses)#" Makefile || die } src_compile() { emake CC="$(tc-getCC)" \ BLADERF=$(usex bladerf) \ - RTLSDR=$(usex rtlsdr) + RTLSDR=$(usex rtlsdr) \ + HACKRF=$(usex hackrf) \ + CPUFEATURES=yes \ + LIMESDR=no } src_install() { dobin ${PN} dobin view1090 - dodoc README.md + dodoc README.md README-json.md + # DSP config for bladerf + if use bladerf; then + insinto usr/share/${PN}/bladerf + doins bladerf/* + fi - insinto /usr/share/${PN}/html - doins -r public_html/* + newtmpfiles "${FILESDIR}"/tmpfilesd-dump1090-5.0.conf ${PN}.conf + newconfd "${FILESDIR}"/dump1090-5.0.confd ${PN} + newinitd "${FILESDIR}"/dump1090-5.0.initd ${PN} - insinto /usr/share/${PN} - doins -r tools + if use !minimal; then + insinto /usr/share/${PN} + doins -r tools - insinto /usr/share/${PN} - newins debian/lighttpd/89-dump1090-fa.conf lighttpd.conf + # Some tooling expects the -fa variant directory to contain the files + dosym ../../usr/share/${PN} /usr/share/dump1090-fa + + # Older HTML + insinto /usr/share/${PN}/html + doins -r public_html/* + # Newer HTML + insinto /usr/share/skyaware/html + doins -r public_html_merged/* + + # One of these this should be included into other lighttpd configs + insinto /usr/share/${PN}/lighttpd + # Old style: + doins debian/lighttpd/89-dump1090-fa.conf + doins debian/lighttpd/88-dump1090-fa-statcache.conf + # New style: + doins debian/lighttpd/89-skyaware.conf + + # See README.md for how to use custom wisdom files + exeinto /usr/share/${PN}/wisdom + doexe debian/generate-wisdom + insinto /usr/share/${PN}/wisdom + doins wisdom.* + doins wisdom/wisdom.* + # For /etc/dump1090-fa/wisdom.local + keepdir /etc/dump1090-fa/ + + # Tooling to generate custom wisdom: + exeinto /usr/libexec/${PN} + doexe starch-benchmark + fi } diff --git a/net-wireless/dump1090/files/dump1090-5.0.confd b/net-wireless/dump1090/files/dump1090-5.0.confd new file mode 100644 index 0000000000000..3350294ae8c05 --- /dev/null +++ b/net-wireless/dump1090/files/dump1090-5.0.confd @@ -0,0 +1,20 @@ +# These variable names are chose to be as close as possible to the upstream & Debian options. +RECEIVER_OPTIONS="--device-index 0 --gain -10 --ppm 0" +DECODER_OPTIONS="--max-range 360 --fix" +NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1300 --net-ro-interval 0.2 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005" +JSON_OPTIONS="--json-location-accuracy 1 --write-json /run/dump1090/" + +# See README.md for custom wisdom, or use one of the bundled wisdom files +WISDOM_FILE= +[ -f /etc/dump1090-fa/wisdom.local ] && WISDOM_FILE=/etc/dump1090-fa/wisdom.local + +# Optional, populate these with your location +#PIAWARE_LAT= +#PIAWARE_LON= +# Or populate file /var/cache/piaware/location.env +[ -f /var/cache/piaware/location.env ] && source /var/cache/piaware/location.env + +if [ -n "$PIAWARE_LAT" -a -n "$PIAWARE_LON" ] +then + POSITION="--lat $PIAWARE_LAT --lon $PIAWARE_LON" +fi diff --git a/net-wireless/dump1090/files/dump1090-5.0.initd b/net-wireless/dump1090/files/dump1090-5.0.initd new file mode 100644 index 0000000000000..47c2d240bb545 --- /dev/null +++ b/net-wireless/dump1090/files/dump1090-5.0.initd @@ -0,0 +1,15 @@ +#!/sbin/openrc-run +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="dump1090" +description="" +command=/usr/bin/dump1090 +command_args="$RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS $JSON_OPTIONS $POSITION ${WISDOM_FILE:+--wisdom} ${WISDOM_FILE}" + +depend() { + use rtl_tcp +} +pre_start() { + mkdir -p /run/dump1090/ +} diff --git a/net-wireless/dump1090/files/tmpfilesd-dump1090-5.0.conf b/net-wireless/dump1090/files/tmpfilesd-dump1090-5.0.conf new file mode 100644 index 0000000000000..67341178bfe24 --- /dev/null +++ b/net-wireless/dump1090/files/tmpfilesd-dump1090-5.0.conf @@ -0,0 +1,4 @@ +# The daemon will write out JSON files for the webserver here +d /run/dump1090/ 755 root root - +# The some upstream configs expect it to be in /run/dump1090-fa/ +L /run/dump1090-fa - - - - /run/dump1090/ diff --git a/net-wireless/dump1090/metadata.xml b/net-wireless/dump1090/metadata.xml index da238ebeece08..f515f0879802e 100644 --- a/net-wireless/dump1090/metadata.xml +++ b/net-wireless/dump1090/metadata.xml @@ -7,7 +7,9 @@ Build with Nuand BladeRF support + Build with Great Scott Gadgets HackRF support Build with Realtek RTL2832U (rtlsdr) support + Exclude all HTML/webserver extras for a tiny build, e.g. to export data only flightaware/dump1090