/imei

IMEI - ImageMagick Easy Install

Primary LanguageShellISC LicenseISC

IMEI - ImageMagick Easy Install

Automated ImageMagick compilation from sources for Debian/Ubuntu including advanced delegate support.

Build

Commits GitHub release GitHub license Plant Tree Installs GitHub file size in bytes

Codacy grade CodeFactor Grade


Features Compatibility Usage Contributing License

Screenshot


Features

  • Compiles the latest ImageMagick release
  • Installs ImageMagick or updates ImageMagick package previously installed (via IMEI)
  • Additional HEIF support
  • Additional HEIX support
  • Additional AVIF support
  • Additional JPEG XL support

Compatibility

Every IMEI build will be automatically tested against the latest Ubuntu LTS Versions (16.04 and newer) using GitHub Actions. Compatibility with other operating systems (such as Debian 10) is tested manually.

Operating System

Recommended

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)
  • Debian 10 (Buster)
  • Raspbian 10 (Buster)

Also compatible

  • Ubuntu 21.10 (Impish Indri)
  • Ubuntu 21.04 (Hirsute Hippo)
  • Ubuntu 20.10 (Groovy Gorilla)
  • Ubuntu 19.10 (Eoan Ermine)
  • Ubuntu 17.04 (Zesty Zapus)
  • Ubuntu 16.04 (Xenial Xerus)
  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)
  • Raspbian 9 (Stretch)

Known issues

  • For JPEG XL, CMake 3.10 or newer is required. On older systems (e.g. Debian 9), the maintainers version isn't sufficient. In this case, JPEG XL compilation will be skipped.
  • For libaom, CMake 3.6 or newer is required. On older systems, the maintainers version may be not sufficient. In this case, libaom compilation will be skipped. Without libaom, libheif will be skipped too.

Usage

One-Step Automated Install

t=$(mktemp) && \
wget 'https://dist.1-2.dev/imei.sh' -qO "$t" && \
bash "$t" && \
rm "$t"

Alternative Install Method

git clone https://github.com/SoftCreatR/imei && \
cd imei && \
chmod +x imei.sh && \
./imei.sh

Verify installer integrity

Though the installer performs a self check upon startup, you can also perform it manually. To do so, openssl is required:

wget https://dist.1-2.dev/imei.sh && \                                  # Download IMEI
wget https://dist.1-2.dev/imei.sh.sig && \                              # Download signature file
wget https://dist.1-2.dev/imei.sh.pem && \                              # Download public key
openssl dgst -sha512 -verify imei.sh.pem -signature imei.sh.sig imei.sh # Verify

Alternative integrity check

git clone https://github.com/SoftCreatR/imei && \
cd imei && \
openssl dgst -sha512 -verify imei.sh.pem -signature imei.sh.sig imei.sh

Options available

Currently available build options are

  • --skip-dependencies / --skip-deps : Skip installation of dependencies
  • --imagemagick-version / --im-version : Build the given ImageMagick version (e.g. 7.0.10-28)
  • --force-imagemagick / --force-im : Force building of ImageMagick only, even if it's are already installed in a newer or the latest version
  • --imagemagick-quantum-depth / --im-q : ImageMagick Quantum Depth (8, 16 or 32)
  • --aom-version : Build the given aom version (e.g. 2.0.0)
  • --skip-aom : Skip building aom
  • --libheif-version / --heif-version : Build the given libheif version (e.g. 1.8.0)
  • --skip-libheif / --skip-heif : Skip building libheif
  • --jpeg-xl-version / --jxl-version : Build the given JPEG XL version (e.g. 0.3.3)
  • --skip-jpeg-xl / --skip-jxl : Skip building JPEG XL
  • --log-file : Log everything to the file provided
  • --work-dir : Download, extract & build within the directory provided
  • --build-dir : Build target directory for ImageMagick
  • --config-dir : Config target directory for ImageMagick
  • --force : Force building of components, even if they are already installed in a newer or the latest version

Additional options / switches:

  • --no-sig-verify / --dev : Disable signature verification on startup
  • --use-checkinstall / --checkinstall : Use checkinstall instead of make
  • --no-backports : Disable temporary installation of OS backports (they may be used anyways, depending on your server configuration)

Default options :

  • ImageMagick version: 7.1.0-20 (Q16)
  • libaom version: 3.2.0
  • libheif version: 1.12.0
  • libjxl version: 0.6.1
  • Log File: /var/log/imei.log
  • Work Dir: /usr/local/src/imei
  • Build Dir: /usr/local
  • Config Dir: /usr/local/etc

checkinstall vs. make

IMEI supports both, checkinstall and make. While checkinstall creates packages that you can uninstall at a later time (e.g. apt remove imei-imagemagick), make doesn't, therefore it may be harder to remove everything, that has been installed by IMEI. However, checkinstall isn't always available and it contains some bugs, that might result in a broken installation of IMEI`s packages.

IMEI uses make by default, but you can use checkinstall via option (see "Additional options / switches") instead.


Contributing

If you have any ideas, just open an issue and describe what you would like to add/change in IMEI.

If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.

License 🌳

ISC © 1-2.dev

This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the ecologi project, you’ll be creating employment for local families and restoring wildlife habitats.