Merge pull request #2892 from srcejon/ubuntu-26.04

Add Ubuntu 26.04 Qt 6 .deb github build action
This commit is contained in:
Edouard Griffiths
2026-08-17 20:48:03 +02:00
committed by GitHub
5 changed files with 444 additions and 355 deletions
+78
View File
@@ -0,0 +1,78 @@
name: SDRangel Linux Qt6 release build
on:
push:
branches:
- linux_github_release
- ubuntu-26.04
tags:
- 'v*'
workflow_dispatch:
jobs:
build_deb:
strategy:
fail-fast: false
matrix:
os: [ubuntu-26.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install software-properties-common
#sudo add-apt-repository -y ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get -y install build-essential cmake git xxd \
devscripts fakeroot debhelper libfftw3-dev \
qt6-base-dev qt6-base-private-dev qt6-scxml-dev \
qt6-multimedia-dev qt6-positioning-dev qt6-location-dev qt6-websockets-dev qt6-webengine-dev \
qt6-serialport-dev qt6-speech-dev qt6-charts-dev qt6-svg-dev qt6-declarative-dev \
qtchooser qt6-tools-dev qt6-tools-dev-tools libqt6quick6 qt6-location-plugins \
qml6-module-qtlocation qml6-module-qtpositioning qml6-module-qtquick-window \
qml6-module-qtquick-dialogs qml6-module-qtquick-controls qml6-module-qtquick-layouts \
qml6-module-qt5compat-graphicaleffects qt6-speech-speechd-plugin \
libfaad-dev libflac-dev zlib1g-dev \
libusb-1.0-0-dev libhidapi-dev libboost-all-dev libasound2-dev libopencv-dev libopencv-imgcodecs-dev \
libxml2-dev bison flex ffmpeg libavcodec-dev libavformat-dev \
libopus-dev libcodec2-dev libairspy-dev libhackrf-dev \
libbladerf-dev libsoapysdr-dev libiio-dev libuhd-dev libhamlib-dev libunwind-dev \
libavahi-client-dev libavahi-common-dev libaio-dev \
python3-mako python3-cheetah python3-numpy \
autoconf automake libtool ninja-build
bash cmake/ci/build_sdrplay.sh
- name: Build SDRangel
run: |
if [ "${RUNNING_IN_ACT:-}" = "true" ]; then
mkdir -p /tmp/build
rsync -a --delete . /tmp/build/sdrangel/
cd /tmp/build/sdrangel
debuild -eQT_VERSION=6 -i -us -uc -b
cp ../sdrangel_*_amd64.deb "$GITHUB_WORKSPACE"/
else
debuild -eQT_VERSION=6 -i -us -uc -b
fi
- name: Get version
id: get_version
run: |
if [[ "${{github.ref_name}}" == "linux_github_release" ]]; then
echo "version=$(echo ${{github.sha}} | cut -c1-7)" >> $GITHUB_OUTPUT
else
echo "version=$(echo ${{github.ref_name}} | cut -c2-)" >> $GITHUB_OUTPUT
fi
- name: Rename
run: mv ../sdrangel_*_amd64.deb sdrangel_${{ steps.get_version.outputs.version }}_${{ matrix.os }}_amd64.deb
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sdrangel_${{ steps.get_version.outputs.version }}_${{ matrix.os }}_amd64.deb
path: sdrangel_${{ steps.get_version.outputs.version }}_${{ matrix.os }}_amd64.deb
- name: Upload release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: sdrangel_${{ steps.get_version.outputs.version }}_${{ matrix.os }}_amd64.deb
+309 -309
View File
File diff suppressed because it is too large Load Diff
+31 -43
View File
@@ -1,5 +1,5 @@
Source: sdrangel
Maintainer: Edouard Griffiths, F4EXB <f4exb06@gmail.com>
Maintainer: Edouard Griffiths (F4EXB) <f4exb06@gmail.com>
Section: hamradio
Priority: optional
Standards-Version: 3.9.2
@@ -7,33 +7,33 @@ Homepage: https://github.com/f4exb/sdrangel
Build-Depends: debhelper (>= 9),
libfftw3-dev,
libopengl-dev,
qtbase5-dev,
libqt5opengl5-dev,
qttools5-dev,
qttools5-dev-tools,
qtmultimedia5-dev,
libqt5multimedia5-plugins,
libqt5websockets5-dev,
libqt5quick5,
libqt5texttospeech5-dev,
libqt5gamepad5-dev,
libqt5svg5-dev,
qml-module-qtlocation,
qml-module-qtpositioning,
qml-module-qtquick-window2,
qml-module-qtquick-dialogs,
qml-module-qtquick-controls,
qml-module-qtquick-controls2,
qml-module-qtquick-layouts,
qml-module-qtgraphicaleffects,
libqt5serialport5-dev,
libqt5charts5-dev,
libqt5texttospeech5-dev,
qtdeclarative5-dev,
qtpositioning5-dev,
qtlocation5-dev,
qtwebengine5-dev,
qtbase5-private-dev,
qtbase5-dev | qt6-base-dev,
libqt5opengl5-dev | qt6-base-dev,
qttools5-dev | qt6-tools-dev,
qttools5-dev-tools | qt6-tools-dev-tools,
qtmultimedia5-dev | qt6-multimedia-dev,
libqt5multimedia5-plugins | qt6-multimedia-dev,
libqt5websockets5-dev | qt6-websockets-dev,
libqt5quick5 | libqt6quick6,
libqt5texttospeech5-dev | qt6-speech-dev,
libqt5gamepad5-dev | qt6-base-dev,
libqt5svg5-dev | qt6-svg-dev,
qml-module-qtlocation | qml6-module-qtlocation,
qml-module-qtpositioning | qml6-module-qtpositioning,
qml-module-qtquick-window2 | qml6-module-qtquick-window,
qml-module-qtquick-dialogs | qml6-module-qtquick-dialogs,
qml-module-qtquick-controls | qml6-module-qtquick-controls,
qml-module-qtquick-controls2 | qml6-module-qtquick-controls,
qml-module-qtquick-layouts | qml6-module-qtquick-layouts,
qml-module-qtgraphicaleffects | qml6-module-qt5compat-graphicaleffects,
libqt5serialport5-dev | qt6-serialport-dev,
libqt5charts5-dev | qt6-charts-dev,
qtdeclarative5-dev | qt6-declarative-dev,
qtpositioning5-dev | qt6-positioning-dev,
qtlocation5-dev | qt6-location-dev,
qtwebengine5-dev | qt6-webengine-dev,
qtbase5-private-dev | qt6-base-private-dev,
qtbase5-dev | qt6-scxml-dev,
libusb-1.0-0-dev,
libhidapi-dev,
libboost-all-dev,
@@ -63,7 +63,6 @@ Build-Depends: debhelper (>= 9),
libavahi-common-dev,
libaio-dev,
xxd,
libpostproc-dev,
libcodec2-dev,
libbladerf-dev,
libsoapysdr-dev,
@@ -79,30 +78,19 @@ Package: sdrangel
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
${qt:Depends},
libasound2,
libgl1,
libglx-mesa0,
libqt5multimedia5-plugins,
libqt5gamepad5,
libqt5svg5,
qtspeech5-speechd-plugin,
pulseaudio | pipewire-pulse,
ffmpeg,
gstreamer1.0-libav,
qml-module-qtlocation,
qml-module-qtpositioning,
qml-module-qtquick-window2,
qml-module-qtquick-dialogs,
qml-module-qtquick-controls,
qml-module-qtquick-controls2,
qml-module-qtquick-layouts,
qml-module-qtgraphicaleffects
gstreamer1.0-libav
Description: SDR/Analyzer/Generator front-end for various hardware
SDR/Analyzer/Generator front-end for Airspy, BladeRF, HackRF,
RTL-SDR, FunCube, LimeSDR, PlutoSDR, RSP, USRP.
Also File source and sink for I/Q samples, network I/Q sources with
remote instance.
Based on Qt5 framework and OpenGL for the spectrum and scope rendering.
Based on the Qt framework and OpenGL for the spectrum and scope rendering.
Builds on Linux, Windows and Mac O/S
Reception modes supported:
Analog: AM, ATV, NFM, WFM, SSB, broadcast FM, APT, ILS, VOR
+18 -1
View File
@@ -1,9 +1,26 @@
#!/usr/bin/make -f
# Override with "debuild -eQT_VERSION=6 ..." to build the Qt6 package.
QT_VERSION ?= 5
ifeq ($(QT_VERSION),5)
QT_CMAKE_OPTION := -DENABLE_QT6=OFF
QT_RUNTIME_DEPENDS := libqt5multimedia5-plugins, qtspeech5-speechd-plugin, qml-module-qtlocation, qml-module-qtpositioning, qml-module-qtquick-window2, qml-module-qtquick-dialogs, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtquick-layouts, qml-module-qtgraphicaleffects
else ifeq ($(QT_VERSION),6)
QT_CMAKE_OPTION := -DENABLE_QT6=ON -DENABLE_PERSEUS=OFF -DENABLE_BLADERF=OFF -DENABLE_MIRISDR=OFF -DENABLE_CHANNELRX_SIGMFFILESINK=OFF
QT_RUNTIME_DEPENDS := qt6-speech-speechd-plugin, qt6-location-plugins, qml6-module-qtlocation, qml6-module-qtpositioning, qml6-module-qtquick-window, qml6-module-qtquick-dialogs, qml6-module-qtquick-controls, qml6-module-qtquick-layouts, qml6-module-qt5compat-graphicaleffects
else
$(error QT_VERSION must be either 5 or 6)
endif
%:
dh $@ --parallel --buildsystem=cmake+ninja
override_dh_auto_configure:
dh_auto_configure -- -DARCH_OPT=nehalem -DENABLE_EXTERNAL_LIBRARIES=AUTO -DDEBUG_OUTPUT=ON -DBUILD_SERVER=OFF
dh_auto_configure -- -DARCH_OPT=nehalem $(QT_CMAKE_OPTION) -DENABLE_EXTERNAL_LIBRARIES=AUTO -DDEBUG_OUTPUT=ON -DBUILD_SERVER=OFF
override_dh_gencontrol:
dh_gencontrol -- -Vqt:Depends='$(QT_RUNTIME_DEPENDS)'
# delete any external projects (such as libsigmf) that are installed
# would be better if we could prevent them from being installed in CMakeLists.txt
+8 -2
View File
@@ -752,6 +752,9 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
set(LIBDSDCC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/dsdcc.lib" CACHE INTERNAL "")
elseif (LINUX)
set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib${LIB_SUFFIX}/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# set the RPATH so that the built dsdcc can find libmbe.so.1 (https://github.com/f4exb/sdrangel/issues/777)
# Would probably be better to change this so INSTALL_COMMAND isn't set to "" and the install step is done
set(LIBDSDCC_ARGS "-DCMAKE_BUILD_RPATH=${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}")
elseif (APPLE)
set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/dsdcc/src/dsdcc-build/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
endif ()
@@ -760,10 +763,10 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
GIT_TAG ${DSDCC_TAG}
DEPENDS ${DSDCC_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/dsdcc"
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
CMAKE_ARGS ${COMMON_CMAKE_ARGS} ${LIBDSDCC_ARGS}
-DBUILD_TOOL=OFF -DUSE_MBELIB=${USE_MBELIB}
-DLIBMBE_INCLUDE_DIR=${LIBMBE_INCLUDE_DIR}
-DLIBMBE_LIBRARY=${LIBMBE_LIBRARIES}
-DLIBMBE_LIBRARY=${LIBMBE_LIBRARIES}
BUILD_BYPRODUCTS "${LIBDSDCC_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
@@ -906,6 +909,9 @@ if(ENABLE_FEATURE_STARTRACKER)
set_global_cache(CSPICE_FOUND ON)
set(CSPICE_EXTERNAL ON CACHE INTERNAL "")
set(CSPICE_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/cspice/src/cspice/include" CACHE INTERNAL "")
if (LINUX)
install(FILES "${CSPICE_LIBRARIES}" DESTINATION "${INSTALL_LIB_DIR}")
endif()
endif ()
if(ENABLE_CHANNELRX_REMOTETCPSINK)