Getting Started: SitRepNet FLDIGI Suite Setup Script ====================================================== This guide walks you through using install-sitrepnet-suite.sh to install the latest available release of FLDIGI, FLRIG, FLMSG, FLAMP, JS8Call, JS8Spotter, and SitRepMapper, step by step. No prior Linux experience needed -- just follow along. 1. What this script does ------------------------- It downloads the current release of each program from its official source (w1hkj.org for FLDIGI/FLRIG/FLMSG/FLAMP, js8call.com for JS8Call, and sitrepnet.com for JS8Spotter/SitRepMapper) and installs it -- so you always end up with the current version rather than whatever (possibly older) version your Linux distro's app store happens to carry. The four w1hkj.org programs are compiled from source specifically for your machine. JS8Call installs as a prebuilt AppImage. JS8Spotter and SitRepMapper are Python programs -- SitRepMapper gets its own private Python environment so it can't conflict with anything else on your system. Every time you run it, it first checks what you have installed against what's currently available, and only installs what's missing or out of date. 2. What you need before starting --------------------------------- - A Debian-based Linux system: Debian, Ubuntu, Linux Mint, Pop!_OS, or Raspberry Pi OS (32-bit or 64-bit). - An internet connection. - A user account that can run sudo (the normal default account on most installs, including Raspberry Pi OS, qualifies). - Roughly 15-30 minutes on a typical PC, or up to an hour or more on an older/lower-power Raspberry Pi, if installing everything. You don't need to babysit it -- just leave the terminal window open. 3. Download the script ----------------------- 1. Download install-sitrepnet-suite.sh to your computer (e.g. into your Downloads or Home folder). 2. Open a terminal and move into that folder. For example, if it's in your Downloads folder: cd ~/Downloads 4. Make it runnable -------------------- Linux won't run a downloaded script until you mark it executable. Do that once with: chmod +x install-sitrepnet-suite.sh 5. Run it --------- ./install-sitrepnet-suite.sh What you'll see happen ~~~~~~~~~~~~~~~~~~~~~~~ First, it prints what's currently installed vs. the latest available version for every program: ==> OS: raspbian (like: debian), arch: aarch64 ==> Checking installed vs. latest versions... FLDIGI installed: NOT INSTALLED latest: 4.2.13 FLRIG installed: NOT INSTALLED latest: 2.0.12 FLMSG installed: NOT INSTALLED latest: 4.0.24 FLAMP installed: NOT INSTALLED latest: 2.2.14 JS8Call installed: NOT INSTALLED latest: 3.0.3 JS8Spotter installed: NOT INSTALLED latest: 1.20 SitRepMapper installed: NOT INSTALLED latest: 1.13.0 Then, if you're at a real terminal (not piping/scripting this), it asks which programs you'd like -- press Enter to install everything: Which programs would you like to install? (default: all) 1) FLDIGI 2) FLRIG 3) FLMSG 4) FLAMP 5) JS8Call 6) JS8Spotter 7) SitRepMapper Enter numbers to SKIP, comma-separated (e.g. 2,5), or press Enter to install all: Then, it asks for your password (this is your normal login password -- it's needed to install system packages and the programs themselves): This script needs sudo to install build dependencies and 'make install'. [sudo] password for pi: Then it installs the system packages each program needs, and installs each selected program in turn -- you'll see normal build/install output scrolling by (this is expected and can be long, especially on a Pi). Finally, it prints a summary: ==> All requested programs are installed and up to date. That's it -- everything you selected is now installed. 6. Launch the programs ----------------------- From a terminal, just type the program name: fldigi flrig flmsg flamp js8call js8spotter sitrepmapper If you left desktop icons enabled (the default), you'll also find launchers for each on your Desktop. Note: On many Linux desktops, a freshly created desktop icon won't run just by double-clicking it the first time -- you'll need to right-click the icon and choose "Allow Launching" (wording varies slightly by desktop environment) once before it will work. 7. Updating later ------------------ Just run the script again the same way: ./install-sitrepnet-suite.sh It automatically detects which programs are already current and skips them -- it will only reinstall whatever has a newer version available. There's nothing to uninstall or reset first. 8. Common examples ------------------- You don't need to memorize these -- just come back to this section when you want to do something specific. Check for updates without installing anything: ./install-sitrepnet-suite.sh --check-only Only install/update one program (e.g. just SitRepMapper): ./install-sitrepnet-suite.sh --only=sitrepmapper (Also accepts a comma-separated list: --only=js8call,js8spotter, or any of fldigi, flrig, flmsg, flamp, js8call, js8spotter, sitrepmapper. Using --only skips the interactive "which programs" prompt entirely.) Force a reinstall even if you're already up to date: ./install-sitrepnet-suite.sh --force Skip installing system dependencies (useful if you've already run the script once and just want to reinstall): ./install-sitrepnet-suite.sh --skip-deps Install a specific version yourself, instead of "whatever's latest": ./install-sitrepnet-suite.sh --fldigi-version=4.2.13 (Every program has its own ---version= flag -- see the full reference below.) Limit the FLDIGI-family builds to one CPU core -- helpful on a Raspberry Pi with limited RAM if a build fails partway through: ./install-sitrepnet-suite.sh --jobs=1 Skip creating desktop icons: ./install-sitrepnet-suite.sh --no-desktop-entries Combine options -- e.g. only install JS8Call and SitRepMapper, forced: ./install-sitrepnet-suite.sh --only=js8call,sitrepmapper --force See all available options: ./install-sitrepnet-suite.sh --help 9. Raspberry Pi notes ---------------------- - Compiling FLDIGI is memory-hungry. On boards with less than 2GB of RAM, the script automatically limits itself to building one piece at a time (rather than using all CPU cores at once) to avoid the build crashing from running out of memory. You don't need to configure anything for this -- it's automatic. (This only applies to the FLDIGI-family builds; JS8Call, JS8Spotter, and SitRepMapper don't compile anything.) - If a build still fails partway through with a message about being killed or running out of memory, the most reliable fix is to add swap space (temporary "overflow" memory on disk), then re-run the script. - Expect the FLDIGI-family builds to take noticeably longer on a Pi than on a desktop PC -- that's normal. 10. Troubleshooting / FAQ -------------------------- "Permission denied" when I try to run it You forgot step 4. Run chmod +x install-sitrepnet-suite.sh, then try again. It says my OS isn't supported / recognized The script still tries to continue -- it's just warning you that it hasn't been tested on your exact distro. It should still work on most Debian-based systems. If a later step fails, that's the likely reason. It says it "could not determine latest version" for a program This means the script couldn't reach that program's version source (w1hkj.org's listing, JS8Call's GitHub releases, or a SitRepNet.com endpoint) to check for the newest version. Try again later, or install a version yourself: ./install-sitrepnet-suite.sh --fldigi-version=4.2.13 or allow the script to fall back to the last version it's known to work with: ./install-sitrepnet-suite.sh --allow-unknown-latest "fltk-config could not be found" during configure, right after installing dependencies This means the dependency install step above it failed, so nothing (not just FLTK) actually got installed -- the script now checks for and fixes the most common cause of this automatically (see next entry), but if you still see it, scroll up in the output to find the real error, which will appear right after "Installing build dependencies via apt...". "dpkg was interrupted, you must manually run 'sudo dpkg --configure -a'" This happens on some freshly-imaged Raspberry Pi boards when a system setup process (like the first-boot setup in raspi-config, or an automatic update) hadn't finished yet. The script now runs sudo dpkg --configure -a automatically before installing dependencies to fix this for you. If you still hit it, wait a minute for any background setup/update process to finish, then re-run the script -- or run sudo dpkg --configure -a yourself first. "Package X has no installation candidate" during dependency install Different Linux versions sometimes rename or retire a package. The script already handles a couple of known cases automatically (an old JPEG library name some newer distros replace with libjpeg62-turbo-dev, and libfuse2 vs. libfuse2t64 for running AppImages). If you hit this for a different package on your system, that specific package is skipped with a warning rather than failing the whole install -- but the affected program may not work correctly without it. No AppImage available for JS8Call on my system JS8Call's upstream project only publishes AppImages for x86_64 and aarch64 (64-bit) systems. If you're running 32-bit Raspberry Pi OS (armv7l), there's currently no AppImage for it -- this program is skipped with a clear message rather than failing confusingly. Everything else still installs normally. The build failed partway through on my Raspberry Pi This is almost always a memory issue, and only applies to the FLDIGI-family builds. Try: ./install-sitrepnet-suite.sh --jobs=1 If that still fails, add swap space and try again. Where do the programs actually get installed? FLDIGI/FLRIG/FLMSG/FLAMP go to /usr/local/bin via their own build system. JS8Call, JS8Spotter, and SitRepMapper live under ~/src/fldigi-suite//. Either way, every program also gets a small launcher placed in /usr/local/bin/ (already in your PATH), so typing the program's name works from any terminal regardless of where its real files live. How do I uninstall? There's no built-in uninstaller. For FLDIGI/FLRIG/FLMSG/FLAMP: if you still have the build folder (~/src/fldigi-suite/-), you can try sudo make uninstall from inside it -- most (but not guaranteed all) versions support this; otherwise remove the files manually from /usr/local/bin and /usr/local/share. For JS8Call/JS8Spotter/SitRepMapper: delete their folder under ~/src/fldigi-suite/, plus the matching /usr/local/bin/ launcher and desktop icon. Can I run this again safely if something goes wrong partway through? Yes. Just re-run the script -- it's safe to run repeatedly. It will pick up where it left off (already-current programs are skipped, and downloads are only re-fetched if there's a newer version). 11. Full option reference -------------------------- --only=NAME[,NAME...] Only act on the named program(s): fldigi, flrig, flmsg, flamp, js8call, js8spotter, sitrepmapper. Skips the interactive selection prompt. --check-only Show installed vs. latest versions and exit -- installs nothing --force Rebuild/reinstall even if already at the latest version --skip-deps Don't install system dependencies via apt --build-dir=DIR Where to download/install into (default: ~/src/fldigi-suite) --jobs=N Limit parallel compile jobs for the FLDIGI-family builds (default: automatic based on available RAM) --no-desktop-entries Don't create desktop launcher icons --fldigi-version=X.Y.Z Install this exact FLDIGI version instead of checking for the latest --flrig-version=X.Y.Z Same, for FLRIG --flmsg-version=X.Y.Z Same, for FLMSG --flamp-version=X.Y.Z Same, for FLAMP --js8call-version=X.Y.Z Same, for JS8Call --js8spotter-version=X.Y.Z Same, for JS8Spotter --sitrepmapper-version=X.Y.Z Same, for SitRepMapper --allow-unknown-latest Fall back to a last-known-good version if a program's version source can't be reached -h, --help Show built-in help text 12. Need more help? -------------------- Run ./install-sitrepnet-suite.sh --help for the full built-in reference, or see README.txt included alongside this script for a more technical overview.