|
| 1 | +# --- VERSIONS --- |
| 2 | +ARG FEDORA_VERSION=44 |
| 3 | +# Fedora >=43 has sccache, but none with S3 storage support |
| 4 | +ARG SCCACHE_VERSION=0.15.0 |
| 5 | + |
| 6 | + |
| 7 | +ARG DNF_COMMAND="dnf --setopt=install_weak_deps=False -q" |
| 8 | +# ---- sccache takes a while to build (it's rust…) and |
| 9 | +# quite a bit of space (it's cargo), so: |
| 10 | +# avoid rebuilding if version hasn't changed |
| 11 | +FROM fedora:${FEDORA_VERSION} AS sccache-builder |
| 12 | +ARG SCCACHE_VERSION |
| 13 | + |
| 14 | +ARG DNF_COMMAND |
| 15 | +LABEL maintainer="mmueller@gnuradio.org" |
| 16 | +RUN ${DNF_COMMAND} install --refresh -y \ |
| 17 | + cargo \ |
| 18 | + openssl-devel \ |
| 19 | + && ${DNF_COMMAND} clean all |
| 20 | + |
| 21 | +RUN cargo install \ |
| 22 | + --locked \ |
| 23 | + --quiet \ |
| 24 | + --target-dir /build \ |
| 25 | + --root /target \ |
| 26 | + sccache@${SCCACHE_VERSION} \ |
| 27 | + && rm -rf /build |
| 28 | + |
| 29 | + |
| 30 | +# ---- MAIN CONTAINER ---- |
| 31 | +FROM fedora:${FEDORA_VERSION} |
| 32 | + |
| 33 | +ARG DNF_COMMAND |
| 34 | +LABEL maintainer="mmueller@gnuradio.org" |
| 35 | +# Make sure we don't try to use XCB, which seems to be very b0rked at this point |
| 36 | +ENV QT_QPA_PLATFORM=offscreen |
| 37 | + |
| 38 | +# Build deps |
| 39 | +RUN ${DNF_COMMAND} install --refresh -y \ |
| 40 | + SDL-devel \ |
| 41 | + SoapySDR-devel \ |
| 42 | + alsa-lib-devel \ |
| 43 | + boost-devel \ |
| 44 | + cmake \ |
| 45 | + codec2-devel \ |
| 46 | + cppzmq-devel \ |
| 47 | + desktop-file-utils \ |
| 48 | + doxygen \ |
| 49 | + fftw-devel \ |
| 50 | + findutils \ |
| 51 | + gcc-c++ \ |
| 52 | + gmp-devel \ |
| 53 | + gobject-introspection \ |
| 54 | + graphviz \ |
| 55 | + gsl-devel \ |
| 56 | + gsm-devel \ |
| 57 | + gtk3-devel \ |
| 58 | + jack-audio-connection-kit-devel \ |
| 59 | + libad9361-iio-devel \ |
| 60 | + libiio-devel \ |
| 61 | + libsndfile-devel \ |
| 62 | + portaudio-devel \ |
| 63 | + pybind11-devel \ |
| 64 | + python3-cairo \ |
| 65 | + python3-click \ |
| 66 | + python3-devel \ |
| 67 | + python3-gobject \ |
| 68 | + python3-jsonschema \ |
| 69 | + python3-lxml \ |
| 70 | + python3-mako \ |
| 71 | + python3-numpy \ |
| 72 | + python3-pyqt6-devel \ |
| 73 | + python3-pyyaml \ |
| 74 | + python3-scipy \ |
| 75 | + python3-thrift \ |
| 76 | + python3-zmq \ |
| 77 | + qwt-qt6-devel \ |
| 78 | + spdlog-devel \ |
| 79 | + 'tex(latex)' \ |
| 80 | + thrift \ |
| 81 | + uhd-devel \ |
| 82 | + volk-devel \ |
| 83 | + xdg-utils \ |
| 84 | + xmlto \ |
| 85 | + zeromq-devel \ |
| 86 | + texlive-newunicodechar \ |
| 87 | + && ${DNF_COMMAND} clean all |
| 88 | +# Specific tools not needed for the default build, but things we want to do in CI: |
| 89 | +RUN ${DNF_COMMAND} install --refresh -y \ |
| 90 | + clang \ |
| 91 | + clang-tools-extra \ |
| 92 | + ninja-build \ |
| 93 | + # For testing metainfo files |
| 94 | + libappstream-glib \ |
| 95 | + # Install zsh for hash checker CI |
| 96 | + zsh \ |
| 97 | + # For hash checking and libad9361 building |
| 98 | + git \ |
| 99 | + # For bundling up results |
| 100 | + squashfs-tools \ |
| 101 | + cpio \ |
| 102 | + && ${DNF_COMMAND} clean all |
| 103 | +# Copy over sccache |
| 104 | +COPY --from=sccache-builder /target/bin/sccache /usr/bin/sccache |
0 commit comments