diff --git a/app-check b/app-check index d30b363..296e46e 100644 --- a/app-check +++ b/app-check @@ -2,7 +2,7 @@ #this script used to check for apps that need updates -UPDATEFILE=/run/user/1000/bapupdate.txt +UPDATEFILE=/run/user/$UID/bapupdate.txt #Delete file if exist if [ -f $UPDATEFILE ]; then @@ -609,12 +609,12 @@ else fi #----------------------------------------------------# -# ZYGRIB Viewer +# XYGRIB Viewer #----------------------------------------------------# -if [ -f /usr/bin/zyGrib ]; then - echo "ZYGRIB=Installed" >> $UPDATEFILE +if [ -f /usr/bin/XyGrib ]; then + echo "XYGRIB=Installed" >> $UPDATEFILE else - echo "ZYGRIB=Not_Installed" >> $UPDATEFILE + echo "XYGRIB=Not_Installed" >> $UPDATEFILE fi #----------------------------------------------------# diff --git a/build-a-pi b/build-a-pi index 8fadf41..4b440c3 100755 --- a/build-a-pi +++ b/build-a-pi @@ -57,6 +57,49 @@ EOF exit 0 fi +##################################### +# Old OS Check +##################################### +V_ID=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID="//;s/"//') + +if [ "$V_ID" -le 10 ]; then +NOTICEPATH=/run/user/$UID + +cat <${NOTICEPATH}/intro.txt +Build a Pi 3.2.0 and later does not support +RaspiOS Buster or earlier versions of RaspiOS. +You should consider upgrading to RaspiOS 11 +(Bullseye). By clicking ok you will be moved +to the last version of Build a Pi (3.1.4) that +supports Pi OS Buster. Please note there are +no plans to update Build a Pi for Buster going +forward. In other words, you are on your own +if it is broke and you are still running Pi OS +10 (Buster). + +EOF + +INTRO=$(yad --width=600 --height=300 --text-align=center --center --title="Out of Date OS Detected!" --show-uri \ + --image ${LOGO} --window-icon=${LOGO} --image-on-top --separator="|" --item-separator="|" \ + --text-info \ + --button="OK":1 <${NOTICEPATH}/intro.txt \ + --button="Exit":2 \ + >/dev/null 2>&1) + BUT=$? + echo $BUT + if [ $BUT = 2 ] || [ $BUT = 252 ]; then + exit + fi + rm ${NOTICEPATH}/intro.txt + cd $HOME/pi-build + git checkout buster + bash build-a-pi & exit +fi + +##################################### +# end Old OS Check +##################################### + #install YAD & jq as needed clear echo @@ -334,7 +377,6 @@ yad --center --list --checklist --width=600 --height=600 --separator="" \ false "M0IAX" "Tools for JS8Call Messages" \ false "WSJTX" "Weak Signal Digital Mode Software" \ false "PYQSO" "Logging Software" \ - false "CQRLOG" "Logging Software" \ false "HAMRS" "Logging Software" \ false "EES" "KM4ACK Emergency Email Server" \ false "QSSTV" "Slow Scan TV" \ @@ -356,7 +398,7 @@ fi if [ ${BUT} = 3 ]; then ADDAPPS=(CONKY PI-APRS CHIRP GARIM PAT PAT-MENU JS8CALL M0IAX WSJTX PYQSO - CQRLOG HAMRS EES QSSTV GRIDTRACKER HAMCLOCK PROPAGATION YAAC XASTIR GPREDICT TQSL + HAMRS EES QSSTV GRIDTRACKER HAMCLOCK PROPAGATION YAAC XASTIR GPREDICT TQSL GRIDCALC) for i in "${ADDAPPS[@]}"; do @@ -417,7 +459,7 @@ yad --center --list --checklist --width=600 --height=600 --separator="" \ false "BPQ" "LinBPQ Software" \ false "BATT" "Battery Test Script" \ false "VNC" "VNC Client Application" \ - false "ZYGRIB" "Grib File Viewer" \ + false "XYGRIB" "Grib File Viewer" \ --button="Exit":1 \ --button="Check All and Continue":3 \ --button="Install Selected":2 >${UTILITY} @@ -427,7 +469,7 @@ if [ ${BUT} = 252 ] || [ ${BUT} = 1 ]; then fi if [ ${BUT} = 3 ]; then - UTILAPPS=(DIPOLE PACKETSEARCH CALLSIGN TEMPCONVERT GPARTED SHOWLOG PISTATS TELNET PITERM QTSOUND SECURITY YGATE BPQ BATT VNC ZYGRIB) + UTILAPPS=(DIPOLE PACKETSEARCH CALLSIGN TEMPCONVERT GPARTED SHOWLOG PISTATS TELNET PITERM QTSOUND SECURITY YGATE BPQ BATT VNC XYGRIB) for i in "${UTILAPPS[@]}"; do echo "$i" >>${UTILITY} done @@ -472,7 +514,7 @@ cat >tempsound </dev/null 2>&1 rm -rf ${DIR} >/dev/null 2>&1 sudo apt -y autoremove > /dev/null 2>&1 +#remove libham (rigctl) installed from apt +#since it conflicts with hamlib installed from source +sudo apt purge -y libhamlib4 + #restore crontab crontab ${TEMPCRON} rm ${TEMPCRON} -##################################### -# Pat 12 Temp Workaround -##################################### -#This will move the user to the "version12" branch of the Pat Menu code -#until this can be implemented into the main branch of code. This will -#allow Pat Menu to support both the new version of Pat as well as older -#versions. This section of code needs to be removed once the "version12" -#branch is merged with the master branch - -PAT_VERSION=$(pat version | awk '{print $2}' | sed 's/v0.//;s/.0//') - -if [ "$PAT_VERSION" -le 11 ]; then -echo "pat version 11 detected" -else -echo "pat version 12 or greater detected" -echo "moving pat menu to the version12 branch" -cd $HOME/patmenu2 -git pull -git checkout version12 -fi - -##################################### -# END Pat 12 Temp Workaround -##################################### - echo "WE ARE ALL DONE HERE. If you close this window, you will have to reboot manually." #reboot when done diff --git a/changelog b/changelog index a65c5ad..cae8ab7 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,28 @@ -version=3.1.3 +version=3.2.0 + +3.2.0 fix hamlib - https://github.com/km4ack/pi-build/issues/338 + fix YAAC install - https://github.com/km4ack/pi-build/issues/339 + fix variable - https://github.com/km4ack/pi-build/issues/340 + fix QSSTV install - https://github.com/km4ack/pi-build/issues/346 + fix TQSL install - https://github.com/km4ack/pi-build/issues/347 + fix xgps error - https://github.com/km4ack/pi-build/issues/342 + fix sound card number issue - https://github.com/km4ack/pi-build/issues/348 + fix conky temperature display error - https://github.com/km4ack/pi-build/issues/334 + fix qsstv icon - https://github.com/km4ack/pi-build/issues/333 + build JS8Call from source - https://github.com/km4ack/pi-build/issues/341 + build wsjtx from source + revert chirp to apt install until it can be built from source on Bullseye - https://github.com/km4ack/pi-build/issues/337 + replace zybrig with xygrib + remove cqrlog - installing from apt breaks hamlib + update qtsoundmodem depends + install gpsd with apt - https://github.com/km4ack/pi-build/issues/321 + update ruby to 2.7 + update EES to PHP7.4 + fix EES sed statment (0.0.0.0:8080 to :5000) + increase swap file for JS8Call/WSJTX on Pi's with less RAM - https://github.com/km4ack/pi-build/issues/350 + NOTE: This version will NOT support Buster + +3.1.4 last update for Build a Pi to support Buster 3.1.3 Split app check from update script into new app-check script fix variable in menu-update script diff --git a/conky/.conkyrc b/conky/.conkyrc index a303d10..9f47c26 100644 --- a/conky/.conkyrc +++ b/conky/.conkyrc @@ -60,7 +60,7 @@ ${font} ${font Arial:bold:size=14}${color Yellow}SYSTEM ${color DarkSlateGray} ${hr 2} ${font Arial:bold:size=14}${color White}Frequency $alignr${freq_g cpu0}Ghz ${font Arial:bold:size=14}${color White}Uptime $alignr${uptime} -${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C +${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | cut -c6-9} C ${voffset -15} ${font Arial:bold:size=10}${color White}CPU${alignr}${cpu}% ${cpubar cpu} diff --git a/conky/conky-7inch b/conky/conky-7inch index 8fc384e..05e8835 100644 --- a/conky/conky-7inch +++ b/conky/conky-7inch @@ -51,7 +51,7 @@ ${font Arial:bold:size=08}${color Yellow}SYSTEM ${color DarkSlateGray} ${hr 2} ${font Arial:bold:size=08}${color White}Frequency $alignr${freq_g cpu0}Ghz ${font Arial:bold:size=08}${color White}Uptime $alignr${uptime} #TEMP -${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F +${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F ${voffset -10} ${font Arial:bold:size=6}${color White}CPU${alignr}${cpu}% ${cpubar cpu} diff --git a/conky/conky-large b/conky/conky-large index 044320b..e42346f 100644 --- a/conky/conky-large +++ b/conky/conky-large @@ -61,7 +61,7 @@ ${font Arial:bold:size=14}${color Yellow}SYSTEM ${color DarkSlateGray} ${hr 2} ${font Arial:bold:size=14}${color White}Frequency $alignr${freq_g cpu0}Ghz ${font Arial:bold:size=14}${color White}Uptime $alignr${uptime} #TEMP -${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F +${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F ${voffset -15} ${font Arial:bold:size=10}${color White}CPU${alignr}${cpu}% ${cpubar cpu} diff --git a/conky/conky-medium b/conky/conky-medium index 1237c45..153fd44 100644 --- a/conky/conky-medium +++ b/conky/conky-medium @@ -57,7 +57,7 @@ ${font Arial:bold:size=10}${color Yellow}SYSTEM ${color DarkSlateGray} ${hr 2} ${font Arial:bold:size=10}${color White}Frequency $alignr${freq_g cpu0}Ghz ${font Arial:bold:size=10}${color White}Uptime $alignr${uptime} #TEMP -${font Arial:bold:size=10}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F +${font Arial:bold:size=10}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F ${voffset -15} ${font Arial:bold:size=8}${color White}CPU${alignr}${cpu}% ${cpubar cpu} diff --git a/conky/conky-small b/conky/conky-small index 8a94e34..aab2b5b 100644 --- a/conky/conky-small +++ b/conky/conky-small @@ -58,7 +58,7 @@ ${font Arial:bold:size=08}${color Yellow}SYSTEM ${color DarkSlateGray} ${hr 2} ${font Arial:bold:size=08}${color White}Frequency $alignr${freq_g cpu0}Ghz ${font Arial:bold:size=08}${color White}Uptime $alignr${uptime} #TEMP -${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F +${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | awk -F "[=']" '{print($2 * 1.8)+32}'} F ${voffset -10} ${font Arial:bold:size=6}${color White}CPU${alignr}${cpu}% ${cpubar cpu} diff --git a/conky/setconky b/conky/setconky index 146fcc5..cc74c4f 100755 --- a/conky/setconky +++ b/conky/setconky @@ -39,7 +39,7 @@ echo sed -i '/vcgencmd/d' $TEMPFILE #add cel line sed -i '/#TEMP/a \ -${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE +${font Arial:bold:size=14}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE elif [ "$TEMP" = 'C' ] && [ "$CS" = 'conky-medium' ]; then #delete F line @@ -47,14 +47,14 @@ echo sed -i '/vcgencmd/d' $TEMPFILE #add cel line sed -i '/#TEMP/a \ -${font Arial:bold:size=10}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE +${font Arial:bold:size=10}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE elif [ "$TEMP" = 'C' ] && [ "$CS" = 'conky-small' ]; then #delete F line sed -i '/vcgencmd/d' $TEMPFILE #add cel line sed -i '/#TEMP/a \ -${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE +${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE elif [ "$TEMP" = 'C' ] && [ "$CS" = 'conky-7inch' ]; then #delete F line @@ -62,7 +62,7 @@ echo sed -i '/vcgencmd/d' $TEMPFILE #add cel line sed -i '/#TEMP/a \ -${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /opt/vc/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE +${font Arial:bold:size=08}${color White}Temp: $alignr ${exec /usr/bin/vcgencmd measure_temp | cut -c6-9} C' $TEMPFILE fi cp $TEMPFILE $HOME/.conkyrc diff --git a/diagnostic b/diagnostic index 3e9a163..48c845b 100644 --- a/diagnostic +++ b/diagnostic @@ -211,7 +211,14 @@ uname -a >>${DIR}/systeminfo.txt cat ${HOME}/direwolf.conf >${DIR}/direwolf.conf #get pat config file -cat ${HOME}/.wl2k/config.json >${DIR}/patconfig.txt +PAT_VERSION=$(pat version | awk '{print $2}' | sed 's/v0.//;s/.0//') + +if [ "$PAT_VERSION" -le 11 ]; then +PAT_CONFIG=${HOME}/.wl2k/config.json +else +PAT_CONFIG=$XDG_CONFIG_HOME/pat/config.json +fi +cat $PAT_CONFIG >${DIR}/patconfig.txt #remove winlink password sed -i 's/"secure_login_password":.*$/PASSWORD-REMOVED-FOR-YOUR-SECURITY/' ${DIR}/patconfig.txt diff --git a/functions/additional.function b/functions/additional.function index 2ac0304..5b48fca 100644 --- a/functions/additional.function +++ b/functions/additional.function @@ -81,9 +81,35 @@ PAT-MENU() { rm -rf "${HOME}/patmenu2" fi cd ${HOME} - git clone https://github.com/km4ack/patmenu2.git ${HOME}/patmenu2 && bash ${HOME}/patmenu2/setup + git clone https://github.com/km4ack/patmenu2.git ${HOME}/patmenu2 + ##################################### + # Pat 12 Temp Workaround + ##################################### + #This will move the user to the "version12" branch of the Pat Menu code + #until this can be implemented into the main branch of code. This will + #allow Pat Menu to support both the new version of Pat as well as older + #versions. This section of code needs to be removed once the "version12" + #branch is merged with the master branch + + PAT_VERSION=$(pat version | awk '{print $2}' | sed 's/v0.//;s/.0//') + + if [ "$PAT_VERSION" -le 11 ]; then + echo "pat version 11 detected" + else + echo "pat version 12 or greater detected" + echo "moving pat menu to the version12 branch" + cd $HOME/patmenu2 + git pull + git checkout version12 + fi + + ##################################### + # END Pat 12 Temp Workaround + ##################################### + + bash ${HOME}/patmenu2/setup sed -i "s/N0CALL/${CALL}/" ${HOME}/patmenu2/config - sed -i 's/1,0/2,0/g' ${HOME}/patmenu2/config + sed -i 's/1,0/3,0/g' ${HOME}/patmenu2/config #restore config files if [ -d ${DIR}/patconfig/ ]; then mv ${DIR}/patconfig/* ${HOME}/patmenu2/ @@ -93,41 +119,147 @@ PAT-MENU() { # JS8Call ################################## JS8CALL() { - cd ${DIR} - JS8LATE=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/href=//' | sed 's/"//g') - JS8PKG=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/\///g' | sed 's/href="http:files.js8call.com[0-9].[0-9].[0-9]//' | sed 's/"//') - wget --tries 2 --connect-timeout=60 ${JS8LATE} || echo "Can't Download JS8Call" >>${BUILDLOG} - sudo dpkg -i ${JS8PKG} - sudo apt-get --fix-broken -y install - sudo dpkg -i ${JS8PKG} + + #find how much memory we are working with + FREEMEM=$(free -m | grep Mem: | awk '{ print $2 }') + echo ${FREEMEM} + + ################################## + # INCREASE SWAP + ################################## + #increase swap file if less than 3G memory + if [ ${FREEMEM} -lt 3000 ]; then + echo "Increasing Swap size for build" + #increase swap size + sudo sed -i 's/#CONF_SWAPFILE=\/var\/swap/CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile + sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/' /etc/dphys-swapfile + sudo /etc/init.d/dphys-swapfile restart + sleep 10 + fi + +#https://9a3gos.com/install-js8call-2-0-0-rc3-on-ubuntu-19-10-hamlib/ + +#Verify HAMLIB installed or JS8 Won't Build. +if ! hash rigctl 2>/dev/null; then + source ${MYPATH}/functions/base.function && HAMLIB + source ${MYPATH}/config +fi + +echo "###############################" +echo "Installing JS8Call Dependancies" +echo "###############################" +sudo apt-get install -y build-essential gfortran autoconf automake libtool cmake git asciidoctor libfftw3-dev qtdeclarative5-dev texinfo libqt5multimedia5 libqt5multimedia5-plugins qtmultimedia5-dev libusb-1.0.0-dev libqt5serialport5-dev asciidoc libudev-dev + +JS8PKG=$(curl -s http://files.js8call.com/latest.html | grep .tgz | sed 's/.*js8call-/js8call-/;s/<.*$//') +JS8VERSION=$(echo $JS8PKG | sed 's/js8call-//;s/.tgz.*$//') +cd ${BUILDDIR} +echo "###################" +echo "Downloading JS8Call" +echo "###################" +wget http://files.js8call.com/$JS8VERSION/$JS8PKG +tar -xvf $JS8PKG +rm $JS8PKG +cd ${BUILDDIR}/js8call +echo "#################" +echo "Compiling JS8Call" +echo "#################" +cmake -D CMAKE_INSTALL_PREFIX=$HOME/Downloads/js8call +cmake --build . -- -j4 +sudo cp js8 js8call /usr/local/bin +sudo cp js8call.desktop /usr/share/applications +sudo cp ./artwork/icon_128.svg /usr/share/pixmaps/js8call_icon.svg + + #reset swap size to default + if [ ${FREEMEM} -lt 3000 ]; then + echo "Resetting swap size to default" + #increase swap size + sudo sed -i 's/CONF_SWAPFILE=\/var\/swap/#CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile + sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/' /etc/dphys-swapfile + sudo /etc/init.d/dphys-swapfile restart + sleep 10 + fi + +#Old Way left for reference + #cd ${DIR} + #JS8LATE=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/href=//' | sed 's/"//g') + #JS8PKG=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/\///g' | sed 's/href="http:files.js8call.com[0-9].[0-9].[0-9]//' | sed 's/"//') + #wget --tries 2 --connect-timeout=60 ${JS8LATE} || echo "Can't Download JS8Call" >>${BUILDLOG} + #sudo dpkg -i ${JS8PKG} + #sudo apt-get --fix-broken -y install + #sudo dpkg -i ${JS8PKG} } ################################## # WSJTX ################################## WSJTX() { - cd ${DIR} - WSPKG=$(curl -s https://physics.princeton.edu/pulsar/k1jt/wsjtx.html | grep armhf.deb | sed 's/^.*wsjtx/wsjtx/' | sed 's/deb.*$/deb/' | head -1) - wget --tries 2 --connect-timeout=60 --no-check-certificate https://physics.princeton.edu/pulsar/k1jt/$WSPKG - WSJTXSUCCESS=$? - sudo dpkg -i $WSPKG - sudo apt-get --fix-broken -y install - sudo dpkg -i $WSPKG + #find how much memory we are working with + FREEMEM=$(free -m | grep Mem: | awk '{ print $2 }') + echo ${FREEMEM} + + ################################## + # INCREASE SWAP + ################################## + #increase swap file if less than 3G memory + if [ ${FREEMEM} -lt 3000 ]; then + echo "Increasing Swap size for build" + #increase swap size + sudo sed -i 's/#CONF_SWAPFILE=\/var\/swap/CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile + sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/' /etc/dphys-swapfile + sudo /etc/init.d/dphys-swapfile restart + sleep 10 + fi + + + sudo apt install -y build-essential git cmake gfortran fftw3-dev qtbase5-dev qttools5-dev libqt5serialport5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5sql5-sqlite autoconf automake libtool texinfo libusb-1.0-0-dev libudev-dev libboost-all-dev asciidoctor + + FT8PKG=$(curl -s https://physics.princeton.edu/pulsar/k1jt/wsjtx.html | grep .tgz | sed 's/.*="//;s/">.*$//') + FT8DIR=$(echo $FT8PKG | sed 's/.tgz//') + cd ${BUILDDIR} + wget https://physics.princeton.edu/pulsar/k1jt/$FT8PKG + tar -xvf $FT8PKG + rm $FT8PKG + cd $FT8DIR + cmake -D CMAKE_INSTALL_PREFIX=${BUILDDIR}/$FT8DIR + cmake -DWSJT_SKIP_MANPAGES=ON -DWSJT_GENERATE_DOCS=OFF + sudo cmake --build . --target install -j4 + sudo mv ${BUILDDIR}/${FT8DIR}/bin/* /usr/local/bin/ + sudo cp ${BUILDDIR}/${FT8DIR}/share/applications/wsjtx.desktop /usr/share/applications/ + sudo cp ${BUILDDIR}/${FT8DIR}/share/pixmaps/wsjtx_icon.png /usr/share/pixmaps/ + + #reset swap size to default + if [ ${FREEMEM} -lt 3000 ]; then + echo "Resetting swap size to default" + #increase swap size + sudo sed -i 's/CONF_SWAPFILE=\/var\/swap/#CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile + sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/' /etc/dphys-swapfile + sudo /etc/init.d/dphys-swapfile restart + sleep 10 + fi + +#old way of installing. left for reference + #cd ${DIR} + #WSPKG=$(curl -s https://physics.princeton.edu/pulsar/k1jt/wsjtx.html | grep armhf.deb | sed 's/^.*wsjtx/wsjtx/' | sed 's/deb.*$/deb/' | head -1) + #wget --tries 2 --connect-timeout=60 --no-check-certificate https://physics.princeton.edu/pulsar/k1jt/$WSPKG + #WSJTXSUCCESS=$? + #sudo dpkg -i $WSPKG + #sudo apt-get --fix-broken -y install + #sudo dpkg -i $WSPKG #added to fix WSJTX 2.3.0 - sudo sed -i "s/# en_US.UTF-8/en_US.UTF-8/g" /etc/locale.gen - sudo locale-gen + #sudo sed -i "s/# en_US.UTF-8/en_US.UTF-8/g" /etc/locale.gen + #sudo locale-gen #end edit for WSJTX 2.3.0 #try sourcegorge if princeton.edu fails - WSJTX2() { - if [ "$WSJTXSUCCESS" ! = 0 ]; then - cd ${DIR} - wget --tries 2 --connect-timeout=60 https://sourceforge.net/projects/wsjt/files/wsjtx-2.2.2/wsjtx_2.2.2_armhf.deb - sudo dpkg -i wsjtx_2.2.2_armhf.deb - sudo apt-get --fix-broken -y install - sudo dpkg -i wsjtx_2.2.2_armhf.deb - fi - } - WSJTX2 + #WSJTX2() { + # if [ "$WSJTXSUCCESS" ! = 0 ]; then + # cd ${DIR} + # wget --tries 2 --connect-timeout=60 https://sourceforge.net/projects/wsjt/files/wsjtx-2.2.2/wsjtx_2.2.2_armhf.deb + # sudo dpkg -i wsjtx_2.2.2_armhf.deb + # sudo apt-get --fix-broken -y install + # sudo dpkg -i wsjtx_2.2.2_armhf.deb + # fi + #} + #WSJTX2 } @@ -140,7 +272,7 @@ CONKY() { fi touch ${HOME}/Documents/mylog.txt #conky will fail to load if this file doesn't exist touch /var/lib/misc/dnsmasq.leases #conky will fail to load if this file doesn't exist - sudo apt-get install -y ruby2.5 + sudo apt-get install -y ruby2.7 sudo gem install gpsd_client sudo gem install maidenhead cp ${MYPATH}/conky/.conkyrc ${HOME}/.conkyrc @@ -220,13 +352,18 @@ EOF ################################## PYQSO() { sudo apt-get install -y pyqso + } ################################## # CQRLOG ################################## CQRLOG() { - #sudo apt-get install -y cqrlog + + sudo apt-get install -y cqrlog + +OLDCODE(){ + #Old code left for reference sudo apt-get install -y lcl-2.0 lazarus-2.0 fp-compiler-3.0.4 fpc-3.0.4 libssl-dev git build-essential \ libmariadbclient-dev lazarus-ide lcl lcl-gtk2 lcl-nogui lcl-units lcl-utils lazarus lazarus-doc lazarus-src \ fp-units-misc fp-units-rtl fp-utils fpc fpc-source libssl-dev default-mysql-client-core default-mysql-server \ @@ -260,6 +397,7 @@ Categories=HamRadio;Utility EOF sudo mv cqrlog.desktop /usr/share/applications/ +} } @@ -267,6 +405,11 @@ EOF # CHIRP ################################## CHIRP() { + +sudo apt install -y chirp + +OLDCODE(){ + #left for reference cd ${DIR} || return wget --tries 2 --connect-timeout=60 https://trac.chirp.danplanet.com/chirp_daily/LATEST/ CHIRPBUILD=$(cat index.html | grep .tar.gz | grep chirp-daily- | awk '{ print $6 }' | sed 's/.*"//' | sed 's/>//' | sed 's/[<].*$//') @@ -280,6 +423,7 @@ CHIRP() { sudo python setup.py install pip install future } +} ################################## # GARIM @@ -303,7 +447,7 @@ GARIM() { # QSSTV ################################## QSSTV() { - sudo apt-get install -y g++ libfftw3-dev qt5-default libpulse-dev libhamlib-dev libasound2-dev libv4l-dev libopenjp2-7 libopenjp2-7-dev + sudo apt-get install -y g++ libfftw3-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libpulse-dev libhamlib-dev libasound2-dev libv4l-dev libopenjp2-7 libopenjp2-7-dev cd ${BUILDDIR} || return @@ -318,6 +462,8 @@ QSSTV() { sudo make clean cd ${BUILDDIR} || return rm *.gz + mkdir -p /usr/local/share/pixmaps/ + sudo cp ${BUILDDIR}/${SSTVTAR}/icons/qsstv.png /usr/local/share/pixmaps/ cat >qsstv.desktop </dev/null; then - sudo apt install -y php7.3 + if ! hash php7.4 2>/dev/null; then + sudo apt install -y php7.4 fi #install ghostwriter if needed #this is used to mod the new index.html @@ -495,7 +641,7 @@ EES() { sudo sed -i 's/REMINDER\ FOR\ OPERATOR\ TO\ DO\ SOMETHING/ENABLE\ AUTO\ POST\ REPLY\ IN\ CRON/' /var/www/html/config.php cd ${DIR} || return #Change Pat Winlink port so it won't interfer with the EES - sed -i 's/0.0.0.0:8080/0.0.0.0:5000/' ${HOME}/.wl2k/config.json + sed -i 's/:8080/:5000/' ${XDG_CONFIG_HOME}/pat/config.json sed -i 's/PORT=8080/PORT=5000/' ${HOME}/patmenu2/config sudo killall pat @@ -608,7 +754,7 @@ GPREDICT() { # TQSL ################################## TQSL() { - sudo apt install -y cmake g++ libexpat1-dev libssl-dev libdb++-dev libcurl4-openssl-dev libwxgtk3.0-dev + sudo apt install -y cmake g++ libexpat1-dev libssl-dev libdb++-dev libcurl4-openssl-dev libwxgtk3.0-gtk3-dev cd ${BUILDDIR} || return CUR=$(curl -s http://www.arrl.org/tqsl-download | grep "for Linux" | sed 's/.*TQSL //' | awk '{print $1}') wget http://www.arrl.org/tqsl/tqsl-${CUR}.tar.gz diff --git a/functions/base.function b/functions/base.function index 318ce40..34f6baa 100644 --- a/functions/base.function +++ b/functions/base.function @@ -58,14 +58,21 @@ HSTOOLS() { GPS() { cd ${BUILDDIR} || return - #old gpsd install left for reference - #wget --tries 2 --connect-timeout=60 https://raw.githubusercontent.com/km4ack/pi-scripts/master/gpsinstall - #chmod +x ${DIR}/gpsinstall - #sudo ${DIR}/gpsinstall - #rm ${DIR}/gpsinstall +echo "##########################" +echo "# Installing GPS #" +echo "##########################" +sudo apt install -y python3-gps gpsd-tools gpsd-clients gpsd chrony python3-gi-cairo +sudo mv /etc/default/gpsd /etc/default/gpsd.org +sudo wget https://raw.githubusercontent.com/km4ack/pi-scripts/master/gpsd -P /etc/default/ +sudo echo "refclock SHM 0 offset 0.5 delay 0.2 refid NMEA" | tee -a /etc/chrony/chrony.conf +#line below added per this issue - https://github.com/km4ack/pi-build/issues/146 24SEPT2020 +ln -s /lib/systemd/system/gpsd.service /etc/systemd/system/multi-user.target.wants/ +OLDCODE(){ +#code below built gpsd from source. This is no longer needed with the release of +#bullseye in late 2021. We can now isntall gpsd with apt. #begin gpsd change 11OCT2021 - see https://github.com/km4ack/pi-build/issues/316 - sudo apt-get -y install scons libncurses5-dev python-dev pps-tools chrony + sudo apt-get -y install scons libncurses5-dev python-dev pps-tools chrony python-gi-cairo sudo ldconfig cd ${BUILDDIR} wget http://download.savannah.gnu.org/releases/gpsd/gpsd-3.23.1.tar.gz @@ -82,6 +89,7 @@ GPS() { echo "refclock SHM 0 offset 0.5 delay 0.2 refid NMEA" | sudo tee -a /etc/chrony/chrony.conf fi #end gpsd change 11OCT2021 +} #Set GPS by serial ID #GPS Variable set by main script or update script and placed in config file @@ -149,7 +157,7 @@ EOF HAMLIB() { PACKAGE=hamlib CLEANSOURCE - sudo apt install -y libusb-1.0 libusb-dev + sudo apt install libusb-1.0-0 libusb-1.0-0-dev cd ${BUILDDIR} || return NEWRIG=$(curl -s https://sourceforge.net/projects/hamlib/files/latest/download | grep -o https://downloads.sourceforge.net/project/hamlib/hamlib/[0-9].[0-9] | @@ -185,7 +193,7 @@ DIREWOLF() { make install-conf sudo make clean sed -i "s/N0CALL/${CALL}/" "${HOME}/direwolf.conf" - sed -i 's/# ADEVICE plughw:1,0/ADEVICE plughw:2,0/' ${HOME}/direwolf.conf + sed -i 's/# ADEVICE plughw:1,0/ADEVICE plughw:3,0/' ${HOME}/direwolf.conf sed -i '/#PTT\ \/dev\/ttyUSB0\ RTS/a #Uncomment line below for PTT with sabrent sound card\n#PTT RIG 2 localhost:4532' ${HOME}/direwolf.conf } diff --git a/functions/utility.function b/functions/utility.function index 3b33f2d..cb6e54a 100644 --- a/functions/utility.function +++ b/functions/utility.function @@ -193,13 +193,13 @@ PISTATS() { wget http://www.w1hkj.com/PI/${CUR} tar -xzvf ${CUR} rm ${CUR} - PISTATDIR=$(ls ${HOME} | grep pistats) + PISTATDIR=$(ls ${BUILDDIR} | grep pistats) cd ${PISTATDIR} || return sudo apt-get install -y libfltk1.3-dev make - make clean sudo mv pistats /usr/local/bin sudo mv ${BUILDDIR}/${PISTATDIR}/data/pistats.desktop /usr/share/applications/ + make clean cd ${HOME} || return } @@ -417,11 +417,11 @@ VNC() { } ################################## -# ZYGRIB Viewer +# XYGRIB Viewer ################################## -ZYGRIB() { - sudo apt install -y zygrib - sudo apt install -y zygrib-maps +XYGRIB() { + sudo apt install -y xygrib + } ################################## @@ -512,7 +512,7 @@ sudo mv /run/user/$UID/packetsearch.desktop /usr/share/applications/ #Documentation - https://www.cantab.net/users/john.wiseman/Documents/QtSoundModem.html QTSOUND(){ -sudo apt install libqt5serialbus5 +sudo apt install -y libqt5serialport5 cd ${HOME}/Downloads || return wget --tries 2 --connect-timeout=60 https://www.cantab.net/users/john.wiseman/Downloads/Beta/piQtSoundModem chmod +x piQtSoundModem diff --git a/update b/update index 4b10a74..40685d3 100755 --- a/update +++ b/update @@ -45,6 +45,49 @@ FINISH() { trap FINISH EXIT +##################################### +# Old OS Check +##################################### +V_ID=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID="//;s/"//') + +if [ "$V_ID" -le 10 ]; then +NOTICEPATH=/run/user/$UID + +cat <${NOTICEPATH}/intro.txt +Build a Pi 3.2.0 and later does not support +RaspiOS Buster or earlier versions of RaspiOS. +You should consider upgrading to RaspiOS 11 +(Bullseye). By clicking ok you will be moved +to the last version of Build a Pi (3.1.4) that +supports Pi OS Buster. Please note there are +no plans to update Build a Pi for Buster going +forward. In other words, you are on your own +if it is broke and you are still running Pi OS +10 (Buster). + +EOF + +INTRO=$(yad --width=600 --height=300 --text-align=center --center --title="Out of Date OS Detected!" --show-uri \ + --image ${LOGO} --window-icon=${LOGO} --image-on-top --separator="|" --item-separator="|" \ + --text-info \ + --button="OK":1 <${NOTICEPATH}/intro.txt \ + --button="Exit":2 \ + >/dev/null 2>&1) + BUT=$? + echo $BUT + if [ $BUT = 2 ] || [ $BUT = 252 ]; then + exit + fi + rm ${NOTICEPATH}/intro.txt + cd $HOME/pi-build + git checkout buster + bash build-a-pi & exit +fi + +##################################### +# end Old OS Check +##################################### + #remove temp dir if exist #fix issue 108 https://github.com/km4ack/pi-build/issues/108 #Thanks to N5RKS for finding the bug @@ -411,7 +454,6 @@ yad --center --list --checklist --width=600 --height=600 --separator="" \ false "YAAC" "$YAAC" "Yet Another APRS Client" \ false "PI-APRS" "$PIAPRS" "APRS Messaging Client" \ false "PYQSO" "$PYQSO" "Logging Software" \ - false "CQRLOG" "$CQRLOG" "Logging Software" \ false "HAMRS" "$HAMRS" "Logging Software" \ false "QSSTV" "$QSSTV" "Slow scan TV" \ false "GRIDTRACKER" "$GRIDTRACK" "Track grids in WSJTX" \ @@ -484,7 +526,7 @@ yad --center --list --checklist --width=600 --height=600 --separator="" \ false "BPQ" "$BPQ" "LinBPQ Software" \ false "BATT" "$BATT" "Battery Test Script" \ false "VNC" "$VNC" "VNC Viewer Application" \ - false "ZYGRIB" "$ZYGRIB" "Grib File Viewer" \ + false "XYGRIB" "$XYGRIB" "Grib file viewer" \ --button="Exit":1 \ --button="Install/Update Selected":2 >${UTILITY} BUT=$? @@ -571,34 +613,14 @@ bash ${HOME}/pi-build/menu-update #Remove temp files rm ${BASE} ${ADDITIONAL} ${UTILITY} ${FLSUITE} >/dev/null 2>&1 +#remove libham (rigctl) installed from apt +#since it conflicts with hamlib installed from source +sudo apt purge -y libhamlib4 + #restore crontab crontab ${TEMPCRON} rm ${TEMPCRON} -##################################### -# Pat 12 Temp Workaround -##################################### -#This will move the user to the "version12" branch of the Pat Menu code -#until this can be implemented into the main branch of code. This will -#allow Pat Menu to support both the new version of Pat as well as older -#versions. This section of code needs to be removed once the "version12" -#branch is merged with the master branch - -PAT_VERSION=$(pat version | awk '{print $2}' | sed 's/v0.//;s/.0//') - -if [ "$PAT_VERSION" -le 11 ]; then -echo "pat version 11 detected" -else -echo "pat version 12 or greater detected" -echo "moving pat menu to the version12 branch" -cd $HOME/patmenu2 -git pull -git checkout version12 -fi - -##################################### -# END Pat 12 Temp Workaround -##################################### #reboot when done yad --width=400 --height=200 --title="Reboot" --image ${LOGO} \ --text-align=center --skip-taskbar --image-on-top \