Skip to content

Commit

Permalink
Merge pull request #74 from linuxserver/noble
Browse files Browse the repository at this point in the history
Rebase to noble, minimize deps, compile libgl, bump libass, harfbuzz and vulkan-sdk
  • Loading branch information
aptalca authored May 29, 2024
2 parents 0a5e0b3 + df89ca0 commit 5fd8876
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 40 deletions.
101 changes: 68 additions & 33 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

# build stage
FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy as buildstage
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble as buildstage

# set version label
ARG FFMPEG_VERSION
Expand All @@ -21,13 +21,14 @@ ENV \
FREETYPE=2.13.2 \
FRIBIDI=1.0.14 \
GMMLIB=22.3.18 \
HARFBUZZ=8.4.0 \
HARFBUZZ=8.5.0 \
IHD=24.1.5 \
KVAZAAR=2.3.1 \
LAME=3.100 \
LIBASS=0.17.1 \
LIBASS=0.17.2 \
LIBDOVI=2.1.1 \
LIBDRM=2.4.120 \
LIBGL=1.7.0 \
LIBMFX=22.5.4 \
LIBPLACEBO=6.338.2 \
LIBPNG=1.6.43 \
Expand All @@ -49,61 +50,75 @@ ENV \
VORBIS=1.3.7 \
VPLGPURT=24.1.5 \
VPX=1.14.0 \
VULKANSDK=vulkan-sdk-1.3.280.0 \
VULKANSDK=vulkan-sdk-1.3.283.0 \
WEBP=1.4.0 \
X265=3.6 \
XVID=1.3.7 \
ZIMG=3.0.5

