From 8c514c422e6ad0b9b8ea5ee56a2a2c0a2938f443 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 25 Jun 2025 10:28:10 +0200 Subject: [PATCH] test --- install/convertx-install.sh | 14 +++----- misc/tools.func | 70 +++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/install/convertx-install.sh b/install/convertx-install.sh index a181787c..906ae57d 100644 --- a/install/convertx-install.sh +++ b/install/convertx-install.sh @@ -13,19 +13,18 @@ setting_up_container network_check update_os +setup_nodejs NODE_VERSION=22 NODE_MODULE="bun" +fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx" +setup_imagemagick + msg_info "Installing Dependencies" -$STD apt-get install -y --no-install-recommends \ +$STD apt-get install -y \ assimp-utils \ calibre \ dcraw \ dvisvgm \ ffmpeg \ - ghostscript \ - graphicsmagick \ - imagemagick-7.q16 \ inkscape \ - libheif-examples \ - libjxl-tools \ libva2 \ libvips-tools \ lmodern \ @@ -42,9 +41,6 @@ $STD apt-get install -y --no-install-recommends \ texlive-xetex msg_ok "Installed Dependencies" -setup_nodejs NODE_VERSION=22 NODE_MODULE="bun" -fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx" - msg_info "Installing ConvertX" cd /opt/convertx mkdir -p data diff --git a/misc/tools.func b/misc/tools.func index a4785fc5..583103c5 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -1532,3 +1532,73 @@ function setup_yq() { msg_error "yq installation incomplete or version mismatch" fi } + +# ------------------------------------------------------------------------------ +# Installs ImageMagick 7 from source (Debian/Ubuntu only). +# +# Description: +# - Downloads the latest ImageMagick source tarball +# - Builds and installs ImageMagick to /usr/local +# - Configures dynamic linker (ldconfig) +# +# Notes: +# - Requires: build-essential, libtool, libjpeg-dev, libpng-dev, etc. +# ------------------------------------------------------------------------------ +function setup_imagemagick() { + local TMP_DIR + TMP_DIR=$(mktemp -d) + local VERSION="" + local BINARY_PATH="/usr/local/bin/magick" + + if command -v magick &>/dev/null; then + VERSION=$(magick -version | awk '/^Version/ {print $3}') + msg_ok "ImageMagick already installed ($VERSION)" + return 0 + fi + + msg_info "Setup ImageMagick (Patience)" + $STD apt-get update + $STD apt-get install -y \ + build-essential \ + libtool \ + libjpeg-dev \ + libpng-dev \ + libtiff-dev \ + libwebp-dev \ + libheif-dev \ + libde265-dev \ + libopenjp2-7-dev \ + libxml2-dev \ + liblcms2-dev \ + libfreetype6-dev \ + libraw-dev \ + libfftw3-dev \ + liblqr-1-0-dev \ + libgsl-dev \ + pkg-config \ + ghostscript + + curl -fsSL https://imagemagick.org/archive/ImageMagick.tar.gz -o "$TMP_DIR/ImageMagick.tar.gz" + tar -xzf "$TMP_DIR/ImageMagick.tar.gz" -C "$TMP_DIR" + cd "$TMP_DIR"/ImageMagick-* || { + msg_error "Source extraction failed" + rm -rf "$TMP_DIR" + return 1 + } + + ./configure --disable-static >/dev/null + $STD make + $STD make install + $STD ldconfig /usr/local/lib + + if [[ ! -x "$BINARY_PATH" ]]; then + msg_error "ImageMagick installation failed" + rm -rf "$TMP_DIR" + return 1 + fi + + VERSION=$("$BINARY_PATH" -version | awk '/^Version/ {print $3}') + rm -rf "$TMP_DIR" + ensure_usr_local_bin_persist + msg_ok "Setup ImageMagick $VERSION" +}