fastfetch-cli / fastfetch

An actively maintained, feature-rich and performance oriented, neofetch like system information tool.
MIT License
10k stars 397 forks source link

imagemagick6 not detected when building from source on Debian Bookworm in an arm docker image #461

Closed jessebot closed 1 year ago

jessebot commented 1 year ago

General description of bug:

First of all, thanks again to the maintainers for continuing to work on this project. I use fastfetch literally every single day and it really helps me find my way around when I'm popping in and out of SSH sessions. Also noting that directly on macOS Ventrua on both intel/arm processors + on Debian Bookworm x86_64 metal/docker containers, images are working as expected since I install via brew or linuxbrew.

The issue seems to be when trying to compile fastfetch from source on Linux aarch. I recently got an M1 mac, so I am using an arm processor, and that means to make a docker container run smoothly, I need to build containers with --platform linux/arm64 and brew doesn't support arm on linux. This means I need to build from source for arm containers, and this is from my Dockerfile:

# compile fastfetch, for system facts, from source, requires pkg-config
# https://github.com/LinusDierheimer/fastfetch#building
RUN git clone https://github.com/LinusDierheimer/fastfetch.git /tmp/fastfetch && \
    cd /tmp/fastfetch && \
    mkdir -p build && \
    cd build && \
    cmake .. && \
    cmake --build . --target fastfetch --target flashfetch && \
    cp fastfetch $HOME/.local/bin/fastfetch && \
    mkdir -p ${XDG_CONFIG_HOME}/fastfetch && \
    mv /tmp/config.conf ${XDG_CONFIG_HOME}/fastfetch/config.conf

Just before that, I run an apt install -y pkg-config here, and then I run onboardme to install imagemagick with apt which on Debian bookworm uses imagemagick 6.9 and you can see that here:

$ apt list | grep imagemagick

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

graphicsmagick-imagemagick-compat/testing 1.4+really1.3.40-4 all
imagemagick-6-common/testing,now 8:6.9.11.60+dfsg-1.6 all [installed,automatic]
imagemagick-6-doc/testing 8:6.9.11.60+dfsg-1.6 all
imagemagick-6.q16/testing,now 8:6.9.11.60+dfsg-1.6 arm64 [installed,automatic]
imagemagick-6.q16hdri/testing 8:6.9.11.60+dfsg-1.6 arm64
imagemagick-common/testing 8:6.9.11.60+dfsg-1.6 all
imagemagick-doc/testing 8:6.9.11.60+dfsg-1.6 all
imagemagick/testing,now 8:6.9.11.60+dfsg-1.6 arm64 [installed]
node-imagemagick/testing 0.1.3-2 all

sudo apt install -y imagemagick
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
imagemagick is already the newest version (8:6.9.11.60+dfsg-1.6).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

But when I try again to compile from source, it doesn't see the package:

$ cmake ..
-- Build type: Release
-- Threads type: pthread
-- Target dirs: ROOT="" USR="/usr" HOME="/home" ETC="/etc"
-- Library: missing: LIBPCI
-- Library: missing: VULKAN
-- Library: missing: WAYLAND
-- Library: missing: XCB_RANDR
-- Library: missing: XCB
-- Library: missing: XRANDR
-- Library: missing: X11
-- Library: missing: GIO
-- Library: missing: DCONF
-- Library: missing: DBUS
-- Library: missing: XFCONF
-- Library: missing: SQLITE3
-- Library: missing: RPM
-- Library: missing: IMAGEMAGICK7
-- Library: missing: IMAGEMAGICK6
-- Library: found ZLIB
-- Library: missing: CHAFA
-- Library: missing: EGL
-- Library: missing: GLX
-- Library: missing: OSMESA
-- Library: missing: OPENCL
-- Library: missing: LIBNM
-- Library: missing: PULSE
-- Library: missing: LIBCJSON
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/fastfetch/build

$ pwd
/tmp/fastfetch/build

