Generated by scripts/gen_etc_inventory.py from ETC's own installer
scripts. Do not edit by hand — regenerate.
Generated: 2026-09-06
Source: https://github.com/thetechprepper/emcomm-tools-os-community at 4ec08ce (2026-05-02), release 2026.04.01.R6 (6.0.0)
Method: every scripts/*.sh that install.sh can run is parsed for
its apt lists, its VERSION and fetched URL (variables resolved from the
script's own assignments), its install method (classified from the
commands present), whether it verifies a download, and the system
modifications it makes. The category and catalog columns are curated
in the generator and tested: every shipped script is curated, every
catalog name exists.
EmComm Tools OS Community is by Gaston Gonzalez (KT7RUN, The Tech
Prepper LLC), Apache-2.0 for the scripts and overlay, a separate
non-commercial notice for the logos. It is an installer layered onto
Ubuntu 22.10 (kinetic) — update-apt.sh points apt at
old-releases.ubuntu.com, kinetic having reached end of life on
2023-07-20 — and is built into an ISO with Cubic. Its distinguishing work
is the rig layer -- the operator selects a radio with et-radio, and
21 per-radio JSON definitions, 16 udev rule files writing role
symlinks, and 40 et-* wrappers configure each application for it --
and the offline-data layer (maps, Wikipedia, reference PDFs).
Nothing here takes ETC's code; the patterns are studied and, where they
survive our decisions, reimplemented (D-001).
Summary
62 units in scripts/, of which 59 are run by
install.sh (1 only with ET_EXPERT set).
| Category |
Units |
Meaning |
| delta |
11 |
coverage the other five sources lack |
| overlap |
21 |
a catalog manifest already covers it |
| glue |
9 |
ETC's own integration layer — studied, not carried |
| data |
4 |
offline reference data downloaded into the image |
| base |
17 |
the OS, its desktop, ISO tooling |
| Method |
Units |
| apt |
18 |
| prebuilt binary |
11 |
| deb |
8 |
| overlay |
7 |
| git build |
5 |
| tarball build |
5 |
| data download |
4 |
| config edit |
1 |
| in-tree build |
1 |
| python setup.py |
1 |
| removal |
1 |
140 distinct apt package names across every apt install.
34 units fetch something from the network; 0
verify what they fetched. download_with_retries in et-common
accepts a checksum argument; no script passes one. 7 fetch at latest, master, nightly or with no version at all: install-bbs-server.sh, install-dump1090.sh, install-qttermtcp-from-source.sh, install-qttermtcp.sh, install-sdr-tools.sh, install-sdrpp.sh, install-yaac.sh.
The catalog manifests the overlap rows resolve to: ardopcf, ax25-apps, ax25-tools, direwolf, dump1090-mutability, flamp, fldigi, flmsg, gpsbabel, gpsd, gpsd-clients, js8call, libhamlib-utils, linbpq, minimodem, pat, qttermtcp, readsb, rtl-sdr, sdrpp, splat, voacapl, wsjtx, yaac.
Delta — what ETC adds
| Script |
Version |
Method |
apt packages |
Note |
install-navit.sh |
— |
apt |
navit, navit-gui-gtk, navit-graphics-gtk-drawing-area, navit-gui-internal, libcanberra-gtk-dev, maptool, espeak, osmium-tool |
offline turn-by-turn navigation from apt, with maptool and osmium-tool |
install-bbs-client.sh |
1.1.0 |
prebuilt binary |
python3 |
Paracon 1.1.0, a Python packet terminal shipped as a single .pyz from GitHub releases (1.3.0 is current, 2025-10); MIT |
install-chattervox.sh |
0.7.0 |
prebuilt binary |
— |
Chattervox 0.7.0, a signed-message AX.25 chat client, as a prebuilt Node bundle from GitHub releases; GPL-3.0-or-later; 0.7.0 (2019-03) is the last tag and the last push was 2020-01 |
install-wikipedia.sh |
— |
apt |
kiwix, kiwix-tools, zim, zim-tools, zimwriterfs |
kiwix, kiwix-tools and the zim tools from apt -- the offline reader; Debian 13 has kiwix, kiwix-tools and zim-tools but no zimwriterfs (measured 2026-09-06) |
install-mbtileserver.sh |
0.11.0 |
prebuilt binary |
— |
mbtileserver 0.11.0, a Go tile server for offline maps, prebuilt from GitHub releases; ISC; no Debian 13 candidate |
install-mbutil.sh |
0.3.0 |
python setup.py |
— |
mbutil 0.3.0, MBTiles import/export, python setup.py install under python2; BSD-3-Clause; the 0.3.0 tag is from 2017 |
install-gis-tools.sh |
— |
apt |
gpsbabel, gpsbabel-gui, sqlite3, qgis |
gpsbabel and its GUI (carried), sqlite3, and QGIS from apt |
install-dictionary.sh |
— |
apt |
dict, dictd, dict-gcide |
dict, dictd and GCIDE from apt -- offline dictionary |
install-artemis.sh |
4.1.0 |
prebuilt binary |
libxcb-cursor0 |
Artemis 4.1.0, a signal-identification reference (sigidwiki offline), prebuilt Linux zip from GitHub releases (4.2.0 is current, 2026-07); GPL-3.0 |
install-gpa.sh |
0.11.1 |
tarball build |
libgtk-3-dev, libgpg-error-dev, libgpgme-dev |
GNU Privacy Assistant 0.11.1 built from the gnupg.org tarball, for the AmRRON signed-traffic workflow; Debian 13 has no gpa candidate (measured 2026-09-06), so a build is the only route |
install-pfte.sh |
15.0.8-1 |
deb |
— |
Paranoia Text Encryption 15.0.8, a proprietary .deb from paranoiaworks.mobi; AmRRON's recommended text encryptor |
Overlap — what the catalog already covers, and how ETC does it instead
| Script |
ETC version |
ETC method |
Catalog |
Note |
install-hamlib.sh |
4.5 |
tarball build |
libhamlib-utils |
builds 4.5 from the release tarball into /opt and stows it over /usr/local; the archive's Hamlib is what the catalog uses |
install-js8call.sh |
2.2.0 |
deb |
js8call |
a 2.2.0 .deb rehosted from ETC's own GitHub release, 22 Qt5 dependencies listed by hand |
install-gps.sh |
— |
apt |
gpsd, gpsd-clients |
gpsd, chrony and at from apt; replaces the gpsd default file and unit, disables gpsd at boot, adds GPS as a chrony time source |
install-direwolf.sh |
1.7 |
tarball build |
direwolf |
1.7 from the tag tarball, cmake, into /opt; the catalog's direwolf carries the AHRL/73Linux configuration story (D-008) |
install-yaac.sh |
latest |
prebuilt binary |
yaac |
YAAC.zip at latest from ka2ddo.org, unversioned -- the same unpinned fetch the catalog's yaac replaced with a dated archive |
install-bbs-server.sh |
latest |
prebuilt binary |
linbpq |
linbpq at latest from cantab.net as an i386 binary with four :i386 libraries; the catalog's linbpq builds the tagged source |
install-qttermtcp.sh |
latest |
prebuilt binary |
qttermtcp |
an unversioned i386 executable from cantab.net's download directory; the catalog builds the GitHub tag (install-qttermtcp-from-source.sh is the unused alternative) |
install-packet.sh |
— |
apt |
ax25-tools, ax25-apps |
ax25-tools and ax25-apps from apt, as the catalog does, plus sudoers rules and a group-writable /etc/ax25/axports |
install-ardop.sh |
1.0.4.1.3 |
prebuilt binary |
ardopcf |
ardopcf 1.0.4.1.3 as the prebuilt amd64 executable from GitHub releases; the catalog builds the same tag |
install-winlink.sh |
0.16.0 |
deb |
pat |
Pat 0.16.0 from the upstream GitHub .deb, as the catalog does |
install-rf-analysis-tools.sh |
— |
apt |
splat |
SPLAT! from apt |
install-sdr-tools.sh |
— |
git build |
rtl-sdr |
purges the archive's librtlsdr, deletes its files by rm -rf, builds osmocom's master unpinned, blacklists the DVB driver, then rebuilds .debs and installs those -- the AHRL librtlsdr pattern (D-022) done harder |
install-dump1090.sh |
master |
tarball build |
readsb, dump1090-mutability |
ETC's own fork of dump1090 at master.zip, unpinned, make in place; the catalog's ADS-B default is readsb (overlaps.md) |
install-sdrpp.sh |
nightly |
deb |
sdrpp |
the nightly jammy .deb from GitHub, dpkg -i then apt install -f; the catalog pins a release |
install-voacap.sh |
0.7.6 |
git build |
voacapl |
ETC's fork of voacapl at the branch head, autotools into /opt, itshfbc generated into /etc/skel; the catalog builds jawatson's tag |
install-fldigi.sh |
4.2.09 |
git build |
fldigi |
4.2.09 from the SourceForge git tag, autotools into /opt; the .desktop Exec is rewritten to et-fldigi start |
install-flmsg.sh |
4.0.24 |
git build |
flmsg |
4.0.24 from the git tag, with a #include "pthread.h" patched in by sed -i at line 46 -- the D-031 anchor-that-matches-nothing shape |
install-flamp.sh |
2.2.14 |
git build |
flamp |
2.2.14 from the git tag, autotools into /opt |
install-minimodem.sh |
— |
apt |
minimodem |
from apt |
install-wsjtx.sh |
2.7.0 |
deb |
wsjtx |
2.7.0 from the SourceForge .deb with six Boost/Qt dependencies by hand; the catalog uses the archive's |
install-qttermtcp-from-source.sh |
latest |
tarball build |
qttermtcp |
not run by install.sh; builds QtTermSource.zip from cantab.net with qmake, unversioned |
Glue — ETC's own layer
| Script |
Version |
Method |
Note |
bootstrap.sh |
— |
overlay |
installs et-log, the logger every later script calls |
configure-user.sh |
— |
overlay |
creates the et-data group (gid 1981), replaces /etc/skel, and edits adduser.conf so every new user lands in dialout -- the permission problem the hardware role solves per device (D-029) |
install-emcomm-tools.sh |
— |
overlay |
copies /opt/emcomm-tools from the overlay: 40 et-* wrappers, the radio definitions (conf/radios.d/*.json) and packet templates that make the rig plug-and-play story work |
install-udev.sh |
— |
overlay |
16 rule files from the overlay writing four role symlinks -- /dev/et-cat (11 rules), et-audio (13), et-gps (4), et-sdr (3). Chip identifiers repeat across rigs (0d8c:0012 in four files), and the rules disambiguate by asking udev-tester.sh which radio the operator selected with et-radio, not by the hardware. An empty 85-brltty.rules shadows the system one, and brltty-udev.service is masked |
install-cat.sh |
— |
overlay |
a rigctld.service unit from the overlay, disabled at boot; started by et-radio |
install-et-api.sh |
1.3.0 |
prebuilt binary |
et-api 1.3.0, a Java service from ETC's et-api-java releases, with five CSV datasets (FAA, licence, RMS list, zip-to-geo) |
install-et-aircraft.sh |
1.1.1 |
deb |
et-aircraft-app 1.1.1 .deb, ETC's ADS-B map front end |
install-et-predict.sh |
1.5.2 |
deb |
et-predict-app 1.5.2 .deb, ETC's VOACAP/Winlink prediction front end |
install-et-portaudio.sh |
1.0.0 |
in-tree build |
ETC's own et-portaudio helper, built in-tree from src/ |
Data — the offline layer
| Script |
Run |
Note |
download-osm-maps.sh |
yes |
interactive: scrapes Geofabrik's US index, downloads one state's .osm.pbf, converts it for Navit with maptool into /etc/skel |
download-wikipedia.sh |
expert only |
expert mode only, interactive: one English nopic ZIM from download.kiwix.org into /etc/skel/wikipedia |
download-et-maps.sh |
yes |
interactive: one of three .mbtiles tilesets (US z0-11, Canada z0-10, world z0-7) from ETC's own GitHub release into /etc/skel |
install-offline-lib.sh |
yes |
8 reference documents -- ARRL band chart, BPQ commands, Maidenhead map, AmRRON papers and public key, GhostNet, NOAA scales -- into /etc/skel/Desktop/offline, listed in install-offline-lib.json |
| Script |
Method |
apt packages |
Note |
update-apt.sh |
overlay |
— |
repoints apt at old-releases.ubuntu.com kinetic (22.10, end of life 2023-07-20) and installs a crontab from the overlay |
install-base.sh |
apt |
build-essential, cmake, curl, gpg, imagemagick, jq, net-tools, openjdk-20-jdk, openssh-server, screen, socat, steghide, stow, xsel, tree |
build-essential, cmake, curl, a JDK, openssh-server, screen, stow, steghide and friends; /etc/environment and /etc/motd from the overlay |
install-dev-tools.sh |
apt |
autoconf, dialog, gettext, libfltk1.3-dev, libportaudio2, libsamplerate0-dev, libsndfile1-dev, libudev-dev, pkg-config, portaudio19-dev, git, libfuse2, meld, rpm, vim, cubic, libyaml-dev |
fldigi's build dependencies plus git, meld, vim, and Cubic from a PPA for building the ISO |
install-pup.sh |
prebuilt binary |
— |
an HTML processor the map scripts use; from a GitHub zip |
install-browser.sh |
deb |
apt-transport-https, brave-browser |
Min from a GitHub .deb and Brave from its own apt repository, key fetched by curl with no fingerprint check |
remove-packages.sh |
removal |
— |
purges LibreOffice, Thunderbird, snapd, unattended-upgrades and the update notifier -- the image, not the operator, decides |
install-branding.sh |
apt |
plymouth-themes |
Plymouth boot logo and wallpaper |
configure-gnome.sh |
overlay |
— |
gschema override, icons, touchscreen orientation lock |
fix-panasonic-brightness.sh |
apt |
inotify-tools |
a systemd unit for Toughbook backlight keys; hardware-specific |
install-conky.sh |
apt |
conky |
desktop status overlay, from apt |
install-audio-tools.sh |
apt |
audacity, ffmpeg, sox |
audacity, ffmpeg, sox from apt |
install-wine.sh |
apt |
wine, winetricks, exe-thumbnailer |
wine and winetricks from apt with i386 enabled -- the VARA prerequisite, post-1.0 here (SCOPE.md) |
install-python.sh |
apt |
python2, python-setuptools |
installs python2 and makes it /usr/bin/python -- for mbutil; python2 left Debian's archive with bullseye |
install-ventoy.sh |
prebuilt binary |
— |
Ventoy 1.1.10 from SourceForge into /opt; ISO tooling |
patch-copy-fail.sh |
config edit |
— |
blacklists algif_aead (CVE-2026-31431) -- a kernel mitigation the distribution owes, not an installer |
install-doc-tools.sh |
apt |
pandoc, texlive, texlive-latex-recommended, texlive-fonts-recommended, texlive-latex-extra |
pandoc and TeX Live; commented out of install.sh, so not installed |
install-js8call-dev-tools.sh |
apt |
qtbase5-dev, qtbase5-dev-tools, qt5-qmake, qtchooser, qtmultimedia5-dev, libqt5serialport5-dev, libfftw3-dev, qttools5-dev-tools |
JS8Call's Qt5 build dependencies from apt, for ETC's own fork work; not run by install.sh |
Every script, in install.sh order
Order is the position in install.sh; a script it does not run sorts
last with —. Mods are the system modifications read from the
commands. Verified is whether any checksum or signature check follows
the fetch.