Summary: | media-gfx/inkscape fails to build with =media-gfx/imagemagick-7*: ‘MatteChannel’ is not a member of ‘Magick’ | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ervin Peters <ervin.peters> |
Component: | Current packages | Assignee: | Mikle Kolyada (RETIRED) <zlogene> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dennis.lissov, dilfridge, ervin.peters, gentoo-bugs-augustin, jesse, jstein, maracay, redblade7, redneb, thomas.bettler |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://launchpad.net/bugs/1675962 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 656730 | ||
Bug Blocks: | 581800 | ||
Attachments: |
media-gfx/inkscape-0.92.[23] build.log
Build log with im7.patch Build log with im7.patch inkscape-imagemagick7_fix_makefile_insert.patch |
Description
Ervin Peters
2018-08-12 20:32:35 UTC
could you paste the log with LANG="C", please? I could not reproduce it here with media-gfx/inkscape-0.92.3 media-gfx/imagemagick-7.0.8.8 and gcc-7 (In reply to Jonas Stein from comment #1) > could you paste the log with LANG="C", please? > > I could not reproduce it here with > media-gfx/inkscape-0.92.3 > media-gfx/imagemagick-7.0.8.8 > and gcc-7 Same error after setting lang=C The file ../channel.cpp includes <Magick++.h> which on my system is found under /usr/include/ImageMagick-7/Magick++.h and needs the useflag cxx on imangemagick set. Doing a grep -rI 'MatteChannel' in /usr/include/ImageMagick-7/ finds nothing. The result reflects the error, also after a reinstall of imagemagick... Dinner is over, have to do something payed for. ervin found something similar: https://github.com/ImageMagick/ImageMagick/issues/1176 https://github.molgen.mpg.de/mariux64/pkg-scripts/blob/master/inkscape-0.92.1-0.build.sh I'l take a look at the patches later on. ervin It's an issue related to removed previous deprecated features, which are not corrected in inkscape yet because of imagemagick-6 compatibility see: https://sourceforge.net/p/inkscape/mailman/message/36053897/ unfortunately the mentioned patch does not work with inkscape-0.92.3 - trailing tabs in channel.cpp but not in the patch - errors after applying the corrected patch about missing the commented opacity functions. no further idea. ervin For completeness, emerge --depclean complains on Calculating dependencies... done! * Dependencies could not be completely resolved due to * the following required packages not being installed: * * media-gfx/imagemagick:0/7.0.8.5=[cxx] pulled in by: * media-gfx/inkscape-0.92.2 * It seems to me that the removing of imagemagick deprecated features happend between 7.0.8.5 and the current stable 7.0.8.8. Any Ideas how to solve that? ervin Found something valid. I tried the same on updating my laptop. Inkscape compiled fine. same use flags, same versions, same ... but: On the Laptop the build shows a little difference: The check for ImageMagick++ results to 'no' whether on my Desktop it shows 'yes'. The test checks for existance of ImageMagick++.pc in /usr/lib64/pkgconfig/ On the laptop it doesn't exist because imagemagick doesn't install it. But another app complained about a missing ImageMagick++ in Spring so I created a symlink: ImageMagick++.pc -> /usr/lib64/pkgconfig/Magick++.pc Now all Programms find ImageMagick++ but might struggle with the API Namechanges. @Jonas Stein, it explains why your emerge finished, but if you dig you'll find that ImageMagick++ wasn't found during configure and therefore Imagemagick isn't used. For crosscheck, I create the symlink on the laptop and tried to ebuild... configure finds ImageMagick++ and bumm the build errors: extension/internal/bitmap/channel.cpp: In Elementfunktion »virtual void Inkscape::Extension::Internal::Bitmap::Channel::applyEffect(Magick::Image*)«: extension/internal/bitmap/channel.cpp:31:66: Fehler: »MatteChannel« ist kein Element von »Magick« else if (!strcmp(_layerName, "Matte Channel")) layer = Magick::MatteChannel; ^~~~~~~~~~~~ ;) Two buggy things: - ImageMagick++ detection - ImageMagick++ V7 API compatibility in Inkscape, see referenced bug. ervin I found somewhere a patch that makes Inkscape work with Imagemagick 7. I haven't tested it yet, but at least you have the idea. https://launchpadlibrarian.net/312310892/im7.patch See here for the discussion. https://bugs.launchpad.net/inkscape/+bug/1675962 (In reply to jorgicio from comment #7) > I found somewhere a patch that makes Inkscape work with Imagemagick 7. I > haven't tested it yet, but at least you have the idea. > > https://launchpadlibrarian.net/312310892/im7.patch > > See here for the discussion. https://bugs.launchpad.net/inkscape/+bug/1675962 I applied that patch, and it gets further, but still fails. I've attached a build log. Created attachment 595246 [details]
Build log with im7.patch
Created attachment 595248 [details]
Build log with im7.patch
Last log was copied when IM was building in the background during an update. D'oh!
(In reply to Russell Dwiggins from comment #8) > (In reply to jorgicio from comment #7) > > I found somewhere a patch that makes Inkscape work with Imagemagick 7. I > > haven't tested it yet, but at least you have the idea. > > > > https://launchpadlibrarian.net/312310892/im7.patch > > > > See here for the discussion. https://bugs.launchpad.net/inkscape/+bug/1675962 > > I applied that patch, and it gets further, but still fails. I've attached a > build log. Yes, I also tried the patch and it fails too. Also, the requirement for older versions of Imagemagick as a dependency breaks other packages which require newer than 7 version of Imagemagick. (I'll file a bug then) I think jorgicio is talking about this: !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: media-gfx/imagemagick:0 (media-gfx/imagemagick-7.0.8.67:0/7.0.8.67::gentoo, installed) pulled in by media-gfx/imagemagick:0/7.0.8.67= required by (media-gfx/digikam-6.2.0:5/5::gentoo, installed) ^^^^^^^^^^^^ media-gfx/imagemagick:0/7.0.8.67= required by (media-video/transcode-1.1.7-r3:0/0::gentoo, installed) ^^^^^^^^^^^^ (media-gfx/imagemagick-6.9.10.67:0/6.9.10.67::gentoo, ebuild scheduled for merge) pulled in by <media-gfx/imagemagick-7:=[cxx] required by (media-gfx/inkscape-1.0_beta1:0/0::gentoo, ebuild scheduled for merge) Created attachment 595630 [details, diff] inkscape-imagemagick7_fix_makefile_insert.patch (In reply to jorgicio from comment #7) > I found somewhere a patch that makes Inkscape work with Imagemagick 7. I > haven't tested it yet, but at least you have the idea. > > https://launchpadlibrarian.net/312310892/im7.patch > > See here for the discussion. https://bugs.launchpad.net/inkscape/+bug/1675962 You may want to additionally apply this patch to fix makefile behaviour... (In reply to Thomas Bettler from comment #14) > Created attachment 595630 [details, diff] [details, diff] > inkscape-imagemagick7_fix_makefile_insert.patch > > (In reply to jorgicio from comment #7) > > I found somewhere a patch that makes Inkscape work with Imagemagick 7. I > > haven't tested it yet, but at least you have the idea. > > > > https://launchpadlibrarian.net/312310892/im7.patch > > > > See here for the discussion. https://bugs.launchpad.net/inkscape/+bug/1675962 > > You may want to additionally apply this patch to fix makefile behaviour... The combination of both packages work very good, but now it's time to fix the ebuilds for dependencies, as well as other packages which depends on Imagemagick 6. Meanwhile, I create another overlay to get rid of that: https://github.com/jorgicio/magick6-compat Seems ok with 1.0 now. |