From 90178244893c65f731ddc12fbc939a7c8678e50c Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 10 Apr 2024 18:06:54 -0400 Subject: [PATCH 1/5] compile with `--enable-libharfbuzz` --- Dockerfile | 1 + Dockerfile.aarch64 | 1 + readme-vars.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 579a195..cdce025 100644 --- a/Dockerfile +++ b/Dockerfile @@ -756,6 +756,7 @@ RUN \ --enable-libass \ --enable-libfdk_aac \ --enable-libfreetype \ + --enable-libharfbuzz \ --enable-libkvazaar \ --enable-libmp3lame \ --enable-libopencore-amrnb \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 6219426..33a2412 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -467,6 +467,7 @@ RUN \ --enable-libass \ --enable-libfdk_aac \ --enable-libfreetype \ + --enable-libharfbuzz \ --enable-libkvazaar \ --enable-libmp3lame \ --enable-libopencore-amrnb \ diff --git a/readme-vars.yml b/readme-vars.yml index b10742c..98da365 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -177,6 +177,7 @@ full_custom_readme: | ## Versions + * **10.04.24:** - Compile with `--enable-libharfbuzz`. * **05.04.24:** - Bump ffmpeg to 7.0, bump libdovi, libva, mesa and vulkan-sdk. * **16.03.24:** - Bump libaom, mesa, openjpeg, opus, shaderc and svtav1. * **11.02.24:** - Add Zimg support. From ec678f8ac11c5ab9fa0fb364e3b96e108a0f7fa6 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 10 Apr 2024 18:20:25 -0400 Subject: [PATCH 2/5] also enable fribidi and fontconfig --- Dockerfile | 2 ++ Dockerfile.aarch64 | 19 +++++++++++++++++-- readme-vars.yml | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index cdce025..540214d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -751,10 +751,12 @@ RUN \ --enable-alsa \ --enable-cuvid \ --enable-ffprobe \ + --enable-fribidi \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk_aac \ + --enable-libfontconfig \ --enable-libfreetype \ --enable-libharfbuzz \ --enable-libkvazaar \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 33a2412..aded2f9 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -16,6 +16,7 @@ ENV \ AOM=v3.8.2 \ FDKAAC=2.0.3 \ FFMPEG_HARD=7.0 \ + FONTCONFIG=2.15.0 \ FREETYPE=2.13.2 \ FRIBIDI=1.0.13 \ KVAZAAR=2.2.0 \ @@ -56,7 +57,6 @@ RUN \ gperf \ libasound2-dev \ libexpat1-dev \ - libfontconfig1-dev \ libgcc-10-dev \ libgomp1 \ libharfbuzz-dev \ @@ -141,6 +141,20 @@ RUN \ --enable-shared && \ make && \ make install +RUN \ + echo "**** grabbing fontconfig ****" && \ + mkdir -p /tmp/fontconfig && \ + curl -Lf \ + https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.gz | \ + tar -zx --strip-components=1 -C /tmp/fontconfig +RUN \ + echo "**** compiling fontconfig ****" && \ + cd /tmp/fontconfig && \ + ./configure \ + --disable-static \ + --enable-shared && \ + make && \ + make install RUN \ echo "**** grabbing fribidi ****" && \ mkdir -p /tmp/fribidi && \ @@ -462,10 +476,12 @@ RUN \ --disable-ffplay \ --enable-alsa \ --enable-ffprobe \ + --enable-fribidi \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk_aac \ + --enable-libfontconfig \ --enable-libfreetype \ --enable-libharfbuzz \ --enable-libkvazaar \ @@ -530,7 +546,6 @@ RUN \ apt-get install -y \ libasound2 \ libexpat1 \ - libfontconfig1 \ libglib2.0-0 \ libgomp1 \ libharfbuzz0b \ diff --git a/readme-vars.yml b/readme-vars.yml index 98da365..e3fe65a 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -177,7 +177,7 @@ full_custom_readme: | ## Versions - * **10.04.24:** - Compile with `--enable-libharfbuzz`. + * **10.04.24:** - Compile ffmpeg with `fribidi`, `libharfbuzz` and `libfontconfig`. * **05.04.24:** - Bump ffmpeg to 7.0, bump libdovi, libva, mesa and vulkan-sdk. * **16.03.24:** - Bump libaom, mesa, openjpeg, opus, shaderc and svtav1. * **11.02.24:** - Add Zimg support. From 4c23248abeaf1a2f9e0237c61fa04cad1097e583 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 10 Apr 2024 22:25:44 -0400 Subject: [PATCH 3/5] compile libharfbuzz, strip various libs, fix typo in libfribi --- Dockerfile | 45 +++++++++++++++++++++++++++++++++----------- Dockerfile.aarch64 | 47 +++++++++++++++++++++++++++++++++++----------- readme-vars.yml | 2 +- 3 files changed, 71 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index 540214d..ee370ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ ENV \ FREETYPE=2.13.2 \ FRIBIDI=1.0.13 \ GMMLIB=22.3.15 \ + HARFBUZZ=8.4.0 \ IHD=23.4.3 \ KVAZAAR=2.2.0 \ LAME=3.100 \ @@ -69,10 +70,11 @@ RUN \ gperf \ i965-va-driver-shaders \ libasound2-dev \ + libcairo2-dev \ libexpat1-dev \ libgcc-10-dev \ + libglib2.0-dev \ libgomp1 \ - libharfbuzz-dev \ libpciaccess-dev \ libssl-dev \ libtool \ @@ -149,7 +151,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfdk-aac.so RUN \ echo "**** grabbing ffnvcodec ****" && \ mkdir -p /tmp/ffnvcodec && \ @@ -174,7 +177,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfreetype.so RUN \ echo "**** grabbing fontconfig ****" && \ mkdir -p /tmp/fontconfig && \ @@ -188,7 +192,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfontconfig.so RUN \ echo "**** grabbing fribidi ****" && \ mkdir -p /tmp/fribidi && \ @@ -203,7 +208,20 @@ RUN \ --disable-static \ --enable-shared && \ make -j 1 && \ - make install + make install && \ + strip -d /usr/local/lib/libfribidi.so +RUN \ + echo "**** grabbing harfbuzz ****" && \ + mkdir -p /tmp/harfbuzz && \ + curl -Lf \ + https://github.com/harfbuzz/harfbuzz/archive/${HARFBUZZ}.tar.gz | \ + tar -zx --strip-components=1 -C /tmp/harfbuzz +RUN \ + echo "**** compiling harfbuzz ****" && \ + cd /tmp/harfbuzz && \ + meson build && \ + ninja -C build install && \ + strip -d /usr/local/lib/x86_64-linux-gnu/libharfbuzz*.so RUN \ echo "**** grabbing kvazaar ****" && \ mkdir -p /tmp/kvazaar && \ @@ -218,7 +236,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libkvazaar.so RUN \ echo "**** grabbing lame ****" && \ mkdir -p /tmp/lame && \ @@ -255,7 +274,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libass.so RUN \ echo "**** grabbing libdrm ****" && \ mkdir -p /tmp/libdrm && \ @@ -453,7 +473,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libopencore-amr*.so RUN \ echo "**** grabbing openjpeg ****" && \ mkdir -p /tmp/openjpeg && \ @@ -487,7 +508,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libopus.so RUN \ echo "**** grabbing rav1e ****" && \ mkdir -p /tmp/rav1e && \ @@ -670,7 +692,8 @@ RUN \ cd /tmp/webp && \ ./configure && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libweb*.so RUN \ echo "**** grabbing x264 ****" && \ mkdir -p /tmp/x264 && \ @@ -751,13 +774,13 @@ RUN \ --enable-alsa \ --enable-cuvid \ --enable-ffprobe \ - --enable-fribidi \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk_aac \ --enable-libfontconfig \ --enable-libfreetype \ + --enable-libfribidi \ --enable-libharfbuzz \ --enable-libkvazaar \ --enable-libmp3lame \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index aded2f9..836be11 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -19,6 +19,7 @@ ENV \ FONTCONFIG=2.15.0 \ FREETYPE=2.13.2 \ FRIBIDI=1.0.13 \ + HARFBUZZ=8.4.0 \ KVAZAAR=2.2.0 \ LAME=3.100 \ LIBASS=0.17.1 \ @@ -56,8 +57,10 @@ RUN \ git \ gperf \ libasound2-dev \ + libcairo2-dev \ libexpat1-dev \ libgcc-10-dev \ + libglib2.0-dev \ libgomp1 \ libharfbuzz-dev \ libpciaccess-dev \ @@ -69,6 +72,7 @@ RUN \ libxml2-dev \ make \ nasm \ + ninja-build \ perl \ pkg-config \ python3-venv \ @@ -89,7 +93,7 @@ RUN \ pip \ setuptools \ wheel && \ - pip install --no-cache-dir cmake + pip install --no-cache-dir cmake meson # compile 3rd party libs RUN \ @@ -126,7 +130,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfdk-aac.so RUN \ echo "**** grabbing freetype ****" && \ mkdir -p /tmp/freetype && \ @@ -140,7 +145,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfreetype.so RUN \ echo "**** grabbing fontconfig ****" && \ mkdir -p /tmp/fontconfig && \ @@ -154,7 +160,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libfontconfig.so RUN \ echo "**** grabbing fribidi ****" && \ mkdir -p /tmp/fribidi && \ @@ -169,7 +176,20 @@ RUN \ --disable-static \ --enable-shared && \ make -j 1 && \ - make install + make install && \ + strip -d /usr/local/lib/libfribidi.so +RUN \ + echo "**** grabbing harfbuzz ****" && \ + mkdir -p /tmp/harfbuzz && \ + curl -Lf \ + https://github.com/harfbuzz/harfbuzz/archive/${HARFBUZZ}.tar.gz | \ + tar -zx --strip-components=1 -C /tmp/harfbuzz +RUN \ + echo "**** compiling harfbuzz ****" && \ + cd /tmp/harfbuzz && \ + meson build && \ + ninja -C build install && \ + strip -d /usr/local/lib/libharfbuzz*.so RUN \ echo "**** grabbing kvazaar ****" && \ mkdir -p /tmp/kvazaar && \ @@ -184,7 +204,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libkvazaar.so RUN \ echo "**** grabbing lame ****" && \ mkdir -p /tmp/lame && \ @@ -221,7 +242,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libass.so RUN \ echo "**** grabbing ogg ****" && \ mkdir -p /tmp/ogg && \ @@ -249,7 +271,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libopencore-amr*.so RUN \ echo "**** grabbing openjpeg ****" && \ mkdir -p /tmp/openjpeg && \ @@ -283,7 +306,8 @@ RUN \ --disable-static \ --enable-shared && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libopus.so RUN \ echo "**** grabbing rav1e ****" && \ mkdir -p /tmp/rav1e && \ @@ -394,7 +418,8 @@ RUN \ cd /tmp/webp && \ ./configure && \ make && \ - make install + make install && \ + strip -d /usr/local/lib/libweb*.so RUN \ echo "**** grabbing x264 ****" && \ mkdir -p /tmp/x264 && \ @@ -476,13 +501,13 @@ RUN \ --disable-ffplay \ --enable-alsa \ --enable-ffprobe \ - --enable-fribidi \ --enable-gpl \ --enable-libaom \ --enable-libass \ --enable-libfdk_aac \ --enable-libfontconfig \ --enable-libfreetype \ + --enable-libfribidi \ --enable-libharfbuzz \ --enable-libkvazaar \ --enable-libmp3lame \ diff --git a/readme-vars.yml b/readme-vars.yml index e3fe65a..7be0663 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -177,7 +177,7 @@ full_custom_readme: | ## Versions - * **10.04.24:** - Compile ffmpeg with `fribidi`, `libharfbuzz` and `libfontconfig`. + * **10.04.24:** - Compile ffmpeg with `libfribidi`, `libharfbuzz` and `libfontconfig`, compile libharfbuzz. * **05.04.24:** - Bump ffmpeg to 7.0, bump libdovi, libva, mesa and vulkan-sdk. * **16.03.24:** - Bump libaom, mesa, openjpeg, opus, shaderc and svtav1. * **11.02.24:** - Add Zimg support. From 5615702358d61157dfda21356b07337ca4187314 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:37:38 -0400 Subject: [PATCH 4/5] remove redundant package --- Dockerfile | 1 - Dockerfile.aarch64 | 1 - 2 files changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index ee370ba..9ae911c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -903,7 +903,6 @@ RUN \ libexpat1 \ libglib2.0-0 \ libgomp1 \ - libharfbuzz0b \ libllvm15 \ libmpdec3 \ libpciaccess0 \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 836be11..54892cf 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -573,7 +573,6 @@ RUN \ libexpat1 \ libglib2.0-0 \ libgomp1 \ - libharfbuzz0b \ libv4l-0 \ libx11-6 \ libxcb1 \ From 7c25c3c1d73508b49172026cf58c71058fb57d2e Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Thu, 11 Apr 2024 09:36:45 -0400 Subject: [PATCH 5/5] preserve fonts --- Dockerfile | 8 ++++++++ Dockerfile.aarch64 | 12 ++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9ae911c..3866c9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -824,12 +824,14 @@ RUN \ ldconfig && \ mkdir -p \ /buildout/usr/local/bin \ + /buildout/usr/local/etc/fonts \ /buildout/usr/local/lib/libmfx-gen \ /buildout/usr/local/lib/mfx \ /buildout/usr/local/lib/vpl \ /buildout/usr/local/lib/x86_64-linux-gnu/dri \ /buildout/usr/local/lib/x86_64-linux-gnu/vdpau \ /buildout/usr/local/share/vulkan \ + /buildout/usr/share/fonts \ /buildout/usr/share/libdrm \ /buildout/etc/OpenCL/vendors && \ cp \ @@ -838,6 +840,9 @@ RUN \ cp \ /tmp/ffmpeg/ffprobe \ /buildout/usr/local/bin && \ + cp -a \ + /usr/local/etc/fonts/* \ + /buildout/usr/local/etc/fonts/ && \ cp -a \ /usr/local/lib/lib*so* \ /buildout/usr/local/lib/ && \ @@ -865,6 +870,9 @@ RUN \ cp -a \ /usr/share/libdrm/amdgpu.ids \ /buildout/usr/share/libdrm/ && \ + cp -a \ + /usr/share/fonts/* \ + /buildout/usr/share/fonts/ && \ cp -a \ /usr/local/share/vulkan/* \ /buildout/usr/local/share/vulkan/ && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 54892cf..2ca8a67 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -540,16 +540,24 @@ RUN \ ldconfig && \ mkdir -p \ /buildout/usr/local/bin \ - /buildout/usr/local/lib && \ + /buildout/usr/local/etc/fonts \ + /buildout/usr/local/lib \ + /buildout/usr/share/fonts && \ cp \ /tmp/ffmpeg/ffmpeg \ /buildout/usr/local/bin && \ cp \ /tmp/ffmpeg/ffprobe \ /buildout/usr/local/bin && \ + cp -a \ + /usr/local/etc/fonts/* \ + /buildout/usr/local/etc/fonts/ && \ cp -a \ /usr/local/lib/lib*so* \ - /buildout/usr/local/lib/ + /buildout/usr/local/lib/ && \ + cp -a \ + /usr/share/fonts/* \ + /buildout/usr/share/fonts/ # runtime stage FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy