3 # Fedora base image disable installing documentation files. See https://pagure.io/atomic-wg/issue/308
4 # We need them to cleanly build our doc.
5 sed -i "s/tsflags=nodocs//g" /etc/dnf/dnf.conf
7 dnf install -y git-core ninja-build dnf-plugins-core python3-pip
9 # Configure git for various usage
10 git config --global user.email "gst-build@gstreamer.net"
11 git config --global user.name "Gstbuild Runner"
13 # Add rpm fusion repositories in order to access all of the gst plugins
15 "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm" \
16 "https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm"
20 # install rest of the extra deps
101 python3-cairo-devel \
113 mesa-libOpenCL-devel \
119 mesa-libOSMesa-devel \
120 mesa-vulkan-drivers \
123 xorg-x11-server-utils \
126 # Install common debug symbols
127 dnf debuginfo-install -y gtk3 \
135 gobject-introspection \
139 libappstream-glib-devel \
169 pulseaudio-libs-glib2 \
171 webrtc-audio-processing \
188 pip3 install meson==0.56.2 hotdoc
190 # Install the dependencies of gstreamer
191 dnf builddep -y gstreamer1 \
192 gstreamer1-plugins-base \
193 gstreamer1-plugins-good \
194 gstreamer1-plugins-good-extras \
195 gstreamer1-plugins-ugly \
196 gstreamer1-plugins-ugly-free \
197 gstreamer1-plugins-bad-free \
198 gstreamer1-plugins-bad-free-extras \
199 gstreamer1-plugins-bad-freeworld \
201 gstreamer1-rtsp-server \
206 # Remove gst-devel packages installed by builddep above
207 dnf remove -y "gstreamer1*devel"
209 # FIXME: Why does installing directly with dnf doesn't actually install
210 # the documentation files?
211 dnf download glib2-doc gdk-pixbuf2-devel*x86_64* gtk3-devel-docs
212 rpm -i --reinstall *.rpm
216 RUSTUP_VERSION=1.21.1
218 RUST_ARCH="x86_64-unknown-linux-gnu"
221 RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
225 chmod +x rustup-init;
226 ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION;
228 chmod -R a+w $RUSTUP_HOME $CARGO_HOME
234 # get gst-build and make all subprojects available
235 git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/gst-build.git /gst-build/
237 meson subprojects download
239 # Run git gc to prune unwanted refs and reduce the size of the image
240 for i in $(find subprojects/ -mindepth 1- maxdepth 1 -type d);
242 git -C $i gc --aggressive || true;