VARA - Initial support for WINE and VARA

This commit is contained in:
Gaston Gonzalez
2025-02-01 01:14:42 -07:00
parent 105142cf90
commit eaf7123ea5
20 changed files with 419 additions and 6 deletions
+1 -1
View File
@@ -79,7 +79,7 @@ USERS_GID=1981
# new users to other groups.
# This is the list of groups that new non-system users will be added to
# Default:
EXTRA_GROUPS="bluetooth dialout cdrom floppy audio video plugdev users"
EXTRA_GROUPS="bluetooth dialout cdrom floppy audio video plugdev tty users"
# If ADD_EXTRA_GROUPS is set to something non-zero, the EXTRA_GROUPS
# option above will be default behavior for adding new, non-system users
+6 -1
View File
@@ -1,6 +1,6 @@
# Author : Gaston Gonzalez
# Date : 23 April 2024
# Updated : 25 December 2024
# Updated : 1 February 2025
# Description : bash profile
# All user accounts should be in the 'et-data' group to allow data sharing with
@@ -29,3 +29,8 @@ echo -e "${NC}"
export ET_USER_CONFIG=${HOME}/.config/emcomm-tools/user.json
export ET_LOG_DIR=${HOME}/.local/share/emcomm-tools
# Export environment variables to support WINE installs for VARA
export WINARCH="win32"
export WINEPREFIX="$HOME/.wine32"
export WINEDEBUG=-all
+2
View File
@@ -0,0 +1,2 @@
*.exe
*.zip
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Install wine dependencies to support VARA install
set -e
source ./common-checks.sh
if [[ ! -e ${WINEPREFIX} ]]; then
winetricks \
--unattended \
--force \
winxp \
sound=alsa \
dotnet35sp1 \
vb6run
if [[ $? -ne 0 ]]; then
show-err-dialog "Failed to instaill WINE dependencies."
exit 1
fi
else
echo -e "${WINEPREFIX} already exists. Skipping WINE dependency installation.\n"
fi
echo -e "${YELLOW}Run ${WHITE}./02-install-vara-hf.sh${YELLOW} to install VARA HF.${NC}"
+41
View File
@@ -0,0 +1,41 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Install VARA HF
set -e
source ./common-checks.sh
VERSION="4.8.9"
DOWNLOAD_FILE="vara-hf-${VERSION}.zip"
URL="https://downloads.winlink.org/VARA%20Products/VARA%20HF%20v${VERSION}%20setup.zip"
VARA_HOME="${HOME}/.wine32/drive_c/VARA"
et-log "Installing VARA HF..."
if [ ! -e ${DOWNLOAD_FILE} ]; then
et-log "Downloading VARA HF ${version} from ${URL}"
curl -s -f -L -o ${DOWNLOAD_FILE} "${URL}"
fi
if [ $? -ne 0 ]; then
et-log "Error downloading VARA HF ${VERSION}."
exit 1
fi
unzip -o ${DOWNLOAD_FILE}
wine 'VARA setup (Run as Administrator).exe'
if [ ! -e "${VARA_HOME}/nt4pdhdll.exe" ]; then
et-log "Install missing DLL..."
CWD=$(pwd)
cd ${VARA_HOME}
curl -s -f -L -O \
http://download.microsoft.com/download/winntsrv40/update/5.0.2195.2668/nt4/en-us/nt4pdhdll.exe && unzip nt4pdhdll.exe
cd ${CWD}
fi
+41
View File
@@ -0,0 +1,41 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Install VARA HF
set -e
source ./common-checks.sh
VERSION="4.3.8"
DOWNLOAD_FILE="vara-fm-${VERSION}.zip"
URL="https://downloads.winlink.org/VARA%20Products/VARA%20FM%20v${VERSION}%20setup.zip"
VARA_HOME="${HOME}/.wine32/drive_c/VARA"
et-log "Installing VARA FM..."
if [ ! -e ${DOWNLOAD_FILE} ]; then
et-log "Downloading VARA FM ${version} from ${URL}"
curl -s -f -L -o ${DOWNLOAD_FILE} "${URL}"
fi
if [ $? -ne 0 ]; then
et-log "Error downloading VARA FM ${VERSION}."
exit 1
fi
unzip -o ${DOWNLOAD_FILE}
wine 'VARA FM setup (Run as Administrator).exe'
if [ ! -e "${VARA_HOME}/nt4pdhdll.exe" ]; then
et-log "Install missing DLL..."
CWD=$(pwd)
cd ${VARA_HOME}
curl -s -f -L -O \
http://download.microsoft.com/download/winntsrv40/update/5.0.2195.2668/nt4/en-us/nt4pdhdll.exe && unzip nt4pdhdll.exe
cd ${CWD}
fi
+29
View File
@@ -0,0 +1,29 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Install VARA Terminal
set -e
source ./common-checks.sh
VERSION="1.2.2"
DOWNLOAD_FILE="vara-terminal-${VERSION}.zip"
URL="https://downloads.winlink.org/VARA%20Products/VARA%20Terminal%20V${VERSION}%20setup.zip"
et-log "Installing VARA Terminal..."
if [ ! -e ${DOWNLOAD_FILE} ]; then
et-log "Downloading VARA Terminal ${version} from ${URL}"
curl -s -f -L -o ${DOWNLOAD_FILE} "${URL}"
fi
if [ $? -ne 0 ]; then
et-log "Error downloading VARA Terminal ${VERSION}."
exit 1
fi
unzip -o ${DOWNLOAD_FILE}
wine 'VARA Terminal setup (Run as Administrator).exe'
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Run regedit
set -e
source ./common-checks.sh
echo -e "${YELLOW}"
echo -e "1. Expand HKEY_LOCAL_MACHINE > Software > Wine > Ports"
echo -e "2. In the main pain, right-click and select 'New' > 'String Value'"
echo -e "3. Set the name to ${WHITE}COM10${YELLOW} and the value to ${WHITE}/dev/et-cat${YELLOW}"
echo -e "4. Close the Registry Editor application"
echo -e "${NC}"
wine regedit
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 1 February 2025
# Purpose : Backup the ~/.wine32 directory for use in ETC image inclusion.
TODAY=$(date +"%Y%m%d")
BACKUP_FILE="${HOME}/etc-wine-backup-${HOSTNAME}-${TODAY}.tar.gz"
source /opt/emcomm-tools/bin/et-common
if [ -e "${BACKUP_FILE}" ]; then
echo -e -n "${RED}A backup file for today exists. Can ${WHITE}${BACKUP_FILE} ${RED}be overwritten? (y/n) ${NC}"
read response
[[ $response != [yY] ]] && echo "Skipping backup and exiting." && exit 1
fi
# All paths are relative to $HOME.
BACKUP_DIRS=(
".wine32"
)
tar -czf ${BACKUP_FILE} \
--transform 's|^.*\.local|.local|' \
-C "${HOME}" "${BACKUP_DIRS[@]}"
[ $? -ne 0 ] && et-log "Error creating backup" && exit 1
# Test that we can read if after we create it.
TAR_OUT=$(tar -tzf ${BACKUP_FILE})
[ $? -ne 0 ] && et-log "Can't read backup file: ${BACKUP_FILE}. Error creating backup." && exit 1
echo -e "${GREEN}Backup created: ${WHITE}${BACKUP_FILE}\n"
+30
View File
@@ -0,0 +1,30 @@
# Installing Windows Applications
The following instructions only need to be run once. They should be run
in this directory as your normal user (do not use 'sudo').
1. Install the WINE dependencies.
./01-install-wine-deps.sh
2. Install VARA HF. Accept the default settings and do not launch the program.
./02-install-vara-hf.sh
3. Install VARA FM. Accept the default settings and do not launch the program.
./03-install-vara-fm.sh
4. Install VARA Terminal. Install VARA FM. Accept the default settings and do not launch the program.
./04-install-vara-terminal.sh
5. Run the registery editor. Follow the instructions in the terminal.
./05-run-regedit.sh
6. If you want to include your WINE installation in a future EmComm Tools
Community image build, run the following to make a backup of your WINE
installation now.
./06-backup-wine-install.sh
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 1 February 2025
# Purpose : Performs various checks to ensure that changes can be made
# to a user's local WINE installation.
source /opt/emcomm-tools/bin/et-common
WINE_OUT=$(which winetricks)
if [[ $? -ne 0 ]]; then
echo -e "${RED}Wine is not installed. As root, first run: ${WHITE}/root/emcomm-tools-os-community/scripts/install-wine.sh${NC}"
exit 1
fi
if [[ "${EUID}" -eq 0 ]]; then
echo -e "${RED}This script must not be run as root. Run it as your normal user.${NC}"
exit 1
fi
if [[ -z "${WINARCH}" ]]; then
echo -e "The WINARCH environment variable is not set. Setting it for you."
export WINARCH="win32"
fi
if [[ -z "${WINEPREFIX}" ]]; then
echo -e "The WINEPREFIX environment variable is not set. Setting it for you."
export WINEPREFIX="${HOME}/.wine32"
fi
if [[ -z "${DISPLAY}" && -z "${WAYLAND_DISPLAY}" ]]; then
echo -e "${RED}No graphical environment detected. Run this command from a desktop session.${NC}"
echo -e "${RED}This can't be run from within Cubic.${NC}"
exit 1
fi
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 1 February 2025
# Purpose : Common environment variables and functions
export ESC="\x1B"
export RED="${ESC}[1;31m"
export BLUE="${ESC}[1;34m"
export GREEN="${ESC}[1;32m"
export WHITE="${ESC}[97m"
export YELLOW="${ESC}[1;33m"
export NC="${ESC}[0m"
show-err-dialog() {
local message="$1"
dialog --title "Notification" --msgbox "$message" 8 60
}
+1 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 14 January 2025
# Updated : 16 January 2025
# Updated : 1 February 2025
# Purpose : Back up select files from the user's home directory.
#
# The backups are limited to the following:
@@ -31,7 +31,6 @@ BACKUP_DIRS=(
".config/emcomm-tools"
".local/share/emcomm-tools"
".local/share/pat"
".ssh"
)
tar -czf ${BACKUP_FILE} \
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Run VARA FM
source /opt/emcomm-tools/bin/et-common
EXE="${HOME}/.wine32/drive_c/VARA FM/VARAFM.exe"
if [[ -e ${EXE} ]]; then
wine ~/.wine32/drive_c/VARA\ FM/VARAFM.exe
else
echo -e "${RED}"
echo -e "${EXE} does not exist."
echo -e "You might NOT have installed the windows subsystem (WINE)."
echo -e "Navigate to ${WHITE}${HOME}/add-ons/wine${RED} and follow the"
echo -e "instructions in the ${WHITE}README.md${RED} file."
echo -e "${NC}"
exit 1
fi
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Run VARA HF
source /opt/emcomm-tools/bin/et-common
EXE="${HOME}/.wine32/drive_c/VARA/VARA.exe"
if [[ -e ${EXE} ]]; then
wine ${EXE}
else
echo -e "${RED}"
echo -e "${EXE} does not exist."
echo -e "You might NOT have installed the windows subsystem (WINE)."
echo -e "Navigate to ${WHITE}${HOME}/add-ons/wine${RED} and follow the"
echo -e "instructions in the ${WHITE}README.md${RED} file."
echo -e "${NC}"
exit 1
fi
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Run VARA Terminal
source /opt/emcomm-tools/bin/et-common
EXE="${HOME}/.wine32/drive_c/VARA/VARA Terminal.exe"
if [[ -e ${EXE} ]]; then
wine ~/.wine32/drive_c/VARA/VARA\ Terminal.exe &
else
echo -e "${RED}"
echo -e "${EXE} does not exist."
echo -e "You might NOT have installed the windows subsystem (WINE)."
echo -e "Navigate to ${WHITE}${HOME}/add-ons/wine${RED} and follow the"
echo -e "instructions in the ${WHITE}README.md${RED} file."
echo -e "${NC}"
exit 1
fi
+17 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 17 December 2024
# Updated : 31 December 2024
# Updated : 28 January 2025
# Purpose : Install QtTermTCP
set -e
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
@@ -17,6 +17,22 @@ INSTALL_DIR="/opt/${APP}-${VERSION}"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
LINK_PATH="/opt/${APP}"
et-log "Enabling i386 architecture support.."
dpkg --add-architecture i386
apt update
et-log "Installing QtTermTCP 32-bit build dependencies..."
apt install \
qtbase5-dev:i386 \
qtbase5-dev-tools:i386 \
qt5-qmake:i386 \
qtchooser:i386 \
qtmultimedia5-dev:i386 \
libqt5serialport5-dev:i386 \
libfftw3-dev:i386 \
qttools5-dev-tools:i386 \
-y
et-log "Installing QtTermTCP build dependencies..."
apt install \
qtbase5-dev \
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 January 2025
# Updated : 1 February 2025
# Purpose : Install WINE to support VARA
WIN32_DIR="${HOME}/.win32"
et-log "Installing WINE..."
# Check for an existing i386 architecture
ARCH_OUT=$(dpkg --print-foreign-architectures | grep i386)
[ $? -ne 0 ] && dpkg --add-architecture i386
#if [ ! -e "/etc/apt/keyrings/winehq-archive.key" ]; then
# et-log "Adding apt keys for official wine repo"
# mkdir -pm755 /etc/apt/keyrings
# wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -sc)/winehq-$(lsb_release -sc).sources
# apt update
# apt install --install-recommends winehq-stable
#fi
apt install \
wine \
winetricks \
exe-thumbnailer \
-y
dialog --textbox wine.txt 15 74
tput sgr 0 && clear
+3 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 March 2024
# Updated : 31 December 2024
# Updated : 20 January 2025
# Purpose : Main installer for EmComm Tools OS Community
. ./env.sh
@@ -57,3 +57,5 @@ exitIfNotRoot
# Add user-specific data
./download-osm-maps.sh
./download-wikipedia.sh
./install-wine.sh
+27
View File
@@ -0,0 +1,27 @@
The base WINE applications have been installed to support a future
installation of Windows programs such as VARA HF, VARA FM, and VARA
Terminal. However, these applications can't be installed within this
session of Cubic. They must be installed on a running version of
EmComm Tools Community via a desktop session.
If you previously made a backup copy of your WINE installation using
the "$HOME/add-ons/wine/06-backup-wine-install.sh" script and would
like to bake it into this ISO image, perform the following:
1. Change into the skeleton directory now with:
cd /etc/skel
2. Copy your etc-wine-backup-*.tar.gz file using Cubic to this
directory.
3. Restore the backup into this directory with:
tar -xzf etc-wine-backup-*.tar.gz
4. Confirm that you see a `.wine32` directory here.
5. Delete the compressed backup file to reduce the size of the
final image.
rm etc-wine-backup-*.tar.gz