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.59.1 hotdoc python-gitlab
208 # Remove gst-devel packages installed by builddep above
209 dnf remove -y "gstreamer1*devel"
211 # FIXME: Why does installing directly with dnf doesn't actually install
212 # the documentation files?
213 dnf download glib2-doc gdk-pixbuf2-devel*x86_64* gtk3-devel-docs
214 rpm -i --reinstall *.rpm
218 RUSTUP_VERSION=1.24.3
220 RUST_ARCH="x86_64-unknown-linux-gnu"
223 RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
227 export RUSTUP_HOME="/usr/local/rustup"
228 export CARGO_HOME="/usr/local/cargo"
229 export PATH="/usr/local/cargo/bin:$PATH"
231 chmod +x rustup-init;
232 ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION;
234 chmod -R a+w $RUSTUP_HOME $CARGO_HOME
240 # get gstreamer and make all subprojects available
241 git clone -b ${GIT_BRANCH} ${GIT_URL} /gstreamer
242 git -C /gstreamer submodule update --init --depth=1
243 meson subprojects download --sourcedir /gstreamer
244 /gstreamer/ci/scripts/handle-subprojects-cache.py --build /gstreamer/subprojects/
246 # Run git gc to prune unwanted refs and reduce the size of the image
247 for i in $(find /subprojects/ -mindepth 1 -maxdepth 1 -type d);
249 git -C $i gc --aggressive || true;
252 # Now remove the gstreamer clone
255 echo "Removing DNF cache"
259 rm -rf /var/cache/dnf /var/log/dnf*