gstreamer/ci/docker/fedora/install-deps.sh
Jordan Petridis 6ebf8de722 ci: Enable the debuginfo repos in the images
Always enable the debuginfo repos, so the debug packages
installed are automatically kept in sync when upgrading
the system.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00

121 lines
2.8 KiB
Bash

#! /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*