diff --git a/Dockerfile b/Dockerfile index 200abcc..8388efc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 @@ -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 \ @@ -49,7 +50,7 @@ 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 \ @@ -57,15 +58,19 @@ ENV \ 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 \ @@ -73,37 +78,47 @@ RUN \ 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" && \ @@ -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 \ @@ -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 && \ @@ -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 && \ @@ -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 && \ @@ -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/ / @@ -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 \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 93406f6..6186e73 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -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 @@ -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 \ @@ -73,7 +73,6 @@ RUN \ libxml2-dev \ make \ nasm \ - ninja-build \ perl \ pkg-config \ python3-venv \ @@ -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 \ @@ -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/ / @@ -577,7 +576,7 @@ RUN \ echo "**** install runtime ****" && \ apt-get update && \ apt-get install -y \ - libasound2 \ + libasound2t64 \ libexpat1 \ libglib2.0-0 \ libgomp1 \ diff --git a/README.md b/README.md index 9865d9a..d4a57aa 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/readme-vars.yml b/readme-vars.yml index 1e08b20..a398350 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -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.