Skip to content

Merge branch 'devel' #9

Merge branch 'devel'

Merge branch 'devel' #9

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
appimage:
name: AppImage
runs-on: ubuntu-latest
container:
image: "ubuntu:18.04"
env:
DEBIAN_FRONTEND: noninteractive
APPIMAGE_EXTRACT_AND_RUN: "1"
steps:
- name: Install dependencies
run: |
apt-get update -qq
apt-get install -y --no-install-recommends software-properties-common
add-apt-repository -y ppa:gnuradio/gnuradio-releases
add-apt-repository -y ppa:git-core/ppa
apt-get install -y --no-install-recommends \
git \
build-essential \
autoconf \
automake \
cmake \
libtool \
wget \
qt5-default \
qt5-gtk-platformtheme \
qttranslations5-l10n \
libqt5svg5-dev \
libboost-dev \
libpulse-dev \
portaudio19-dev \
liblog4cpp5-dev \
gnuradio-dev \
libairspy-dev \
libairspyhf-dev \
libfreesrp-dev \
libhackrf-dev \
libusb-1.0-0-dev \
libsoapysdr-dev \
soapysdr-module-remote \
libuhd-dev \
liborc-0.4-dev \
libhidapi-dev
cd /tmp
git clone https://github.com/Mr-Precise/rtl-sdr
cd rtl-sdr
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DDETACH_KERNEL_DRIVER=ON -DENABLE_ZEROCOPY=ON ..
make -j4
make install
ldconfig
cd /tmp
git clone https://github.com/Nuand/bladeRF.git
cd bladeRF
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
make install
ldconfig
cd /tmp
git clone https://github.com/dl1ksv/gr-fcdproplus.git
cd gr-fcdproplus
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
make install
ldconfig
cd /tmp
git clone https://gitea.osmocom.org/sdr/libosmo-dsp.git
cd libosmo-dsp
autoreconf -i
./configure --prefix=/usr
make -j4
make install
ldconfig
cd /tmp
git clone https://gitea.osmocom.org/sdr/gr-iqbal.git
cd gr-iqbal
git checkout gr3.8
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_MODULES_DIR=/usr/lib/x86_64-linux-gnu/cmake ..
make -j4
make install
ldconfig
cd /tmp
git clone https://gitea.osmocom.org/sdr/gr-osmosdr.git
cd gr-osmosdr
git checkout origin/gr3.8
git cherry-pick -n 9c09c90d920dd4906fa8bb9d8443eef84d2565a3
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_MODULES_DIR=/usr/lib/x86_64-linux-gnu/cmake -DENABLE_PYTHON=False ..
make -j4
make install
ldconfig
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
mkdir build
cd build
cmake ..
- name: Compile
working-directory: build
run: make -j4
- name: Build AppImage
run: ./appimage.sh
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: gqrx-appimage-${{ github.run_id }}
path: Gqrx-*.AppImage
macos:
name: MacOS
runs-on: macos-12
steps:
- name: Check for Secret availability
id: secret-check
run: |
if [ "${{ secrets.BUILD_CERTIFICATE_BASE64 }}" != '' ]; then
echo "available=true" >> $GITHUB_OUTPUT;
else
echo "available=false" >> $GITHUB_OUTPUT;
fi
- name: Install dependencies
run: |
brew update
brew install --HEAD librtlsdr
brew install airspy airspyhf boost dylibbundler gnuradio hackrf libbladerf libserialport portaudio pybind11 uhd qt@6 || true
brew tap pothosware/homebrew-pothos
brew install soapyremote
cd /tmp
git clone https://github.com/analogdevicesinc/libiio.git
cd libiio
git checkout v0.23
mkdir build
cd build
cmake ..
make -j4
sudo make install
cd /tmp
git clone https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
mkdir build
cd build
cmake ..
make -j4
sudo make install
cd /tmp
git clone https://github.com/pothosware/SoapyPlutoSDR.git
cd SoapyPlutoSDR
mkdir build
cd build
cmake ..
make -j4
make install
cd /tmp
cp /Library/Frameworks/iio.framework/iio /usr/local/lib/libiio.dylib
install_name_tool -id "/usr/local/lib/libiio.dylib" /usr/local/lib/libiio.dylib
cp /Library/Frameworks/ad9361.framework/ad9361 /usr/local/lib/libad9361.dylib
install_name_tool -id "/usr/local/lib/libad9361.dylib" /usr/local/lib/libad9361.dylib
install_name_tool -delete_rpath /Library/Frameworks /usr/local/lib/libad9361.dylib
install_name_tool -change @rpath/iio.framework/Versions/0.23/iio /usr/local/lib/libiio.dylib /usr/local/lib/libad9361.dylib
install_name_tool -change @rpath/iio.framework/Versions/0.23/iio /usr/local/lib/libiio.dylib /usr/local/lib/SoapySDR/modules0.*/libPlutoSDRSupport.so
install_name_tool -change @rpath/ad9361.framework/Versions/0.2/ad9361 /usr/local/lib/libad9361.dylib /usr/local/lib/SoapySDR/modules0.*/libPlutoSDRSupport.so
cd /tmp
git clone https://gitea.osmocom.org/sdr/gr-iqbal.git
cd gr-iqbal
git submodule update --init --recursive
mkdir build
cd build
cmake ..
make -j4
make install
cd /tmp
git clone https://gitea.osmocom.org/sdr/gr-osmosdr.git
cd gr-osmosdr
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wno-register ..
LIBRARY_PATH=/usr/local/opt/icu4c/lib make -j4
make install
- name: Install Apple certificate
if: ${{ steps.secret-check.outputs.available == 'true' }}
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure
run: mkdir build && cd build && cmake ..
- name: Compile
working-directory: build
run: make -j4
- name: Build app bundle
run: ./macos_bundle.sh ${{ steps.secret-check.outputs.available }}
- name: Notarize app bundle
if: ${{ steps.secret-check.outputs.available == 'true' }}
env:
NOTARIZE_USERNAME: ${{ secrets.NOTARIZE_USERNAME }}
NOTARIZE_TEAM_ID: ${{ secrets.NOTARIZE_TEAM_ID }}
NOTARIZE_PASSWORD: ${{ secrets.NOTARIZE_PASSWORD }}
run: |
ditto -c -k --keepParent Gqrx.app Gqrx.zip
xcrun notarytool submit Gqrx.zip --apple-id "$NOTARIZE_USERNAME" --team-id "$NOTARIZE_TEAM_ID" --password "$NOTARIZE_PASSWORD" --wait
- name: Staple app bundle
if: ${{ steps.secret-check.outputs.available == 'true' }}
run: xcrun stapler staple --verbose Gqrx.app
- name: Create DMG
run: |
GQRX_VERSION=$(<build/version.txt)
hdiutil create Gqrx.dmg -srcfolder Gqrx.app -format UDZO -fs HFS+ -volname "Gqrx $GQRX_VERSION"
- name: Notarize DMG
if: ${{ steps.secret-check.outputs.available == 'true' }}
env:
NOTARIZE_USERNAME: ${{ secrets.NOTARIZE_USERNAME }}
NOTARIZE_TEAM_ID: ${{ secrets.NOTARIZE_TEAM_ID }}
NOTARIZE_PASSWORD: ${{ secrets.NOTARIZE_PASSWORD }}
run: |
xcrun notarytool submit Gqrx.dmg --apple-id "$NOTARIZE_USERNAME" --team-id "$NOTARIZE_TEAM_ID" --password "$NOTARIZE_PASSWORD" --wait
- name: Staple DMG
if: ${{ steps.secret-check.outputs.available == 'true' }}
run: xcrun stapler staple --verbose Gqrx.dmg
- name: Rename DMG
run: |
GQRX_VERSION=$(<build/version.txt)
mv Gqrx.dmg Gqrx-$GQRX_VERSION.dmg
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: gqrx-macos-${{ github.run_id }}
path: Gqrx-*.dmg