Ensure features are enabled with imagemagick. (#1233)

This commit is contained in:
Googol Lee
2025-07-01 16:42:28 +02:00
committed by GitHub
parent 029bf280e5
commit d126bef343
6 changed files with 34 additions and 24 deletions

View File

@@ -16,7 +16,8 @@ RUN --mount=type=cache,target=${BUILD_CACHE_DIR},id=libraw-${TARGETARCH}-${LIBRA
if [ -f /run/secrets/github_token ]; then \
export GITHUB_TOKEN=$(cat /run/secrets/github_token); \
fi \
&& export $(cat /env) && ./build_libraw.sh
&& set -a && source /env && set +a \
&& ./build_libraw.sh
FROM build-libraw AS build-libheif
ARG LIBHEIF_VERSION
@@ -29,7 +30,8 @@ RUN --mount=type=cache,target=${BUILD_CACHE_DIR},id=libheif-${TARGETARCH}-${LIBH
if [ -f /run/secrets/github_token ]; then \
export GITHUB_TOKEN=$(cat /run/secrets/github_token); \
fi \
&& export $(cat /env) && ./build_libheif.sh
&& set -a && source /env && set +a \
&& ./build_libheif.sh
FROM build-libheif AS build-imagemagick
ARG IMAGEMAGICK_VERSION
@@ -42,7 +44,8 @@ RUN --mount=type=cache,target=${BUILD_CACHE_DIR},id=imagemagick-${TARGETARCH}-${
if [ -f /run/secrets/github_token ]; then \
export GITHUB_TOKEN=$(cat /run/secrets/github_token); \
fi \
&& export $(cat /env) && ./build_imagemagick.sh
&& set -a && source /env && set +a \
&& ./build_imagemagick.sh
FROM base-prep AS download-jellyfin-ffmpeg
ARG JELLYFIN_FFMPEG_VERSION
@@ -51,7 +54,8 @@ ENV BUILD_CACHE_DIR=/build-cache
WORKDIR /tmp/download-ffmpeg
COPY --chmod=0755 download_jellyfin-ffmpeg.sh .
RUN --mount=type=cache,target=${BUILD_CACHE_DIR},id=ffmpeg-${TARGETARCH}-${JELLYFIN_FFMPEG_VERSION} \
export $(cat /env) && ./download_jellyfin-ffmpeg.sh
set -a && source /env && set +a \
&& ./download_jellyfin-ffmpeg.sh
FROM base-prep AS final-assembly
COPY --from=build-libraw /output/ /output/

View File

@@ -10,8 +10,8 @@ fi
set -euo pipefail
: "${DEB_HOST_MULTIARCH:=$(uname -m)-linux-gnu}"
: "${DEB_HOST_ARCH:=$(dpkg --print-architecture)}"
: "${DEB_HOST_GNU_TYPE:=$(dpkg-architecture -a "$DEB_HOST_ARCH" -qDEB_HOST_GNU_TYPE)}"
CACHE_DIR="${BUILD_CACHE_DIR:-/build-cache}/ImageMagick-${IMAGEMAGICK_VERSION}"
CACHE_MARKER="${CACHE_DIR}/ImageMagick-${IMAGEMAGICK_VERSION}-complete"
@@ -25,7 +25,7 @@ fi
echo "Building ImageMagick ${IMAGEMAGICK_VERSION} (cache miss)..."
echo Compiler: "${DEB_HOST_MULTIARCH}" Arch: "${DEB_HOST_ARCH}"
echo Compiler: "${DEB_HOST_GNU_TYPE}" Arch: "${DEB_HOST_ARCH}"
apt-get install -y \
libjxl-dev:"${DEB_HOST_ARCH}" \
@@ -51,14 +51,23 @@ curl -fsSL --retry 2 --retry-delay 5 --retry-max-time 60 -o ./magick.tar.gz \
tar xfv ./magick.tar.gz
cd ImageMagick-*
FEATURES="--with-heic --with-jpeg --with-png --with-raw --with-tiff --with-webp"
./configure \
--enable-64bit-channel-masks \
--enable-static --enable-shared --enable-delegate-build \
--with-heic --with-jpeg --with-png \
--with-raw --with-tiff --with-webp \
--without-x --without-magick-plus-plus \
--without-perl --disable-doc \
--host="${DEB_HOST_MULTIARCH}"
--host="${DEB_HOST_GNU_TYPE}" \
${FEATURES}
# Ensure that features are enabled
for feature in ${FEATURES}
do
grep -- ${feature}'.*yes$' config.log || (echo "Can't enable feature ${feature}"; false)
done
make
make install
cd ..

View File

@@ -10,8 +10,8 @@ fi
set -euo pipefail
: "${DEB_HOST_MULTIARCH:=$(uname -m)-linux-gnu}"
: "${DEB_HOST_ARCH:=$(dpkg --print-architecture)}"
: "${DEB_HOST_GNU_TYPE:=$(dpkg-architecture -a "$DEB_HOST_ARCH" -qDEB_HOST_GNU_TYPE)}"
CACHE_DIR="${BUILD_CACHE_DIR:-/build-cache}/libheif-${LIBHEIF_VERSION}"
CACHE_MARKER="${CACHE_DIR}/libheif-${LIBHEIF_VERSION}-complete"
@@ -25,7 +25,7 @@ fi
echo "Building libheif ${LIBHEIF_VERSION} (cache miss)..."
echo Compiler: "${DEB_HOST_MULTIARCH}" Arch: "${DEB_HOST_ARCH}"
echo Compiler: "${DEB_HOST_GNU_TYPE}" Arch: "${DEB_HOST_ARCH}"
apt-get install -y \
libdav1d-dev:"${DEB_HOST_ARCH}" \
@@ -46,10 +46,10 @@ cd ./*-libheif-*
cmake \
--preset=release \
-DCMAKE_SYSTEM_PROCESSOR="${DEB_HOST_ARCH}" \
-DCMAKE_C_COMPILER="${DEB_HOST_MULTIARCH}"-gcc \
-DCMAKE_CXX_COMPILER="${DEB_HOST_MULTIARCH}"-g++ \
-DPKG_CONFIG_EXECUTABLE="${DEB_HOST_MULTIARCH}"-pkg-config \
-DCMAKE_LIBRARY_ARCHITECTURE="${DEB_HOST_MULTIARCH}" \
-DCMAKE_C_COMPILER="${DEB_HOST_GNU_TYPE}"-gcc \
-DCMAKE_CXX_COMPILER="${DEB_HOST_GNU_TYPE}"-g++ \
-DPKG_CONFIG_EXECUTABLE="${DEB_HOST_GNU_TYPE}"-pkg-config \
-DCMAKE_LIBRARY_ARCHITECTURE="${DEB_HOST_GNU_TYPE}" \
-DENABLE_PLUGIN_LOADING=OFF \
-DWITH_GDK_PIXBUF=OFF .
make

View File

@@ -10,8 +10,8 @@ fi
set -euo pipefail
: "${DEB_HOST_MULTIARCH:=$(uname -m)-linux-gnu}"
: "${DEB_HOST_ARCH:=$(dpkg --print-architecture)}"
: "${DEB_HOST_GNU_TYPE:=$(dpkg-architecture -a "$DEB_HOST_ARCH" -qDEB_HOST_GNU_TYPE)}"
CACHE_DIR="${BUILD_CACHE_DIR:-/build-cache}/LibRaw-${LIBRAW_VERSION}"
CACHE_MARKER="${CACHE_DIR}/LibRaw-${LIBRAW_VERSION}-complete"
@@ -25,7 +25,7 @@ fi
echo "Building LibRaw ${LIBRAW_VERSION} (cache miss)..."
echo Compiler: "${DEB_HOST_MULTIARCH}" Arch: "${DEB_HOST_ARCH}"
echo Compiler: "${DEB_HOST_GNU_TYPE}" Arch: "${DEB_HOST_ARCH}"
apt-get install -y \
libjpeg62-turbo-dev:"${DEB_HOST_ARCH}" \
@@ -45,7 +45,7 @@ autoreconf --install
--disable-silent-rules \
--disable-maintainer-mode \
--disable-dependency-tracking \
--host="${DEB_HOST_MULTIARCH}"
--host="${DEB_HOST_GNU_TYPE}"
make
make install
cd ..

View File

@@ -10,8 +10,8 @@ fi
set -euo pipefail
: "${DEB_HOST_MULTIARCH:=$(uname -m)-linux-gnu}"
: "${DEB_HOST_ARCH:=$(dpkg --print-architecture)}"
: "${DEB_HOST_GNU_TYPE:=$(dpkg-architecture -a "$DEB_HOST_ARCH" -qDEB_HOST_GNU_TYPE)}"
CACHE_DIR="${BUILD_CACHE_DIR:-/build-cache}/jellyfin-ffmpeg-${JELLYFIN_FFMPEG_VERSION}"
CACHE_MARKER="${CACHE_DIR}/jellyfin-ffmpeg-${JELLYFIN_FFMPEG_VERSION}-complete"
@@ -25,7 +25,7 @@ fi
echo "Downloading jellyfin-ffmpeg ${JELLYFIN_FFMPEG_VERSION} (cache miss)..."
echo Compiler: "${DEB_HOST_MULTIARCH}" Arch: "${DEB_HOST_ARCH}"
echo Compiler: "${DEB_HOST_GNU_TYPE}" Arch: "${DEB_HOST_ARCH}"
VER="${JELLYFIN_FFMPEG_VERSION#v}"
MAJOR_VER=$(echo "${VER}" | cut -d. -f1)

View File

@@ -2,7 +2,6 @@
set -euo pipefail
: "${TARGETPLATFORM:=linux/$(dpkg --print-architecture)}"
: "${DEB_HOST_MULTIARCH:=$(uname -m)-linux-gnu}"
TARGETARCH="$(echo "$TARGETPLATFORM" | cut -d"/" -f2)"
@@ -27,7 +26,5 @@ apt-get install -y \
cmake
dpkg-architecture -a "$DEBIAN_ARCH" >/env
echo "PKG_CONFIG_PATH=/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig" >>/env
# shellcheck disable=SC2046
export $(cat /env)
echo "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/$(dpkg-architecture -a "$DEBIAN_ARCH" -qDEB_HOST_MULTIARCH)/pkgconfig" >>/env
cat /env