Skip to content

Commit

Permalink
Merge pull request #3229 from softins/build-on-ubuntu-20
Browse files Browse the repository at this point in the history
  • Loading branch information
ann0see committed Mar 3, 2024
2 parents cf5bcd9 + 6a9e0a5 commit db69591
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 12 deletions.
2 changes: 1 addition & 1 deletion .github/autobuild/linux_deb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ setup_cross_compiler() {
if [[ "${TARGET_ARCH}" == amd64 ]]; then
return
fi
local GCC_VERSION=7 # 7 is the default on 18.04, there is no reason not to update once 18.04 is out of support
local GCC_VERSION=9 # 9 is the default on 20.04, there is no reason not to update once 20.04 is out of support
sudo apt install -qq -y --no-install-recommends "g++-${GCC_VERSION}-${ABI_NAME}" "qt5-qmake:${TARGET_ARCH}" "qtbase5-dev:${TARGET_ARCH}" "libjack-jackd2-dev:${TARGET_ARCH}" "qtmultimedia5-dev:${TARGET_ARCH}"
sudo update-alternatives --install "/usr/bin/${ABI_NAME}-g++" g++ "/usr/bin/${ABI_NAME}-g++-${GCC_VERSION}" 10
sudo update-alternatives --install "/usr/bin/${ABI_NAME}-gcc" gcc "/usr/bin/${ABI_NAME}-gcc-${GCC_VERSION}" 10
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/autobuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -205,22 +205,22 @@ jobs:
- config_name: Linux .deb amd64 (artifacts+codeQL)
target_os: linux
building_on_os: ubuntu-22.04
building_container: ubuntu:18.04
building_container: ubuntu:20.04
base_command: ./.github/autobuild/linux_deb.sh
run_codeql: true
is_main_build_target: true

- config_name: Linux .deb armhf (artifacts)
target_os: linux
building_on_os: ubuntu-22.04
building_container: ubuntu:18.04
building_container: ubuntu:20.04
base_command: TARGET_ARCH=armhf ./.github/autobuild/linux_deb.sh
run_codeql: false

- config_name: Linux .deb arm64 (artifacts)
target_os: linux
building_on_os: ubuntu-22.04
building_container: ubuntu:18.04
building_container: ubuntu:20.04
base_command: TARGET_ARCH=arm64 ./.github/autobuild/linux_deb.sh
run_codeql: false

Expand Down Expand Up @@ -293,7 +293,7 @@ jobs:
xcode-version: ${{ matrix.config.xcode_version }}

- name: Set up base dependencies in container environment
if: matrix.config.building_container == 'ubuntu:18.04'
if: matrix.config.building_container == 'ubuntu:20.04'
run: |
set -eu
apt-get -qq update
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ We support the following platforms and versions:

- **Windows 10** or later
- **macOS 10.10** or later
- **Ubuntu 18.04** or later, **Debian 10** or later, most Linux flavors with recent enough Qt versions
- **Ubuntu 20.04** or later, **Debian 11** or later, most Linux flavors with recent enough Qt versions. (Currently, it may still build on Ubuntu 18.04 and Debian 10, but the binaries built by Github will not run on those versions)

_While Android and iOS aren't officially supported, please don't break their builds._

Expand Down
12 changes: 7 additions & 5 deletions linux/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ Vcs-Browser: https://github.com/jamulussoftware/jamulus

Package: jamulus
Architecture: any
# Define dependencies explicitly for the best compatibility across all supported Ubuntu/Debian versions.
# The automatism would otherwise select package names or versions which are not available on some systems,
# especially when run in the Github Ubuntu 18.04 build environment.
Depends: libc6 (>= 2.17), libstdc++6 (>= 5.2), libgcc1 (>= 1:3.0), libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116, libqt5core5a (>= 5.9.5), libqt5network5 (>= 5.9.5), libqt5xml5 (>= 5.9.5), libqt5gui5 (>= 5.9.5) | libqt5gui5-gles (>= 5.9.5), libqt5widgets5 (>= 5.9.5), libqt5multimedia5 (>= 5.9.5)
Depends:
${shlibs:Depends},
${misc:Depends},
Recommends: qjackctl
Description: Low latency Audio Server/Client
Jamulus is for playing, rehearsing, or just jamming with your friends, your band
Expand All @@ -31,7 +30,10 @@ Description: Low latency Audio Server/Client

Package: jamulus-headless
Architecture: any
Depends: libc6 (>= 2.17), libstdc++6 (>= 5.2), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.5), libqt5network5 (>= 5.9.5), libqt5xml5 (>= 5.9.5)
Depends:
${shlibs:Depends},
${misc:Depends},
adduser,
Description: Low latency Audio Server (headless)
This package contains a Jamulus binary built for headless operation
(without GUI library dependencies) and a jamulus-headless systemd service.
Expand Down
10 changes: 9 additions & 1 deletion linux/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,18 @@ DEB_TARGET_GNU_TYPE := $(shell dpkg-architecture -qDEB_TARGET_GNU_TYPE)
DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

# DEB_BUILD_GNU_TYPE is the system running the build (this system)
# DEB_HOST_GNU_TYPE is the system jamulus is being built for (the target)
# DEB_TARGET_GNU_TYPE is only relevant when building cross-compilers
$(info DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE=$(DEB_HOST_GNU_TYPE) DEB_TARGET_GNU_TYPE=$(DEB_TARGET_GNU_TYPE))

ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
QMAKE := qmake
else
QMAKE := "/usr/lib/$(DEB_BUILD_GNU_TYPE)/qt5/bin/qmake" -qtconf "/usr/lib/$(DEB_TARGET_GNU_TYPE)/qt5/qt.conf" -spec "/usr/lib/$(DEB_TARGET_GNU_TYPE)/qt5/mkspecs/$(DEB_TARGET_GNU_TYPE)-g++" LIBS+="-lstdc++ -lm"
# For an unknown reason, when called from this makefile in Ubuntu 20.04,
# qmake needs an option between qmake and -qtconf, else it gives an error.
# We use -makefile, which is the default mode anyway, and this avoids the issue.
QMAKE := qmake -makefile -qtconf "/usr/lib/$(DEB_HOST_GNU_TYPE)/qt5/qt.conf" -spec "/usr/lib/$(DEB_HOST_GNU_TYPE)/qt5/mkspecs/$(DEB_HOST_GNU_TYPE)-g++" LIBS+="-lstdc++ -lm"
endif

%:
Expand Down

0 comments on commit db69591

Please sign in to comment.