top | item 40600663

(no title)

sebnukem2 | 1 year ago

Quite the list of deps (from brew install): dependencies for lsix: bash, libpng, freetype, fontconfig, jbig2dec, jpeg-turbo, libidn, libtiff, little-cms2, openjpeg, ghostscript, brotli, giflib, highway, imath, openexr, webp, jpeg-xl, libvmaf, aom, libde265, glib, shared-mime-info, x265, libheif, liblqr, jasper, libomp, libraw, m4, libtool and imagemagick

discuss

order

aidenn0|1 year ago

The only direct dependency is imagemagick; the rest are pulled in by that; here's a breakdown:

Common build-time requirements:

- bash

- m4

- libtool

Image decoding libraries:

- libpng

- jbig2decjpeg-turbo

- libtiff

- openjpeg

- ghostscript

- giflib

- openexr

- webp

- jpeg-xl

- aom

- libde265

- x265

- libheif

- libraw

Image manipulation:

- imagemagick

- liblqr

- little-cms2

Font-rendering (needed to display vector formats):

- freetype

- fontconfig

General purpose and/or math libraries:

- glib

- libomp

- imath

- highway

This leaves the following:

- brotli : a compression library; I suspect some image format uses it.

- libidn : probably a deep dependency, command line tools ought not be doing domain-name lookups

- libvmaf : A video related library; probably a dependency of one of the video-codec based image libraries?

- shared-mime-info : figure out what file type a file is

- jasper : found a few possibilities for what this is; I don't use homebrew so don't know how to resolve a brew name to an OSS project

p_l|1 year ago

Majority are simply to support opening different types of graphics (still and moving) files. Some are necessary just for the build process.

All in, I'd say it has remarkably little in dependencies that aren't directly connected to fulfilling the job it's supposed to do (bash, libtool, m4 - looks like build time does; libomp, highway, imath - useful optimization libraries; glib - living in C land is a PITA; shared-mime-info - useful for file type recognition and handling) and I would be totally unsurprised if some of them weren't transitive deps anyway (esp. libomp and highway).

So I'd say it's very light on dependencies.

arp242|1 year ago

Pretty much all of these are dependencies of imagemagick, because that supports tons of image formats, often via things like lib$format. The script itself just depends on bash, imagemagick, and a few standard shell tools like sed.

dylan604|1 year ago

if you want to look at media, you gotta have the proper codecs--and there's a lot of them. that's what the majority of them are.

have you seen some of the dependency trees for npm packages? not really sure your point here

bee_rider|1 year ago

A lot of them seem pretty reasonable, I wonder though if it would benefit from some optional dependency based scheme

pepa65|1 year ago

Not really, imagemagick is the only package it needs installed (apart from bash and coreutils).