$ /bin/ls
CMakeCache.txt  CPackConfig.cmake        Makefile             fastfetch           flashfetch
CMakeFiles      CPackSourceConfig.cmake  cmake_install.cmake  fastfetch_config.h

$ /bin/ls ..
CHANGELOG.md    DEVELOPMENT.md  README.md  completions  presets  screenshots  tests
CMakeLists.txt  LICENSE         build      doc          run.sh   src

$ git log -1
commit 782325395ce96f4b26868cebde594e5704576c43 (HEAD -> dev, origin/dev, origin/HEAD)
Author: <E6><9D><8E><E9><80><9A><E6><B4><B2> <carter.li@eoitek.com>
Date:   Sun May 28 01:10:00 2023 +0800

    DE: Fix Gnome version detection on Fedora

sixel is definitely working, as when I use it to view an image, it does work:

Screenshot 2023-05-28 at 09 48 08

Is there something I missed in the build process? Should I be passing in any flags? You are free to grab and build this Dockerfile on an M1 if you think it would help, but it is just using the debian:bookworm-slim base from dockerhub.

I tried looking for imagemagick with find and this is what I got:

$ sudo find / -name *magick*
/var/lib/dpkg/info/imagemagick-6-common.conffiles
/var/lib/dpkg/info/imagemagick.list
/var/lib/dpkg/info/libmagickwand-6.q16-6:arm64.symbols
/var/lib/dpkg/info/imagemagick-6.q16.postinst
/var/lib/dpkg/info/libmagickcore-6.q16-6:arm64.shlibs
/var/lib/dpkg/info/imagemagick-6-common.list
/var/lib/dpkg/info/imagemagick-6.q16.list
/var/lib/dpkg/info/imagemagick.prerm
/var/lib/dpkg/info/libmagickcore-6.q16-6:arm64.triggers
/var/lib/dpkg/info/libmagickcore-6.q16-6:arm64.md5sums
/var/lib/dpkg/info/imagemagick.postinst
/var/lib/dpkg/info/libmagickwand-6.q16-6:arm64.list
/var/lib/dpkg/info/imagemagick-6.q16.md5sums
/var/lib/dpkg/info/imagemagick-6-common.md5sums
/var/lib/dpkg/info/libmagickcore-6.q16-6:arm64.list
/var/lib/dpkg/info/imagemagick.md5sums
/var/lib/dpkg/info/libmagickcore-6.q16-6:arm64.symbols
/var/lib/dpkg/info/imagemagick.preinst
/var/lib/dpkg/info/imagemagick-6.q16.prerm
/var/lib/dpkg/info/libmagickwand-6.q16-6:arm64.shlibs
/var/lib/dpkg/info/imagemagick.postrm
/var/lib/dpkg/info/libmagickwand-6.q16-6:arm64.triggers
/var/lib/dpkg/info/libmagickwand-6.q16-6:arm64.md5sums
/usr/share/doc/imagemagick-6-common
/usr/share/doc/libmagickcore-6.q16-6
/usr/share/doc/imagemagick
/usr/share/doc/imagemagick-6.q16
/usr/share/doc/libmagickwand-6.q16-6
/usr/share/bug/imagemagick-6-common
/usr/share/bug/libmagickcore-6.q16-6
/usr/share/bug/imagemagick
/usr/share/bug/imagemagick-6.q16
/usr/share/bug/libmagickwand-6.q16-6
/usr/lib/aarch64-linux-gnu/ImageMagick-6.9.11/modules-Q16/coders/magick.so
/usr/lib/aarch64-linux-gnu/ImageMagick-6.9.11/modules-Q16/coders/magick.la
/usr/lib/mime/packages/imagemagick-6.q16

Often helpful questions:

The following outputs are all wrong, and I'm not sure why, but I will post them anyway:

Output of fastfetch --version:

fastfetch --version

