Formulae dependent on imagemagick (in official Homebrew taps)
โ - Build failed
โ ๏ธ - Formula needs a revision update
โ
- Formula works as is, without a revision update
Formula => Dependency ( Formula revision )
wand/MagickWand.h)wand/MagickWand.h)wand/MagickWand.h)dmdx-utils => libdmtx/bugs#58
zbar => zbar/support-requests#156
synfig errors out on a weird check,
checking for synfig >= 1.0.2 ETL >= 0.04.19 sigc++-2.0... configure: error: ** Unable to set up dependent libraries (synfig >= 1.0.2, ETL >= 0.04.19
)
@rakkesh Given your list above I think we can ship this?
@zmwangx any thoughts on whether we should still stick with the 6.9.x-y series?
@ilovezfs
I'd say it's better to stick with IMv6.
IM is one of those old, boring, yet reliable tools that many users probably stick into a pipeline (whether that's a wrapper script for batch processing photos, or a server php program handling user submissions, or whatever) and forget about. IMv7 has made some backward-incompatible changes to the command line interface (see https://www.imagemagick.org/script/porting.php), and users probably don't want to deal with those. (No one wants to revisit five or ten-year-old wrapper scripts. Oh and before dismissing my argument as resisting changes, please read to the end, especially the paragraph starting with "IMv6".) What I found most terrifying on https://www.imagemagick.org/script/porting.php about CLI changes was this:
However the strict order means that you can no longer give operations before providing an image for the operations to work on. To do so will now produce an error.
which implies something as simple as
convert -resize 50% in.png out.png
would error out. (The order has been considered legacy since the inception of IMv6, see this explanation. But still, you can't tell without digging into docs, because there's no warning on the command line.) Fortunately, I just tried 7.0.3-6 and the syntax above still works, so I guess the developers changed their mind (here's an imagemagick7.rb which you can install alongside imagemagick for testing). Still, there are definitely subtle changes โ ones that do not lead to errors outright, but those are the scariest, because you'll get something, just not what you wanted.
IMv6 has been out for 12 years; IMv7, less than a year. https://www.imagemagick.org/Usage/ is still on v6, and I'm not sure if http://www.fmwconcepts.com/imagemagick/ is entirely v7 compatible yet. That is to say, v7 resources are still scarce. If a user is to pick up IM today, they may be better off starting with v7. But for the vast existing user base, v6 is still the safer choice, and the dev team is still updating v6 diligently.
A middle ground might be to provide a imagemagick7 formula, if there's enough interest.
+1 for imagemagick7 formula
If imagemagick 7 works for all our reverse dependencies: we should upgrade it.
We may want to provide imagemagick6 in homebrew/versions in anticipation of the need @zmwangx described above.
Guys, I just posted a $100 bounty on Bountysource, receivable by anyone who resolves this issue. Would be forever thankful for IM 7.0 being available through Homebrew.
@jmagnusson I already posted an imagemagick7.rb in this thread a long time ago: https://gist.githubusercontent.com/zmwangx/a40b41fe2feb61b6a59aad6a3bc99218/raw/dcd915f230f28d0dc4d31d335c963e6279f2f452/imagemagick7.rb. You can use that.
But would you please elaborate on your use case? What do you need from IMv7? Scripting? Some revdep that works with IMv7 only (not that I know of)?
It seems to me that anyone can open a PR with a slightly modified imagemagick7.rb and get it merged (you can do it yourself and save yourself $100), and I won't complain if someone decides to do it. But as I pointed out above, I'm concerned about issues it may cause, so I don't want to be that guy.
@zmwangx I have a very specific use case where unnecessary color information is not removed from 16-bit/channel images in ImageMagick 6 but it is in IM7. This new feature generally reduces the file size about 70-75% for the images I'm using, and for 100-150 MB images it's quite a lot of saved space. Currently I have to use Photoshop to get the same file size on my Mac, and as you all know Photoshop has no integration with the shell, and is not FOSS (far from!).
Considering how common Imagemagick is, perhaps Imagemagick 7 could be installed to the system in a similar manner to how Python 3 is? And only link in the magick command to the path to avoid collisions (so that we finally can get rid of all the generic command names...)
Installing your formula seems to create collisions with im6 links. If I fix the broken url in the formula (switched to https://www.imagemagick.org/download/releases/ImageMagick-7.0.4-3.tar.xz) and install I get the following error:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/ImageMagick/config-Q16HDRI/configure.xml
Target /usr/local/lib/ImageMagick/config-Q16HDRI/configure.xml
is a symlink belonging to imagemagick. You can unlink it:
brew unlink imagemagick
Also I'm wondering a bit about all the issues that @rakkesh is listing. How are they resolved by your formula?
The likely path forward here is probably boneyarding blockhash, dmtx-utils, and zbar, upgrading imagemagick to 7, and adding imagemagick@6 for the legacy version.
I don't want to see us adding versioned formulae for new versions to escape issues with reverse dependencies.
@ilovezfs too late? see: python, python3
@wickles python is another conversation altogether.
@ilovezfs According to the homebrew/versions repo, the repo itself will be deprecated because homebrew/core now supports versions. Does that not apply here?
That's exactly what applies here. If we were keeping the tap, I'd be talking homebrew/versions/imagemagick6 (as I mentioned here https://github.com/Homebrew/homebrew-core/issues/1828#issuecomment-259823775) instead of the possibility of a homebrew/core/imagemagick@6 if there's sufficient need for the old one.
Chiming in real quick here: imagemagick@7 straight up breaks rmagick. Imagemagick@6 will be the savior of many a Rails developer.
What I feared about, at least vaguely ๐
Since we don't really do downgrades here, I guess now we need to figure out a way to include an IMv6 formula (I can keep bumping/maintaining it). Keep in mind that the AT_VERSION syntax was designed for libraries (which should be handled transparently), not for users to type, so imagemagick@6 is not ideal.
What is the status of progress on ImageMagick 7 support in rmagick?
Keep in mind that the AT_VERSION syntax was designed for libraries (which should be handled transparently), not for users to type, so imagemagick@6 is not ideal.
It's not a foregone conclusion that we even will accept an ImageMagick 6 formula, so there may be nothing for you to worry about in terms of the naming.
Naming is an argument against including an IMv6 formula.
@zmwangx I see. I think any attempt to change the @ naming scheme will fall in the spitting-in-the-wind category.
@zmwangx fyi: https://github.com/Homebrew/homebrew-core/pull/8756
Thanks @ilovezfs!!! Don't forget to claim your bounty ๐
@jmagnusson can I convince you to donate it to the project instead? https://github.com/Homebrew/brew#donations
@ilovezfs I don't see any way to refund the money. Perhaps you can claim it and donate yourself?
@jmagnusson will do
Just a heads up that we've now merged ImageMagick 6 as "imagemagick@6"
Most helpful comment
@jmagnusson can I convince you to donate it to the project instead? https://github.com/Homebrew/brew#donations