mirror of
https://github.com/smittix/intercept.git
synced 2026-07-27 10:08:10 -07:00
feat: Add SatDump to setup.sh for local (non-Docker) installs
Weather satellite decoding (NOAA APT & Meteor LRPT) was added in the Dockerfile but setup.sh had no SatDump support, leaving local installs with a broken weather satellite mode. Adds build-from-source functions for both Debian and macOS, a check_optional entry, and prompted install steps in both platform installers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -217,6 +217,7 @@ check_tools() {
|
|||||||
check_required "dump1090" "ADS-B decoder" dump1090
|
check_required "dump1090" "ADS-B decoder" dump1090
|
||||||
check_required "acarsdec" "ACARS decoder" acarsdec
|
check_required "acarsdec" "ACARS decoder" acarsdec
|
||||||
check_required "AIS-catcher" "AIS vessel decoder" AIS-catcher aiscatcher
|
check_required "AIS-catcher" "AIS vessel decoder" AIS-catcher aiscatcher
|
||||||
|
check_optional "satdump" "Weather satellite decoder (NOAA/Meteor)" satdump
|
||||||
echo
|
echo
|
||||||
info "GPS:"
|
info "GPS:"
|
||||||
check_required "gpsd" "GPS daemon" gpsd
|
check_required "gpsd" "GPS daemon" gpsd
|
||||||
@@ -617,8 +618,93 @@ install_aiscatcher_from_source_macos() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_satdump_from_source_debian() {
|
||||||
|
info "Building SatDump v1.2.2 from source (weather satellite decoder)..."
|
||||||
|
|
||||||
|
apt_install build-essential git cmake pkg-config \
|
||||||
|
libpng-dev libtiff-dev libjemalloc-dev libvolk-dev libnng-dev \
|
||||||
|
libzstd-dev libsoapysdr-dev libhackrf-dev liblimesuite-dev \
|
||||||
|
libsqlite3-dev libcurl4-openssl-dev zlib1g-dev libzmq3-dev libfftw3-dev
|
||||||
|
|
||||||
|
# Run in subshell to isolate EXIT trap
|
||||||
|
(
|
||||||
|
tmp_dir="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "$tmp_dir"' EXIT
|
||||||
|
|
||||||
|
info "Cloning SatDump v1.2.2..."
|
||||||
|
git clone --depth 1 --branch 1.2.2 https://github.com/SatDump/SatDump.git "$tmp_dir/SatDump" >/dev/null 2>&1 \
|
||||||
|
|| { warn "Failed to clone SatDump"; exit 1; }
|
||||||
|
|
||||||
|
cd "$tmp_dir/SatDump"
|
||||||
|
mkdir -p build && cd build
|
||||||
|
|
||||||
|
info "Compiling SatDump (this may take a while)..."
|
||||||
|
if cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI=OFF -DCMAKE_INSTALL_LIBDIR=lib .. >/dev/null 2>&1 \
|
||||||
|
&& make -j "$(nproc)" >/dev/null 2>&1; then
|
||||||
|
$SUDO make install >/dev/null 2>&1
|
||||||
|
$SUDO ldconfig
|
||||||
|
|
||||||
|
# Ensure plugins are in the expected path (handles multiarch differences)
|
||||||
|
$SUDO mkdir -p /usr/local/lib/satdump/plugins
|
||||||
|
if [ -z "$(ls /usr/local/lib/satdump/plugins/*.so 2>/dev/null)" ]; then
|
||||||
|
for dir in /usr/local/lib/*/satdump/plugins /usr/lib/*/satdump/plugins /usr/lib/satdump/plugins; do
|
||||||
|
if [ -d "$dir" ] && [ -n "$(ls "$dir"/*.so 2>/dev/null)" ]; then
|
||||||
|
$SUDO ln -sf "$dir"/*.so /usr/local/lib/satdump/plugins/
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
ok "SatDump installed successfully."
|
||||||
|
else
|
||||||
|
warn "Failed to build SatDump from source. Weather satellite decoding will not be available."
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
install_satdump_from_source_macos() {
|
||||||
|
info "Building SatDump v1.2.2 from source (weather satellite decoder)..."
|
||||||
|
|
||||||
|
brew_install cmake
|
||||||
|
brew_install libpng
|
||||||
|
brew_install libtiff
|
||||||
|
brew_install jemalloc
|
||||||
|
brew_install libvolk
|
||||||
|
brew_install nng
|
||||||
|
brew_install zstd
|
||||||
|
brew_install soapysdr
|
||||||
|
brew_install hackrf
|
||||||
|
brew_install fftw
|
||||||
|
|
||||||
|
# Run in subshell to isolate EXIT trap
|
||||||
|
(
|
||||||
|
tmp_dir="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "$tmp_dir"' EXIT
|
||||||
|
|
||||||
|
info "Cloning SatDump v1.2.2..."
|
||||||
|
git clone --depth 1 --branch 1.2.2 https://github.com/SatDump/SatDump.git "$tmp_dir/SatDump" >/dev/null 2>&1 \
|
||||||
|
|| { warn "Failed to clone SatDump"; exit 1; }
|
||||||
|
|
||||||
|
cd "$tmp_dir/SatDump"
|
||||||
|
mkdir -p build && cd build
|
||||||
|
|
||||||
|
info "Compiling SatDump (this may take a while)..."
|
||||||
|
if cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI=OFF .. >/dev/null 2>&1 \
|
||||||
|
&& make -j "$(sysctl -n hw.ncpu)" >/dev/null 2>&1; then
|
||||||
|
if [[ -w /usr/local/bin ]]; then
|
||||||
|
make install >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
sudo make install >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
ok "SatDump installed successfully."
|
||||||
|
else
|
||||||
|
warn "Failed to build SatDump from source. Weather satellite decoding will not be available."
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
install_macos_packages() {
|
install_macos_packages() {
|
||||||
TOTAL_STEPS=18
|
TOTAL_STEPS=19
|
||||||
CURRENT_STEP=0
|
CURRENT_STEP=0
|
||||||
|
|
||||||
progress "Checking Homebrew"
|
progress "Checking Homebrew"
|
||||||
@@ -695,6 +781,19 @@ install_macos_packages() {
|
|||||||
ok "AIS-catcher already installed"
|
ok "AIS-catcher already installed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
progress "Installing SatDump (optional)"
|
||||||
|
if ! cmd_exists satdump; then
|
||||||
|
echo
|
||||||
|
info "SatDump is used for weather satellite imagery (NOAA APT & Meteor LRPT)."
|
||||||
|
if ask_yes_no "Do you want to install SatDump?"; then
|
||||||
|
install_satdump_from_source_macos || warn "SatDump build failed. Weather satellite decoding will not be available."
|
||||||
|
else
|
||||||
|
warn "Skipping SatDump installation. You can install it later if needed."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ok "SatDump already installed"
|
||||||
|
fi
|
||||||
|
|
||||||
progress "Installing aircrack-ng"
|
progress "Installing aircrack-ng"
|
||||||
brew_install aircrack-ng
|
brew_install aircrack-ng
|
||||||
|
|
||||||
@@ -992,7 +1091,7 @@ install_debian_packages() {
|
|||||||
export NEEDRESTART_MODE=a
|
export NEEDRESTART_MODE=a
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TOTAL_STEPS=25
|
TOTAL_STEPS=26
|
||||||
CURRENT_STEP=0
|
CURRENT_STEP=0
|
||||||
|
|
||||||
progress "Updating APT package lists"
|
progress "Updating APT package lists"
|
||||||
@@ -1149,6 +1248,19 @@ install_debian_packages() {
|
|||||||
ok "AIS-catcher already installed"
|
ok "AIS-catcher already installed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
progress "Installing SatDump (optional)"
|
||||||
|
if ! cmd_exists satdump; then
|
||||||
|
echo
|
||||||
|
info "SatDump is used for weather satellite imagery (NOAA APT & Meteor LRPT)."
|
||||||
|
if ask_yes_no "Do you want to install SatDump?"; then
|
||||||
|
install_satdump_from_source_debian || warn "SatDump build failed. Weather satellite decoding will not be available."
|
||||||
|
else
|
||||||
|
warn "Skipping SatDump installation. You can install it later if needed."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ok "SatDump already installed"
|
||||||
|
fi
|
||||||
|
|
||||||
progress "Configuring udev rules"
|
progress "Configuring udev rules"
|
||||||
setup_udev_rules_debian
|
setup_udev_rules_debian
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user