From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sat, 27 Apr 2024 19:35:28 +0000 (-0600) Subject: add Ubuntu noble to CI (#1273) X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2^2~105 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2d6e12d67a546d61af715416fc5424c3625e6d00;p=gpsbabel.git add Ubuntu noble to CI (#1273) * add ubuntu noble docker support * update qt6 packages for noble. noble has some new qt6 packages that alleviate the need to directly install some libraries. also, the dependencies of some qt6 packages have been improved allowing us to specify what we use more directly. this results in the same set of packges being installed. * remove dependent qt5 package * add noble to CI --- diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index d4c8cec17..4385a76ad 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -31,6 +31,13 @@ jobs: CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' SCRIPT: './tools/build_and_test_cmake.sh' TOOLS: 'clang' + - IMAGE: 'noble' + CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' + SCRIPT: './tools/build_and_test_cmake.sh' + - IMAGE: 'noble' + CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' + SCRIPT: './tools/build_and_test_cmake.sh' + TOOLS: 'clang' - IMAGE: 'jammy' CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt5' SCRIPT: './tools/build_extra_tests.sh' diff --git a/tools/Dockerfile_noble b/tools/Dockerfile_noble new file mode 100644 index 000000000..498f1ac39 --- /dev/null +++ b/tools/Dockerfile_noble @@ -0,0 +1,94 @@ +# this file is used to build the image gpsbabel_build_environment used by travis. + +FROM ubuntu:noble + +LABEL maintainer="https://github.com/tsteven4" + +WORKDIR /app + +# update environment. +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y --no-install-recommends \ + apt-utils \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + +# install packages needed for gpsbabel build +# split into multiple commands to limit layer size + +# basic build and test tools +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++ \ + make \ + autoconf \ + git \ + valgrind \ + expat \ + libxml2-utils \ + bear \ + cmake \ + ninja-build \ + clazy \ + clang-tidy \ + jq \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# alternative compiler +RUN apt-get update && apt-get install -y --no-install-recommends \ + clang \ + && rm -rf /var/lib/apt/lists/* + +# pkgs needed to build document +RUN apt-get update && apt-get install -y --no-install-recommends \ + fop \ + xsltproc \ + docbook-xml \ + docbook5-xml \ + docbook-xsl \ + docbook-xsl-ns \ + libavalon-framework-java \ + jing \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with libraries needed by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + libusb-1.0-0-dev \ + pkg-config \ + libudev-dev \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with qt used by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + qtbase5-dev \ + qttools5-dev \ + qttranslations5-l10n \ + qtwebengine5-dev \ + libqt5serialport5-dev \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with qt used by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + qt6-base-dev \ + qt6-5compat-dev \ + qt6-serialport-dev \ + libx11-xcb-dev \ + libxkbcommon-dev \ + qt6-tools-dev \ + qt6-translations-l10n \ + qt6-webengine-dev \ + qt6-wayland \ + && rm -rf /var/lib/apt/lists/* + +# pkgs needed to generate coverage report: +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcovr \ + && rm -rf /var/lib/apt/lists/* + +# install environment for locale test +RUN apt-get update && apt-get install -y --no-install-recommends \ + locales \ + && rm -rf /var/lib/apt/lists/* \ + && sed -i 's/^# *\(en_US ISO-8859-1\)/\1/' /etc/locale.gen \ + && locale-gen \ + && locale -a