RUN \
echo "**** install build packages ****" && \
apt-get update && \
apt-get install -y \
apt-get update && \
apt-get install --no-install-recommends -y \
autoconf \
automake \
bindgen \
bison \
build-essential \
bzip2 \
cmake \
clang \
diffutils \
doxygen \
flex \
g++ \
gcc \
git \
gperf \
i965-va-driver-shaders \
libasound2-dev \
libcairo2-dev \
libclang-18-dev \
libclang-cpp18-dev \
libclc-18 \
libclc-18-dev \
libelf-dev \
libexpat1-dev \
libgcc-10-dev \
libglib2.0-dev \
libgomp1 \
libllvmspirvlib-18-dev \
libpciaccess-dev \
libssl-dev \
libtool \
libv4l-dev \
libwayland-dev \
libwayland-egl-backend-dev \
libx11-dev \
libx11-xcb-dev \
libxcb-dri2-0-dev \
libxcb-dri3-dev \
libxcb-glx0-dev \
libxcb-present-dev \
libxext-dev \
libxfixes-dev \
libxml2-dev \
libxrandr-dev \
libxshmfence-dev \
libxxf86vm-dev \
llvm-18-dev \
llvm-spirv-18 \
make \
nasm \
ninja-build \
ocl-icd-opencl-dev \
perl \
pkg-config \
python3-venv \
wayland-protocols \
x11proto-gl-dev \
x11proto-xext-dev \
xserver-xorg-dev \
xxd \
yasm \
zlib1g-dev && \
apt-get build-dep mesa -y && \
mkdir -p /tmp/rust && \
RUST_VERSION=$(curl -fsX GET https://api.github.com/repos/rust-lang/rust/releases/latest | jq -r '.tag_name') && \
curl -fo /tmp/rust.tar.gz -L "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" && \
Expand All @@ -116,7 +131,7 @@ RUN \
pip \
setuptools \
wheel && \
pip install --no-cache-dir meson cmake mako ply
pip install --no-cache-dir cmake mako meson ninja ply

# compile 3rd party libs
RUN \
Expand Down Expand Up @@ -278,6 +293,27 @@ RUN \
make && \
make install && \
strip -d /usr/local/lib/libass.so
RUN \
echo "**** grabbing libgl ****" && \
mkdir -p /tmp/libgl && \
curl -Lf \
https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v${LIBGL}/libglvnd-v${LIBGL}.tar.gz | \
tar -xz --strip-components=1 -C /tmp/libgl
RUN \
echo "**** compiling libgl ****" && \
cd /tmp/libgl && \
meson setup \
--buildtype=release \
build && \
ninja -C build install && \
strip -d \
/usr/local/lib/x86_64-linux-gnu/libEGL.so \
/usr/local/lib/x86_64-linux-gnu/libGLdispatch.so \
/usr/local/lib/x86_64-linux-gnu/libGLESv1_CM.so \
/usr/local/lib/x86_64-linux-gnu/libGLESv2.so \
/usr/local/lib/x86_64-linux-gnu/libGL.so \
/usr/local/lib/x86_64-linux-gnu/libGLX.so \
/usr/local/lib/x86_64-linux-gnu/libOpenGL.so
RUN \
echo "**** grabbing libdrm ****" && \
mkdir -p /tmp/libdrm && \
Expand Down Expand Up @@ -331,6 +367,24 @@ RUN \
build && \
ninja -C build install && \
strip -d /usr/local/lib/libvdpau.so
RUN \
echo "**** grabbing shaderc ****" && \
mkdir -p /tmp/shaderc && \
git clone \
--branch ${SHADERC} \
--depth 1 https://github.com/google/shaderc.git \
/tmp/shaderc
RUN \
echo "**** compiling shaderc ****" && \
cd /tmp/shaderc && \
./utils/git-sync-deps && \
mkdir -p build && \
cd build && \
cmake -GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
.. && \
ninja install
RUN \
echo "**** grabbing mesa ****" && \
mkdir -p /tmp/mesa && \
Expand Down Expand Up @@ -524,24 +578,6 @@ RUN \
cd /tmp/rav1e && \
cargo cinstall --release && \
strip -d /usr/local/lib/librav1e.so
RUN \
echo "**** grabbing shaderc ****" && \
mkdir -p /tmp/shaderc && \
git clone \
--branch ${SHADERC} \
--depth 1 https://github.com/google/shaderc.git \
/tmp/shaderc
RUN \
echo "**** compiling shaderc ****" && \
cd /tmp/shaderc && \
./utils/git-sync-deps && \
mkdir -p build && \
cd build && \
cmake -GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
.. && \
ninja install
RUN \
echo "**** grabbing libdovi ****" && \
mkdir -p /tmp/libdovi && \
Expand Down Expand Up @@ -879,7 +915,7 @@ RUN \
/buildout/etc/OpenCL/vendors/nvidia.icd

# runtime stage
FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble

# Add files from binstage
COPY --from=buildstage /buildout/ /
Expand All @@ -903,14 +939,13 @@ RUN \
echo "**** install runtime ****" && \
apt-get update && \
apt-get install -y \
libasound2 \
libasound2t64 \
libedit2 \
libelf1 \
libexpat1 \
libglib2.0-0 \
libgomp1 \
libllvm15 \
libmpdec3 \
libllvm18 \
libpciaccess0 \
libv4l-0 \
libwayland-client0 \
Expand Down
13 changes: 6 additions & 7 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

# build stage
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy as buildstage
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble as buildstage

# set version label
ARG FFMPEG_VERSION
Expand All @@ -20,10 +20,10 @@ ENV \
FONTCONFIG=2.15.0 \
FREETYPE=2.13.2 \
FRIBIDI=1.0.14 \
HARFBUZZ=8.4.0 \
HARFBUZZ=8.5.0 \
KVAZAAR=2.3.1 \
LAME=3.100 \
LIBASS=0.17.1 \
LIBASS=0.17.2 \
LIBDRM=2.4.120 \
LIBPNG=1.6.43 \
LIBVA=2.21.0 \
Expand Down Expand Up @@ -73,7 +73,6 @@ RUN \
libxml2-dev \
make \
nasm \
ninja-build \
perl \
pkg-config \
python3-venv \
Expand All @@ -93,7 +92,7 @@ RUN \
pip \
setuptools \
wheel && \
pip install --no-cache-dir cmake meson
pip install --no-cache-dir cmake meson ninja

# compile 3rd party libs
RUN \
Expand Down Expand Up @@ -560,7 +559,7 @@ RUN \
/buildout/usr/share/fonts/

# runtime stage
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble

# Add files from binstage
COPY --from=buildstage /buildout/ /
Expand All @@ -577,7 +576,7 @@ RUN \
echo "**** install runtime ****" && \
apt-get update && \
apt-get install -y \
libasound2 \
libasound2t64 \
libexpat1 \
libglib2.0-0 \
libgomp1 \
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64

## Versions

* **26.05.24:** - Rebase to Ubuntu Noble. Bump libass, libharfbuzz and vulkan-sdk.
* **22.05.24:** - Bump Mesa to 24.1.0.
* **20.05.24:** - Bump libsvtav1.
* **09.05.24:** - Bump libaom, fribidi, kvazaar, various Intel drivers and libs, Mesa, opus, shaderc, webp and x265.
Expand Down
1 change: 1 addition & 0 deletions readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ full_custom_readme: |
## Versions
* **26.05.24:** - Rebase to Ubuntu Noble. Bump libass, libharfbuzz and vulkan-sdk.
* **22.05.24:** - Bump Mesa to 24.1.0.
* **20.05.24:** - Bump libsvtav1.
* **09.05.24:** - Bump libaom, fribidi, kvazaar, various Intel drivers and libs, Mesa, opus, shaderc, webp and x265.
Expand Down

0 comments on commit 5fd8876

Please sign in to comment.