diff --git a/images/wkdev_sdk/Containerfile b/images/wkdev_sdk/Containerfile
index cbbd8ac..c71848b 100644
--- a/images/wkdev_sdk/Containerfile
+++ b/images/wkdev_sdk/Containerfile
@@ -80,6 +80,16 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.s
rm -rf WebKit && \
${APT_AUTOREMOVE}
+# Add Rust environment.
+ENV RUSTUP_HOME="/opt/rust" \
+ CARGO_HOME="/opt/rust" \
+ PATH="/opt/rust/bin:${PATH}"
+
+RUN rustup default stable && \
+ rustup component remove rust-docs && \
+ cargo install --root /usr/local --version 0.8.1 --locked sccache && \
+ cargo install --root /usr/local cargo-c
+
# Copy jhbuild helper files and do the initial build & install
COPY /jhbuild/jhbuildrc /etc/xdg/jhbuildrc
COPY /jhbuild/webkit-sdk-deps.modules /jhbuild/webkit-sdk-deps.modules
@@ -127,8 +137,11 @@ RUN export QT_VERSION=$(qmake6 -query QT_VERSION) && \
ln -s ${directory} ${directory}/${QT_VERSION} >/dev/null 2>&1 || true; \
done
-# Build custom sccache version (the Ubuntu provided 0.7.7 package is broken)
-RUN cargo install --root /usr/local --version 0.8.1 --locked sccache
+# Check GStreamer plugins are installed.
+RUN gst-inspect-1.0 audiornnoise && \
+ gst-inspect-1.0 cea608tott && \
+ gst-inspect-1.0 livesync && \
+ gst-inspect-1.0 rsrtp
# Switch back to interactive prompt, when using apt.
ENV DEBIAN_FRONTEND dialog
diff --git a/images/wkdev_sdk/jhbuild/webkit-sdk-deps.modules b/images/wkdev_sdk/jhbuild/webkit-sdk-deps.modules
index f126a25..6cd49e1 100644
--- a/images/wkdev_sdk/jhbuild/webkit-sdk-deps.modules
+++ b/images/wkdev_sdk/jhbuild/webkit-sdk-deps.modules
@@ -9,6 +9,7 @@
+
@@ -94,10 +95,11 @@
-
+
+ module="gstreamer.git"
+ tag="1.24.6"/>
diff --git a/images/wkdev_sdk/required_system_packages/04-devtools.lst b/images/wkdev_sdk/required_system_packages/04-devtools.lst
index 61ce003..319ae80 100644
--- a/images/wkdev_sdk/required_system_packages/04-devtools.lst
+++ b/images/wkdev_sdk/required_system_packages/04-devtools.lst
@@ -2,7 +2,7 @@
build-essential cmake ninja-build
# Build tools
-icecc ccache cargo
+icecc ccache rustup
# Debugging / profiling / tracing
valgrind rr perf-tools-unstable systemd-coredump
diff --git a/scripts/container-only/.wkdev-init b/scripts/container-only/.wkdev-init
index 194824b..47b3b3b 100755
--- a/scripts/container-only/.wkdev-init
+++ b/scripts/container-only/.wkdev-init
@@ -188,6 +188,16 @@ try_setup_permissions_jhbuild_directory() {
}
+try_setup_permissions_rust_directory() {
+
+ echo ""
+
+ local rust_directory="/opt/rust"
+ echo "[12/13] Setup rust '${rust_directory}' directory permissions..."
+
+ chown --recursive "${container_user_name}:${container_group_name}" "${rust_directory}" &>/dev/null
+}
+
try_firstrun_script() {
local user_home
@@ -222,6 +232,7 @@ TASKS=(
"try_setup_run_user_directory"
"try_setup_dockerenv_file"
"try_setup_permissions_jhbuild_directory"
+ "try_setup_permissions_rust_directory"
"try_firstrun_script"
)
diff --git a/scripts/container-only/wkdev-test-host-integration b/scripts/container-only/wkdev-test-host-integration
index 05694e5..5d5b019 100755
--- a/scripts/container-only/wkdev-test-host-integration
+++ b/scripts/container-only/wkdev-test-host-integration
@@ -110,6 +110,11 @@ run() {
run_test "Test PulseAudio: (should work if it works on the host)" \
pactl info
+ # Our self-compiled GStreamer interferes with the system-provided one, avoid that for testing epiphany.
+ unset GST_PLUGIN_PATH_1_0
+ unset GST_PLUGIN_SCANNER
+ unset LD_LIBRARY_PATH
+
run_test "Test Epiphany browser: (try youtube.com, CSS 3D demos, WebGL, etc.)" \
epiphany
}