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 "gstreamer@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
25 intel-mediasdk-devel \
102 python3-cairo-devel \
114 mesa-libOpenCL-devel \
120 mesa-libOSMesa-devel \
121 mesa-vulkan-drivers \
124 xorg-x11-server-utils \
127 # Install common debug symbols
128 dnf debuginfo-install -y gtk3 \
136 gobject-introspection \
140 libappstream-glib-devel \
170 pulseaudio-libs-glib2 \
172 webrtc-audio-processing \
189 # Install the dependencies of gstreamer
190 dnf builddep -y gstreamer1 \
191 gstreamer1-plugins-base \
192 gstreamer1-plugins-good \
193 gstreamer1-plugins-good-extras \
194 gstreamer1-plugins-ugly \
195 gstreamer1-plugins-ugly-free \
196 gstreamer1-plugins-bad-free \
197 gstreamer1-plugins-bad-free-extras \
198 gstreamer1-plugins-bad-freeworld \
200 gstreamer1-rtsp-server \
205 pip3 install meson==0.58.0 hotdoc
207 # Remove gst-devel packages installed by builddep above
208 dnf remove -y "gstreamer1*devel"
210 # FIXME: Why does installing directly with dnf doesn't actually install
211 # the documentation files?
212 dnf download glib2-doc gdk-pixbuf2-devel*x86_64* gtk3-devel-docs
213 rpm -i --reinstall *.rpm
217 RUSTUP_VERSION=1.24.2
219 RUST_ARCH="x86_64-unknown-linux-gnu"
222 RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
226 export RUSTUP_HOME="/usr/local/rustup"
227 export CARGO_HOME="/usr/local/cargo"
228 export PATH="/usr/local/cargo/bin:$PATH"
230 chmod +x rustup-init;
231 ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION;
233 chmod -R a+w $RUSTUP_HOME $CARGO_HOME
239 # get gstreamer and make all subprojects available
240 # FIXME: we don't really need to clone it now as we have the repo checkout out already
241 git clone -b ${DEFAULT_BRANCH} https://gitlab.freedesktop.org/gstreamer/gstreamer.git /gstreamer
242 meson subprojects download --sourcedir /gstreamer
243 /gstreamer/ci/scripts/handle-subprojects-cache.py --build /gstreamer/subprojects/
245 # Run git gc to prune unwanted refs and reduce the size of the image
246 for i in $(find subprojects/ -mindepth 1 -maxdepth 1 -type d);
248 git -C $i gc --aggressive || true;
251 echo "Removing DNF cache"
255 rm -rf /var/cache/dnf /var/log/dnf*