From 2dd6986b8ca9e26c732b06f6bd397ae94134e8be Mon Sep 17 00:00:00 2001 From: David Young Date: Fri, 5 Jun 2026 15:23:07 -0600 Subject: [PATCH] various fixes --- compile.conf | 8 +-- hampackremove | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 5 +- sudo.sh | 2 +- 4 files changed, 185 insertions(+), 7 deletions(-) create mode 100755 hampackremove diff --git a/compile.conf b/compile.conf index 1c24371..4bfcf96 100644 --- a/compile.conf +++ b/compile.conf @@ -51,7 +51,7 @@ gui=true steps=rm -rf $HOME/.local/bin/yaac, mkdir -p $HOME/.local/bin/yaac, mv /tmp/hampack-build/yaac/* $HOME/.local/bin/yaac/ [potacat] -version=1.7.0 +version=1.8.4 git=https://github.com/Waffleslop/POTACAT.git install=$HOME/.local/bin/POTACAT.AppImage desktop=$HOME/.local/share/HamPack/desktop/potacat.desktop @@ -60,7 +60,7 @@ steps=bash $HOME/.local/share/HamPack/patch-potacat.sh, npm install, npm run dis [js8call-improved] name=JS8Call -version=3.0.1 +version=3.0.2 git=https://github.com/JS8Call-improved/JS8Call-improved.git install=$HOME/.local/bin/JS8Call desktop=$HOME/.local/share/HamPack/desktop/js8call.desktop @@ -68,7 +68,7 @@ gui=true steps=mkdir build, cd build, cmake -D CMAKE_INSTALL_PREFIX=/opt/JS8Call-improved .., cmake --build . -- -j 4, mv JS8Call $HOME/.local/bin/JS8Call [graywolf] -version=0.13.13 +version=0.13.15 git=https://github.com/chrissnell/graywolf.git install=$HOME/.local/bin/graywolf -steps=getent group dialout || sudo groupadd dialout, make all, install -m 755 bin/graywolf $HOME/.local/bin/graywolf, install -m 755 bin/graywolf-modem $HOME/.local/bin/graywolf-modem, mkdir -p $HOME/.local/share/graywolf, sed "s|HAMPACK_USER|$USER|g; s|HAMPACK_HOME|$HOME|g" $HOME/.local/share/HamPack/systemd/graywolf.service > /tmp/graywolf.service, sudo install -m 644 /tmp/graywolf.service /etc/systemd/system/graywolf.service, sudo systemctl daemon-reload, sudo systemctl enable --now graywolf +steps=getent group dialout || sudo groupadd dialout, make all, install -m 755 bin/graywolf $HOME/.local/bin/graywolf, install -m 755 bin/graywolf-modem $HOME/.local/bin/graywolf-modem, mkdir -p $HOME/.local/share/graywolf, sed "s|HAMPACK_USER|$USER|g; s|HAMPACK_HOME|$HOME|g" $HOME/.local/share/HamPack/systemd/graywolf.service > /tmp/graywolf.service, sudo install -m 644 /tmp/graywolf.service /etc/systemd/system/graywolf.service, sudo systemctl daemon-reload, sudo systemctl enable graywolf diff --git a/hampackremove b/hampackremove new file mode 100755 index 0000000..d3c08bc --- /dev/null +++ b/hampackremove @@ -0,0 +1,177 @@ +#!/bin/bash -i +# +# Purpose : HamPack uninstaller + +print_logo() { + cat << "EOF" + + + + ██╗ ██╗ █████╗ ███╗ ███╗██████╗ █████╗ ██████╗██╗ ██╗ + ██║ ██║██╔══██╗████╗ ████║██╔══██╗██╔══██╗██╔════╝██║ ██╔╝ + ███████║███████║██╔████╔██║██████╔╝███████║██║ █████╔╝ + ██╔══██║██╔══██║██║╚██╔╝██║██╔═══╝ ██╔══██║██║ ██╔═██╗ + ██║ ██║██║ ██║██║ ╚═╝ ██║██║ ██║ ██║╚██████╗██║ ██╗ + ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ + + + + +EOF +} + +# --- Main --- + +clear +print_logo + +echo "This will remove all packages and files installed by HamPack." +echo "" +read -rp "Are you sure you want to continue? [y/N] " confirm +[[ "$confirm" =~ ^[yY] ]] || { echo "Aborted."; exit 0; } +echo "" + +# Stop and remove graywolf systemd service +echo "Removing graywolf systemd service..." +if systemctl is-active --quiet graywolf 2>/dev/null; then + sudo systemctl disable --now graywolf +fi +if [ -f /etc/systemd/system/graywolf.service ]; then + sudo rm -f /etc/systemd/system/graywolf.service + sudo systemctl daemon-reload +fi + +# Remove compiled binaries +echo "Removing compiled binaries..." +rm -f ~/.local/bin/direwolf +rm -f ~/.local/bin/direwolf-* +rm -f ~/.local/bin/QtTermTCP +rm -f ~/.local/bin/kiwix-desktop +rm -f ~/.local/bin/kiwix-lib +rm -f ~/.local/bin/kiwix-serve +rm -f ~/.local/bin/kiwix-search +rm -f ~/.local/bin/kiwix-manage +rm -rf ~/.local/bin/yaac +rm -f ~/.local/bin/POTACAT.AppImage +rm -f ~/.local/bin/JS8Call +rm -f ~/.local/bin/dump1090 +rm -f ~/.local/bin/graywolf +rm -f ~/.local/bin/graywolf-modem +rm -rf ~/.local/share/graywolf + +# Remove HamPack scripts and binaries +echo "Removing HamPack scripts and binaries..." +rm -f ~/.local/bin/hampackrefresh +rm -f ~/.local/bin/hampackupdate +rm -f ~/.local/bin/hampackcheck +rm -f ~/.local/bin/hampack +rm -f ~/.local/bin/dx.py + +# Uninstall not1mm +echo "Uninstalling not1mm..." +if command -v uv &>/dev/null; then + uv tool uninstall not1mm 2>/dev/null || true +fi + +# Remove Flatpak applications +echo "Removing Flatpak applications..." +FLATPAKS=( + "io.sourceforge.wsjt.wsjtx" + "io.github.foldynl.QLog" +) +for pak in "${FLATPAKS[@]}"; do + if flatpak list 2>/dev/null | grep -qi "$pak"; then + flatpak uninstall --noninteractive "$pak" + fi +done + +# Remove system packages +echo "Removing system packages..." +UTILITIES=( + alsa-utils + aria2 + at-spi2-core + base-devel + boost + boost-libs + cmake + docopt + fldigi + flrig + gpds + gpsbabel + gtk4 + hamlib + jdk-openjdk + libappindicator-gtk3 + libkiwix + libtorrent-rasterbar + libnotify + libsecret + libxcrypt-compat + libxtst + libzim + meson + ninja + nss + pat-bin + python-yattag + qgis + qt6-base + qt6-tools + qt6-webengine + splat + util-linux-libs + voacapl + wine + winetricks + xdg-utils + zim-tools + zimwriterfs +) + +APPLICATIONS=( + chattervox-bin + chirp-next + gridtracker2 +) + +PACKAGES_TO_REMOVE=() +for pkg in "${UTILITIES[@]}" "${APPLICATIONS[@]}"; do + if pacman -Qi "$pkg" &>/dev/null; then + PACKAGES_TO_REMOVE+=("$pkg") + fi +done + +if [ ${#PACKAGES_TO_REMOVE[@]} -gt 0 ]; then + echo "Removing packages: ${PACKAGES_TO_REMOVE[*]}" + sudo pacman -Rns --noconfirm "${PACKAGES_TO_REMOVE[@]}" 2>/dev/null || \ + echo "Warning: some packages could not be removed (may be required by other software)." +else + echo "No system packages to remove." +fi + +# Remove Wine applications +echo "Removing Wine applications..." +rm -rf "$HOME/.wine/drive_c/VARA" +rm -rf "$HOME/.wine/drive_c/VARA FM" +rm -rf "$HOME/.wine/drive_c/VARA Terminal" +rm -rf "$HOME/.wine/drive_c/RMS Express" + +# Remove desktop files +echo "Removing desktop files..." +rm -f ~/.local/share/applications/hampack.desktop +rm -f ~/.local/share/applications/js8call.desktop +rm -f ~/.local/share/applications/yaac.desktop +rm -f ~/.local/share/applications/potacat.desktop +rm -f ~/.local/share/applications/qttermtcp.desktop + +update-desktop-database "$HOME/.local/share/applications/" 2>/dev/null || true + +# Remove HamPack state and data +echo "Removing HamPack state and data..." +rm -rf ~/.local/state/HamPack +rm -rf ~/.local/share/HamPack + +echo "" +echo "HamPack has been removed." diff --git a/install.sh b/install.sh index d06f8fe..ae03aad 100755 --- a/install.sh +++ b/install.sh @@ -33,8 +33,9 @@ rm -rf ~/.local/share/HamPack git clone https://gitea.young.computer/david/HamPack.git ~/.local/share/HamPack > /dev/null mkdir -p ~/.local/bin -sudo cp ~/.local/share/HamPack/hampackrefresh ~/.local/bin/hampackrefresh -sudo cp ~/.local/share/HamPack/hampackupdate ~/.local/bin/hampackupdate +cp ~/.local/share/HamPack/hampackrefresh ~/.local/bin/hampackrefresh +cp ~/.local/share/HamPack/hampackupdate ~/.local/bin/hampackupdate +cp ~/.local/share/HamPack/hampackremove ~/.local/bin/hampackremove cd ~/.local/share/HamPack diff --git a/sudo.sh b/sudo.sh index 18557ad..3155285 100755 --- a/sudo.sh +++ b/sudo.sh @@ -15,7 +15,7 @@ if [ $? -ne 0 ]; then fi sudo tee "$SUDOERS_FILE" > /dev/null << EOF -$USERNAME ALL=(ALL) NOPASSWD: /usr/bin/pacman, /usr/bin/cp, /usr/bin/udevadm, /usr/bin/systemctl, /usr/sbin/reboot, /usr/sbin/usermod +$USERNAME ALL=(ALL) NOPASSWD: /usr/bin/pacman, /usr/bin/cp, /usr/bin/udevadm, /usr/bin/systemctl, /usr/sbin/reboot, /usr/sbin/usermod, /usr/bin/make, /usr/bin/chown, /usr/sbin/groupadd, /usr/bin/install, /usr/bin/rm EOF # Verify the file is valid