Opened 7 years ago

Closed 7 years ago

#8528 closed enhancement (fixed)

ImageMagick-7

Reported by: ken@… Owned by: ken@…
Priority: normal Milestone: 8.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

This is a follow-on from #8223 where we reverted to ImageMagick-6 because "ImageMagick-7 is incompatible with -6 and packages that can use the IM library can't be compiled when -7 is installed."

For the moment I have no details of which packages are involved, but this is a place to assemble notes so that (hopefully) we can move to 7.

Change History (27)

comment:1 by bdubbs@…, 7 years ago

The following reference IM:

general/sysutils/obex-data-server.xml
multimedia/libdriv/xine-lib.xml  
multimedia/videoutils/transcode.xml
postlfs/editors/emacs.xml
pst/printing/gs.xml
pst/printing/gutenprint.xml
xsoft/other/feh.xml   
xsoft/other/tigervnc.xml   
xsoft/other/inkscape.xml   

comment:2 by ken@…, 7 years ago

For gutenprint-5.2.11, --enable-maintainer-mode (to regenerate docs) looks for 'convert' but as far as I can see it does not use it. It seemed to require texi2html (yeughh, see e.g. https://lists.gnu.org/archive/html/bug-texinfo/2013-05/msg00010.html for problems in that packages tests). For BLFS, ImageMagick-7 will not change the situation.

I posted to their list on 29th September, no response https://sourceforge.net/p/gimp-print/mailman/message/35397906/.

comment:3 by ken@…, 7 years ago

The only other thing I looked at on an IM7 system was xine-lib. That should automatically check for ImageMagick, starting with 'WAND' and then 'MAGICKWAND' - the latter was found:

checking for WAND... no
checking for MAGICKWAND... yes

and then in the build I can see

 -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI

so xine-lib finds IM7.

in reply to:  3 comment:4 by ken@…, 7 years ago

Replying to ken@…:

The only other thing I looked at on an IM7 system was xine-lib.

Forgot to note that the sed in xine-lib is different for IM7.

comment:5 by ken@…, 7 years ago

For transcode, ImageMagick is off unless forced. That no longer works:

configure:27600: checking whether imagemagick support is requested
configure:27613: result: yes
configure:27651: checking for pkgconfig support for imagemagick
configure:27658: result: no
configure:27715: checking how to determine IMAGEMAGICK_CFLAGS
configure:27738: result: default
configure:27759: checking magick/api.h usability
configure:27759: gcc -c -g -O2  -I/usr/include conftest.c >&5
conftest.c:102:24: fatal error: magick/api.h: No such file or directory
 #include <magick/api.h>
                        ^

Oddly, pkg-config --libs ImageMagick gives me -lMagickCore-7.Q16HDRI but that is neither here nor there, and the api.h file does not seem to exist.

comment:6 by ken@…, 7 years ago

It did get linked in with IM6 if enabled, but transcode is almost certainly IM6-only. But since we only really build it for tccat, I doubt that much, if any, benefit would be lost.

comment:7 by ken@…, 7 years ago

For ghostscript, I think our mention of IM as a dependency is probably bogus.

There are various references to ImageMagick in the docs, and example tiff images seem to have been created with IM. There is also a miff24 (gdevmiff) driver (24-bit ImageMagick RGB). That DOES get built in a normal build, without checking for ImageMagick.

comment:8 by ken@…, 7 years ago

feh is working with IM7 :

feh --magick-timeout 1 ~/drawing2.svg
or
feh --magick-timeout 1 ~/burgundy.jp2

for svg and jp2000 testfiles I had lying around.

comment:9 by ken@…, 7 years ago

inkscape-0.91: this seems to be a valid problem, it looks for ImageMagick++.pc which no longer exists.

comment:10 by ken@…, 7 years ago

Tigervnc viewer builds with IM7 installed. Like most cmake packages it is much harder to understand what it is looking for. Grepping for 'agick' only found 'build requires' mentions for RHEL{6,7} specfiles.

For the moment, I do not believe it uses ImageMagick (but I could be wrong, and anyway I can't build the server without old Xfont).

comment:11 by bdubbs@…, 7 years ago

Milestone: 7.118.0

Milestone renamed

comment:12 by bdubbs@…, 7 years ago

Ken, do you have a list of blockers for IM7 ? We probably need to make a decision fairly soon whether to update to IM7 or not for the 8.0 release.

in reply to:  12 comment:13 by ken@…, 7 years ago

Replying to bdubbs@…:

Ken, do you have a list of blockers for IM7 ? We probably need to make a decision fairly soon whether to update to IM7 or not for the 8.0 release.

I have no idea about obex-data-server, nor emacs.

Transcode doesn't link to IM7, but we only build transcode for tccat. The usage by ghostscript seems bogus to me, and for gutenprint there seem to be unrelated issues which prevent the recreation of all the docs.

The only definite blocker is inkscape, and I'm not sure what is lost. There might be other packages which only use IM6.

I'm now wondering if it is possible to install the libraries (only) from IM6 - the lib and include organisation for 7 should sit happily alongside 6.

comment:14 by ken@…, 7 years ago

After some experimentation, I think I almost managed this (DESTDIR install so for the moment it is going nowhere).

replace 'make install' by 'install-libLTLIBRARIES install-data-am install-exec-local' (the install-exec-local is to install the perl).

Comparing this to my IM7 install implies that 7 no longer installs any perl - that seems unlikely.

The 'almost' is because the following pkgconfig files conflict: ImageMagick.pc ImageMagick++.pc MagickCore.pc MagickWand.pc (Wand.pc was not installed by my IM7) and it looks as if man pages were also installed, conflicting with the IM7 pages.

This approach is unlikely to fly for people who want to mainly use IM7 but will update IM6 when new (fixes) releases appear and might therefore install IM6 after IM7.

comment:15 by bdubbs@…, 7 years ago

Looking at transcode, IM is only recommended. We could just list IM6 as an external dependency for now with a warning about conflicts with IM7.

For inkscape, can we ask upstream if they have a patch from their development repo?

Sounds like those are the only two issues left. Can you confirm?

in reply to:  15 comment:16 by ken@…, 7 years ago

Replying to bdubbs@…:

Looking at transcode, IM is only recommended. We could just list IM6 as an external dependency for now with a warning about conflicts with IM7.

For inkscape, can we ask upstream if they have a patch from their development repo?

Sounds like those are the only two issues left. Can you confirm?

I've asked at inkscape, I don't particularly expect a reply so I've sketched out a cunning plan: In ImageMagick6 don't install the perl (I had removed the perl part from my own instructions - reinstated now for testing :) and before the partial install sed the Makefile to rename the pkgconfig files from *.pc to *6.pc, (and remove the install of the manpages), and then change inkscape to add '6' to what I think are the names (now that it is cmake, that might not be the right place).

I've resumed the build of a test system to get it usable for my normal needs, at the moment sinusitis is slowing me down, might not get anywhere on this for a day or two. It's also possible that I've overlooked something else in IM6 that will overwrite files from IM7.

comment:17 by ken@…, 7 years ago

And to reiterate - no ideas about obex-data-server or emacs. And the changes between 6 and 7 were substantial.

comment:18 by bdubbs@…, 7 years ago

obex-data-server builds with --enable-bip=gdk-pixbuf. Without it, the build fails when IM7 (only) is installed. I think we can live with that.

As a side note, I don't know what bip stands for or what it does. I looked at the code a bit and nothing jumped out at me.

comment:19 by bdubbs@…, 7 years ago

Emacs builds with --without-imagemagick, but fails without when IM7 is installed. The app seems to work OK without IM.

comment:20 by bdubbs@…, 7 years ago

Inkscape 0.92.0 builds with

mkdir build ; cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DWITH_IMAGE_MAGICK=OFF ..
make
sudo make install

Seems to work (as least start) OK.

I think this is the last issue for IM7.

Ken, do you want to put it in the book or do you want me to do it?

comment:21 by ken@…, 7 years ago

Thanks for testing those three - so emacs could also use the libs from 6. For inkscape, the files in 0.92pre3 (the one I tested earlier, I have not downloaded 0.92 yet) say (WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution" ON) so 6 is strictly recommended. In pre3 I don't think I had to turn it off, my memory says it found the pkgconfig files but correctly decided they were not usable (everything has moved and changed).

For the moment, no sign of a -7 patch for inkscape, and Brynn there suggested I ought to talk to ImageMagick about installing 6 and 7 in parallel - but that is all forums only - at the moment I haven't managed to register at the IM discourse server, and a mail to the admin has not yet got a reply.

Still trying to hack the build so that ALL the .pc files and be called -6.pc, and will require -6 versions for MagickCore etc. But that part is basically "move ALL of them in one go" and so far I haven't got it to build (I feel mostly ok now, but my failures here suggest differently, and I don't understand some of the build).

So for the next few days I will request you to hold off moving the book to 7. If I get anywhere, I'll bring the patch to -dev.

comment:22 by bdubbs@…, 7 years ago

OK, but I will do inkscape without IM for now. If upstream changes or you get a parallel IM6/IM7 worked out, we can change it.

comment:23 by ken@…, 7 years ago

Owner: changed from blfs-book@… to ken@…
Status: newassigned

Taking, to put both 6 (6.9.6-8) and 7 (7.0.3-10) into the book.

comment:24 by ken@…, 7 years ago

Done at r18159, but keeping open for the moment in case I broke anything.

I had hoped to document the libs for ImageMagick, and to then document the -6 versions too, but I couldn't get the XML to validate so for the moment that is all commented out.

comment:25 by ken@…, 7 years ago

So, I forgot to add the new page. Possibly fixed in r18165.

comment:26 by bdubbs@…, 7 years ago

Updated to IM-7.0.4-3 at revision 18168.

Marking as fixed, but some additional tweaks may be needed. If so, please open another ticket.

comment:27 by bdubbs@…, 7 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.