├── install-rust.sh ├── install-go.sh ├── LICENSE ├── versions.sh ├── .github └── workflows │ ├── dev.yml │ └── build.yml ├── Dockerfile ├── check-versions.sh ├── README.md ├── download-deps.sh └── CHANGELOG.md /install-rust.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | PATH="/root/.cargo/bin:$PATH" 5 | 6 | curl https://sh.rustup.rs -sSf | sh -s -- -y 7 | cargo install cargo-c 8 | -------------------------------------------------------------------------------- /install-go.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | my_dir="$(dirname "$0")" 5 | versions_file="$my_dir/versions.sh" 6 | source $versions_file 7 | 8 | case "$(uname -m)" in 9 | x86_64) 10 | ARCH=amd64 11 | ;; 12 | 13 | aarch64) 14 | ARCH=arm64 15 | ;; 16 | 17 | *) 18 | echo "Unsupported architecture $(uname -m)" 19 | exit 1 20 | ;; 21 | esac 22 | 23 | curl -Ls https://golang.org/dl/go${GOLANG_VERSION}.linux-${ARCH}.tar.gz \ 24 | | tar -xzC /usr/local 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Sergey Alexandrovich 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /versions.sh: -------------------------------------------------------------------------------- 1 | export GOLANG_VERSION=1.25.1 2 | export ZLIB_VERSION=2.2.5 3 | export BROTLI_VERSION=1.1.0 4 | export FFI_VERSION=3.5.2 5 | export PCRE2_VERSION=10.46 6 | export GLIB_VERSION=2.86.0 7 | export HIGHWAY_VERSION=1.3.0 8 | export QUANTIZR_VERSION=1.4.3 9 | export LIBEXPAT_VERSION=2.7.2 10 | export LIBXML2_VERSION=2.15.0 11 | export LIBEXIF_VERSION=0.6.25 12 | export LCMS2_VERSION=2.17 13 | export LIBJPEGTURBO_VERSION=3.1.2 14 | export LIBJXL_VERSION=0.11.1 15 | export LIBPNG_VERSION=1.6.37 16 | export LIBSPNG_VERSION=0.7.4 17 | export LIBWEBP_VERSION=1.6.0 18 | export LIBTIFF_VERSION=4.7.0 19 | export CGIF_VERSION=0.5.0 20 | export LIBDE265_VERSION=1.0.16 21 | export KVAZAAR_VERSION=2.3.2 22 | export DAV1D_VERSION=1.5.1 23 | # export RAV1E_VERSION=0.5.1 24 | export AOM_VERSION=3.13.1 25 | export LIBYUV_SHA='a6a2ec65' 26 | export LIBHEIF_VERSION=1.20.2 27 | export FREETYPE_VERSION=2.14.1 28 | export FONTCONFIG_VERSION=2.17.1 29 | export HARFBUZZ_VERSION=11.5.0 30 | export PIXMAN_VERSION=0.46.4 31 | export CAIRO_VERSION=1.18.4 32 | export FRIBIDI_VERSION=1.0.16 33 | export PANGO_VERSION=1.57.0 34 | export LIBRSVG_VERSION=2.61.1 35 | export VIPS_VERSION=8.17.2 36 | -------------------------------------------------------------------------------- /.github/workflows/dev.yml: -------------------------------------------------------------------------------- 1 | # This is the temporary workflow for building and pushing imgproxy-base images with v4-dev tag. 2 | name: Build dev image 3 | 4 | on: 5 | workflow_dispatch: 6 | inputs: 7 | tag: 8 | description: "The tag to push the image with" 9 | required: true 10 | default: "v4-dev" 11 | 12 | concurrency: 13 | group: build-v4-dev-${{ github.ref }} 14 | cancel-in-progress: true 15 | 16 | env: 17 | BASE_IMAGE_NAME: ghcr.io/imgproxy/imgproxy-base 18 | 19 | jobs: 20 | build: 21 | if: github.repository_owner == 'imgproxy' 22 | strategy: 23 | matrix: 24 | build: 25 | - arch: amd64 26 | dockerPlatform: linux/amd64 27 | image: linux-5.0 28 | - arch: arm64 29 | dockerPlatform: linux/arm64/v8 30 | image: arm-3.0 31 | runs-on: 32 | - codebuild-imgproxy-${{ github.run_id }}-${{ github.run_attempt }} 33 | - image:${{ matrix.build.image }} 34 | permissions: 35 | contents: read 36 | packages: write 37 | steps: 38 | - name: Checkout 39 | uses: actions/checkout@v4 40 | 41 | - name: Login to GitHub Container Registry 42 | uses: docker/login-action@v3 43 | with: 44 | registry: ghcr.io 45 | username: ${{ github.actor }} 46 | password: ${{ secrets.GITHUB_TOKEN }} 47 | 48 | - name: Build and push 49 | uses: docker/build-push-action@v6 50 | with: 51 | tags: ${{ env.BASE_IMAGE_NAME }}:${{ github.event.inputs.tag }}-${{ matrix.build.arch }} 52 | platforms: ${{ matrix.build.dockerPlatform }} 53 | provenance: false 54 | push: true 55 | 56 | push_manifests: 57 | needs: build 58 | runs-on: ubuntu-latest 59 | permissions: 60 | contents: read 61 | packages: write 62 | steps: 63 | - name: Login to GitHub Container Registry 64 | uses: docker/login-action@v3 65 | with: 66 | registry: ghcr.io 67 | username: ${{ github.actor }} 68 | password: ${{ secrets.GITHUB_TOKEN }} 69 | 70 | - name: Push manifests 71 | run: | 72 | docker buildx imagetools create -t ${{ env.BASE_IMAGE_NAME }}:${{ github.event.inputs.tag }} ${{ env.BASE_IMAGE_NAME }}:${{ github.event.inputs.tag }}-amd64 ${{ env.BASE_IMAGE_NAME }}:${{ github.event.inputs.tag }}-arm64 73 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Use Debian Bullseye as a base image to link against glibc 2.31. 2 | FROM public.ecr.aws/debian/debian:bullseye-slim AS base 3 | 4 | RUN apt-get update \ 5 | && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 6 | bash \ 7 | curl \ 8 | git \ 9 | ca-certificates \ 10 | build-essential \ 11 | pkg-config \ 12 | libssl-dev \ 13 | libstdc++-10-dev 14 | 15 | WORKDIR /root 16 | 17 | # ============================================================================== 18 | 19 | FROM base AS deps-src 20 | 21 | COPY versions.sh download-deps.sh ./ 22 | RUN ./download-deps.sh 23 | 24 | # ============================================================================== 25 | 26 | FROM base AS deps 27 | 28 | COPY install-rust.sh ./ 29 | 30 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 31 | autoconf \ 32 | autopoint \ 33 | automake \ 34 | cmake \ 35 | nasm \ 36 | libtool \ 37 | python3-pip \ 38 | python3-venv \ 39 | gettext \ 40 | gperf \ 41 | && ./install-rust.sh \ 42 | && python3 -m venv /root/.python \ 43 | && /root/.python/bin/pip install meson ninja packaging 44 | 45 | COPY versions.sh build-deps.sh build-bash-profile.sh *.patch ./ 46 | COPY --from=deps-src /root/deps /root/deps 47 | 48 | # We need environment variables that are based on the uname -m output, 49 | # so we have to use a Bash profile instead of ENV 50 | RUN ./build-bash-profile.sh > /root/.bashrc 51 | ENV BASH_ENV=/root/.bashrc 52 | 53 | RUN ./build-deps.sh 54 | 55 | # ============================================================================== 56 | 57 | FROM base AS golang 58 | 59 | COPY versions.sh install-go.sh ./ 60 | RUN ./install-go.sh 61 | 62 | # ============================================================================== 63 | 64 | FROM public.ecr.aws/debian/debian:bullseye-slim AS final 65 | LABEL maintainer="Sergey Alexandrovich " 66 | 67 | RUN apt-get update \ 68 | && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 69 | bash \ 70 | curl \ 71 | git \ 72 | ca-certificates \ 73 | build-essential \ 74 | pkg-config \ 75 | libssl-dev \ 76 | libstdc++-10-dev 77 | 78 | WORKDIR /root 79 | 80 | COPY --from=golang /usr/local/go /usr/local/go 81 | ENV PATH=$PATH:/usr/local/go/bin 82 | 83 | COPY --from=deps /opt/imgproxy/lib /opt/imgproxy/lib 84 | COPY --from=deps /opt/imgproxy/include /opt/imgproxy/include 85 | COPY --from=deps /opt/imgproxy/bin /opt/imgproxy/bin 86 | 87 | COPY --from=deps /root/.bashrc /root/.bashrc 88 | ENV BASH_ENV=/root/.bashrc 89 | 90 | WORKDIR /app 91 | CMD ["bash"] 92 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'test/*' 7 | tags: 8 | - 'v[0-9]+.[0-9]+.[0-9]+*' 9 | - 'test-[a-zA-Z0-9]+' 10 | 11 | env: 12 | DOCKER_META_IMAGES: | 13 | ghcr.io/imgproxy/imgproxy-base 14 | DOCKER_META_TAGS: | 15 | type=semver,pattern=v{{version}} 16 | type=ref,event=branch,enable=${{ startsWith(github.ref, 'refs/heads/test/') }} 17 | 18 | jobs: 19 | build: 20 | if: github.repository_owner == 'imgproxy' 21 | strategy: 22 | matrix: 23 | build: 24 | - arch: amd64 25 | dockerPlatform: linux/amd64 26 | image: linux-5.0 27 | - arch: arm64 28 | dockerPlatform: linux/arm64/v8 29 | image: arm-3.0 30 | runs-on: 31 | - codebuild-imgproxy-${{ github.run_id }}-${{ github.run_attempt }} 32 | - image:${{ matrix.build.image }} 33 | permissions: 34 | contents: read 35 | packages: write 36 | steps: 37 | - name: Checkout 38 | uses: actions/checkout@v4 39 | 40 | - name: Docker meta 41 | id: meta 42 | uses: docker/metadata-action@v5 43 | with: 44 | images: ${{ env.DOCKER_META_IMAGES }} 45 | tags: ${{ env.DOCKER_META_TAGS }} 46 | flavor: | 47 | latest=auto 48 | suffix=-${{ matrix.build.arch }},onlatest=true 49 | 50 | - name: Login to GitHub Container Registry 51 | uses: docker/login-action@v3 52 | with: 53 | registry: ghcr.io 54 | username: ${{ github.actor }} 55 | password: ${{ secrets.GITHUB_TOKEN }} 56 | 57 | - name: Build and push 58 | uses: docker/build-push-action@v6 59 | with: 60 | tags: ${{ steps.meta.outputs.tags }} 61 | labels: ${{ steps.meta.outputs.labels }} 62 | platforms: ${{ matrix.build.dockerPlatform }} 63 | provenance: false 64 | push: true 65 | 66 | push_manifests: 67 | needs: build 68 | runs-on: ubuntu-latest 69 | permissions: 70 | contents: read 71 | packages: write 72 | steps: 73 | - name: Docker meta 74 | id: meta 75 | uses: docker/metadata-action@v5 76 | with: 77 | images: ${{ env.DOCKER_META_IMAGES }} 78 | tags: ${{ env.DOCKER_META_TAGS }} 79 | flavor: | 80 | latest=auto 81 | 82 | - name: Login to GitHub Container Registry 83 | uses: docker/login-action@v3 84 | with: 85 | registry: ghcr.io 86 | username: ${{ github.actor }} 87 | password: ${{ secrets.GITHUB_TOKEN }} 88 | 89 | - name: Push manifests 90 | run: | 91 | for tag in ${{ join(fromJSON(steps.meta.outputs.json).tags, ' ') }} 92 | do 93 | docker buildx imagetools create -t $tag ${tag}-amd64 ${tag}-arm64 94 | done 95 | 96 | -------------------------------------------------------------------------------- /check-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | my_dir="$(dirname "$0")" 5 | versions_file="$my_dir/versions.sh" 6 | source $versions_file 7 | 8 | version_entry() { 9 | echo "export $1_VERSION=$2" 10 | } 11 | 12 | update_version() { 13 | name=$1 14 | old_version=$2 15 | new_version=$3 16 | 17 | if [ "$new_version" != "$old_version" ]; then 18 | old_entry=$(version_entry $name $old_version) 19 | new_entry=$(version_entry $name $new_version) 20 | sed -i '' "s/$old_entry/$new_entry/g" "$versions_file" 21 | echo "$name. Latest version: $new_version. Current version: $old_version" 22 | fi 23 | } 24 | 25 | check_version() { 26 | name=$1 27 | old_version=$2 28 | new_version=$(curl -s https://release-monitoring.org/api/project/$3 | jq -r '.versions | map(select(match("^[0-9]+(\\.[0-9]+)*$")))[0]') 29 | 30 | update_version $name $old_version $new_version 31 | } 32 | 33 | check_version_github() { 34 | name=$1 35 | old_version=$2 36 | new_version=$(curl -sL https://api.github.com/repos/$3/releases | jq -r 'map(select(.prerelease == false)) | map(select(.draft == false)) | map(.tag_name)[0] | ltrimstr("v") | ltrimstr("V")') 37 | 38 | update_version $name $old_version $new_version 39 | } 40 | 41 | check_version "GOLANG" $GOLANG_VERSION "1227" 42 | check_version_github "ZLIB" $ZLIB_VERSION "zlib-ng/zlib-ng" 43 | check_version "BROTLI" $BROTLI_VERSION "15235" 44 | check_version "FFI" "$FFI_VERSION" "1611" 45 | check_version "GLIB" $GLIB_VERSION "10024" 46 | check_version "PCRE2" $PCRE2_VERSION "5832" 47 | check_version "HIGHWAY" $HIGHWAY_VERSION "205809" 48 | check_version_github "QUANTIZR" $QUANTIZR_VERSION "Darthsim/quantizr" 49 | check_version "LIBEXPAT" $LIBEXPAT_VERSION "770" 50 | check_version "LIBXML2" $LIBXML2_VERSION "1783" 51 | check_version "LIBEXIF" $LIBEXIF_VERSION "1607" 52 | check_version "LCMS2" $LCMS2_VERSION "9815" 53 | check_version "LIBJPEGTURBO" $LIBJPEGTURBO_VERSION "1648" 54 | check_version "LIBJXL" $LIBJXL_VERSION "232764" 55 | check_version "LIBPNG" $LIBPNG_VERSION "1705" 56 | check_version "LIBSPNG" $LIBSPNG_VERSION "24289" 57 | check_version "LIBWEBP" $LIBWEBP_VERSION "1761" 58 | check_version "LIBTIFF" $LIBTIFF_VERSION "1738" 59 | check_version_github "CGIF" $CGIF_VERSION "dloebl/cgif" 60 | check_version "LIBDE265" $LIBDE265_VERSION "11239" 61 | check_version "KVAZAAR" $KVAZAAR_VERSION "12418" 62 | check_version "DAV1D" $DAV1D_VERSION "18920" 63 | # check_version "RAV1E" $RAV1E_VERSION "75048" 64 | check_version "AOM" $AOM_VERSION "17628" 65 | check_version "LIBHEIF" $LIBHEIF_VERSION "64439" 66 | check_version "FREETYPE" $FREETYPE_VERSION "854" 67 | check_version "FONTCONFIG" $FONTCONFIG_VERSION "827" 68 | check_version "HARFBUZZ" $HARFBUZZ_VERSION "1299" 69 | check_version "PIXMAN" $PIXMAN_VERSION "3648" 70 | check_version "CAIRO" $CAIRO_VERSION "247" 71 | check_version "FRIBIDI" $FRIBIDI_VERSION "857" 72 | check_version "PANGO" $PANGO_VERSION "11783" 73 | check_version "LIBRSVG" $LIBRSVG_VERSION "5420" 74 | check_version "VIPS" $VIPS_VERSION "5097" 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # imgproxy Docker base 2 | 3 | ## What is this? 4 | 5 | Base Docker image with the latest imgproxy dependencies. Ideal for imgproxy development and building its Docker images. 6 | 7 | ## How to use this? 8 | 9 | ### For development 10 | 11 | Run this image with your development directory mounted: 12 | 13 | ```shell 14 | docker run --rm -it \ 15 | -p 8080:8080 \ 16 | -v $(pwd):/app \ 17 | --name imgproxy_dev \ 18 | ghcr.io/imgproxy/imgproxy-base:latest 19 | ``` 20 | 21 | ...and build your imgproxy as usual: 22 | 23 | ```shell 24 | go build 25 | ``` 26 | 27 | ### For production 28 | 29 | If you don't care about the size, you can just build your Docker image on top of this one: 30 | 31 | ```dockerfile 32 | FROM ghcr.io/imgproxy/imgproxy-base:latest 33 | 34 | COPY . . 35 | # We use bash here to load dynamically generated build environment from /root/.basrc 36 | RUN ["bash", "-c", "go build -v -o /opt/imgproxy/bin/imgproxy"] 37 | RUN ln -s /opt/imgproxy/bin/imgproxy /usr/local/bin/imgproxy 38 | 39 | ENV VIPS_WARNING=0 40 | ENV MALLOC_ARENA_MAX=2 41 | 42 | RUN groupadd -r imgproxy && useradd -r -u 999 -g imgproxy imgproxy 43 | USER 999 44 | 45 | CMD ["imgproxy"] 46 | 47 | EXPOSE 8080 48 | ``` 49 | 50 | But you probably want to use multistage build to minimize the final image, and it's a bit tricky. You need to take care of the following: 51 | 52 | 1. Copy built dependencies from `/opt/imgproxy`. 53 | 2. Install required system dependencies. 54 | 55 | Here is the working example: 56 | 57 | ```dockerfile 58 | FROM ghcr.io/imgproxy/imgproxy-base:latest 59 | 60 | COPY . . 61 | RUN ["bash", "-c", "go build -v -o /opt/imgproxy/bin/imgproxy"] 62 | 63 | # Remove unnecessary files 64 | RUN rm -rf /opt/imgproxy/lib/pkgconfig /opt/imgproxy/lib/cmake 65 | 66 | # ================================================================================================== 67 | # Final image 68 | 69 | FROM public.ecr.aws/ubuntu/ubuntu:noble 70 | 71 | RUN apt-get update \ 72 | && apt-get upgrade -y \ 73 | && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 74 | bash \ 75 | ca-certificates \ 76 | libstdc++6 \ 77 | fontconfig-config \ 78 | fonts-dejavu-core \ 79 | media-types \ 80 | && rm -rf /var/lib/apt/lists/* \ 81 | && rm -rf /etc/fonts/conf.d/10-sub-pixel-rgb.conf /etc/fonts/conf.d/11-lcdfilter-default.conf 82 | 83 | COPY --from=build /opt/imgproxy/bin/imgproxy /opt/imgproxy/bin/ 84 | COPY --from=build /opt/imgproxy/lib /opt/imgproxy/lib 85 | RUN ln -s /opt/imgproxy/bin/imgproxy /usr/local/bin/imgproxy 86 | 87 | ENV VIPS_WARNING=0 88 | ENV MALLOC_ARENA_MAX=2 89 | 90 | RUN groupadd -r imgproxy && useradd -r -u 999 -g imgproxy imgproxy 91 | USER 999 92 | 93 | CMD ["imgproxy"] 94 | 95 | EXPOSE 8080 96 | ``` 97 | 98 | ## Author 99 | 100 | Sergey "[DarthSim](https://github.com/DarthSim)" Alexandrovich 101 | 102 | ## License 103 | 104 | imgproxy-base is licensed under the MIT license. 105 | 106 | See LICENSE for the full license text. 107 | -------------------------------------------------------------------------------- /download-deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | my_dir="$(dirname "$0")" 6 | source "$my_dir/versions.sh" 7 | 8 | print_download_stage() { 9 | echo "" 10 | echo "== Download $1 $2 ==================================" 11 | echo "" 12 | } 13 | 14 | snake_version() { 15 | echo $1 | sed 's/\./_/g' 16 | } 17 | 18 | minor_version() { 19 | echo "$1" | sed -E 's/^([0-9]+\.[0-9]+).*/\1/' 20 | } 21 | 22 | DEPS_SRC=/root/deps 23 | mkdir -p $DEPS_SRC 24 | 25 | print_download_stage zlib $ZLIB_VERSION 26 | mkdir $DEPS_SRC/zlib 27 | cd $DEPS_SRC/zlib 28 | curl -Lks https://github.com/zlib-ng/zlib-ng/archive/${ZLIB_VERSION}.tar.gz \ 29 | | tar -xzC . --strip-components=1 30 | 31 | print_download_stage brotli $BROTLI_VERSION 32 | mkdir $DEPS_SRC/brotli 33 | cd $DEPS_SRC/brotli 34 | curl -Lks https://github.com/google/brotli/archive/refs/tags/v$BROTLI_VERSION.tar.gz \ 35 | | tar -xzC . --strip-components=1 36 | 37 | print_download_stage ffi $FFI_VERSION 38 | mkdir $DEPS_SRC/ffi 39 | cd $DEPS_SRC/ffi 40 | curl -Lks https://github.com/libffi/libffi/releases/download/v${FFI_VERSION}/libffi-${FFI_VERSION}.tar.gz \ 41 | | tar -xzC . --strip-components=1 42 | 43 | print_download_stage pcre2 $PCRE2_VERSION 44 | mkdir $DEPS_SRC/pcre2 45 | cd $DEPS_SRC/pcre2 46 | git clone https://github.com/PCRE2Project/pcre2.git . \ 47 | --branch pcre2-$PCRE2_VERSION \ 48 | -c advice.detachedHead=false --depth 1 49 | git submodule update --init 50 | # curl -Lks https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE2_VERSION}/pcre2-${PCRE2_VERSION}.tar.gz \ 51 | # | tar -xzC . --strip-components=1 52 | 53 | print_download_stage glib $GLIB_VERSION 54 | mkdir $DEPS_SRC/glib 55 | cd $DEPS_SRC/glib 56 | curl -Lks https://download.gnome.org/sources/glib/$(minor_version $GLIB_VERSION)/glib-${GLIB_VERSION}.tar.xz \ 57 | | tar -xJC . --strip-components=1 58 | 59 | print_download_stage highway $HIGHWAY_VERSION 60 | mkdir $DEPS_SRC/highway 61 | cd $DEPS_SRC/highway 62 | curl -Lks https://github.com/google/highway/archive/refs/tags/$HIGHWAY_VERSION.tar.gz \ 63 | | tar -xzC . --strip-components=1 64 | 65 | print_download_stage quantizr $QUANTIZR_VERSION 66 | mkdir $DEPS_SRC/quantizr 67 | cd $DEPS_SRC/quantizr 68 | curl -Ls https://github.com/DarthSim/quantizr/archive/v$QUANTIZR_VERSION.tar.gz \ 69 | | tar -xzC . --strip-components=1 70 | 71 | print_download_stage expat $LIBEXPAT_VERSION 72 | mkdir $DEPS_SRC/expat 73 | cd $DEPS_SRC/expat 74 | curl -Ls https://github.com/libexpat/libexpat/releases/download/R_$(snake_version $LIBEXPAT_VERSION)/expat-$LIBEXPAT_VERSION.tar.gz \ 75 | | tar -xzC . --strip-components=1 76 | 77 | print_download_stage libxml2 $LIBXML2_VERSION 78 | mkdir $DEPS_SRC/libxml2 79 | cd $DEPS_SRC/libxml2 80 | curl -Ls https://download.gnome.org/sources/libxml2/$(minor_version $LIBXML2_VERSION)/libxml2-${LIBXML2_VERSION}.tar.xz \ 81 | | tar -xJC . --strip-components=1 82 | 83 | print_download_stage libexif $LIBEXIF_VERSION 84 | mkdir $DEPS_SRC/libexif 85 | cd $DEPS_SRC/libexif 86 | curl -Ls https://github.com/libexif/libexif/archive/libexif-$(snake_version $LIBEXIF_VERSION)-release.tar.gz \ 87 | | tar -xzC . --strip-components=1 88 | 89 | print_download_stage lcms2 $LCMS2_VERSION 90 | mkdir $DEPS_SRC/lcms2 91 | cd $DEPS_SRC/lcms2 92 | curl -Ls https://github.com/mm2/Little-CMS/releases/download/lcms${LCMS2_VERSION}/lcms2-${LCMS2_VERSION}.tar.gz \ 93 | | tar -xzC . --strip-components=1 94 | 95 | print_download_stage libjpeg-turbo $LIBJPEGTURBO_VERSION 96 | mkdir $DEPS_SRC/libjpeg-turbo 97 | cd $DEPS_SRC/libjpeg-turbo 98 | curl -Ls https://github.com/libjpeg-turbo/libjpeg-turbo/archive/$LIBJPEGTURBO_VERSION.tar.gz \ 99 | | tar -xzC . --strip-components=1 100 | 101 | print_download_stage libjxl $LIBJXL_VERSION 102 | mkdir $DEPS_SRC/libjxl 103 | cd $DEPS_SRC/libjxl 104 | curl -Ls https://github.com/libjxl/libjxl/archive/refs/tags/v$LIBJXL_VERSION.tar.gz \ 105 | | tar -xzC . --strip-components=1 106 | 107 | print_download_stage libpng $LIBPNG_VERSION 108 | mkdir $DEPS_SRC/libpng 109 | cd $DEPS_SRC/libpng 110 | curl -Ls https://sourceforge.net/projects/libpng/files/libpng16/$LIBPNG_VERSION/libpng-$LIBPNG_VERSION.tar.gz/download \ 111 | | tar -xzC . --strip-components=1 112 | 113 | print_download_stage libspng $LIBSPNG_VERSION 114 | mkdir $DEPS_SRC/libspng 115 | cd $DEPS_SRC/libspng 116 | curl -Ls https://github.com/randy408/libspng/archive/refs/tags/v$LIBSPNG_VERSION.tar.gz \ 117 | | tar -xzC . --strip-components=1 118 | 119 | print_download_stage libwebp $LIBWEBP_VERSION 120 | mkdir $DEPS_SRC/libwebp 121 | cd $DEPS_SRC/libwebp 122 | curl -Ls https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP_VERSION.tar.gz \ 123 | | tar -xzC . --strip-components=1 124 | 125 | print_download_stage libtiff $LIBTIFF_VERSION 126 | mkdir $DEPS_SRC/libtiff 127 | cd $DEPS_SRC/libtiff 128 | curl -Ls https://gitlab.com/libtiff/libtiff/-/archive/v$LIBTIFF_VERSION/libtiff-v$LIBTIFF_VERSION.tar.gz \ 129 | | tar -xzC . --strip-components=1 130 | 131 | print_download_stage cgif $CGIF_VERSION 132 | mkdir $DEPS_SRC/cgif 133 | cd $DEPS_SRC/cgif 134 | curl -Ls https://github.com/dloebl/cgif/archive/refs/tags/v$CGIF_VERSION.tar.gz \ 135 | | tar -xzC . --strip-components=1 136 | 137 | print_download_stage libde265 $LIBDE265_VERSION 138 | mkdir $DEPS_SRC/libde265 139 | cd $DEPS_SRC/libde265 140 | curl -Ls https://github.com/strukturag/libde265/releases/download/v$LIBDE265_VERSION/libde265-$LIBDE265_VERSION.tar.gz \ 141 | | tar -xzC . --strip-components=1 142 | 143 | print_download_stage kvazaar $KVAZAAR_VERSION 144 | mkdir $DEPS_SRC/kvazaar 145 | cd $DEPS_SRC/kvazaar 146 | curl -Ls https://github.com/ultravideo/kvazaar/archive/refs/tags/v$KVAZAAR_VERSION.tar.gz \ 147 | | tar -xzC . --strip-components=1 148 | 149 | print_download_stage dav1d $DAV1D_VERSION 150 | mkdir $DEPS_SRC/dav1d 151 | cd $DEPS_SRC/dav1d 152 | curl -Ls https://code.videolan.org/videolan/dav1d/-/archive/$DAV1D_VERSION/dav1d-$DAV1D_VERSION.tar.gz \ 153 | | tar -xzC . --strip-components=1 154 | 155 | # print_download_stage rav1e $RAV1E_VERSION 156 | # mkdir $DEPS_SRC/rav1e 157 | # cd $DEPS_SRC/rav1e 158 | # curl -Ls https://github.com/xiph/rav1e/archive/v$RAV1E_VERSION.tar.gz \ 159 | # | tar -xzC . --strip-components=1 160 | 161 | print_download_stage aom $AOM_VERSION 162 | mkdir $DEPS_SRC/aom 163 | cd $DEPS_SRC/aom 164 | curl -Ls https://storage.googleapis.com/aom-releases/libaom-${AOM_VERSION}.tar.gz \ 165 | | tar -xzC . --strip-components=1 166 | 167 | print_download_stage libyuv $LIBYUV_SHA 168 | mkdir $DEPS_SRC/libyuv 169 | cd $DEPS_SRC/libyuv 170 | curl -Ls https://chromium.googlesource.com/libyuv/libyuv/+archive/${LIBYUV_SHA}.tar.gz \ 171 | | tar -xzC . 172 | 173 | print_download_stage libheif $LIBHEIF_VERSION 174 | mkdir $DEPS_SRC/libheif 175 | cd $DEPS_SRC/libheif 176 | curl -Ls https://github.com/strukturag/libheif/releases/download/v$LIBHEIF_VERSION/libheif-$LIBHEIF_VERSION.tar.gz \ 177 | | tar -xzC . --strip-components=1 178 | 179 | print_download_stage freetype $FREETYPE_VERSION 180 | mkdir $DEPS_SRC/freetype 181 | cd $DEPS_SRC/freetype 182 | curl -Ls https://gitlab.freedesktop.org/freetype/freetype/-/archive/VER-${FREETYPE_VERSION//./-}/freetype-VER-${FREETYPE_VERSION//./-}.tar.bz2 \ 183 | | tar -xjC . --strip-components=1 184 | 185 | print_download_stage fontconfig $FONTCONFIG_VERSION 186 | mkdir $DEPS_SRC/fontconfig 187 | cd $DEPS_SRC/fontconfig 188 | curl -Ls https://gitlab.freedesktop.org/fontconfig/fontconfig/-/archive/${FONTCONFIG_VERSION}/fontconfig-${FONTCONFIG_VERSION}.tar.gz \ 189 | | tar -xzC . --strip-components=1 190 | 191 | print_download_stage harfbuzz $HARFBUZZ_VERSION 192 | mkdir $DEPS_SRC/harfbuzz 193 | cd $DEPS_SRC/harfbuzz 194 | curl -Ls https://github.com/harfbuzz/harfbuzz/archive/${HARFBUZZ_VERSION}.tar.gz \ 195 | | tar -xzC . --strip-components=1 196 | 197 | print_download_stage pixman $PIXMAN_VERSION 198 | mkdir $DEPS_SRC/pixman 199 | cd $DEPS_SRC/pixman 200 | curl -Ls https://cairographics.org/releases/pixman-${PIXMAN_VERSION}.tar.gz \ 201 | | tar -xzC . --strip-components=1 202 | 203 | print_download_stage cairo $CAIRO_VERSION 204 | mkdir $DEPS_SRC/cairo 205 | cd $DEPS_SRC/cairo 206 | curl -Ls https://gitlab.freedesktop.org/cairo/cairo/-/archive/$CAIRO_VERSION/cairo-$CAIRO_VERSION.tar.gz \ 207 | | tar -xzC . --strip-components=1 208 | 209 | print_download_stage fribidi $FRIBIDI_VERSION 210 | mkdir $DEPS_SRC/fribidi 211 | cd $DEPS_SRC/fribidi 212 | curl -Ls https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI_VERSION}/fribidi-${FRIBIDI_VERSION}.tar.xz \ 213 | | tar -xJC . --strip-components=1 214 | 215 | print_download_stage pango $PANGO_VERSION 216 | mkdir $DEPS_SRC/pango 217 | cd $DEPS_SRC/pango 218 | curl -Lks https://download.gnome.org/sources/pango/$(minor_version $PANGO_VERSION)/pango-${PANGO_VERSION}.tar.xz \ 219 | | tar -xJC . --strip-components=1 220 | 221 | print_download_stage librsvg $LIBRSVG_VERSION 222 | mkdir $DEPS_SRC/librsvg 223 | cd $DEPS_SRC/librsvg 224 | curl -Lks https://download.gnome.org/sources/librsvg/$(minor_version $LIBRSVG_VERSION)/librsvg-${LIBRSVG_VERSION}.tar.xz \ 225 | | tar -xJC . --strip-components=1 226 | 227 | print_download_stage vips $VIPS_VERSION 228 | mkdir $DEPS_SRC/vips 229 | cd $DEPS_SRC/vips 230 | curl -Ls https://github.com/libvips/libvips/releases/download/v$VIPS_VERSION/vips-$VIPS_VERSION.tar.xz \ 231 | | tar -xJC . --strip-components=1 232 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [3.14.0] - 2025-09-17 4 | ### Added 5 | - Add PCRE2 10.40. 6 | 7 | ### Changed 8 | - Update Go to 1.25.1. 9 | - Update zlib to 2.2.5. 10 | - Update ffi to 3.5.2. 11 | - Update GLib to 2.86.0. 12 | - Update highway to 1.3.0. 13 | - Update libexpat to 2.7.2. 14 | - Update libxml2 to 2.15.0. 15 | - Update libjpegturbo to 3.1.2. 16 | - Update libwebp to 1.6.0. 17 | - Update kvazaar to 2.3.2. 18 | - Update aom to 3.13.1. 19 | - Update libheif to 1.20.2. 20 | - Update freetype to 2.14.1. 21 | - Update fontconfig to 2.17.1. 22 | - Update harfbuzz to 11.5.0. 23 | - Update pixman to 0.46.4. 24 | - Update pango to 1.57.0. 25 | - Update librsvg to 2.61.1. 26 | - Update vips to 8.17.2. 27 | 28 | ## [3.13.3] - 2025-07-02 29 | ### Changed 30 | - Update Go to 1.24.4. 31 | - Update ffi to 3.5.1. 32 | - Update GLib to 2.85.1. 33 | - Update libxml2 to 2.14.4. 34 | - Update libjpegturbo to 3.1.1. 35 | - Update libde265 to 1.0.16. 36 | - Update libheif to 1.20.0. 37 | - Update fontconfig to 2.17.0. 38 | - Update harfbuzz to 11.2.1. 39 | - Update pixman to 0.46.2. 40 | - Update pango to 1.56.4. 41 | - Update vips to 8.17.0. 42 | 43 | ## [3.13.2] - 2025-04-18 44 | ### Changed 45 | - Update Go to 1.24.2. 46 | - Update ffi to 3.4.8. 47 | - Update GLib to 2.84.1. 48 | - Update quantizr to 1.4.3. 49 | - Update libxml2 to 2.14.2. 50 | - Update aom to 3.12.1. 51 | - Update fontconfig to 2.16.2. 52 | - Update harfbuzz to 11.1.0. 53 | 54 | ## [3.13.1] - 2025-03-30 55 | ### Changed 56 | - Update Go to 1.24.1. 57 | - Update zlib to 2.2.4. 58 | - Update ffi to 3.4.7. 59 | - Update GLib to 2.84.0. 60 | - Update libexpat to 2.7.1. 61 | - Update libxml2 to 2.14.0. 62 | - Update libexif to 0.6.25. 63 | - Update lcms2 to 2.17. 64 | - Update libjpegturbo to 3.1.0. 65 | - Update libwebp to 1.5.0. 66 | - Update cgif to 0.5.0. 67 | - Update dav1d to 1.5.1. 68 | - Update aom to 3.12.0. 69 | - Update libheif to 1.19.7. 70 | - Update fontconfig to 2.16.1. 71 | - Update harfbuzz to 11.0.0. 72 | - Update cairo to 1.18.4. 73 | - Update pango to 1.56.3. 74 | - Update librsvg to 2.60.0. 75 | - Update vips to 8.16.1. 76 | 77 | ## [3.13.0] - 2024-12-05 78 | ### Added 79 | - Add brotli 1.1.0. 80 | - Add libjxl 0.11.1. 81 | 82 | ### Changed 83 | - Update Go to 1.23.4. 84 | - Update GLib to 2.83.0. 85 | - Update libexpat to 2.6.4. 86 | - Update libxml2 to 2.13.5. 87 | - Update aom to 3.11.0. 88 | - Update libheif to 1.19.5. 89 | - Update harfbuzz to 10.1.0. 90 | - Update pixman to 0.44.2. 91 | - Update pango to 1.55.0. 92 | - Update librsvg to 2.59.2. 93 | - Update vips to 8.16.0. 94 | 95 | ## [3.12.0] - 2024-10-24 96 | ### Changed 97 | - Update Go to 1.23.2. 98 | - Update zlib to 2.2.2. 99 | - Update GLib to 2.82.2. 100 | - Update libexpat to 2.6.3. 101 | - Update libxml2 to 2.13.4. 102 | - Update libjpegturbo to 3.0.4. 103 | - Update libtiff to 4.7.0. 104 | - Update dav1d to 1.5.0. 105 | - Update aom to 3.10.0. 106 | - Update harfbuzz to 10.0.1. 107 | - Update cairo to 1.18.2. 108 | - Update fribidi to 1.0.16. 109 | - Update librsvg to 2.59.1. 110 | - Update vips to 8.15.5. 111 | 112 | ### Removed 113 | - Remove gdkpixbuf. 114 | 115 | ## [3.11.0] - 2024-08-13 116 | ### Change 117 | - Change base image to `debian:bullseye` for glibc compatibility. 118 | - Install all dependencies to `/opt/imgproxy` to avoid conflicts with system libraries. 119 | - Update Go to 1.22.6. 120 | - Update zlib to 2.2.1. 121 | - Update GLib to 2.81.1. 122 | - Update libxml2 to 2.13.3. 123 | - Update cgif to 0.4.1. 124 | - Update libheif to 1.18.2. 125 | - Update freetype to 2.13.3. 126 | - Update harfbuzz to 9.0.0. 127 | - Update vips to 8.15.3. 128 | 129 | ### Removed 130 | - Remove liblzma. 131 | - Remove libzstd. 132 | 133 | ## [3.10.0] - 2024-06-18 134 | ### Change 135 | - Update base image to `ubuntu:noble`. 136 | - Update Go to 1.22.4. 137 | - Update GLib to 2.80.3. 138 | - Update libxml2 to 2.13.0. 139 | - Update dav1d to 1.4.3. 140 | - Update aom to 3.9.1. 141 | - Update fribidi to 1.0.15. 142 | - Update pango to 1.54.0. 143 | - Update librsvg to 2.58.1. 144 | 145 | ## [3.9.2] - 2024-06-04 146 | ### Change 147 | - Update Go 1.22.3. 148 | - Update GLib 2.80.2. 149 | - Update highway 1.2.0. 150 | - Update libxml2 2.12.7. 151 | - Update libjpegturbo 3.0.3. 152 | - Update dav1d 1.4.2. 153 | - Update aom 3.9.0. 154 | - Update gdkpixbuf 2.42.12. 155 | - Update harfbuzz 8.5.0. 156 | - Update fribidi 1.0.14. 157 | 158 | ### Fix 159 | - Fix possible crash in libheif when encoding HEIC. 160 | 161 | ## [3.9.1] - 2024-04-15 162 | ### Change 163 | - Update Go to 1.22.2. 164 | - Update libwebp to 1.4.0. 165 | - Update cgif to 0.4.0. 166 | - Update kvazaar to 2.3.1. 167 | - Update harfbuzz to 8.4.0. 168 | - Update pango to 1.52.2. 169 | - Patch vips to increase EXIF size limit to 8MB. 170 | 171 | ## [3.9.0] - 2024-03-21 172 | ### Change 173 | - Change base image to `ubuntu:mantic`. 174 | - Update GLib to 2.80.0. 175 | - Update libexpat to 2.6.2. 176 | - Update libxml2 to 2.12.6. 177 | - Update dav1d to 1.4.1. 178 | - Update aom to 3.8.2. 179 | - Update harfbuzz to 8.3.1. 180 | - Update librsvg to 2.58.0. 181 | - Update vips to 8.15.2. 182 | 183 | ## [3.8.6] - 2024-03-06 184 | ### Change 185 | - Update golang to 1.22.1. 186 | - Update GLib to 2.79.3. 187 | - Update libexpat to 2.6.1. 188 | - Update pixman to 0.43.4. 189 | - Update pango to 1.52.1. 190 | 191 | ## [3.8.5] - 2024-02-22 192 | ### Change 193 | - Update Go to 1.22.0. 194 | - Update ffi to 3.4.6. 195 | - Update GLib to 2.79.2. 196 | - Update highway to 1.1.0. 197 | - Update libexpat to 2.6.0. 198 | - Update libxml2 to 2.12.5. 199 | - Update libjpegturbo to 3.0.2. 200 | - Update dav1d to 1.4.0. 201 | - Update aom to 3.8.1. 202 | - Update pixman to 0.43.2. 203 | - Update pango to 1.51.2. 204 | - Update librsvg to 2.57.91. 205 | 206 | ## [3.8.4] - 2024-01-18 207 | ### Change 208 | - Update Go to 1.21.6. 209 | - Update zlib to 2.1.6. 210 | - Update GLib to 2.79.0. 211 | - Update quantizr to 1.4.2. 212 | - Update libxml2 to 2.12.4. 213 | - Update lcms2 to 2.16. 214 | - Update libde265 to 1.0.15. 215 | - Update kvazaar to 2.3.0. 216 | - Update aom to 3.8.0. 217 | - Update libheif to 1.17.6. 218 | - Update fontconfig to 2.15.0. 219 | - Update pixman to 0.43.0. 220 | - Update librsvg to 2.57.1. 221 | - Update vips to 8.15.1. 222 | 223 | ## [3.8.3] - 2023-12-05 224 | ### Change 225 | - Patch libheif to ignore alpha channel if it has different BPP instead of throwing an error. 226 | 227 | ## [3.8.2] - 2023-11-25 228 | ### Change 229 | - Update libxml2 to 2.12.1. 230 | - Use Ninja in CMake builds. 231 | - Use `Release` build type for aom. 232 | 233 | ## [3.8.1] - 2023-11-22 234 | ### Change 235 | - Update libde265 to 1.0.14. 236 | - Update aom to 3.7.1. 237 | - Update libheif to 1.17.5. 238 | 239 | ### Fix 240 | - Patch vips to fix `reduceh` on SSE2 CPUs. 241 | 242 | ## [3.8.0] - 2023-11-18 243 | ### Add 244 | - Add highway. 245 | - Add kvazaar. 246 | 247 | ### Change 248 | - Update Go to 1.21.4. 249 | - Update GLib to 2.78.1. 250 | - Update libxml2 to 2.12.0. 251 | - Update libheif to 1.17.3. 252 | - Update harfbuzz to 8.3.0. 253 | - Update pango to 1.51.1. 254 | - Update vips to 8.15.0. 255 | - Patch vips to use `vips_concurrency_get()` threads in `heifsave`. 256 | 257 | ## [3.7.5] - 2023-10-24 258 | ### Change 259 | - Enable GIF gdkpixbuf loader. 260 | - Patch vips to set default NCLX profile to HEIC/AVIF if no ICC profile is provided. 261 | 262 | ## [3.7.4] - 2023-10-21 263 | ### Change 264 | - Update Go to 1.21.3. 265 | - Update zlib to 2.1.4. 266 | - Update libjpegturbo to 3.0.1. 267 | - Update libheif to 1.17.1. 268 | - Update harfbuzz to 8.2.2. 269 | - Patch vips to correctly treat EXIF strings with invalid UTF8 characters. 270 | - Patch vips to fix possible segfault in heifload. 271 | 272 | ## [3.7.3] - 2023-10-05 273 | ### Change 274 | - Update Go to 1.21.1. 275 | - Update GLib to 2.78.0. 276 | - Update libwebp to 1.3.2. 277 | - Update libtiff to 4.6.0. 278 | - Update dav1d to 1.3.0. 279 | - Update harfbuzz to 8.2.1. 280 | - Update cairo to 1.18.0. 281 | - Update pango to 1.51.1. 282 | - Update librsvg to 2.57.0. 283 | - Update vips to 8.14.5. 284 | - Patch vips to fix invalid UTF-8 strings instead of ignoring them. 285 | - Patch vips for 16-bit float TIFFs support. 286 | - Patch vips for OJPEG TIFFs support. 287 | 288 | ## [3.7.2] - 2023-09-04 289 | ### Change 290 | - Update GLib to 2.77.3. 291 | - Update aom to 3.7.0. 292 | - Update freetype to 2.13.2. 293 | - Update librsvg to 2.56.93. 294 | - Enable HDR support in aom. 295 | 296 | ## [3.7.1] - 2023-08-22 297 | ### Fix 298 | - Fix building libheif with dav1d support. 299 | 300 | ## [3.7.0] - 2023-08-20 301 | ### Change 302 | - Change base image to `debian:stable-slim`. 303 | - Update Go to 1.21.0. 304 | - Update GLib to 2.77.2. 305 | - Update libxml2 to 2.11.5. 306 | - Update harfbuzz to 8.1.1. 307 | - Update pango to 1.51.0. 308 | - Update librsvg to 2.56.92. 309 | - Update vips to 8.14.4. 310 | - Update vips patches. 311 | 312 | ## [3.6.1] - 2023-07-13 313 | ### Change 314 | - Update Go to 1.20.6. 315 | - Update zlib to 2.1.3. 316 | - Update GLib to 2.77.0. 317 | - Update libjpegturbo to 3.0.0. 318 | - Update libwebp to 1.3.1. 319 | - Update harfbuzz to 8.0.0. 320 | - Update librsvg to 2.56.90. 321 | 322 | ### Fix 323 | - Fix SIMD-optimized methods in vips. 324 | 325 | ## [3.6.0] - 2023-06-28 326 | ### Add 327 | - Add libyuv. 328 | 329 | ### Change 330 | - Update Go to 1.20.5. 331 | - Update zlib to 2.1.2. 332 | - Update GLib to 2.76.3. 333 | - Update libxml2 to 2.11.4. 334 | - Update libtiff to 4.5.1. 335 | - Update cgif to 0.3.2. 336 | - Update libde265 to 1.0.12. 337 | - Update dav1d to 1.2.1. 338 | - Update libheif to 1.16.2. 339 | - Update freetype to 2.13.1. 340 | - Update librsvg to 2.56.1. 341 | - Add SIMD optimizations to vips. 342 | - Patch libheif to support libyuv. 343 | 344 | ### Removed 345 | - Removed orc. 346 | 347 | ## [3.5.1] - 2023-05-23 348 | ### Change 349 | - Set optimization flags for some libraries. 350 | 351 | ## [3.5.0] - 2023-05-17 352 | ### Add 353 | - Add zlib-ng 2.0.7. 354 | - Add ffi 3.4.4. 355 | 356 | ### Changed 357 | - Update fribidi to 1.0.13. 358 | 359 | ## [3.4.0] - 2023-05-16 360 | ### Add 361 | - Add orc 0.4.33. 362 | 363 | ### Changed 364 | - Update Go to 1.20.4. 365 | - Update GLib to 2.76.2. 366 | - Update libxml2 to 2.11.3. 367 | - Update lcms2 to 2.15. 368 | - Update libjpegturbo to 2.1.91. 369 | - Update libspng to 0.7.4. 370 | - Update cgif to 0.3.1. 371 | - Update dav1d to 1.2.0. 372 | - Update aom to 3.6.1. 373 | - Update libheif to 1.16.1. 374 | - Update freetype to 2.13.0. 375 | - Update harfbuzz to 7.3.0. 376 | - Update pango to 1.50.14. 377 | - Update librsvg to 2.56.0. 378 | - Update vips to 8.14.2. 379 | 380 | ### Removed 381 | - Remove libcroco. 382 | 383 | ## [3.3.5] - 2023-02-06 384 | ### Changed 385 | - Update Go to 1.20. 386 | - Update GLib to 2.75.2. 387 | - Update libjpegturbo to 2.1.90. 388 | - Update libspng to 0.7.3. 389 | - Update libwebp to 1.3.0. 390 | - Update libtiff to 4.5.0. 391 | - Update libde265 to 1.0.11. 392 | - Update libheif to 1.14.2. 393 | - Update fontconfig to 2.14.2. 394 | - Update harfbuzz to 6.0.0. 395 | - Update cairo to 1.17.8. 396 | - Update pango to 1.50.12. 397 | - Update librsvg to 2.55.90. 398 | - Update vips to 8.14.1. 399 | 400 | ## [3.3.4] - 2022-11-17 401 | ### Changed 402 | - Update Go to 1.19.3. 403 | - Update GLib to 2.75.0. 404 | - Update libexpat to 2.5.0. 405 | - Update lcms2 to 2.14. 406 | - Update libde265 to 1.0.9. 407 | - Update libheif to 1.14.0. 408 | - Update gdkpixbuf to 2.42.10. 409 | - Update fontconfig to 2.14.1. 410 | - Update harfbuzz to 5.3.1. 411 | - Update pixman to 0.42.2. 412 | - Update vips to 8.13.3. 413 | 414 | ## [3.3.3] - 2022-10-19 415 | ### Changed 416 | - Update libxml2 to 2.10.3. 417 | - Update harfbuzz to 5.3.0. 418 | - Update pixman to 0.42.0. 419 | 420 | ### Fix 421 | - Patch libvips to fix saving of paletted PNGs with low bit-depth. 422 | 423 | ## [3.3.2] - 2022-10-06 424 | ### Changed 425 | - Update Go to 1.19.2. 426 | - Update GLib to 2.74.0. 427 | - Update libexpat to 2.4.9. 428 | - Update libxml2 to 2.10.2. 429 | - Update aom to 3.5.0. 430 | - Update libheif to 1.13.0. 431 | - Update harfbuzz to 5.2.0. 432 | - Update pango to 1.50.11. 433 | - Update librsvg to 2.55.1. 434 | - Update vips to 8.13.2. 435 | 436 | ## [3.3.1] - 2022-08-19 437 | ### Changed 438 | - Update Go to 1.19. 439 | - Update GLib to 2.73.3. 440 | - Update Quantizr to 1.4.1. 441 | - Update libxml2 to 2.10.0. 442 | - Update libjpegturbo to 2.1.4. 443 | - Update libwebp to 1.2.4. 444 | - Update gdkpixbuf to 2.42.9. 445 | - Update harfbuzz to 5.1.0. 446 | - Update pango to 1.50.9. 447 | - Update librsvg to 2.55.0. 448 | - Patch libvips to speed up GIF loading. 449 | 450 | ## [3.3.0] - 2022-07-25 451 | ### Add 452 | - Add libspng 0.7.2. 453 | 454 | ### Changed 455 | - Update Go to 1.18.4. 456 | - Update GLib to 2.73.2. 457 | - Update Quantizr to 1.3.0. 458 | - Update libwebp to 1.2.3. 459 | - Update libtiff to 4.4.0. 460 | - Update aom to 3.4.0. 461 | - Update harfbuzz to 4.4.1. 462 | - Update pango to 1.50.8. 463 | - Update librsvg to 2.54.4. 464 | - Update vips to 8.13.0. 465 | - Patch libheif. 466 | 467 | ## [3.2.4] - 2022-05-20 468 | ### Fix 469 | - Fix dav1d plugin of libheif. 470 | 471 | ## [3.2.3] - 2022-05-15 472 | ### Changed 473 | - Update Go to 1.18.2. 474 | - Update GLib to 2.72.1. 475 | - Update libxml2 to 2.9.14. 476 | - Update cgif to 0.3.0. 477 | - Update freetype to 2.12.1. 478 | - Update harfbuzz to 4.2.1. 479 | - Update fribidi to 1.0.12. 480 | - Update pango to 1.50.7. 481 | - Update librsvg to 2.54.3. 482 | 483 | ### Fix 484 | - Patch libvips to not fail on PNGs with to many text chunks. 485 | 486 | ## [3.2.2] - 2022-04-13 487 | ### Changed 488 | - Update Go to 1.18. 489 | - Update GLib to 2.72.0. 490 | - Update Quantizr to 1.2.0. 491 | - Update libexpat to 2.4.8. 492 | - Update libxml2 to 2.9.13. 493 | - Update libjpegturbo to 2.1.3. 494 | - Update cgif to 0.2.1. 495 | - Update dav1d to 1.0.0. 496 | - Update aom to 3.3.0. 497 | - Update gdkpixbuf to 2.42.8. 498 | - Update freetype to 2.12.0. 499 | - Update fontconfig to 2.14.0. 500 | - Update harfbuzz to 4.2.0. 501 | - Update cairo to 1.17.6. 502 | - Update pango to 1.50.6. 503 | - Update librsvg to 2.54.0. 504 | 505 | ### Fix 506 | - Patch nsgif in vips code to recover from LZW_EOI_CODE. 507 | 508 | ## [3.2.1] - 2022-02-11 509 | ### Fix 510 | - Fix `CFLAGS` for amd64 build. 511 | 512 | ## [3.2.0] - 2022-02-07 513 | ### Added 514 | - Add libaom 3.2.0. 515 | 516 | ### Changed 517 | - Update lcms2 to 2.13.1. 518 | - Update fontconfig to 2.13.96. 519 | - Update harfbuzz to 3.3.2. 520 | 521 | ### Removed 522 | - Remove rav1e. 523 | 524 | ## [3.1.0] - 2022-01-31 525 | ### Added 526 | - Multiarch build. 527 | 528 | ### Changed 529 | - Update Go to 1.17.6. 530 | - Update GLib to 2.71.1. 531 | - Update libexpat to 2.4.4. 532 | - Update libexif to 0.6.24. 533 | - Update lcms2 to 2.13. 534 | - Update Quantizr to 1.1.0. 535 | - Update libwebp to 1.2.2. 536 | - Update rav1e to 0.5.1. 537 | - Update freetype to 2.11.1. 538 | - Update harfbuzz to 3.2.0. 539 | - Update pango to 1.50.3. 540 | - Update vips to 8.12.2. 541 | 542 | ## [3.0.1] - 2021-11-22 543 | ### Added 544 | - Add cgif 0.0.2. 545 | 546 | ### Changed 547 | - Update Go to 1.17.3. 548 | - Update GLib to 2.70.1. 549 | - Update libjpegturbo to 2.1.2. 550 | - Update libpng to 1.6.37. 551 | - Update Quantizr to 1.0.1. 552 | - Update rav1e to 0.5.0. 553 | - Update freetype to 2.11.0. 554 | - Update harfbuzz to 3.1.1. 555 | - Update pango to 1.49.3. 556 | - Update vips to 8.12.0. 557 | 558 | ### Removed 559 | - Remove ImageMagick. 560 | 561 | ## [3.0.0] - 2021-09-29 562 | ### Changed 563 | - Update Go to 1.17.1. 564 | - Update GLib to 2.70.0. 565 | - Update libexif to 0.6.23. 566 | - Update libjpegturbo to 2.1.1. 567 | - Update libwebp to 1.2.1. 568 | - Update dav1d to 0.9.2. 569 | - Update fontconfig to 2.13.94. 570 | - Update harfbuzz to 3.0.0. 571 | - Update fribidi to 1.0.11. 572 | - Update pango to 1.49.1. 573 | - Update ImageMagick to 7.1.0-8. 574 | - Update vips to 8.11.4. 575 | 576 | ## [1.4.0] - 2021-06-10 577 | ### Changed 578 | - Use Debian Bullseye as a base. 579 | - Reduce final image size by using multistage build. 580 | - Update GLib to 2.68.2. 581 | - Update libexpat to 2.4.1. 582 | - Update libxml2 to 2.9.12. 583 | - Update libjpegturbo to 2.1.0. 584 | - Update libtiff to 4.3.0. 585 | - Update dav1d to 0.9.0. 586 | - Update rav1e to 0.4.1. 587 | - Update libheif to 1.12.0. 588 | - Update gdkpixbuf to 2.42.6. 589 | - Update harfbuzz to 2.8.1. 590 | - Update pango to 1.48.5. 591 | - Update librsvg to 2.50.7. 592 | - Update ImageMagick to 7.0.11-14. 593 | - Update vips to 8.11.0. 594 | 595 | ### Fix 596 | - Fix librsvg panics when processing some SVGs. 597 | 598 | ### Removed 599 | - Remove giflib (libvips has builtin libnsgif now). 600 | 601 | ## [1.3.2] - 2021-03-04 602 | ### Changed 603 | - Update GLib to 2.67.5. 604 | - Update lcms2 to 2.12. 605 | - Update libwebp to 1.2.0. 606 | - Update libtiff to 4.2.0. 607 | - Update dav1d to 0.8.2. 608 | - Update rav1e to 0.4.0. 609 | - Update libheif to 1.11.0. 610 | - Update harfbuzz to 2.7.4. 611 | - Update pango to 1.48.2. 612 | - Update librsvg to 2.50.3. 613 | - Update ImageMagick to 7.0.11-2. 614 | - Update vips to 8.10.5. 615 | 616 | ## [1.3.1] - 2020-12-15 617 | ### Changed 618 | - Update GLib to 2.67.0. 619 | - Update libexpat to 2.2.10. 620 | - Update libjpegturbo to 2.0.90. 621 | - Update libde265 to 1.0.8. 622 | - Update dav1d to 0.8.0. 623 | - Update gdkpixbuf to 2.42.2. 624 | - Update freetype to 2.10.4. 625 | - Update fontconfig to 2.13.93. 626 | - Update pango to 1.48.0. 627 | - Update librsvg to 2.50.2. 628 | - Update ImageMagick to 7.0.10-48. 629 | - Update libvips to 8.10.4. 630 | 631 | ## [1.3.0] - 2020-09-15 632 | ### Added 633 | - Add rav1e 0.3.4. 634 | - Add dav1d 0.7.1. 635 | 636 | # Removed 637 | - Remove libaom. 638 | 639 | ## [1.2.0] - 2020-09-15 640 | ### Added 641 | - Add libaom 2.0.0. 642 | 643 | ### Changed 644 | - Update GLib to 2.66.0. 645 | - Update harfbuzz to 2.7.2. 646 | - Update librsvg to 2.50.0. 647 | - Update ImageMagick to 7.0.10-29. 648 | - Update libvips to 8.10.1. 649 | 650 | ## [1.0.4] - 2020-08-27 651 | ### Changed 652 | - Update GLib to 2.65.2. 653 | - Update libde265 to 1.0.6. 654 | - Update libheif to 1.8.0. 655 | - Update harfbuzz to 2.7.1. 656 | - Update pango to 1.46.1. 657 | - Update librsvg to 2.49.4. 658 | - Update ImageMagick to 7.0.10-28. 659 | 660 | ## [1.0.3] - 2020-08-11 661 | ### Changed 662 | - Update GLib version to 2.65.1. 663 | - Update libjpegturbo version to 2.0.5. 664 | - Update harfbuzz version to 2.7.0. 665 | - Update fribidi version to 1.0.10. 666 | - Update pango version to 1.46.0. 667 | - Update librsvg version to 2.49.3. 668 | - Update ImageMagick version to 7.0.10-26. 669 | - Update libvips version to 8.10.0. 670 | 671 | ## [1.0.2] - 2020-07-09 672 | ### Fix 673 | - Fix libde265 build 674 | 675 | ## [1.0.1] - 2020-06-22 676 | ### Changed 677 | - Update GLib version to 2.65.0. 678 | - Update lcms2 version to 2.11. 679 | - Update ImageMagick version to 7.0.10-20. 680 | 681 | ## [1.0.0] - 2020-06-16 682 | ### Added 683 | - First release. 684 | --------------------------------------------------------------------------------