Logo: Image Magick support is not compiled in
        _,met$$$$$gg.
     ,g$$$$$$$$$$$$$$$P.
   ,g$$P"         """Y$$.".     friend@4281b19edcbb
  ,$$P'               `$$$.     -------------------
 ',$$P       ,ggs.     `$$b:    OS: Debian GNU/Linux 12 aarch64
 `d$$'     ,$P"'   .    $$$     Uptime: 13 hours, 24 mins
  $$P      d$'     ,    $$$P    CPU: CPU (8)
  $$:      $.   -    ,d$$'      Memory: 1.28 GiB / 17.55 GiB (7%)
  $$;      Y$b._   _,d$P'
  Y$$.    `.`"Y$$$$P"'          ████████████████████████
  `$$b      "-.__               ████████████████████████
   `Y$$
    `Y$$.
      `$$b.
        `Y$$b.
           `"Y$b._
              `"""
 --version

Output of fastfetch --load-config devinfo:

 fastfetch --load-config devinfo

Logo: Image Magick support is not compiled in
        _,met$$$$$gg.
     ,g$$$$$$$$$$$$$$$P.
   ,g$$P"         """Y$$.".     friend@4281b19edcbb
  ,$$P'               `$$$.     -------------------
 ',$$P       ,ggs.     `$$b:    OS: Debian GNU/Linux 12 aarch64
 `d$$'     ,$P"'   .    $$$     Uptime: 13 hours, 25 mins
  $$P      d$'     ,    $$$P    CPU: CPU (8)
  $$:      $.   -    ,d$$'      Memory: 1.28 GiB / 17.55 GiB (7%)
  $$;      Y$b._   _,d$P'
  Y$$.    `.`"Y$$$$P"'          ████████████████████████
  `$$b      "-.__               ████████████████████████
   `Y$$
    `Y$$.
      `$$b.
        `Y$$b.
           `"Y$b._
              `"""
 --load-config devinfo

Output of fastfetch --load-config devinfo-verbose:

fastfetch --load-config devinfo-verbose

Logo: Image Magick support is not compiled in
        _,met$$$$$gg.
     ,g$$$$$$$$$$$$$$$P.
   ,g$$P"         """Y$$.".     friend@4281b19edcbb
  ,$$P'               `$$$.     -------------------
 ',$$P       ,ggs.     `$$b:    OS: Debian GNU/Linux 12 aarch64
 `d$$'     ,$P"'   .    $$$     Uptime: 13 hours, 25 mins
  $$P      d$'     ,    $$$P    CPU: CPU (8)
  $$:      $.   -    ,d$$'      Memory: 1.28 GiB / 17.55 GiB (7%)
  $$;      Y$b._   _,d$P'
  Y$$.    `.`"Y$$$$P"'          ████████████████████████
  `$$b      "-.__               ████████████████████████
   `Y$$
    `Y$$.
      `$$b.
        `Y$$b.
           `"Y$b._
              `"""
 --load-config devinfo-verbose

Output of fastfetch --list-features:

fastfetch --list-features

Logo: Image Magick support is not compiled in
        _,met$$$$$gg.
     ,g$$$$$$$$$$$$$$$P.
   ,g$$P"         """Y$$.".     friend@4281b19edcbb
  ,$$P'               `$$$.     -------------------
 ',$$P       ,ggs.     `$$b:    OS: Debian GNU/Linux 12 aarch64
 `d$$'     ,$P"'   .    $$$     Uptime: 13 hours, 25 mins
  $$P      d$'     ,    $$$P    CPU: CPU (8)
  $$:      $.   -    ,d$$'      Memory: 1.28 GiB / 17.55 GiB (7%)
  $$;      Y$b._   _,d$P'
  Y$$.    `.`"Y$$$$P"'          ████████████████████████
  `$$b      "-.__               ████████████████████████
   `Y$$
    `Y$$.
      `$$b.
        `Y$$b.
           `"Y$b._
              `"""
 --list-features

Here's my current config:

/home/friend/.config/fastfetch/config.conf ```conf # Fastfetch configuration # Write every argument in different lines. # Direct arguments will overwrite the corresponding ones in this file. # Argument keys are not case sensitive. # Whitespaces are trimmed at the beginning and the end. # Empty lines or lines starting with # are ignored. # This file was shipped with 1.8.1. # Use fastfetch --print-config-user > ~/.config/fastfetch/config.conf to overwrite this file with the current defaults # Below some often usefull options are listed. Uncomment and modify them so they take affect. # Note that there are a lot more options than the ones listed here, take a look at "fastfetch --help". # Of course all of them can be made persistent here too. # Config option: # Load additional config files. # Some are shipped with fastfetch, list them with "fastfetch --list-presets". # Must be a path to a config file or the name of a shipped preset. # The config file is completly loaded before continuing in the current file, so the placement of this option matters, as later options overwrite already set ones. # Can be used multiple times to load multiple config files / presets. #--load-config /path/to/config.txt # Structure option: # Sets the modules to use and their order. # Must be a list of module names, separated by colons. # List available modules with "fastfetch --list-modules". # Get the default structure with "fastfetch --print-structure". --structure Break:Break:Title:Separator:OS:Uptime:GPU:CPU:Memory:Disk:Break:Colors:Break # Multithreading option: # Sets if fastfetch should use multiple threads to detect the values. # Must be true or false. # Default is true. --multithreading true # Print stat option: # Sets if fastfetch should print time usage (in ms) for individual modules # If true, it will also enable --show-errors # Must be true or false. # Default is false. #--stat true # Slow operations option: # Sets if fastfetch is allowed to use known slow operations to detect more / better values. # Must be true or false. # Default is false. #--allow-slow-operations false # Linewrap option: # Sets if fastfetch should disable linewrap during the run. # Must be true or false. # Default is true. #--disable-linewrap true # Cursor option: # Sets if fastfetch should hide the console cursor during the run. # Must be true or false. # Default is true. #--hide-cursor true # Logo option: # Sets the logo to use. # List available logos with "fastfetch --list-logos". # Print available logos with "fastfetch --print-logos". # Must be the name of an available logo or a path to a text file containing a custom logo. # Default is the current distribution. --logo spacechalkwhale.jpg # Logo type option: # Sets the logo type to use. # Must be auto, builtin, file, file-raw, data, data-raw, sixel, kitty or chafa. # Default is auto. --logo-type sixel # Logo width option: # Sets the width of the logo (in characters) if the logo is an image. # Must be a positive integer. # Default is 65. --logo-width 29 # Logo height option: # Sets the height of the logo (in characters) if the logo is an image. # Must be a positive integer. # Default is 0 (keeps aspect ration). --logo-height 13 # Logo color options: # Overwrite a color in the logo. Also works for user provided logos. # In the user logo, they replace $[1-9]. Use $$ to print a single $ sign. # Must be linux console color codes or the name of a color. # Default is the one specified by the logo. # Use "fastfetch --help color" to learn more and see examples. # Valid index range is [1-9]. #--logo-color-1 red #--logo-color-2 32 # [...] #--logo-color-9 yellow # Logo padding option: # Adds a padding to the left and the right side of the logo. # Must be a positive integer. # Default is 0. #--logo-padding 0 # Logo padding left option: # Adds a padding to the left side of the logo. # Must be a positive integer. # Default is 0. --logo-padding-left 1 # Logo padding right option: # Adds a padding to the right side of the logo. # Must be a positive integer. # Default is 0. #--logo-padding-right 0 # Logo print remaining option: # Sets if the remaining logo should be printed, it is has more lines than modules to show. # Must be true or false. Default is true. # --logo-print-remaining true # Color keys option: # Sets the color of the keys. # Must be linux console color codes or the name of a color. # Default is the key color of the logo. # Use "fastfetch --help color" to learn more and see examples. --color-keys magenta # Color title option: # Sets the color of the title. # Must be linux console color codes or the name of a color. # Default is the title color of the logo. # Use "fastfetch --help color" to learn more and see examples. --color-title blue # Binary prefix option: # Sets the binary prefix to use. # Must be a IEC, SI or JEDEC. # Default is IEC. #--binary-prefix IEC # Title FQDN option: # Sets if the title should use the fully qualified domain name. # Must be true or false. # Default is false. #--title-fqdn false # Separator option: # Sets the string placed between a key and its value. # Can be any string. # Default is ": ". #--separator ": " # Separator string option: # Sets the string printed by the "separator" module (usually between title and rest of output) # Must be any string. It is repated / cut to fit perfectly. # Default is "-" #--separator-string - # Public IP URL option: # Sets the URL of public IP detection server to be used. # Only HTTP protocol is supported, and the value should not contain "http://" prefix. # Default is "ipinfo.io/ip". #--public-ip-url "ipinfo.io/ip" # Public IP timeout option: # Sets the time to wait for the public ip server to respond. # Must be a positive integer. # Default is 0 (disabled). #--public-ip-timeout 0 # Weather output format option: # Sets the weather format to be used. It must be URI encoded. # See: https://github.com/chubin/wttr.in#one-line-output # Default is "%t+-+%C+(%l)". #--weather-output-format "%t+-+%C+(%l)" # Weather timeout option: # Sets the time to wait for the weather server (wttr.in) to respond. # Must be a positive integer. # Default is 0 (disabled). #--weather-timeout 0 # OS file option # Sets the path to the file containing the operating system information. # Should be a valid path to an existing file. # Default is /etc/os-release. #--os-file /etc/os-release # Player name option # Sets the name of the player. This is also used in song detection # Must be the exact name of the player or a dbus address (e.g. org.mpris.MediaPlayer2.spotify) # Default is the first match starting with org.mpris.MediaPlayer2. #--player-name spotify # Escape bedrock option # Sets if fastfetch should escape the bedrock jail, if it detectes that it is running in one # Must be true or false. # Default is true. #--escape-bedrock true # GL option # Sets with opengl context creation library to use # Must be either auto, egl, glx or osmesa # Default is auto. #--gl auto # Percentage output type option # Applies to all modules that prints percentage values. Currently memory, swap, disk, battery and CPU usage are supported. # Only works with default format ( without --module-format option ). # 0: prints none; 1: prints percent number only; 2: prints bar only; 3: prints both percent number and bar #--percent-type 1 # Key options: # Sets the displayed key of a module # Can be any string. Some of theme take an argument like a format string. See "fastfetch --help format" for help. #--os-key OS #--host-key Host #--chassis-key Chassis #--kernel-key Kernel #--uptime-key Uptime #--processes-key Processes #--packages-key Packages #--shell-key Shell #--resolution-key Resolution {1} #--de-key DE #--wm-key WM #--wm-theme-key WM Theme #--theme-key Theme #--icons-key Icons #--font-key Font #--cursor-key Cursor #--terminal-key Terminal #--terminal-font-key Terminal Font #--cpu-key CPU #--cpu-usage-key CPU Usage #--gpu-key GPU {1} #--memory-key Memory #--swap-key Swap #--disk-key Disk ({1}) #--battery-key Battery {1} #--poweradapter-key Power Adapter {1} #--locale-key Locale #--local-ip-key Local IP ({1}) #--public-ip-key Public IP #--wifi-key Wifi #--weather-key Weather #--player-key Media Player #--media-key Media #--datetime-key Date Time #--vulkan-key Vulkan #--opengl-key OpenGL #--opencl-key OpenCL #--users-key Users # Format options: # Sets the format string for module values. # For information on format strings, see "fastfetch --help format". # To see the parameter they take and their default value, see "fastfetch --help *-format", e.g. "fastfetch --help os-format". # An empty format string (As they are currently below) will behave as if it was not set. #--os-format #--host-format #--chassis-format #--kernel-format #--uptime-format #--processes-format #--packages-format #--shell-format #--resolution-format #--de-format #--wm-format #--wm-theme-format #--theme-format #--icons-format #--font-format #--cursor-format #--terminal-format #--terminal-font-format #--cpu-format #--cpu-usage-format #--gpu-format #--memory-format #--swap-format #--disk-format #--battery-format #--poweradapter-format #--locale-format #--local-ip-format #--public-ip-format #--weather-format #--player-format #--media-format #--datetime-format #--vulkan-format #--opengl-format #--opencl-format #--users-format # Error options: # Sets the format string to use if an error occured # For information on format strings, see "fastfetch --help format". # Each of them take the error as first and only argument. # If one of them is set, the module will appear, even if --show-errors is not given. #--os-error #--host-error #--chassis-error #--kernel-error #--uptime-error #--processes-error #--packages-error #--shell-error #--resolution-error #--de-error #--wm-error #--wm-theme-error #--theme-error #--icons-error #--font-error #--cursor-error #--terminal-error #--terminal-font-error #--cpu-error #--cpu-usage-error #--gpu-error #--memory-error #--swap-error #--disk-error #--battery-error #--poweradapter-error #--locale-error #--local-ip-error #--public-ip-error #--weather-error #--player-error #--media-error #--datetime-error #--vulkan-error #--opengl-error #--opencl-error #--users-error # Library options: # Sets an user specific path to a library to load. # Must be a valid path to a library. #--lib-PCI /usr/lib/libpci.so #--lib-vulkan /usr/lib/libvulkan.so (libMoltenVK.dylib on macOS) #--lib-wayland /usr/lib/libwayland-client.so #--lib-xcb-randr /usr/lib/libxcb-randr.so #--lib-xcb /usr/lib/libxcb.so #--lib-Xrandr /usr/lib/libXrandr.so #--lib-X11 /usr/lib/libX11.so #--lib-gio /usr/lib/libgio-2.0.so #--lib-DConf /usr/lib/libdconf.so #--lib-DBus /usr/lib/libdbus-1.so #--lib-XFConf /usr/lib/libxfconf-0.so #--lib-sqlite3 /usr/lib/libsqlite3.so #--lib-rpm /usr/lib/librpm.so #--lib-imagemagick /usr/lib/libMagickCore-7.Q16HDRI.so #--lib-z /usr/lib/libz.so #--lib-chafa /usr/lib/libchafa.so #--lib-egl /usr/lib/libEGL.so #--lib-glx /usr/lib/libGLX.so #--lib-osmesa /usr/lib/libOSMesa.so #--lib-opencl /usr/lib/libOpenCL.so #--lib-cjson /usr/lib/libcjson.so #--lib-freetype /data/data/com.termux/files/usr/lib ```

If I remove my config.conf, It shows more info, but still won't let me pass in flags:

$ fastfetch

       _,met$$$$$gg.           friend@92a472a12d74
    ,g$$$$$$$$$$$$$$$P.        -------------------
  ,g$$P"         """Y$$.".     OS: Debian GNU/Linux 12 aarch64
 ,$$P'               `$$$.     Kernel: 5.15.49-linuxkit
