From 90dd8791aaf417b24ba1c7bff3532ccca91d6ab0 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Tue, 16 Jun 2026 19:38:46 -0400 Subject: [PATCH 1/8] streamline build - eliminate unnecessary install commands - refactor Mise plugin build process --- ct/immich.sh | 17 +++++++---------- install/immich-install.sh | 17 +++++++---------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index f0362c2df8a..fca4c28102b 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -178,10 +178,10 @@ EOF # server build export SHARP_IGNORE_GLOBAL_LIBVIPS=true - $STD pnpm --filter immich --frozen-lockfile build + $STD pnpm --filter @immich/sdk --filter @immich/plugin-sdk --filter immich build unset SHARP_IGNORE_GLOBAL_LIBVIPS export SHARP_FORCE_GLOBAL_LIBVIPS=true - $STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR" + $STD pnpm --filter immich --prod --no-optional deploy "$APP_DIR" # Patch helmet.json: disable upgrade-insecure-requests for HTTP access if [[ -f "$APP_DIR/helmet.json" ]]; then @@ -191,10 +191,9 @@ EOF cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin - # openapi & web build + # sdk & web build cd "$SRC_DIR" echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml - $STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install unset SHARP_FORCE_GLOBAL_LIBVIPS export SHARP_IGNORE_GLOBAL_LIBVIPS=true $STD pnpm --filter @immich/sdk --filter immich-web build @@ -202,18 +201,16 @@ EOF cp LICENSE "$APP_DIR" # cli build - $STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install $STD pnpm --filter @immich/sdk --filter @immich/cli build $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli [[ -f "$INSTALL_DIR"/start.sh ]] && mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin # plugins cd "$SRC_DIR" - $STD mise trust --ignore ./mise.toml - $STD mise trust ./plugins/mise.toml - cd plugins - $STD mise install - $STD mise run build + $STD mise trust + export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml + export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg + $STD mise //:plugins mkdir -p "$PLUGIN_DIR" cp -r ./dist "$PLUGIN_DIR"/dist cp ./manifest.json "$PLUGIN_DIR" diff --git a/install/immich-install.sh b/install/immich-install.sh index 378dd06426d..c5f47743d7a 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -314,10 +314,10 @@ corepack enable # server build export SHARP_IGNORE_GLOBAL_LIBVIPS=true -$STD pnpm --filter immich --frozen-lockfile build +$STD pnpm --filter @immich/sdk --filter @immich/plugin-sdk --filter immich build unset SHARP_IGNORE_GLOBAL_LIBVIPS export SHARP_FORCE_GLOBAL_LIBVIPS=true -$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR" +$STD pnpm --filter immich --prod --no-optional deploy "$APP_DIR" # Patch helmet.json: disable upgrade-insecure-requests for HTTP access if [[ -f "$APP_DIR/helmet.json" ]]; then @@ -327,10 +327,9 @@ fi cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin -# openapi & web build +# sdk & web build cd "$SRC_DIR" echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml -$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install unset SHARP_FORCE_GLOBAL_LIBVIPS export SHARP_IGNORE_GLOBAL_LIBVIPS=true $STD pnpm --filter @immich/sdk --filter immich-web build @@ -338,17 +337,15 @@ cp -a web/build "$APP_DIR"/www cp LICENSE "$APP_DIR" # cli build -$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install $STD pnpm --filter @immich/sdk --filter @immich/cli build $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli # plugins cd "$SRC_DIR" -$STD mise trust --ignore ./mise.toml -$STD mise trust ./plugins/mise.toml -cd plugins -$STD mise install -$STD mise run build +$STD mise trust +export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml +export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg +$STD mise //:plugins mkdir -p "$PLUGIN_DIR" cp -r ./dist "$PLUGIN_DIR"/dist cp ./manifest.json "$PLUGIN_DIR" From c7fea93dfb5fe8ccd2123385d9d8ea1f5ac2daaa Mon Sep 17 00:00:00 2001 From: vhsdream Date: Tue, 16 Jun 2026 20:57:13 -0400 Subject: [PATCH 2/8] Upgrade Vectorchord to v1.0.0 --- ct/immich.sh | 2 +- install/immich-install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index fca4c28102b..446ada4a69b 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -124,7 +124,7 @@ EOF systemctl stop immich-web systemctl stop immich-ml msg_ok "Stopped Services" - VCHORD_RELEASE="0.5.3" + VCHORD_RELEASE="1.0.0" [[ -f ~/.vchord_version ]] && mv ~/.vchord_version ~/.vectorchord if check_for_gh_release "VectorChord" "tensorchord/VectorChord" "${VCHORD_RELEASE}" "updated together with Immich after testing"; then fetch_and_deploy_gh_release "VectorChord" "tensorchord/VectorChord" "binary" "${VCHORD_RELEASE}" "/tmp" "postgresql-16-vchord_*_amd64.deb" diff --git a/install/immich-install.sh b/install/immich-install.sh index c5f47743d7a..428d20d55cc 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -152,7 +152,7 @@ PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql ACTUAL_PG_VERSION=$(ls /etc/postgresql/ 2>/dev/null | sort -V | tail -1) ACTUAL_PG_VERSION=${ACTUAL_PG_VERSION:-16} -VCHORD_RELEASE="0.5.3" +VCHORD_RELEASE="1.0.0" fetch_and_deploy_gh_release "VectorChord" "tensorchord/VectorChord" "binary" "${VCHORD_RELEASE}" "/tmp" "postgresql-${ACTUAL_PG_VERSION}-vchord_*_amd64.deb" sed -i "s/^#shared_preload.*/shared_preload_libraries = 'vchord.so'/" /etc/postgresql/${ACTUAL_PG_VERSION}/main/postgresql.conf From 52d492b4fc5e3510f6f9c794cc156a66363a4104 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Tue, 16 Jun 2026 21:00:35 -0400 Subject: [PATCH 3/8] consolidate sdk, cli & web build --- ct/immich.sh | 9 +++------ install/immich-install.sh | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index 446ada4a69b..548a7176531 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -191,18 +191,15 @@ EOF cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin - # sdk & web build + # sdk, cli & web build cd "$SRC_DIR" echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml unset SHARP_FORCE_GLOBAL_LIBVIPS export SHARP_IGNORE_GLOBAL_LIBVIPS=true - $STD pnpm --filter @immich/sdk --filter immich-web build + $STD pnpm --filter @immich/sdk --filter immich-web --filter @immich/cli build + $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli cp -a web/build "$APP_DIR"/www cp LICENSE "$APP_DIR" - - # cli build - $STD pnpm --filter @immich/sdk --filter @immich/cli build - $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli [[ -f "$INSTALL_DIR"/start.sh ]] && mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin # plugins diff --git a/install/immich-install.sh b/install/immich-install.sh index 428d20d55cc..971d8ac1219 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -327,19 +327,16 @@ fi cp "$APP_DIR"/package.json "$APP_DIR"/bin sed -i "s|^start|${APP_DIR}/bin/start|" "$APP_DIR"/bin/immich-admin -# sdk & web build +# sdk, cli & web build cd "$SRC_DIR" echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml unset SHARP_FORCE_GLOBAL_LIBVIPS export SHARP_IGNORE_GLOBAL_LIBVIPS=true -$STD pnpm --filter @immich/sdk --filter immich-web build +$STD pnpm --filter @immich/sdk --filter immich-web --filter @immich/cli build +$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli cp -a web/build "$APP_DIR"/www cp LICENSE "$APP_DIR" -# cli build -$STD pnpm --filter @immich/sdk --filter @immich/cli build -$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli - # plugins cd "$SRC_DIR" $STD mise trust From e4fd0b825f6627ce7d2224ffbfa9d76a4d5681a0 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Tue, 16 Jun 2026 21:02:01 -0400 Subject: [PATCH 4/8] bump version to 3.0.0 --- ct/immich.sh | 2 +- install/immich-install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index 548a7176531..c8919f123b0 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -110,7 +110,7 @@ EOF msg_ok "Image-processing libraries up to date" fi - RELEASE="v2.7.5" + RELEASE="v3.0.0" if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}" "each release is tested individually before the version is updated. Please do not open issues for this"; then if [[ $(cat ~/.immich) > "2.5.1" ]]; then msg_info "Enabling Maintenance Mode" diff --git a/install/immich-install.sh b/install/immich-install.sh index 971d8ac1219..23dfe01c5f3 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -301,7 +301,7 @@ ML_DIR="${APP_DIR}/machine-learning" GEO_DIR="${INSTALL_DIR}/geodata" mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache} -fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.7.5" "$SRC_DIR" +fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v3.0.0" "$SRC_DIR" PNPM_VERSION="$(jq -r '.packageManager | split("@")[1] | split("+")[0]' ${SRC_DIR}/package.json)" NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs From a7430de1b5fc961fc7e9bc455dea6883813b27b8 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Wed, 17 Jun 2026 11:06:42 -0400 Subject: [PATCH 5/8] fix path to plugins --- ct/immich.sh | 2 +- install/immich-install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index c8919f123b0..7b3c7da17e5 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -140,7 +140,7 @@ EOF UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)" SRC_DIR="${INSTALL_DIR}/source" APP_DIR="${INSTALL_DIR}/app" - PLUGIN_DIR="${APP_DIR}/corePlugin" + PLUGIN_DIR="${APP_DIR}/plugins/immich-plugin-core" ML_DIR="${APP_DIR}/machine-learning" GEO_DIR="${INSTALL_DIR}/geodata" diff --git a/install/immich-install.sh b/install/immich-install.sh index 23dfe01c5f3..84aeafaa2fd 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -296,7 +296,7 @@ INSTALL_DIR="/opt/${APPLICATION}" UPLOAD_DIR="${INSTALL_DIR}/upload" SRC_DIR="${INSTALL_DIR}/source" APP_DIR="${INSTALL_DIR}/app" -PLUGIN_DIR="${APP_DIR}/corePlugin" +PLUGIN_DIR="${APP_DIR}/plugins/immich-plugin-core" ML_DIR="${APP_DIR}/machine-learning" GEO_DIR="${INSTALL_DIR}/geodata" mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache} From 908a26b3fb7c98c573e14c4f14419900d8ec80fc Mon Sep 17 00:00:00 2001 From: vhsdream Date: Wed, 17 Jun 2026 12:04:17 -0400 Subject: [PATCH 6/8] preserve group vector during machine-learning build --- ct/immich.sh | 8 ++++---- install/immich-install.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index 7b3c7da17e5..f39b926e030 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -226,13 +226,13 @@ EOF ML_PYTHON="python3.13" msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv python install "${ML_PYTHON}" && break + $STD sudo --preserve-env=VIRTUAL_ENV -Pnu immich uv python install "${ML_PYTHON}" && break [[ $attempt -lt 3 ]] && msg_warn "Python download attempt $attempt failed, retrying..." && sleep 5 done msg_ok "Pre-installed Python ${ML_PYTHON}" msg_info "Updating Intel OpenVINO machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break + $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -Pnu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break [[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10 done patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so" @@ -241,13 +241,13 @@ EOF ML_PYTHON="python3.11" msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv python install "${ML_PYTHON}" && break + $STD sudo --preserve-env=VIRTUAL_ENV -Pnu immich uv python install "${ML_PYTHON}" && break [[ $attempt -lt 3 ]] && msg_warn "Python download attempt $attempt failed, retrying..." && sleep 5 done msg_ok "Pre-installed Python ${ML_PYTHON}" msg_info "Updating machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break + $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -Pnu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break [[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10 done msg_ok "Updated machine-learning" diff --git a/install/immich-install.sh b/install/immich-install.sh index 84aeafaa2fd..43c2d527671 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -361,13 +361,13 @@ if [[ -f ~/.openvino ]]; then ML_PYTHON="python3.13" msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv python install "${ML_PYTHON}" && break + $STD sudo --preserve-env=VIRTUAL_ENV -Pnu immich uv python install "${ML_PYTHON}" && break [[ $attempt -lt 3 ]] && msg_warn "Python download attempt $attempt failed, retrying..." && sleep 5 done msg_ok "Pre-installed Python ${ML_PYTHON}" msg_info "Installing Intel OpenVINO machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break + $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -Pnu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break [[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10 done patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so" @@ -376,13 +376,13 @@ else ML_PYTHON="python3.11" msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv python install "${ML_PYTHON}" && break + $STD sudo --preserve-env=VIRTUAL_ENV -Pnu immich uv python install "${ML_PYTHON}" && break [[ $attempt -lt 3 ]] && msg_warn "Python download attempt $attempt failed, retrying..." && sleep 5 done msg_ok "Pre-installed Python ${ML_PYTHON}" msg_info "Installing machine-learning" for attempt in $(seq 1 3); do - $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break + $STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -Pnu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break [[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10 done msg_ok "Installed machine-learning" From 77a19688c32b23867631aacf2eaeb7375696acef Mon Sep 17 00:00:00 2001 From: vhsdream Date: Wed, 17 Jun 2026 14:28:10 -0400 Subject: [PATCH 7/8] fix plugin copy source path --- ct/immich.sh | 5 ++--- install/immich-install.sh | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index f39b926e030..dbad68e9c08 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -204,13 +204,12 @@ EOF # plugins cd "$SRC_DIR" - $STD mise trust export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg $STD mise //:plugins mkdir -p "$PLUGIN_DIR" - cp -r ./dist "$PLUGIN_DIR"/dist - cp ./manifest.json "$PLUGIN_DIR" + cp -r ./packages/plugin-core/dist "$PLUGIN_DIR"/dist + cp ./packages/plugin-core/manifest.json "$PLUGIN_DIR" msg_ok "Updated Immich server, web, cli and plugins" cd "$SRC_DIR"/machine-learning diff --git a/install/immich-install.sh b/install/immich-install.sh index 43c2d527671..1f18c9a14ee 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -339,13 +339,12 @@ cp LICENSE "$APP_DIR" # plugins cd "$SRC_DIR" -$STD mise trust export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg $STD mise //:plugins mkdir -p "$PLUGIN_DIR" -cp -r ./dist "$PLUGIN_DIR"/dist -cp ./manifest.json "$PLUGIN_DIR" +cp -r ./packages/plugin-core/dist "$PLUGIN_DIR"/dist +cp ./packages/plugin-core/manifest.json "$PLUGIN_DIR" msg_ok "Installed Immich Server, Web and Plugin Components" cd "$SRC_DIR"/machine-learning From bec1307dc699a078d4072622ac7b6442cad9fce4 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Thu, 18 Jun 2026 08:06:24 -0400 Subject: [PATCH 8/8] upgrade libvips --- ct/immich.sh | 2 +- install/immich-install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ct/immich.sh b/ct/immich.sh index dbad68e9c08..e70760c2e99 100644 --- a/ct/immich.sh +++ b/ct/immich.sh @@ -423,7 +423,7 @@ function compile_imagemagick() { function compile_libvips() { SOURCE=$SOURCE_DIR/libvips - LIBVIPS_REVISION="17ad2f62dda7e39985955da189183e594683d45e" + LIBVIPS_REVISION="3664cfc5dc2c5661288f5bf5a85ccc51c64c1626" if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then msg_info "Recompiling libvips" [[ -d "$SOURCE" ]] && rm -rf "$SOURCE" diff --git a/install/immich-install.sh b/install/immich-install.sh index 1f18c9a14ee..ce9f40e2aec 100644 --- a/install/immich-install.sh +++ b/install/immich-install.sh @@ -272,7 +272,7 @@ msg_ok "(4/5) Compiled imagemagick" msg_info "(5/5) Compiling libvips" SOURCE=$SOURCE_DIR/libvips -LIBVIPS_REVISION="17ad2f62dda7e39985955da189183e594683d45e" +LIBVIPS_REVISION="3664cfc5dc2c5661288f5bf5a85ccc51c64c1626" $STD git clone https://github.com/libvips/libvips.git "$SOURCE" cd "$SOURCE" $STD git reset --hard "$LIBVIPS_REVISION"