art

Arch Linux, like Gentoo, uses simplistic shell-like text files to jot down build instructions, via PKGBUILD. But Arch starts out with much more in their defaults in order to follow upstream; Gentoo wants you to build up to it yourself.

Suppose I want to do this: Start off with an Arch Linux-like USE flag roster, then subtract as I please.

I'll show you how it's done, that is, I'll compare:

Arch Linux PKGBUILD Gentoo ebuild
./configure call arguments myeconfargs declaration
makedepends/optdepends declarations

Sometimes ./configure is subtractive, so stuff is included by default if unspecified. Then a lib may be in makedepends/optdepends.

RDEPEND

USE flags will trigger new dependencies; we'll see which is needed to match.

to edit the USE flags of (1) ImageMagick, (2) GIMP, and (3) Krita.

I'll also tell you all about what the hell these flags mean, so that you don't go ohmygodgentoo and disable subtle things for no good reason.

1. imagemagick

green  : local USE flag

yellow : global USE flag or enabled by profile

red    : I ignore it

Support for... Arch PKGBUILD Gentoo USE flag
X11 depends ⇗ on libxext X (this is added via global USE flag)
BZIP2 compression depends ⇗ on bzip2 bzip2
Microsoft core fonts idk lol corefonts (I'll use a GUI if I want to add text)
C++ API idk lol cxx* (included by default IUSE ⇗)
DJVU (pdf-like format) --with-djvu djvu (I don't magick things into .djvu)
Fastest Fourier Transform In The West (a library) --with-fftw fftw
fontconfig stuff depends ⇗ on fontconfig fontconfig (I'll use a GUI if I want to add text)
.fpx (old bitmap format) --without-fpx fpx
graphviz (graph visualization library) idk lol graphviz (I'll use a GUI if I want to add graphs)
hardening security policy The upstream default is "open" hardened (sets policy to "limited ⇗")
High Dynamic Image Range --enable-hdri hdri
HEIF (annoying compressed photo format, phones use it all the time even though image viewers barely support it) makedepends ⇗ on heif heif (I need magick to convert heif images)
JBIG (old image compression for fax machines) makedepends ⇗ and optdepends ⇗ on jbigkit jbig (who cares about fax...?)
JPEG optdepends ⇗ and makedepends ⇗ on libjpeg-turbo jpeg
JPEG2000 --with-openjp2 jpeg2k (rare; also it was a failure ⇗ compared to jpegxl, is not back-compatible with jpeg, etc.)
JPEG XL --with-jxl jpegxl
LittleCMS (color profile management library) depends ⇗ on lcms2 lcms (common, e.g. DigiKam ⇗, Krita ⇗, GIMP ⇗)
lqr (smart image upsizing via -liquid-rescale) --with-lqr lqr (a little too specialized, even GIMP would need an external plugin)
LZMA/XZ compression depends ⇗ on xz (xz-utils supports lzma) lzma
OpenCL for gpu computation --enable-opencl opencl
OpenEXR (advanced hdr and compositing) --with-openexr openexr (this is more for professional compositing pipelines ⇗)
OpenMP (parallel computing library) probably default ⇗ openmp
RaQM text layout library depends ⇗ on libraqm pango (I'll use a GUI if I want to add text)
Perl bindings --with-perl perl (in case I use someone's Perl script) (btw the PERL_FEATURES are set in a different way ⇗)
PNG depends ⇗ on libpng png (included by default IUSE ⇗)
PostScript/GhostScript (text render programming language) makedepends ⇗ and optdepends ⇗ on GhostScript postscript (I'll use a GUI if I want to add text)
quantum depth value default upstream is 64 ⇗ q8, q32
RAW (format for photographs from higher-end cameras) makedepends ⇗ on libraw raw (I don't use those cameras)
static build (makes the libraries magick calls out to get bundled in instead. rare use case) --disable-static static
compile-time testing who cares? test
SVG --with-rsvg svg
TIFF image format optdepends ⇗ on libtiff tiff
freetype font rendering depends ⇗ on freetype2 truetype (again idc about fonts)
WebP image format (great format, annoying to support) --with-webp webp
.wmf (old Windows image format) --with-wmf wmf (was deprecated ages ⇗ ago)
XML I/O --with-xml xml (xml is used for confs probably, not sure)
.ora OpenRaster support depends ⇗ on libzip zip (too rare, I don't care)
ZLIB (implements DEFLATE compression algorithm, which is old but common) depends ⇗ on zlib zlib

Summarily, use this quite-horizontally-wide conf file.

/etc/portage/package.use/imagemagick
media-gfx/imagemagick bzip2 fftw hdri heif jpeg jpegxl lcms lzma opencl openmp perl png svg webp xml zlib
# dependency for heif
media-libs/libheif x265

2. gimp

Support for... Arch PKGBUILD Gentoo USE flag
X11 depends ⇗ on libxext X
aalib (lib to make ASCII graphics) depends ⇗ on aalib aalib (ascii fidelity is wonky)
ALSA support so MIDI knobs/pedals can change brush stuff optdepends ⇗ on alsa-lib alsa (a bit advanced for me)
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally makedepends ⇗ on gtk-doc doc
.fits format support (deep space images) optdepends ⇗ and makedepends ⇗ on cfitsio fits (I rarely get raw deep-space imagedumps)
remote filesystem drag-and-drop support makedepends ⇗ and optdepends ⇗ on gvfs gnome (you'd be surprised; this isn't UI bloat)
the dastardly heif/heic format depends ⇗ on libheif heif
GJS (Gnome JavaScript) support makedepends ⇗ and optdepends ⇗ on gjs javascript (too niche)
jpeg2000 depends ⇗ on openjpeg2 jpeg2k
JPEGXL image support depends ⇗ on libjxl jpegxl
Enable Lua scripting support idk lol lua (luajit target is specified as USE_EXPAND)
mng (animation support for png, superseded by apng) depends ⇗ on mng mng (too rare, I don't care)
OpenEXR (advanced hdr and compositing) --with-openexr openexr (ditto from earlier)
OpenMP (parallel computing library) probably default idk openmp
PostScript language makedepends ⇗ and optdepends ⇗ on ghostscript postscript (.ps is more for LaTeX stuff)
python single target Arch doesn't build stuff like this auto-set by global USE_EXPAND directives
compile-time tests who cares test
udev (device discovery, probably related to gvfs or tablet device hotplugging idk) idk lol udev (I use a drawing tablet and may un/replug it while GIMP is open)
libunwind (call stack unwinding for debugging) probably not unwind
Vala support (a language for building GTK stuff) idk vala
Experimental high-DPI-centric vector icons support none :3 vector-icons
Wayland support certainly supported. Gentoo only checks because it has a non-Wayland system bugfix ⇗ wayland
WebP (common web format) depends ⇗ on libwebp webp
.wmf (old Windows image format) depends ⇗ on libwmf wmf (ditto from earlier)
.xpm (pixmap graphics format for X window system) depends ⇗ on libxpm xpm (absolutely ancient ⇗)

Summarily,

/etc/portage/package.use/gimp
media-libs/gegl cairo lcms
media-libs/babl lcms
media-gfx/gimp gnome heif jpegxl openmp udev vector-icons webp
/etc/portage/package.accept_keywords/gimp
media-gfx/gimp ~amd64
media-libs/babl ~amd64
media-libs/gegl ~amd64

3. krita

I'm too lazy.

Support for... Arch PKGBUILD Gentoo USE flag
Advanced color management with opencolorio depends ⇗ on opencolorio color-management
debug codepaths no debug
Fastest Fourier Transform In The West depends ⇗ on fftw fftw
Add GIF image support depends ⇗ on giflib gif (I have giflib on my system anyway)
gsl (calculation library for better stability and precision for brush strokes) depends ⇗ on gsl gsl
dastardly .heif format makedepends ⇗ and optdepends ⇗ on libheif heif
Support for JPEG 2000, a wavelet-based image compression format depends ⇗ on openjpeg2 jpeg2k
Add JPEG XL image support makedepends ⇗ and optdepends ⇗ on libjxl jpegxl
Media Lovin' Toolkit (animation-playing runtime engine+ffmpeg export) depends ⇗ on mlt media
libmypaint (for pressure, tilt, dabbing, etc. brush support) makedepends ⇗ and optdepends ⇗ on libmypaint mypaint-brush-engine
OpenEXR (advanced hdr and compositing) depends ⇗ on openexr openexr (ditto)
PDF support optdepends ⇗ on poppler-qt5 pdf
python single target Arch doesn't build stuff like this auto-set by global USE_EXPAND directives
RAW (format for photographs from higher-end cameras) depends ⇗ on libkdcraw5 raw (I don't use those cameras)
compile-time testing who cares? test
WebP (common web image format) depends ⇗ on libwebp webp
Enable usage of SIMD instructions via dev-cpp/xsimd makedepends on xsimd xsimd
/etc/portage/package.use/krita
media-gfx/krita color-management fftw gif gsl heif jpegxl media mypaint-brush-engine webp xsimd
# deps
media-libs/opencv features2d
dev-python/pyqt5 gui widgets declarative network
dev-qt/qtcore icu

bonus: blender

Blender has good defaults on Gentoo, so I don't need to change any flags.

/etc/portage/package.accept_keywords/blender
media-gfx/blender-bin ~amd64

summary

All that for a drop of blood vector-icons.