|
| 1 | +ARG UBUNTU_VERSION=26.04 |
| 2 | +ARG SCCACHE_VERSION=0.10.0 |
| 3 | +ARG APT_INSTALL_COMMAND="apt-get install -qy --no-install-recommends" |
| 4 | + |
| 5 | + |
| 6 | +FROM ubuntu:${UBUNTU_VERSION} AS sccache-builder |
| 7 | +ARG SCCACHE_VERSION |
| 8 | +ARG APT_INSTALL_COMMAND |
| 9 | +LABEL maintainer="mmueller@gnuradio.org" |
| 10 | + |
| 11 | +ENV DEBIAN_FRONTEND=noninteractive |
| 12 | +RUN apt-get update -q ;\ |
| 13 | + ${APT_INSTALL_COMMAND} \ |
| 14 | + cargo \ |
| 15 | + ca-certificates \ |
| 16 | + pkg-config \ |
| 17 | + libssl-dev \ |
| 18 | + && apt-get clean |
| 19 | +RUN cargo install \ |
| 20 | + --locked \ |
| 21 | + --quiet \ |
| 22 | + --target-dir /build \ |
| 23 | + --root /target \ |
| 24 | + sccache@${SCCACHE_VERSION} \ |
| 25 | + && rm -rf /build |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +FROM ubuntu:${UBUNTU_VERSION} |
| 30 | +ARG APT_INSTALL_COMMAND |
| 31 | +LABEL maintainer="martin@gnuradio.org" |
| 32 | +ENV security_updates_as_of=2026-01-31 |
| 33 | + |
| 34 | +ENV DEBIAN_FRONTEND=noninteractive |
| 35 | + |
| 36 | +# Prepare distribution |
| 37 | +RUN sed -i 's/Types: deb/& deb-src/' /etc/apt/sources.list.d/ubuntu.sources \ |
| 38 | + && apt-get update -q \ |
| 39 | + && apt-get -y upgrade \ |
| 40 | + && apt-get clean && apt-get autoclean |
| 41 | + |
| 42 | +RUN \ |
| 43 | + ${APT_INSTALL_COMMAND} \ |
| 44 | + appstream-util \ |
| 45 | + ca-certificates \ |
| 46 | + ccache \ |
| 47 | + clang-format \ |
| 48 | + cmake \ |
| 49 | + git \ |
| 50 | + lcov \ |
| 51 | + pkg-config \ |
| 52 | + xvfb \ |
| 53 | + # for bundling up results |
| 54 | + squashfs-tools \ |
| 55 | + && apt-get clean && apt-get autoclean |
| 56 | + |
| 57 | +# Prepare distribution |
| 58 | +RUN apt-get update -q \ |
| 59 | + && apt-get -y upgrade \ |
| 60 | + && apt-get clean && apt-get autoclean |
| 61 | + |
| 62 | +# Build deps |
| 63 | +RUN ${APT_INSTALL_COMMAND} \ |
| 64 | + cmake \ |
| 65 | + g++ \ |
| 66 | + cppzmq-dev \ |
| 67 | + debhelper-compat \ |
| 68 | + dh-python \ |
| 69 | + dpkg-dev \ |
| 70 | + gir1.2-gtk-3.0 \ |
| 71 | + gir1.2-pango-1.0 \ |
| 72 | + graphviz \ |
| 73 | + libad9361-dev \ |
| 74 | + libasound2-dev \ |
| 75 | + libboost-date-time-dev \ |
| 76 | + libboost-dev \ |
| 77 | + libboost-program-options-dev \ |
| 78 | + libboost-regex-dev \ |
| 79 | + libboost-test-dev \ |
| 80 | + libboost-thread-dev \ |
| 81 | + libcodec2-dev \ |
| 82 | + libcppunit-dev \ |
| 83 | + libfftw3-dev \ |
| 84 | + libfontconfig-dev \ |
| 85 | + libgmp-dev \ |
| 86 | + libgsl-dev \ |
| 87 | + libgsm1-dev \ |
| 88 | + libiio-dev \ |
| 89 | + libjack-jackd2-dev \ |
| 90 | + libjs-mathjax \ |
| 91 | + libpulse-dev \ |
| 92 | + libqt6opengl6-dev \ |
| 93 | + libqt6svg6-dev \ |
| 94 | + libsdl1.2-dev \ |
| 95 | + libsndfile1-dev \ |
| 96 | + libsoapysdr-dev \ |
| 97 | + libspdlog-dev \ |
| 98 | + libthrift-dev \ |
| 99 | + libuhd-dev \ |
| 100 | + libunwind-dev \ |
| 101 | + libusb-1.0-0-dev \ |
| 102 | + libvolk-dev \ |
| 103 | + libxi-dev \ |
| 104 | + libxrender-dev \ |
| 105 | + ninja-build \ |
| 106 | + pkgconf \ |
| 107 | + portaudio19-dev \ |
| 108 | + pybind11-dev \ |
| 109 | + thrift-compiler \ |
| 110 | + xauth \ |
| 111 | + xmlto \ |
| 112 | + && apt-get clean && apt-get autoclean |
| 113 | + |
| 114 | +# Py3 deps |
| 115 | +RUN ${APT_INSTALL_COMMAND} \ |
| 116 | + python3-click \ |
| 117 | + python3-dev \ |
| 118 | + python3-gi \ |
| 119 | + python3-gi-cairo \ |
| 120 | + python3-jsonschema \ |
| 121 | + python3-lxml \ |
| 122 | + python3-mako \ |
| 123 | + python3-numpy-dev \ |
| 124 | + python3-opengl \ |
| 125 | + python3-packaging \ |
| 126 | + python3-pygccxml \ |
| 127 | + python3-pyqt6 \ |
| 128 | + python3-pytest \ |
| 129 | + python3-schema \ |
| 130 | + python3-scipy \ |
| 131 | + python3-thrift \ |
| 132 | + python3-yaml \ |
| 133 | + python3-zmq \ |
| 134 | + && apt-get clean && apt-get autoclean |
| 135 | + |
| 136 | + |
| 137 | +# Install Qwt-Qt6 (from Debian Testing) |
| 138 | +RUN ${APT_INSTALL_COMMAND} wget && apt-get clean && apt-get autoclean |
| 139 | + |
| 140 | +RUN wget http://ftp.de.debian.org/debian/pool/main/q/qwt/libqwt-headers_6.3.0-3_amd64.deb && \ |
| 141 | + wget http://ftp.de.debian.org/debian/pool/main/q/qwt/libqwt-qt6-6.3_6.3.0-3_amd64.deb && \ |
| 142 | + wget http://ftp.de.debian.org/debian/pool/main/q/qwt/libqwt-qt6-dev_6.3.0-3_amd64.deb |
| 143 | + |
| 144 | +RUN dpkg -i libqwt-headers_6.3.0-3_amd64.deb && \ |
| 145 | + dpkg -i libqwt-qt6-6.3_6.3.0-3_amd64.deb && \ |
| 146 | + dpkg -i libqwt-qt6-dev_6.3.0-3_amd64.deb |
| 147 | + |
| 148 | +# Copy over sccache |
| 149 | +COPY --from=sccache-builder /target/bin/sccache /usr/bin/sccache |
0 commit comments