',$$P       ,ggs.     `$$b:    Uptime: 14 hours, 32 mins
`d$$'     ,$P"'   .    $$$     Packages: 694 (dpkg)
 $$P      d$'     ,    $$$P    Shell: sh
 $$:      $.   -    ,d$$'      Terminal: xterm-256color
 $$;      Y$b._   _,d$P'       CPU: CPU (8)
 Y$$.    `.`"Y$$$$P"'          Memory: 1.28 GiB / 17.55 GiB (7%)
 `$$b      "-.__               Locale: C
  `Y$$
   `Y$$.                       ████████████████████████
     `$$b.                     ████████████████████████
       `Y$$b.
          `"Y$b._
             `"""

$ fastfetch --help

       _,met$$$$$gg.           friend@92a472a12d74
    ,g$$$$$$$$$$$$$$$P.        -------------------
  ,g$$P"         """Y$$.".     OS: Debian GNU/Linux 12 aarch64
 ,$$P'               `$$$.     Kernel: 5.15.49-linuxkit
',$$P       ,ggs.     `$$b:    Uptime: 14 hours, 33 mins
`d$$'     ,$P"'   .    $$$     Packages: 694 (dpkg)
 $$P      d$'     ,    $$$P    Shell: sh
 $$:      $.   -    ,d$$'      Terminal: xterm-256color
 $$;      Y$b._   _,d$P'       CPU: CPU (8)
 Y$$.    `.`"Y$$$$P"'          Memory: 1.27 GiB / 17.55 GiB (7%)
 `$$b      "-.__               Locale: C
  `Y$$
   `Y$$.                       ████████████████████████
     `$$b.                     ████████████████████████
       `Y$$b.
          `"Y$b._
             `"""
 --help
LinusDierheimer commented 1 year ago

For the detection to work you need one of the following files:

The one you should have depends on your distribution. On debian, try looking for a -dev package for imagemagick.

jessebot commented 1 year ago

It doesn't look like there is one for apt :(

Full output from apt searches ```bash $ sudo apt search imagemagick-dev Sorting... Done Full Text Search... Done $ sudo apt search imagemagick | grep dev WARNING: apt does not have a stable CLI interface. Use with caution in scripts. graphicsmagick-libmagick-dev-compat/testing,now 1.4+really1.3.40-4 all [installed] libmagick++-6.q16-dev/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick - development files (Q16) libmagick++-6.q16hdri-dev/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick - development files (Q16HDRI) libmagick++-dev/testing 8:6.9.11.60+dfsg-1.6 all php-imagick-all-dev/testing 3.7.0-4 all $ sudo apt search imagemagick Sorting... Done Full Text Search... Done gem-plugin-magick/testing 1:0.94-8+b1 arm64 Graphics Environment for Multimedia - ImageMagick support graphicsmagick-imagemagick-compat/testing 1.4+really1.3.40-4 all image processing tools providing ImageMagick interface graphicsmagick-libmagick-dev-compat/testing 1.4+really1.3.40-4 all image processing libraries providing ImageMagick interface imagemagick/testing,now 8:6.9.11.60+dfsg-1.6 arm64 [installed] image manipulation programs -- binaries imagemagick-6-common/testing,now 8:6.9.11.60+dfsg-1.6 all [installed,automatic] image manipulation programs -- infrastructure imagemagick-6-doc/testing 8:6.9.11.60+dfsg-1.6 all document files of ImageMagick imagemagick-6.q16/testing,now 8:6.9.11.60+dfsg-1.6 arm64 [installed,automatic] image manipulation programs -- quantum depth Q16 imagemagick-6.q16hdri/testing 8:6.9.11.60+dfsg-1.6 arm64 image manipulation programs -- quantum depth Q16HDRI imagemagick-common/testing 8:6.9.11.60+dfsg-1.6 all image manipulation programs -- infrastructure dummy package imagemagick-doc/testing 8:6.9.11.60+dfsg-1.6 all document files of ImageMagick -- dummy package jmagick6-docs/testing 6.6.9~20130201-svn99-4 all Java interface to ImageMagick (documentation) libimage-magick-perl/testing 8:6.9.11.60+dfsg-1.6 all Perl interface to the ImageMagick graphics routines libimage-magick-q16-perl/testing 8:6.9.11.60+dfsg-1.6 arm64 Perl interface to the ImageMagick graphics routines -- Q16 version libimage-magick-q16hdri-perl/testing 8:6.9.11.60+dfsg-1.6 arm64 Perl interface to the ImageMagick graphics routines -- Q16HDRI version libjmagick6-java/testing 6.6.9~20130201-svn99-4 all Java interface to ImageMagick libjmagick6-jni/testing 6.6.9~20130201-svn99-4+b1 arm64 Java interface to ImageMagick (native library) libmagick++-6-headers/testing 8:6.9.11.60+dfsg-1.6 all object-oriented C++ interface to ImageMagick - header files libmagick++-6.q16-8/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick -- quantum depth Q16 libmagick++-6.q16-dev/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick - development files (Q16) libmagick++-6.q16hdri-8/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick -- quantum depth Q16HDRI libmagick++-6.q16hdri-dev/testing 8:6.9.11.60+dfsg-1.6 arm64 C++ interface to ImageMagick - development files (Q16HDRI) libmagick++-dev/testing 8:6.9.11.60+dfsg-1.6 all object-oriented C++ interface to ImageMagick -- dummy package node-imagemagick/testing 0.1.3-2 all imagemagick module for NodeJS perlmagick/testing 8:6.9.11.60+dfsg-1.6 all Perl interface to ImageMagick -- dummy package php-imagick/testing 3.7.0-4 arm64 Provides a wrapper to the ImageMagick library php-imagick-all-dev/testing 3.7.0-4 all Provides a wrapper to the ImageMagick library php8.2-imagick/testing 3.7.0-4 arm64 Provides a wrapper to the ImageMagick library python3-pythonmagick/testing 0.9.19-10+b1 arm64 Object-oriented Python 3 interface to ImageMagick python3-wand/testing 0.6.11-1 all Python interface for ImageMagick library (Python 3) ruby-mini-magick/testing 4.11.0-1 all wrapper for ImageMagick with a small memory footprint ruby-mojo-magick/testing 0.6.7-1 all simple Ruby stateless module interface to ImageMagick ruby-rmagick/testing 4.2.3-2+b4 arm64 ImageMagick API for Ruby ruby-rmagick-doc/testing 4.2.3-2 all ImageMagick API for Ruby (documentation) seqmagick/testing 0.8.4-3 all imagemagick-like frontend to Biopython SeqIO wand-doc/testing 0.6.11-1 all Python interface for ImageMagick library (documentation) ```

I see this but I don't think it's what I want because it says 1.4:

graphicsmagick-libmagick-dev-compat/testing 1.4+really1.3.40-4 all
  image processing libraries providing ImageMagick interface

I tried installing it anyway, and it resulted in some more libraries being detected but it didn't work for imagemagick:

cmake ..
-- Build type: Release
-- Threads type: pthread
-- Target dirs: ROOT="" USR="/usr" HOME="/home" ETC="/etc"
-- Library: missing: LIBPCI
-- Library: missing: VULKAN
-- Library: missing: WAYLAND
-- Library: missing: XCB_RANDR
-- Library: found XCB
-- Library: missing: XRANDR
-- Library: found X11
-- Library: missing: GIO
-- Library: missing: DCONF
-- Library: missing: DBUS
-- Library: missing: XFCONF
-- Library: missing: SQLITE3
-- Library: missing: RPM
-- Library: missing: IMAGEMAGICK7
-- Library: missing: IMAGEMAGICK6
-- Library: found ZLIB
-- Library: missing: CHAFA
-- Library: missing: EGL
-- Library: missing: GLX
-- Library: missing: OSMESA
-- Library: missing: OPENCL
-- Library: missing: LIBNM
-- Library: missing: PULSE
-- Library: missing: LIBCJSON
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/fastfetch/build

I am really trying to avoid also compiling imagemagick from source. I do see C++ packages that say dev but I don't think that's what we want?

jessebot commented 1 year ago

I got it! I found the libmagickcore-dev the search terms I was using were bad. I was apt searching for imagemagick-dev instead of magickcore-dev. Sorry about the confusion!

For anyone compiling from source, these are the two libraries I installed with apt on Debian Bookworm: imagemagick, libmagickcore-dev

update: Apparently you can just install libmagickcore-dev, and you don't need to also install imagemagick 🎉