Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
510 commits
Select commit Hold shift + click to select a range
940d7ff
remove minizlo dependency: code folder
wiedehopf May 11, 2025
9ee3e11
netDrainMessageBuffers: drain all of them
wiedehopf May 12, 2025
6a9f643
add baudrate, cosmetics
wiedehopf May 12, 2025
ece7883
mode-s beast: hopefully fix baud setting
wiedehopf May 12, 2025
1db5691
incrementing version: 3.14.1672
wiedehopf May 12, 2025
f7c4216
some unused code to print bar graph on console for message rate
wiedehopf May 22, 2025
9d95f40
--full-trace-dir option to reduce memory usage of --write-globe-index…
wiedehopf May 22, 2025
7ecb58d
incrementing version: 3.14.1673
wiedehopf May 23, 2025
c677ad2
docker jemalloc: slight memory savings
wiedehopf May 23, 2025
aff96e8
incrementing version: 3.14.1674
wiedehopf May 23, 2025
2002728
don't mess with trace_next_perm on load
wiedehopf May 23, 2025
94ac38d
try and spread out perm writes better
wiedehopf May 23, 2025
a065009
better update receiverlist for receivers that are not quite as low la…
wiedehopf May 24, 2025
05408c5
add some thread count limits
wiedehopf May 24, 2025
7153cbe
incrementing version: 3.14.1675
wiedehopf May 24, 2025
d3eb567
better way to set priority for trace pool
wiedehopf May 24, 2025
669cdca
traces: add version string
wiedehopf May 24, 2025
eb117e3
fine grained ground positions if speed changes
wiedehopf May 26, 2025
aa7a40f
add 30 seconds of max resolution before landing
wiedehopf May 26, 2025
c9780a5
higher resolution for 30 seconds after airground change
wiedehopf May 25, 2025
a470d60
Revert "better update receiverlist for receivers that are not quite a…
wiedehopf May 26, 2025
86d5998
fine grained ground positions if speed changes not that great remove
wiedehopf May 26, 2025
688111f
incrementing version: 3.14.1676
wiedehopf May 26, 2025
ffd36f5
improve non position data reduce forwarding for --net-ingest instances
wiedehopf May 27, 2025
4a77ba1
incrementing version: 3.14.1677
wiedehopf May 27, 2025
a2856a1
regularly reallocate certain buffers
wiedehopf May 27, 2025
d0df62f
better debugging / allow more compressCurrent passes
wiedehopf May 27, 2025
e5a4fe9
autogain: recover gain much quicker
wiedehopf May 27, 2025
3862d1d
autogain: much quicker rebound for closeby passing aircraft
wiedehopf May 27, 2025
ecdf45f
incrementing version: 3.14.1678
wiedehopf May 27, 2025
a28302c
writing fulltrace: always mark legs
wiedehopf May 27, 2025
1ecee57
autogain loud rebound: not quite as fast
wiedehopf May 28, 2025
65dfd86
incrementing version: 3.14.1679
wiedehopf May 28, 2025
9f6e870
add lock around some trace handling
wiedehopf May 28, 2025
a2e98af
some more traceLock
wiedehopf May 28, 2025
e77bb4e
remove incorrect comment
wiedehopf May 28, 2025
1a9629f
removestale: iterate all aircraft less often
wiedehopf May 28, 2025
3bf279d
no traceMaintenance calls unless needed
wiedehopf May 28, 2025
60bb6ec
debug stuff
wiedehopf May 28, 2025
605e0aa
fixup some trace logic things
wiedehopf May 30, 2025
cd775cb
increase traceLast default to 96
wiedehopf May 30, 2025
0445484
after landing / takeoff: up to 60 seconds of data every second
wiedehopf May 30, 2025
4e4c61f
incrementing version: 3.14.1680
wiedehopf May 30, 2025
5faf096
binCraft: better switching between message rate and message count
wiedehopf Jun 2, 2025
f2b6d3f
incrementing version: 3.14.1681
wiedehopf Jun 2, 2025
67614a2
binCraft messagerate fixup
wiedehopf Jun 2, 2025
04b69df
incrementing version: 3.14.1682
wiedehopf Jun 2, 2025
554a17d
reference homebrew recipe
wiedehopf Jun 2, 2025
c7a309b
when using an SDR only forward first message from a plane when no fix…
wiedehopf Jun 18, 2025
6007722
incrementing version: 3.14.1683
wiedehopf Jun 18, 2025
75decb5
don't delay using jaero positions when low jaero timeout set
wiedehopf Jun 19, 2025
f583afe
write full traces less often
wiedehopf Jun 27, 2025
85d4347
tweak autogain: make single loudEvent sufficient to reduce gain
wiedehopf Jul 1, 2025
452cb97
incrementing version: 3.14.1684
wiedehopf Jul 1, 2025
5073f10
improve altitude reliability check
wiedehopf Jul 10, 2025
60f2967
incrementing version: 3.14.1685
wiedehopf Jul 10, 2025
554fd75
minor fixup for altitude reliability check
wiedehopf Jul 10, 2025
12edce9
don't disrupt alt_reliable due to disagreeing lower quality data
wiedehopf Jul 10, 2025
92be770
accept alt from mlat sbs input
wiedehopf Jul 10, 2025
62e6cb2
minor alt update stuff
wiedehopf Jul 10, 2025
8740084
incrementing version: 3.14.1686
wiedehopf Jul 10, 2025
81f5293
debug stuff
wiedehopf Jul 10, 2025
8b495eb
alt update minor
wiedehopf Jul 10, 2025
8087d37
json mlat / tisb flags array: add alt_baro
wiedehopf Jul 11, 2025
ac891f8
incrementing version: 3.14.1687
wiedehopf Jul 11, 2025
6d4bb73
altitude update debugging stuff
wiedehopf Jul 12, 2025
e6ed994
readme
wiedehopf Jul 12, 2025
b1487ac
--gain=auto: increase default noiseLowThreshold a bit
wiedehopf Jul 15, 2025
3b501c1
incrementing version: 3.14.1688
wiedehopf Jul 15, 2025
451221d
autogain: debounce loudRebound a bit
wiedehopf Jul 15, 2025
bf82d5c
incrementing version: 3.14.1689
wiedehopf Jul 15, 2025
9cb37df
incrementing version: 3.14.1690
wiedehopf Jul 15, 2025
77296c9
net_io: use global ais_charset definition
g7 Jul 20, 2025
f743b90
ais_charset, uat2esnt: ensure ais_charset is a NUL-terminated string
g7 Jul 20, 2025
dab71ee
interactive, uat2esnt: use __nonstring__ attribute for byte arrays
g7 Jul 20, 2025
21d399d
extend char arrays to avoid unterminated strings
wiedehopf Jul 21, 2025
58040bf
parse SBS receive timestamp
wiedehopf Jul 28, 2025
71e4a7d
incrementing version: 3.14.1691
wiedehopf Jul 28, 2025
b8250c4
readme: link some projects using this software
wiedehopf Jul 28, 2025
86f2be0
sbs input: prevent parsing timestamps from the future
wiedehopf Jul 28, 2025
45b6ec3
clear range outline as expected when no data is coming in
wiedehopf Aug 1, 2025
48449b0
incrementing version: 3.14.1692
wiedehopf Aug 1, 2025
28f6646
fixup SBS time parsing
wiedehopf Aug 2, 2025
c42e66d
incrementing version: 3.14.1693
wiedehopf Aug 2, 2025
2fac602
traces: fix roll overflow by reducing accuracy
wiedehopf Aug 10, 2025
3a91797
incrementing version: 3.14.1694
wiedehopf Aug 10, 2025
5a3d6f2
make json location accuracy work more reliably on indirect data
wiedehopf Aug 14, 2025
3c33732
incrementing version: 3.14.1695
wiedehopf Aug 14, 2025
25eb72f
viewadsb: improve altitude sorting stability
wiedehopf Aug 15, 2025
4493ff4
viewadsb: only sort every 3 seconds
wiedehopf Aug 15, 2025
f4d29c8
reduce viewadsb refresh from 0.25 to 0.5 seconds
wiedehopf Aug 15, 2025
74f2d9d
viewadsb: only clear errors every 10 seconds
wiedehopf Aug 15, 2025
0867262
add support for uat messages encapsulated in the beast stream
wiedehopf Aug 15, 2025
130c6f4
read_uuid in beast stream: handle partial buffer correctly
wiedehopf Aug 15, 2025
2ff826d
incrementing version: 3.14.1696
wiedehopf Aug 15, 2025
234dad5
fixup encapsulated UAT
wiedehopf Aug 15, 2025
de952d8
interactive: speed 4 wide for --metric
wiedehopf Aug 15, 2025
b6c9674
interactive: consistently sort ground
wiedehopf Aug 15, 2025
eaa4085
interactive: when lat lon specified, show distance / direction and so…
wiedehopf Aug 15, 2025
c77b062
interactive minor readability changes
wiedehopf Aug 15, 2025
539e11d
interactive sort stability for aircraft on ground
wiedehopf Aug 15, 2025
9c55bcd
debian rules
wiedehopf Aug 17, 2025
63acbde
incrementing version: 3.14.1697
wiedehopf Aug 17, 2025
e702928
big version jump: 3.15
wiedehopf Aug 17, 2025
b60583a
incrementing version: 3.15.1
wiedehopf Aug 17, 2025
32c0ced
specify build dep libsoapysdr-dev in readme
wiedehopf Aug 17, 2025
e1ec52c
build with all the SDR support
wiedehopf Aug 18, 2025
5b1e05c
update debian copyright at least partially
wiedehopf Aug 18, 2025
ea1e279
debian package: build faster with make -j $(nprocs)
wiedehopf Aug 18, 2025
ce09d1a
cleanup readsb.service / readsb.default
wiedehopf Aug 18, 2025
8787632
update debian package description
wiedehopf Aug 18, 2025
548ecb2
readme: add some credits / history
wiedehopf Aug 18, 2025
dd59d1d
autogenerate manpages using help2man
wiedehopf Aug 18, 2025
26d725d
print some credits in help
wiedehopf Aug 18, 2025
798f32f
incrementing version: 3.15.2
wiedehopf Aug 18, 2025
604042f
readme: update build instructions
wiedehopf Aug 18, 2025
4e38f31
more flexible tag.sh
wiedehopf Aug 18, 2025
7ef806a
tag.sh: add notes for releasing a version
wiedehopf Aug 18, 2025
1a51ad7
fixup tag.sh to include changelog from main directory
wiedehopf Aug 18, 2025
9a962dc
tag.sh add newline after unreleased changelog entry
wiedehopf Aug 18, 2025
b0e673b
add with_sdrs build profile
wiedehopf Aug 18, 2025
6927c35
release 3.16
wiedehopf Aug 18, 2025
41bde73
readme: fixup missing help2man dependency
wiedehopf Aug 18, 2025
57e1c0b
load_state: somewhat better handling of broken state data
wiedehopf Aug 27, 2025
5d6ce7a
aircraft loading: can't rely on blob association staying the same
wiedehopf Aug 27, 2025
05c70f9
dealing with messed up state is tricky
wiedehopf Aug 27, 2025
0cea2aa
incrementing version: 3.16.1
wiedehopf Aug 27, 2025
e4bf340
remove unnecessarly newlines from ownOp/year details in json
wiedehopf Aug 31, 2025
5950f74
increase output buffer for uat2esnt conversion
wiedehopf Sep 6, 2025
44daf02
add ugly way to process specially beast encapsulated UAT messages
wiedehopf Sep 6, 2025
990bafb
minor stuff to more obviously guarantee progress processing beast
wiedehopf Sep 6, 2025
7335e0c
distance approximation: go back to elliptical earth
wiedehopf Sep 8, 2025
460c9fc
distance approximations aren't that good, less noisy when checking ap…
wiedehopf Sep 8, 2025
3852ad2
less noisy checking degree approx
wiedehopf Sep 8, 2025
786c1ac
prevent traceLast data from the previous day in history traces
wiedehopf Sep 9, 2025
4c1459a
incrementing version: 3.16.2
wiedehopf Sep 10, 2025
6ee71cf
debug for decodeEncapsulatedUAT
wiedehopf Sep 23, 2025
3623c68
decodeEncapsulatedUat: fix, this should work now
wiedehopf Sep 25, 2025
03a2bf5
incrementing version: 3.16.3
wiedehopf Sep 25, 2025
ec69dc1
receiver position logic: fix for receivers near dateline
wiedehopf Oct 6, 2025
14ef156
prepare defines for api filtering by uuid
wiedehopf Oct 6, 2025
e213c05
api: add &filter_uuid filter
wiedehopf Oct 6, 2025
55b026b
only show planes with filter_uuid if received very recently by uuid
wiedehopf Oct 7, 2025
b530dd3
comment on dropHalfUntil
wiedehopf Oct 14, 2025
83cfa54
adjust help for TCP client / server terminology
wiedehopf Oct 17, 2025
9b80d72
update --help in github readme
wiedehopf Oct 17, 2025
af4d2d6
incrementing version: 3.16.4
wiedehopf Oct 17, 2025
b53e58c
stop counting invalid decodes from network for message rate
wiedehopf Oct 20, 2025
3e095b1
incrementing version: 3.16.5
wiedehopf Oct 20, 2025
7b78f77
readme: fixup a link
wiedehopf Nov 7, 2025
81b5d26
ifile: exit promptly
wiedehopf Nov 10, 2025
0797687
improve handling of synthetic clock / priority tasks
wiedehopf Nov 10, 2025
2d007af
interactive: clean up seen column formatting a bit
wiedehopf Nov 10, 2025
97ba5e6
modify default USB buffer size to 128 kibibytes
wiedehopf Nov 15, 2025
aa0bc62
SDR: unexpected size: avoid spamming the log too much
wiedehopf Nov 15, 2025
b985831
incrementing version: 3.16.6
wiedehopf Nov 15, 2025
ba29158
add option --json-separate-alt-ground
wiedehopf Nov 20, 2025
feee930
make --net-beast-reduce-filter-dist more versatile
wiedehopf Dec 14, 2025
6946bda
fix / make obvious: recentReceiverId overwrite logic
wiedehopf Dec 18, 2025
cd7b07e
set recentReceiverIds for aircraft without position
wiedehopf Dec 18, 2025
f4f7648
incrementing version: 3.16.7
wiedehopf Dec 18, 2025
25b1409
less noise about trackremovestale taking a bit of time
wiedehopf Dec 20, 2025
71b4390
api: fix out of bounds read
wiedehopf Dec 21, 2025
130c143
net_io: fix null deref when with proxy strings
wiedehopf Dec 21, 2025
5141685
net_io: fix asterix decoding fspec
wiedehopf Dec 21, 2025
91346cb
net_io: fix readAsterix length validation failure
wiedehopf Dec 21, 2025
b05ebda
incrementing version: 3.16.8
wiedehopf Dec 21, 2025
4295f84
ensure decodePlanefinder does not read past buffer
wiedehopf Dec 22, 2025
26d7e09
api: filter_uuid: emit planes for a bit longer
wiedehopf Dec 22, 2025
69d4538
docker: use zstd compression
wiedehopf Dec 24, 2025
14881d2
add macro to print current line
wiedehopf Dec 31, 2025
f0e2ed9
add debug mechanism for garbage counter incrementing
wiedehopf Dec 31, 2025
1e3ba48
beast: don't assume garbage for long messages
wiedehopf Dec 31, 2025
d85add5
fixup encapsulated UAT msg length check
wiedehopf Jan 1, 2026
ba52568
beast: default disabled debugging for sender not flushing whole messages
wiedehopf Jan 1, 2026
800aca0
Fix early return in decodeBDS44 pressure scoring
nandortoth Jan 10, 2026
bd95a8a
detect bad tuners and log / make available in json
wiedehopf Jan 17, 2026
7824553
incrementing version: 3.16.9
wiedehopf Jan 17, 2026
5831f91
change default autogain parameters
wiedehopf Feb 3, 2026
a88e53b
fix up tat / oat missing from traces
wiedehopf Feb 28, 2026
f31032a
incrementing version: 3.16.10
wiedehopf Feb 28, 2026
7d341c6
Fix addrtype_t out of bounds
Huusky Feb 28, 2026
7daf436
ingest: limit position rate
wiedehopf Apr 4, 2026
c2af854
docker: add with_uuids build
wiedehopf Apr 4, 2026
9f7071c
non transponder: lower priority
wiedehopf Apr 4, 2026
9a9da7a
threadpool: add ifdef dependent debug prints
wiedehopf Apr 5, 2026
eb63596
threadpool: add busy loop counting
wiedehopf Apr 5, 2026
ba2fae1
threadpool: improve variable naming
wiedehopf Apr 5, 2026
0dfa2aa
threadpool: use fetch_sub instead of compare exchange
wiedehopf Apr 6, 2026
5425345
use madvise just in case for transparent hugepages
wiedehopf Apr 6, 2026
15917d7
remove spurious unused declaration
wiedehopf Apr 6, 2026
4da537f
incrementing version: 3.16.11
wiedehopf Apr 6, 2026
6ecea84
Fix: wind assignment & duplicate check
Huusky Apr 8, 2026
6d31c98
make hugepage handling better
wiedehopf Apr 9, 2026
4d6c614
Refactor: update hugepage definitions and usage in memory allocation
billmcilhargey Apr 11, 2026
062afb4
Add ?find_squawk API option
Huusky Apr 19, 2026
caf2c5a
filter_squawk: support list as well
wiedehopf Apr 26, 2026
d38b903
receiver json: indicate if replay is being written
wiedehopf May 1, 2026
b8f00f8
add cpr repitition exception
wiedehopf May 4, 2026
307a855
incrementing version: 3.16.12
wiedehopf May 4, 2026
433a61c
incrementing version: 3.16.13
wiedehopf May 4, 2026
ecb9f4f
cpr repitition: fix issue with uat
wiedehopf May 4, 2026
b80c737
incrementing version: 3.16.14
wiedehopf May 4, 2026
04e88d9
new option: --net-json-port-wind-triggered
wiedehopf May 11, 2026
226ce85
wind triggered tcp json output: only emit when position is fresher th…
wiedehopf May 12, 2026
05df27d
incrementing version: 3.16.15
wiedehopf May 12, 2026
b65ee05
better git describe version in version strings
wiedehopf May 12, 2026
b499ecb
remove unused variable
wiedehopf May 13, 2026
0adaebb
Add optional SBS RSSI field (field 23) using --devel=sbs_rssi
chrislanzara May 27, 2026
e492f81
Fix RSSI SBS output: buffer size and log10 clamp
chrislanzara Jun 1, 2026
b2e7605
Cater for writing files to a dated sub-folder
chrislanzara May 27, 2026
8c63e84
Updates to build with SBS_RSSI=yes
chrislanzara May 27, 2026
cc0d099
Fix sign-extension in Asterix message length parsing
chrislanzara Jun 1, 2026
0bfd047
Add --devel=sbs_extra_fields: append RSSI and aircraft category to SB…
chrislanzara Jun 8, 2026
60d576b
add --uuid option (finally)
wiedehopf Jul 27, 2026
370212e
Fix two -Werror build failures with clang
enricolorenzoni59 Aug 10, 2026
7ea0bb6
Fix spinLock() passing an atomic_int* as the 'expected' argument
enricolorenzoni59 Aug 10, 2026
9ad8026
Fix load_aircraft() returning -1 on success
enricolorenzoni59 Aug 10, 2026
8833a4b
Use printf instead of 'echo -n' when building the version string
enricolorenzoni59 Aug 10, 2026
019b74d
incrementing version: 3.16.16
wiedehopf Aug 10, 2026
10b5e9c
Fix convert_benchmark not compiling since the SDR buffer became a var…
enricolorenzoni59 Aug 10, 2026
875638a
compat: provide htole16/htole32 on macOS
enricolorenzoni59 Aug 10, 2026
d418ad6
Makefile: fix the benchmarks target
enricolorenzoni59 Aug 10, 2026
75160e0
docker: retry aircraft.csv.gz fetch on transient HTTP errors (#143)
riccardosabatti Aug 17, 2026
d9a4c62
dockerfile wget: adjust params
wiedehopf Aug 17, 2026
e044118
docker: use trixie
wiedehopf Sep 18, 2026
e9e4b54
comm_b: fix GS/TAS consistency check in BDS 5,0 scoring (#150)
joliverosh Sep 22, 2026
285ffc4
comm_b: fix integer division in BDS 4,4 wind direction (#151)
joliverosh Sep 22, 2026
9861601
comm_b: penalise BDS 6,0 candidates whose IAS and Mach disagree at th…
joliverosh Sep 22, 2026
a194f27
json: expose tas_age and mach_age in aircraft.json
joliverosh Sep 22, 2026
03ec84b
--devel=json_age_fields: add age fields used for wind / temp calc
wiedehopf Sep 22, 2026
85a6985
comm_b: check raw fields for BDS 4,4 status consistency (#152)
joliverosh Sep 22, 2026
539d5e8
track: filter out wildly unrealistic temperatures in calc_temp (#153)
joliverosh Sep 23, 2026
6ffcf2b
comm_b: drop dead UM check in decodeCommB
joliverosh Sep 23, 2026
cbc4c86
track: fix integer division in speed_check track age factor
joliverosh Sep 23, 2026
843d8e3
mm->windspeed: use float
wiedehopf Sep 23, 2026
5acad57
comm_b: ignore wind all zeroes
wiedehopf Sep 24, 2026
a3861ca
call calc_wind in better spots
wiedehopf Sep 24, 2026
83c77d3
don't calculate declination / true_heading without knowing position
wiedehopf Sep 24, 2026
02b4503
don't calculate wind in turns
wiedehopf Sep 24, 2026
da8980e
declination calc: contain better in function
wiedehopf Sep 24, 2026
3b5368a
readd checking for wind calc when tas is received
wiedehopf Sep 24, 2026
0947209
incrementing version: 3.16.17
wiedehopf Sep 27, 2026
dc5ca26
Add Kinetic output support and related options
Flightliner380 Sep 9, 2026
31628d8
Add Kinetic output filtering options for categories and hex codes
Flightliner380 Sep 10, 2026
702c7b3
Add console messages for Kinetic client connections and disconnections
Flightliner380 Sep 11, 2026
060f301
Add Kinetic output support with filtering options for categories and …
Flightliner380 Sep 11, 2026
0272517
move kinetic readme down
wiedehopf Oct 8, 2026
9a4e513
Update GitHub Actions to current majors, add Dependabot for actions
L-Logix Oct 10, 2026
8afcc22
Add build & test CI, fix crctest target running the wrong test
L-Logix Oct 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 5
56 changes: 56 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Build and test

on:
push:
branches: [dev, sid]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: ${{ matrix.os }} / ${{ matrix.cc }} / RTLSDR=${{ matrix.rtlsdr }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
cc: gcc
rtlsdr: "no"
- os: ubuntu-22.04
cc: clang
rtlsdr: "no"
- os: ubuntu-24.04
cc: gcc
rtlsdr: "no"
- os: ubuntu-24.04
cc: clang
rtlsdr: "no"
- os: ubuntu-24.04
cc: gcc
rtlsdr: "yes"
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
pkg-config libncurses-dev zlib1g-dev libzstd-dev
if [ "${{ matrix.rtlsdr }}" = "yes" ]; then
sudo apt-get install -y --no-install-recommends librtlsdr-dev libusb-1.0-0-dev
fi

- name: Build
run: make -j"$(nproc)" CC=${{ matrix.cc }} RTLSDR=${{ matrix.rtlsdr }}

- name: Test
run: make test CC=${{ matrix.cc }}
37 changes: 16 additions & 21 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ name: docker build

on:
schedule:
- cron: "0 10 * * *"
- cron: "0 5 * * 1"
push:
branches:
- "**"
- "dev"
- "sid"
tags:
- "v*.*.*"
- "v*.*.*"
pull_request:
branches:
- "dev"
- "dev"

jobs:
docker:
Expand All @@ -21,13 +22,13 @@ jobs:
- name: Set variables useful for later
id: useful_vars
run: |-
echo "::set-output name=timestamp::$(date +%s)"
echo "::set-output name=short_sha::${GITHUB_SHA::8}"
echo "name=timestamp::$(date +%s)" >> $GITHUB_OUTPUT
echo "name=short_sha::${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}
tags: |
Expand All @@ -42,30 +43,24 @@ jobs:
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=raw,value=${{ github.ref_name }}-${{ steps.useful_vars.outputs.short_sha }}-${{ steps.useful_vars.outputs.timestamp }},enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v4
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v7
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
build-args: |
BUILDKIT_CONTEXT_KEEP_GIT_DIR=true
outputs: type=image,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ oneoff/decode_comm_b
readsb
viewadsb
.version
cprtests
crctests
53 changes: 24 additions & 29 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,52 +1,47 @@
FROM debian:bookworm-20240311 AS builder
RUN apt-get update && \
apt-get install -y git wget pkg-config autoconf gcc make libusb-1.0-0-dev librtlsdr-dev librtlsdr0 libncurses-dev zlib1g-dev zlib1g libzstd-dev libzstd1
FROM ghcr.io/wiedehopf/readsb-builder:latest AS builder

# install jemalloc
RUN JEMALLOC_BDIR=$(mktemp -d) && \
git clone --depth 1 https://github.com/jemalloc/jemalloc $JEMALLOC_BDIR && \
cd $JEMALLOC_BDIR && \
./autogen.sh && \
./configure --with-lg-page=14 && \
make -j$(nproc) && \
make install && \
rm -rf $JEMALLOC_BDIR

# install readsb
RUN mkdir -p /app/git
COPY . /app/git
RUN cd /app/git && \
SHELL ["/bin/bash", "-x", "-o", "pipefail", "-c"]
RUN --mount=type=bind,source=.,target=/app/git \
cd /app/git && \
READSB_BUILD_DIR=$(mktemp -d) && \
cp -r /app/git/* $READSB_BUILD_DIR && \
cp -aT /app/git $READSB_BUILD_DIR && \
cd $READSB_BUILD_DIR && \
make -j$(nproc) RTLSDR=yes OPTIMIZE="-O2" && \
[[ $(uname -m) == x86_64 ]] && MARCH=" -march=nehalem" || MARCH="" && \
make -j$(nproc) RTLSDR=yes OPTIMIZE="-O2 $MARCH" &&\
mv readsb /usr/local/bin && \
mv viewadsb /usr/local/bin && \
chmod +x /usr/local/bin/viewadsb /usr/local/bin/readsb && \
make clean && \
make -j$(nproc) PRINT_UUIDS=yes TRACKS_UUID=yes OPTIMIZE="-O2" && \
make -j$(nproc) WITH_UUIDS=yes OPTIMIZE="-O2 $MARCH" && \
mv readsb /usr/local/bin/readsb-with-uuids && \
make clean && \
make -j$(nproc) PRINT_UUIDS=yes TRACKS_UUID=yes OPTIMIZE="-O2 $MARCH" && \
mv readsb /usr/local/bin/readsb-uuid && \
mv viewadsb /usr/local/bin/viewadsb-uuid && \
chmod +x /usr/local/bin/viewadsb-uuid && \
chmod +x /usr/local/bin/readsb-uuid && \
rm -rf $READSB_BUILD_DIR && \
mkdir -p /usr/local/share/tar1090 && \
wget -O /usr/local/share/tar1090/aircraft.csv.gz https://github.com/wiedehopf/tar1090-db/raw/csv/aircraft.csv.gz && \
wget --timeout 10 --tries=6 --retry-connrefused --retry-on-http-error=404,429,500,502,503,504 -O /usr/local/share/tar1090/aircraft.csv.gz https://raw.githubusercontent.com/wiedehopf/tar1090-db/csv/aircraft.csv.gz && \
true

FROM debian:bookworm-slim
RUN apt-get update && \
FROM debian:trixie-slim
RUN \
--mount=type=bind,from=builder,source=/,target=/builder/ \
apt-get update && \
apt-get -y install --no-install-recommends \
wget \
librtlsdr0 libncurses6 zlib1g libzstd1 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
mkdir -p /run/readsb
mkdir -p /run/readsb && \
cp /builder/usr/local/bin/readsb* /usr/local/bin/ && \
cp /builder/usr/local/bin/viewadsb* /usr/local/bin/ && \
mkdir -p /usr/local/share/tar1090 && \
cp /builder/usr/local/share/tar1090/aircraft.csv.gz /usr/local/share/tar1090/aircraft.csv.gz && \
cp /builder/usr/local/lib/libjemalloc.so.2 /usr/local/lib/libjemalloc.so.2 && \
true

ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so.2
COPY --from=builder /usr/local/bin/readsb* /usr/local/bin/
COPY --from=builder /usr/local/bin/viewadsb* /usr/local/bin/
COPY --from=builder /usr/local/share/tar1090/aircraft.csv.gz /usr/local/share/tar1090/aircraft.csv.gz
COPY --from=builder /usr/local/lib/libjemalloc.so.2 /usr/local/lib/libjemalloc.so.2
ENV MALLOC_CONF=narenas:1,tcache:false

ENTRYPOINT ["/usr/local/bin/readsb"]
Loading