@@ -7,32 +7,20 @@ ENV IMAGICK_VERSION="7.1.1-38"
77ENV AOM_VERSION="3.10.0"
88ENV LIBHEIF_VERSION="1.19.3"
99ENV LIBDE265_VERSION="1.0.15"
10- ENV LIBWEBP_VERSION="1.4.0"
1110ENV GS_VERSION="9.56.1"
1211ENV IMAGICK_EXT_COMMIT="28f27044e435a2b203e32675e942eb8de620ee58"
1312
1413# Prepare environment
1514ENV IMAGICK_BUILD_DIR=${BUILD_DIR}/imagick
1615RUN mkdir -p ${IMAGICK_BUILD_DIR}
1716WORKDIR ${IMAGICK_BUILD_DIR}
18- RUN LD_LIBRARY_PATH= yum -y install libpng-devel libjpeg-devel lcms2-devel ImageMagick-devel nasm gcc10 gcc10-c++
19-
20- # Use gcc10 as the default compiler, needed for AOM
21- ENV CXX="/usr/bin/gcc10-g++"
22- ENV CC="/usr/bin/gcc10-gcc"
23-
24- # Compile libwebp since AL2 ships with v0.3, and v0.4 or higher is required to builder the other libs
25- RUN curl -Ls -o libwebp.tar.gz https://github.com/webmproject/libwebp/archive/refs/tags/v${LIBWEBP_VERSION}.tar.gz && tar xzf libwebp.tar.gz && rm libwebp.tar.gz \
26- && cd ${IMAGICK_BUILD_DIR}/libwebp-${LIBWEBP_VERSION} \
27- && autoreconf -i && automake && autoconf \
28- && ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} \
29- && make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libwebp-${LIBWEBP_VERSION}
17+ RUN LD_LIBRARY_PATH= dnf -y install libpng-devel libjpeg-devel lcms2-devel libwebp-devel nasm cmake
3018
3119# Compile AOM (libavif dependency for AVIF support)
32- RUN git clone -b v${AOM_VERSION} --depth 1 https://aomedia.googlesource .com/aom \
20+ RUN curl -Ls -o aom.tar.gz https://storage.googleapis .com/aom-releases/libaom-${AOM_VERSION}.tar.gz && tar xzf aom.tar.gz && rm aom.tar.gz \
3321 && mkdir -p ${IMAGICK_BUILD_DIR}/aom_build && cd ${IMAGICK_BUILD_DIR}/aom_build \
34- && cmake ../aom -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 \
35- && make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/aom && rm -rf ${IMAGICK_BUILD_DIR}/aom_build
22+ && cmake ../libaom-${AOM_VERSION} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 \
23+ && make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libaom-${AOM_VERSION} && rm -rf ${IMAGICK_BUILD_DIR}/aom_build
3624
3725# Compile libde265 (libheif dependency)
3826RUN curl -Ls -o libde265.tar.gz https://github.com/strukturag/libde265/releases/download/v${LIBDE265_VERSION}/libde265-${LIBDE265_VERSION}.tar.gz && tar xzf libde265.tar.gz && rm libde265.tar.gz \
@@ -46,21 +34,21 @@ RUN curl -Ls -o libheif.tar.gz https://github.com/strukturag/libheif/releases/do
4634 && cmake --preset=release-noplugins .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
4735 && make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libheif-${LIBHEIF_VERSION}
4836
49- # Compile gs
37+ # Compile ghostscript from source (the system package requires too many runtime files)
5038RUN curl -Ls -o ghostscript.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9561/ghostscript-${GS_VERSION}.tar.gz && tar xzf ghostscript.tar.gz && rm ghostscript.tar.gz \
5139 && mkdir -p ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION} && cd ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION} \
5240 && ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} --without-x \
5341 && make -j $(nproc) && cp bin/gs /tmp/gs && rm -rf ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION}
5442
55- # Compile the ImageMagick library
43+ # Compile the ImageMagick library (AL2023 only has v6, we need v7)
5644RUN curl -Ls -o ImageMagick.tar.gz https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz && tar xzf ImageMagick.tar.gz && rm ImageMagick.tar.gz \
5745 && cd ${IMAGICK_BUILD_DIR}/ImageMagick-${IMAGICK_VERSION} \
5846 && ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} --with-webp --with-heic --disable-static --with-freetype=yes \
5947 && make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/ImageMagick-${IMAGICK_VERSION} && convert -list configure
6048
6149# Compile the php imagick extension and copy the dependencies
62- RUN git clone https://github.com/Imagick/imagick && cd imagick \
63- &&git reset --hard ${IMAGICK_EXT_COMMIT} \
50+ RUN curl -Ls -o imagick.tar.gz https://github.com/Imagick/imagick/archive/${IMAGICK_EXT_COMMIT}.tar.gz && tar xzf imagick.tar.gz && rm imagick.tar.gz \
51+ && cd imagick- ${IMAGICK_EXT_COMMIT} \
6452 && phpize && ./configure --with-imagick=${INSTALL_DIR} \
6553 && make -j $(nproc) && make install && cp `php-config --extension-dir`/imagick.so /tmp/imagick.so && strip --strip-debug /tmp/imagick.so && echo 'extension=imagick.so' > /tmp/ext.ini \
6654 && php /bref/lib-copy/copy-dependencies.php /tmp/imagick.so /tmp/extension-libs
0 commit comments