Skip to content

Commit

Permalink
net-wireless/dump1090: bump w/ improvements
Browse files Browse the repository at this point in the history
Signed-off-by: Robin H. Johnson <[email protected]>
  • Loading branch information
robbat2 committed Aug 12, 2021
1 parent 96bd587 commit 056518c
Show file tree
Hide file tree
Showing 8 changed files with 193 additions and 17 deletions.
1 change: 1 addition & 0 deletions net-wireless/dump1090/Manifest
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions net-wireless/dump1090/dump1090-4.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
95 changes: 95 additions & 0 deletions net-wireless/dump1090/dump1090-5.0.ebuild
Original file line number Diff line number Diff line change
@@ -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
}
69 changes: 54 additions & 15 deletions net-wireless/dump1090/dump1090-9999.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
}
20 changes: 20 additions & 0 deletions net-wireless/dump1090/files/dump1090-5.0.confd
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions net-wireless/dump1090/files/dump1090-5.0.initd
Original file line number Diff line number Diff line change
@@ -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/
}
4 changes: 4 additions & 0 deletions net-wireless/dump1090/files/tmpfilesd-dump1090-5.0.conf
Original file line number Diff line number Diff line change
@@ -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/
2 changes: 2 additions & 0 deletions net-wireless/dump1090/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
</maintainer>
<use>
<flag name="bladerf">Build with Nuand BladeRF support</flag>
<flag name="hackrf">Build with Great Scott Gadgets HackRF support</flag>
<flag name="rtlsdr">Build with Realtek RTL2832U (rtlsdr) support</flag>
<flag name="minimal">Exclude all HTML/webserver extras for a tiny build, e.g. to export data only</flag>
</use>
<upstream>
<remote-id type="github">flightaware/dump1090</remote-id>
Expand Down

0 comments on commit 056518c

Please sign in to comment.