#! /bin/bash set -eux # Fedora base image disable installing documentation files. See https://pagure.io/atomic-wg/issue/308 # We need them to cleanly build our doc. sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf dnf -y swap coreutils-single coreutils-full # Add rpm fusion repositories in order to access all of the gst plugins dnf install -y \ "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm" \ "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm" # Enable the debuginfo repos so -debug packages are kept in sync dnf install -y dnf-plugins-core dnf config-manager --set-enabled '*-debuginfo' dnf upgrade -y && dnf distro-sync -y # Install the dependencies of gstreamer dnf builddep -y --skip-broken --allowerasing --best \ gstreamer1 \ gstreamer1-plugins-bad-free \ gstreamer1-plugins-bad-free-extras \ gstreamer1-plugins-bad-freeworld \ gstreamer1-plugins-base \ gstreamer1-plugins-good \ gstreamer1-plugins-good-extras \ gstreamer1-plugins-ugly \ gstreamer1-plugins-ugly-free \ gstreamer1-rtsp-server dnf remove -y \ 'ffmpeg-free*' \ 'fdk-aac-free*' dnf install -y $(<./ci/docker/fedora/deps.txt) dnf remove -y meson -x ninja-build pip3 install meson hotdoc python-gitlab tomli junitparser # Remove gst-devel packages installed by builddep above dnf remove -y "gstreamer1*devel" # We use rustup to install the rust toolchain, we don't need fedora's dnf remove -y rust cargo dnf install -y glib2-doc gdk-pixbuf2-devel gtk3-devel-docs gtk4-devel-docs libsoup-doc # Install most debug symbols, except the big ones from things we use debug_packages=$(rpm -qa | grep -v -i \ -e bash \ -e bat \ -e bluez \ -e boost \ -e ccache \ -e ceph \ -e clang \ -e cmake \ -e colord \ -e compiler-rt \ -e cpp \ -e cups \ -e demos \ -e flexiblas \ -e flite \ -e gcc \ -e gcc-debuginfo \ -e gcc-debugsource \ -e gdal \ -e gdb \ -e geocode \ -e git \ -e glusterfs \ -e gpg \ -e GraphicsMagick \ -e groff \ -e gstreamer1 \ -e java \ -e leptonica \ -e libdap \ -e libdb \ -e libdnf \ -e libspatialite \ -e llvm \ -e lua \ -e MUMPS \ -e NetworkManager \ -e nodejs \ -e openblas \ -e opencv \ -e openexr \ -e perl \ -e poppler \ -e qemu \ -e qt5 \ -e qt6 \ -e sequoia \ -e spice \ -e sqlite \ -e suitesparse \ -e systemd \ -e tesseract \ -e tests \ -e tools \ -e tpm2 \ -e unbound \ -e valgrind \ -e vim \ -e vtk \ -e xen \ -e xerces \ -e xorg \ ) dnf debuginfo-install -y --best --allowerasing --skip-broken $debug_packages echo "Removing DNF cache" dnf clean all rm -rf /var/cache/dnf /var/log/dnf*