GithubHelp home page GithubHelp logo

igicom / fish-imei Goto Github PK

View Code? Open in Web Editor NEW

This project forked from softcreatr/imei

0.0 1.0 0.0 2.32 MB

IMEI - ImageMagick Easy Install

Home Page: https://softcreatr.github.io/imei

License: ISC License

Shell 100.00%

fish-imei's Introduction

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

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

Compatibility

The compatibility of every IMEI build is automatically tested using GitHub Actions against the latest Ubuntu LTS version. However, manual testing is conducted to ensure compatibility with other operating systems, such as Debian 10 or Ubuntu 18.04.

Operating System

Recommended

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Debian 12 (Bookworm)

Also compatible

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

Other versions than the ones listed might be compatible as well, but they are not officially supported.

Known issues

  • To compile JPEG XL, CMake 3.10 or a newer version is required. On older systems like Debian 9, the version provided by maintainers is not adequate. In such cases, the compilation of JPEG XL will be skipped.
  • For libaom, a minimum CMake version of 3.6 is necessary. On older systems, the version provided by maintainers might not be sufficient. In these instances, the compilation of libaom will be skipped. Consequently, libheif will also be skipped since it depends on libaom.
  • When using GitHub actions for building, heic is not reported as a built-in delegate. Although it was reported in the past, it suddenly stopped. Therefore, it is advisable to avoid using it as an assertion for tests.

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 -q https://dist.1-2.dev/imei.sh && \
wget -q https://dist.1-2.dev/imei.sh.sig && \
wget -q https://dist.1-2.dev/imei.sh.pem && \
openssl dgst -sha512 -verify imei.sh.pem -signature imei.sh.sig imei.sh

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)
  • --imagemagick-opencl / --im-ocl : Install ImageMagick with OpenCL support
  • --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
  • --build-only : Used in combination with --use-checkinstall to build packages, without installing them
  • --no-backports : Disable temporary installation of OS backports (they may be used anyways, depending on your server configuration)

Default options :

  • ImageMagick version: 7.1.1-21 (Q16)
  • libaom version: 3.7.0
  • libheif version: 1.17.3
  • libjxl version: 0.8.2
  • Log File: /var/log/imei-###.log (### will be the timestamp of the script execution)
  • Work Dir: /usr/local/src/imei
  • Build Dir: /usr/local
  • Config Dir: /usr/local/etc

Older versions of ImageMagick (installed via apt / dpkg)

IMEI enforces a stringent policy that prohibits execution when ImageMagick is detected as pre-installed via the apt or dpkg package managers. Currently, there is no sanctioned method to bypass this limitation. To facilitate the installation of ImageMagick through IMEI, it is imperative to first remove any extant installations, e.g.:

apt remove "*imagemagick*" --purge -y && apt autoremove --purge -y

checkinstall vs. make

IMEI offers support for both checkinstall and make methods. While checkinstall enables the creation of packages that can be uninstalled at a later time, such as apt remove imei-imagemagick, the use of make does not provide the same convenience, making it potentially more difficult to remove all components installed by IMEI. However, it's important to note that checkinstall may not always be available and may have certain bugs that could lead to an incomplete installation of IMEI packages.

By default, IMEI utilizes the make method, but you have the option to use checkinstall by specifying it in the additional options or switches (refer to "Additional options / switches" for more details).

OpenCL support

IMEI provides the option to install ImageMagick with OpenCL support. However, it is important to consider that according to the information provided here, ImageMagick's performance is significantly lower when utilizing OpenCL compared to OpenMP.

When you choose to install ImageMagick with OpenCL support using IMEI, please be aware that IMEI only compiles ImageMagick with OpenCL capabilities. It does not handle the installation of necessary drivers or any other specific requirements to enable general OpenCL support on your system.


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.

fish-imei's People

Contributors

github-actions[bot] avatar softcreatr avatar jzern avatar tituskirch avatar xathon avatar piscisaureus avatar j3j5 avatar jnweiger avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.