ImageMagick upgrade 6.9.13.14-1.el8

Hello,
I took the ImageMagik upgrade last night on my rocky 8 server
ImageMagick 6.9.13.14-1.el8
ImageMagick-libs 6.9.13.14-1.el8

Now when I run convert in java from my Tomcat app I cannot run the command. I can run it manually from the terminal.

I tried to down grade but none available. This was the only change made. There have been no other changes. I restarted the server but made no difference.

I have checked the permissions and looks OK. Any ideas?

Cheers

may you try with ‘magick convert’ or ‘magick mogrify’ instead using convert/mogrify

Sorry, not too sure what you mean. There is no “magick convert”.

Further debugging, I have a check process on the convert command where it checks for errors. This new version outputs this error:

convert: missing required argument @ error/convert.c/ConvertImageCommand/545.

and it won’t run.

Thanks.

It sounds like the old ‘convert’ command is now ‘magick -param1 -param2’

if “legacy” convert still works, maybe the parameters have changed.

If you just run convert with no parameters it shows the error at the end.

bash: magick: command not found…

This is version 6 so may not apply?

This is a major issue as we rely heavily on image magic. For such an old version I could not find much on the error which is worrying.

The version it replaced was
Version: ImageMagick 6.9.12-93 Q16 x86_64 17898 https://legacy.imagemagick.org

and the only place I could find these rpms is here:
h.t.t.p://dl.fedoraproject.org/pub/archive/epel/8.9/Everything/x86_64/Packages/i/

ImageMagick-6.9.12.93-1.el8.x86_64.rpm
ImageMagick-libs-6.9.12.93-1.el8.x86_64.rpm

I switched back to these and it works again. Who knows how long this is going to take to fix, grab them while you can.

Don’t forget to add exclude=ImageMagick* to your /etc/dnf/dnf.conf.

Thanks.

What I wrote above is because the syntax was changed between 6.9…something version and 7 - I can’t remember exactly - there are differences between distros…
btw if you need the latest one, it’s avail as standalone ‘magick’ from ImageMagick – Download , (alas there is avif support there, It works like ‘magick convert/mogrify’ etc

EPEL 8 has ImageMagick 6.9.13.14-1.el8 (dated 2024-08-01)
EPEL 9 has ImageMagick 6.9.13.14-1.el9

They have in /usr/bin:

animate  compare  composite  conjure  convert  display
identify import   mogrify    montage  stream

No magick


That site, btw, claims “6.9.13-14” to be the latest (legacy).

So, up to July EPEL 8 had 6.9.12-93 and then did switch to 6.9.13-14. Was your previous version from EPEL 8, or somewhere else?


Have you created a bug report to EPEL, so their maintainer knows to at least look at the issue?
If you haven’t, then there will never be a fix.


How does the Tomcat/Java call the convert? Does it execute the binary, or does it use the ImageMagick libraries directly?

They come from epel
Upgrading:
ImageMagick x86_64 6.9.13.14-1.el8 epel 114 k
ImageMagick-libs x86_64 6.9.13.14-1.el8 epel 2.4 M

No I have not created an issue. I have in the past on centos which was a waste if time. Reporting Rocky rpm bugs directly to EPEL not sure how. Do they care?

I run the command convert in a java.lang.process etc which handles the parameters. Just running the convert on its own produces the error at the end.

I remember in the past I had to stay on a version for a while until I found a release that worked.

Thanks.

btw if you need the latest one, it’s avail as standalone ‘magick’ from ImageMagick – Download

It would be good to test the latest version, although the instructions for the appimage are not clear. It downloads a file called magick and if I look in the Index of /archive/binaries folder its also not clear what to do here also.

OK it does work need to use ./magick and executable. I will see if I can test this in my app, thanks.

on my devbox (bookworm) I get
magick: invalid argument for option @ error/magick-cli.c/MagickImageCommand/991.

so I guess it does not work without mods.

Extra Packages for Enterprise Linux (EPEL) :: Fedora Docs writes:

If you find a bug in a EPEL maintained package, please report it to https://bugzilla.redhat.com/ under the “Fedora EPEL” product.

The ImageMagick is not a “Rocky rpm”. It is “EPEL rpm”. Built by EPEL, Extra Packages for Enterprise Linux. For all Enterprise Linux distros (i.e. RHEL and distros compatible with RHEL). If an EPEL package does not work on Rocky, then it does not work on RHEL, AlmaLinux, Oracle Linux, …
Yes, they do care.

the correct syntax is “./magick [command]” ie “./magick convert …” or “./magick mogrify …” etc
an example that I use : ./magick mogrify -format jpg *.bmp

In other words, the old ImageMagick had executable ‘mogrify’, so one did run

mogrify -format jpg *.bmp

and the new has executable ‘magick’ and one runs

magick mogrify -format jpg *.bmp

A new command and one more parameter for the “java.lang.process”.


The magick vs ./magick vs /home/gregh/magick is the usual “How is executable command found?”

using magick convert test.jpg test.png
WARNING: The convert command is deprecated in IMv7, use “magick” instead of “convert” or “magick convert”

It says just use magick.

On my devbox there is an error when running magick

magick
Usage: magick tool [ {option} | {image} … ] {output_image}
Usage: magick [ {option} | {image} … ] {output_image}
magick [ {option} | {image} … ] -script {filename} [ {script_args} …]
magick -help | -version | -usage | -list {option}

magick: invalid argument for option @ error/magick-cli.c/MagickImageCommand/991.

In the past if there are any errors like such it does not work for us. The output from my process was

CmdError : ERROR : magick: invalid argument for option @ error/magick-cli.c/MagickImageCommand/991.

…I tried to bypass this check yesterday on 6.9.13.14-1.el8 epel on the rocky server and it did not work (alas my devbox is now bookworm so its difficult to test, as I have to redeploy the app for any changes on the rocky server).

I guess we are off topic a bit now. If I have time I will try and get it to work.

Thanks.