bugGNU Octave - Bugs: bug #63331, Octave fails to build against...

 
 

bug #63331: Octave fails to build against ImageMagick 7

Submitter:  Fabio <efferre79>
Submitted:  Mon 07 Nov 2022 03:47:03 PM UTC
   
 
Category:  Libraries Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Feature Request
Status:  Confirmed Assigned to:  None
Originator Name:  Open/Closed:  * Open
Release:  * dev Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 08 Nov 2022 10:48:40 AM UTC, comment #5: 

Thank you for testing.

Erroring out in this case would be different from the other `--with` configure flags. Configuring, e.g., with `--with-cholmod="-lfoo"` would result in a warning message that the CHOLMOD library can't be used. But the overall configuration would still succeed.

If we should decide to error out for the magick++ libraries, we should do the same for all other `--with` flags. I'll leave it to others to decide what the desired behavior is.

Markus Mützel <mmuetzel>
Group administrator
Tue 08 Nov 2022 09:20:01 AM UTC, comment #4: 

Markus, I tested your commit with octave 7.3.0 and now the magick support gets disabled if trying to pass the compile option --with-magick=Magick++.

If the user explicitly passes that option I would expect a failure in the configuration to state the lack of support of imagemagick. If the user doesn't use --with-magick than the current behaviour looks fine. What do you think?

Fabio <efferre79>
Mon 07 Nov 2022 05:30:08 PM UTC, comment #3: 

I pushed a change here that checks for `Magick::PixelPacket`:
https://hg.savannah.gnu.org/hgweb/octave/rev/97057039b835

That symbol was removed from the API of ImageMagick++ version 7. That way, the configure script will detect that Octave can't use the installed version of ImageMagick++ (if it is version 7 without that symbol).
The configure script warns which features won't be available.
This allows Octave to compile without errors (hopefully).

Keeping this open as confirmed in case someone is interested in implementing support for the new API.

Markus Mützel <mmuetzel>
Group administrator
Mon 07 Nov 2022 04:25:43 PM UTC, comment #2: 

If I understand correctly, the API has changed between ImageMagick 6 and ImageMagick 7:
https://imagemagick.org/script/porting.php

We should probably make the configure checks more specific and check whether the objects we are using and that were removed from ImageMagick 7 are available (e.g. `Magick::PixelPacket`).

In a second, and maybe more complicated step, it might be nice if someone could port our code to the new API (while ideally maintaining compatibility with the older API and - more importantly - with GraphicsMagick++).
But that might be cumbersome if the APIs of ImageMagick and GraphicsMagick get more and more different.
IIUC, the GraphicsMagick project aims for a more stable API which might be easier to follow.
I haven't looked into it in any detail. But maybe, we should just drop support for ImageMagick at some point (maybe now?) if following its API changes is too much effort.

Markus Mützel <mmuetzel>
Group administrator
Mon 07 Nov 2022 03:53:13 PM UTC, comment #1: 

maybe mmuetzel can address the problem as done in the past for a similar bug (#49653)

Fabio <efferre79>
Mon 07 Nov 2022 03:47:03 PM UTC, original submission:  

I am trying to build octave 7.3.0 from source against imagemagick version 7.1.0.44. The configuration works correctly, if I pass the argument --with-magick=Magick++ and I get


...
checking for Magick++.h... yes
checking for Magick::ColorRGB in Magick++.h... yes
...

  Magick++ CPPFLAGS:             -I/usr/include/ImageMagick-7 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
  Magick++ LDFLAGS:
  Magick++ libraries:            -lMagick++-7.Q16 -lMagickWand-7.Q16 -lMagickCore-7.Q16


during that phase.

When instead I try to compile, I get the following errors:


...
libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -Iliboctave -I./liboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave
/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -I./libinterp/octave-value -Il
ibinterp -I./libinterp -I./libinterp/operators -Ilibinterp/parse-tree -I./libinterp/parse-tree -Ilibinterp/corefcn -I./libint
erp/corefcn -I./liboctave/wrappers -I/usr/include/ImageMagick-7 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPT
H=16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fr
eetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/metis -I/usr/include/met
is -Dyysymbol_kind_t=octave_tex_symbol_kind_t -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -fP
IC -pthread -fopenmp -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-
eetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/metis -I/usr/include/metis -Dyysymbol_kind_t=octave_tex_symbol_kind_t -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -fPIC -pthread -fopenmp -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -march=core2 -O2 -pipe -c libinterp/corefcn/__qp__.cc  -fPIC -DPIC -o libinterp/corefcn/.libs/libcorefcn_la-__qp__.o
/usr/include/ImageMagick-7/Magick++/STL.h: In function 'void Magick::smushImages(Magick::Image*, InputIterator, InputIterator, ssize_t, bool)':
/usr/include/ImageMagick-7/Magick++/STL.h:2815:27: warning: use of old-style cast to 'enum MagickCore::MagickBooleanType' [-Wold-style-cast]
 2815 |       (MagickBooleanType) stack_,offset_,exceptionInfo);
      |                           ^~~~~~
libinterp/corefcn/__magick_read__.cc: In function 'octave_value_list octave::read_indexed_images(const std::vector<Magick::Image>&, const Array<int>&, const octave_idx_type&, const octave_scalar_map&)':
libinterp/corefcn/__magick_read__.cc:330:21: error: 'IndexPacket' in namespace '' does not name a type
  330 |       const Magick::IndexPacket *pix
      |                     ^~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc:337:50: error: 'pix' was not declared in this scope
  337 |               img_fvec[idx++] = static_cast<P> (*pix);
      |                                                  ^~~
libinterp/corefcn/__magick_read__.cc:340:11: error: 'pix' was not declared in this scope
  340 |           pix -= col_shift;
      |           ^~~
libinterp/corefcn/__magick_read__.cc:359:27: error: 'const value_type' {aka 'const class Magick::Image'} has no member named 'matte'
  359 |       if (imvec[def_elem].matte () && nargout >= 3)
      |                           ^~~~~
libinterp/corefcn/__magick_read__.cc: In function 'octave_value_list octave::read_images(std::vector<Magick::Image>&, const Array<int>&, const octave_idx_type&, const octave_scalar_map&)':
libinterp/corefcn/__magick_read__.cc:436:15: error: 'MaxRGB' was not declared in this scope
  436 |     divisor = MaxRGB / ((uint64_t (1) << imvec[def_elem].depth ()) - 1);
      |               ^~~~~~
libinterp/corefcn/__magick_read__.cc:446:54: error: '__gnu_cxx::__alloc_traits<std::allocator<Magick::Image>, Magick::Image>::value_type' {aka 'class Magick::Image'} has no member named 'matte'
  446 |   if (type == Magick::BilevelType && imvec[def_elem].matte ())
  447 |     type = Magick::GrayscaleMatteType;
      |                    ^~~~~~~~~~~~~~~~~~
      |                    GrayscaleType
libinterp/corefcn/__magick_read__.cc:474:24: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColor/var/tType'?
  474 |         type = Magick::TrueColorMatteType;
      |                        ^~~~~~~~~~~~~~~~~~
      |                        TrueColorType
libinterp/corefcn/__magick_read__.cc:476:24: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscale/var/tType'?
  476 |         type = Magick::GrayscaleMatteType;
      |                        ^~~~~~~~~~~~~~~~~~
      |                        GrayscaleType
libinterp/corefcn/__magick_read__.cc:482:20: error: '__gnu_cxx::__alloc_traits<std::allocator<Magick::Image>, Magick::Image>::value_type' {aka 'class Magick::Image'} has no member named 'matte'
  482 |       if (imvec[0].matte ())
      |                    ^~~~~
libinterp/corefcn/__magick_read__.cc:485:28: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscale/var/tType'?
  485 |             type = Magick::GrayscaleMatteType;
      |                            ^~~~~~~~~~~~~~~~~~
      |                            GrayscaleType
libinterp/corefcn/__magick_read__.cc:487:28: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColor/var/tType'?
  487 |             type = Magick::TrueColorMatteType;
      |                            ^~~~~~~~~~~~~~~~~~
      |                            TrueColorType
libinterp/corefcn/__magick_read__.cc:497:22: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscale/var/tType'?
  497 |         case Magick::GrayscaleMatteType:
      |                      ^~~~~~~~~~~~~~~~~~
      |                      GrayscaleType
libinterp/corefcn/__magick_read__.cc:501:22: error: 'PaletteMatteType' is not a member of ''; did you mean 'PaletteType/var/t'?
  501 |         case Magick::PaletteMatteType:
      |                      ^~~~~~~~~~~~~~~~
      |                      PaletteType
libinterp/corefcn/__magick_read__.cc:505:22: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColor/var/tType'?
  505 |         case Magick::TrueColorMatteType:
      |                      ^~~~~~~~~~~~~~~~~~
      |                      TrueColorType
libinterp/corefcn/__magick_read__.cc:509:22: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Col/var/torSeparationType'?
  509 |         case Magick::ColorSeparationMatteType:
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
      |                      ColorSeparationType
libinterp/corefcn/__magick_read__.cc:534:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  534 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:542:39: error: 'pix' was not declared in this scope
  542 |                     img_fvec[idx++] = pix->red / divisor;
      |                                       ^~~
libinterp/corefcn/__magick_read__.cc:545:17: error: 'pix' was not declared in this scope
  545 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc:551:18: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscale/var/tType'?
  551 |     case Magick::GrayscaleMatteType:    // Grayscale image with opacity
      |                  ^~~~~~~~~~~~~~~~~~
      |                  GrayscaleType
libinterp/corefcn/__magick_read__.cc:563:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  563 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:571:37: error: 'pix' was not declared in this scope
  571 |                     img_fvec[idx] = pix->red / divisor;
      |                                     ^~~
libinterp/corefcn/__magick_read__.cc:572:38: error: 'MaxRGB' was not declared in this scope
  572 |                     a_fvec[idx]   = (MaxRGB - pix->opacity) / divisor;
      |                                      ^~~~~~
libinterp/corefcn/__magick_read__.cc:576:17: error: 'pix' was not declared in this scope
  576 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc:594:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  594 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:607:33: error: 'pix' was not declared in this scope
  607 |                     rbuf[idx] = pix->red   / divisor;
      |                                 ^~~
libinterp/corefcn/__magick_read__.cc:613:17: error: 'pix' was not declared in this scope
  613 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc:620:18: error: 'PaletteMatteType' is not a member of ''; did you mean 'PaletteType/var/t'?
  620 |     case Magick::PaletteMatteType:    // Indexed color image with opacity
      |                  ^~~~~~~~~~~~~~~~
      |                  PaletteType
libinterp/corefcn/__magick_read__.cc:621:18: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColor/var/tType'?
  621 |     case Magick::TrueColorMatteType:  // Truecolor image with opacity
      |                  ^~~~~~~~~~~~~~~~~~
      |                  TrueColorType
libinterp/corefcn/__magick_read__.cc:637:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  637 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:650:37: error: 'pix' was not declared in this scope
  650 |                     rbuf[idx]     = pix->red     / divisor;
      |                                     ^~~
libinterp/corefcn/__magick_read__.cc:653:40: error: 'MaxRGB' was not declared in this scope
  653 |                     a_fvec[a_idx++] = (MaxRGB - pix->opacity) / divisor;
      |                                        ^~~~~~
libinterp/corefcn/__magick_read__.cc:657:17: error: 'pix' was not declared in this scope
  657 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc:675:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  675 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:689:33: error: 'pix' was not declared in this scope
  689 |                     cbuf[idx] = pix->red     / divisor;
      |                                 ^~~
libinterp/corefcn/__magick_read__.cc:696:17: error: 'pix' was not declared in this scope
  696 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc:704:18: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Col/var/torSeparationType'?
  704 |     case Magick::ColorSeparationMatteType:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
      |                  ColorSeparationType
libinterp/corefcn/__magick_read__.cc:720:27: error: 'PixelPacket' in namespace '' does not name a type; did you mean 'P/var/tixelMask'?
  720 |             const Magick::PixelPacket *pix
      |                           ^~~~~~~~~~~
      |                           PixelMask
libinterp/corefcn/__magick_read__.cc:725:27: error: 'IndexPacket' in namespace '' does not name a type
  725 |             const Magick::IndexPacket *apix
      |                           ^~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc:738:37: error: 'pix' was not declared in this scope
  738 |                     cbuf[idx]     = pix->red     / divisor;
      |                                     ^~~
libinterp/corefcn/__magick_read__.cc:742:40: error: 'MaxRGB' was not declared in this scope
  742 |                     a_fvec[a_idx++] = (MaxRGB - *apix) / divisor;
      |                                        ^~~~~~
libinterp/corefcn/__magick_read__.cc:742:50: error: 'apix' was not declared in this scope
  742 |                     a_fvec[a_idx++] = (MaxRGB - *apix) / divisor;
      |                                                  ^~~~
libinterp/corefcn/__magick_read__.cc:746:17: error: 'pix' was not declared in this scope
  746 |                 pix -= col_shift;
      |                 ^~~
libinterp/corefcn/__magick_read__.cc: In function 'void octave::maybe_initialize_magick()':
libinterp/corefcn/__magick_read__.cc:825:11: error: 'QuantumDepth' was not declared in this scope
  825 |       if (QuantumDepth < 16)
      |           ^~~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc: In function 'Magick::Image octave::init_enconde_image(const octave_idx_type&, const octave_idx_type&, const octave_idx_type&, const MagickCore::ImageType&, const MagickCore::ClassType&)':
libinterp/corefcn/__magick_read__.cc:1009:18: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscal/var/teType'?
 1009 |     case Magick::GrayscaleMatteType:
      |                  ^~~~~~~~~~~~~~~~~~
      |                  GrayscaleType
libinterp/corefcn/__magick_read__.cc:1010:18: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColo/var/trType'?
 1010 |     case Magick::TrueColorMatteType:
      |                  ^~~~~~~~~~~~~~~~~~
      |                  TrueColorType
libinterp/corefcn/__magick_read__.cc:1011:18: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Co/var/tlorSeparationType'?
 1011 |     case Magick::ColorSeparationMatteType:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
      |                  ColorSeparationType
libinterp/corefcn/__magick_read__.cc:1012:18: error: 'PaletteMatteType' is not a member of ''; did you mean 'PaletteTyp/var/te'?
 1012 |     case Magick::PaletteMatteType:
      |                  ^~~~~~~~~~~~~~~~
      |                  PaletteType
libinterp/corefcn/__magick_read__.cc:1013:11: error: 'class Magick::Image' has no member named 'matte'
 1013 |       img.matte (true);
      |           ^~~~~
libinterp/corefcn/__magick_read__.cc:1017:11: error: 'class Magick::Image' has no member named 'matte'
 1017 |       img.matte (false);
      |           ^~~~~
libinterp/corefcn/__magick_read__.cc: In function 'void octave::encode_indexed_images(std::vector<Magick::Image>&, const T&, const Matrix&)':
libinterp/corefcn/__magick_read__.cc:1071:15: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1071 |       Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |               ^~~~~~~~~~~
      |               PixelMask
libinterp/corefcn/__magick_read__.cc:1071:28: error: 'pix' was not declared in this scope
 1071 |       Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                            ^~~
libinterp/corefcn/__magick_read__.cc:1072:15: error: 'IndexPacket' is not a member of ''
 1072 |       Magick::IndexPacket *ind = m_img.getIndexes ();
      |               ^~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc:1072:28: error: 'ind' was not declared in this scope; did you mean 'int'?
 1072 |       Magick::IndexPacket *ind = m_img.getIndexes ();
      |                            ^~~
      |                            int
libinterp/corefcn/__magick_read__.cc:1072:40: error: 'class Magick::Image' has no member named 'getIndexes'
 1072 |       Magick::IndexPacket *ind = m_img.getIndexes ();
      |                                        ^~~~~~~~~~
libinterp/corefcn/__magick_read__.cc: In function 'void octave::encode_bool_image(std::vector<Magick::Image>&, const boolNDArray&)':
libinterp/corefcn/__magick_read__.cc:1118:15: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1118 |       Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |               ^~~~~~~~~~~
      |               PixelMask
libinterp/corefcn/__magick_read__.cc:1118:28: error: 'pix' was not declared in this scope
 1118 |       Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                            ^~~
libinterp/corefcn/__magick_read__.cc: In function 'void octave::encode_uint_image(std::vector<Magick::Image>&, const T&, const T&)':
libinterp/corefcn/__magick_read__.cc:1159:24: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscal/var/teType'?
 1159 |         type = Magick::GrayscaleMatteType;
      |                        ^~~~~~~~~~~~~~~~~~
      |                        GrayscaleType
libinterp/corefcn/__magick_read__.cc:1166:24: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColo/var/trType'?
 1166 |         type = Magick::TrueColorMatteType;
      |                        ^~~~~~~~~~~~~~~~~~
      |                        TrueColorType
libinterp/corefcn/__magick_read__.cc:1173:24: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Co/var/tlorSeparationType'?
 1173 |         type = Magick::ColorSeparationMatteType;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~
      |                        ColorSeparationType
libinterp/corefcn/__magick_read__.cc:1191:28: error: 'MaxRGB' was not declared in this scope
 1191 |                          / MaxRGB;
      |                            ^~~~~~
libinterp/corefcn/__magick_read__.cc:1207:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1207 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1207:34: error: 'pix' was not declared in this scope
 1207 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1228:18: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscal/var/teType'?
 1228 |     case Magick::GrayscaleMatteType:
      |                  ^~~~~~~~~~~~~~~~~~
      |                  GrayscaleType
libinterp/corefcn/__magick_read__.cc:1238:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1238 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1238:34: error: 'pix' was not declared in this scope
 1238 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1274:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1274 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1274:34: error: 'pix' was not declared in this scope
 1274 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1297:18: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColo/var/trType'?
 1297 |     case Magick::TrueColorMatteType:
      |                  ^~~~~~~~~~~~~~~~~~
      |                  TrueColorType
libinterp/corefcn/__magick_read__.cc:1310:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1310 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1310:34: error: 'pix' was not declared in this scope
 1310 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1349:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1349 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1349:34: error: 'pix' was not declared in this scope
 1349 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1373:18: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Co/var/tlorSeparationType'?
 1373 |     case Magick::ColorSeparationMatteType:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
      |                  ColorSeparationType
libinterp/corefcn/__magick_read__.cc:1387:21: error: 'PixelPacket' is not a member of ''; did you mean 'PixelMask'?
 1387 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                     ^~~~~~~~~~~
      |                     PixelMask
libinterp/corefcn/__magick_read__.cc:1387:34: error: 'pix' was not declared in this scope
 1387 |             Magick::PixelPacket *pix = m_img.getPixels (0, 0, nCols, nRows);
      |                                  ^~~
libinterp/corefcn/__magick_read__.cc:1388:21: error: 'IndexPacket' is not a member of ''
 1388 |             Magick::IndexPacket *ind = m_img.getIndexes ();
      |                     ^~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc:1388:34: error: 'ind' was not declared in this scope; did you mean 'int'?
 1388 |             Magick::IndexPacket *ind = m_img.getIndexes ();
      |                                  ^~~
      |                                  int
libinterp/corefcn/__magick_read__.cc:1388:46: error: 'class Magick::Image' has no member named 'getIndexes'
 1388 |             Magick::IndexPacket *ind = m_img.getIndexes ();
      |                                              ^~~~~~~~~~
libinterp/corefcn/__magick_read__.cc: In function 'octave_value_list octave::F__magick_write__(const octave_value_list&, int)':
libinterp/corefcn/__magick_read__.cc:1586:33: error: invalid conversion from 'std::map<std::__cxx11::basic_string<char>, int>::mapped_type' {aka 'int'} to 'MagickCore::DisposeType' [-fpermissive]
 1586 |       imvec[i].gifDisposeMethod (disposal_methods[disposalmethod(i)]);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                 |
      |                                 std::map<std::__cxx11::basic_string<char>, int>::mapped_type {aka int}
In file included from /usr/include/ImageMagick-7/Magick++.h:14,
                 from libinterp/corefcn/__magick_read__.cc:42:
/usr/include/ImageMagick-7/Magick++/Image.h:286:45: note:   initializing argument 1 of 'void Magick::Image::gifDisposeMethod(MagickCore::DisposeType)'
  286 |     void gifDisposeMethod(const DisposeType disposeMethod_);
      |                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
libinterp/corefcn/__magick_read__.cc: In function 'octave_value_list octave::F__magick_finfo__(const octave_value_list&, int)':
libinterp/corefcn/__magick_read__.cc:2057:28: error: 'GrayscaleMatteType' is not a member of ''; did you mean 'Grayscal/var/teType'?
 2057 |               case Magick::GrayscaleMatteType:
      |                            ^~~~~~~~~~~~~~~~~~
      |                            GrayscaleType
libinterp/corefcn/__magick_read__.cc:2062:28: error: 'TrueColorMatteType' is not a member of ''; did you mean 'TrueColo/var/trType'?
 2062 |               case Magick::TrueColorMatteType:
      |                            ^~~~~~~~~~~~~~~~~~
      |                            TrueColorType
libinterp/corefcn/__magick_read__.cc:2067:28: error: 'PaletteMatteType' is not a member of ''; did you mean 'PaletteTyp/var/te'?
 2067 |               case Magick::PaletteMatteType:
      |                            ^~~~~~~~~~~~~~~~
      |                            PaletteType
libinterp/corefcn/__magick_read__.cc:2073:28: error: 'ColorSeparationMatteType' is not a member of ''; did you mean 'Co/var/tlorSeparationType'?
 2073 |               case Magick::ColorSeparationMatteType:
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~
      |                            ColorSeparationType
/bin/sh ./libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I.  -Iliboctave -I./liboctave -I./liboctave/array -Ilib
octave/numeric -I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators -I./liboctave/system -I./liboctave/util -I
./libinterp/octave-value -Ilibinterp -I./libinterp -I./libinterp/operators -Ilibinterp/parse-tree -I./libinterp/parse-tree -I
libinterp/corefcn -I./libinterp/corefcn -I./liboctave/wrappers  -I/usr/include/ImageMagick-7 -fopenmp -DMAGICKCORE_HDRI_ENABL
E=0 -DMAGICKCORE_QUANTUM_DEPTH=16   -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/gli
b-2.0/include  -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -I/us
r/include/metis  -I/usr/include/metis         -Dyysymbol_kind_t=octave_tex_symbol_kind_t -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=60
0  -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  -fPIC -pthread -fopenmp -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wf
ormat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual  -march=core2 -O2 -pipe -c -o libinterp/corefcn/libcorefcn_la-
amd.lo `test -f 'libinterp/corefcn/amd.cc' || echo './'`libinterp/corefcn/amd.cc
libinterp/corefcn/__magick_read__.cc:2091:33: error: no matching function for call to 'Magick::Image::chromaWhitePoint(double
*, double*) const'
 2091 |         img.chromaWhitePoint    (&chroma_fvec[0], &chroma_fvec[1]);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/ImageMagick-7/Magick++.h:14,
                 from libinterp/corefcn/__magick_read__.cc:42:
/usr/include/ImageMagick-7/Magick++/Image.h:723:10: note: candidate: 'void Magick::Image::chromaWhitePoint(double, double, do
uble)'
  723 |     void chromaWhitePoint(const double x_,const double y_,const double z_);
      |          ^~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:723:10: note:   candidate expects 3 arguments, 2 provided
/usr/include/ImageMagick-7/Magick++/Image.h:724:10: note: candidate: 'void Magick::Image::chromaWhitePoint(double*, double*,
double*) const'
  724 |     void chromaWhitePoint(double *x_,double *y_,double *z_) const;
      |          ^~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:724:10: note:   candidate expects 3 arguments, 2 provided
libinterp/corefcn/__magick_read__.cc:2092:33: error: no matching function for call to 'Magick::Image::chromaRedPrimary(double*, double*) const'
 2092 |         img.chromaRedPrimary    (&chroma_fvec[2], &chroma_fvec[3]);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/ImageMagick-7/Magick++.h:14,
                 from libinterp/corefcn/__magick_read__.cc:42:
/usr/include/ImageMagick-7/Magick++/Image.h:719:10: note: candidate: 'void Magick::Image::chromaRedPrimary(double, double, double)'
  719 |     void chromaRedPrimary(const double x_,const double y_,const double z_);
      |          ^~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:719:10: note:   candidate expects 3 arguments, 2 provided
/usr/include/ImageMagick-7/Magick++/Image.h:720:10: note: candidate: 'void Magick::Image::chromaRedPrimary(double*, double*, double*) const'
  720 |     void chromaRedPrimary(double *x_,double *y_,double *z_) const;
      |          ^~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:720:10: note:   candidate expects 3 arguments, 2 provided
libinterp/corefcn/__magick_read__.cc:2093:33: error: no matching function for call to 'Magick::Image::chromaGreenPrimary(double*, double*) const'
 2093 |         img.chromaGreenPrimary  (&chroma_fvec[4], &chroma_fvec[5]);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/ImageMagick-7/Magick++.h:14,
                 from libinterp/corefcn/__magick_read__.cc:42:
/usr/include/ImageMagick-7/Magick++/Image.h:715:10: note: candidate: 'void Magick::Image::chromaGreenPrimary(double, double, double)'
  715 |     void chromaGreenPrimary(const double x_,const double y_,const double z_);
      |          ^~~~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:715:10: note:   candidate expects 3 arguments, 2 provided
/usr/include/ImageMagick-7/Magick++/Image.h:716:10: note: candidate: 'void Magick::Image::chromaGreenPrimary(double*, double*, double*) const'
  716 |     void chromaGreenPrimary(double *x_,double *y_,double *z_) const;
      |          ^~~~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:716:10: note:   candidate expects 3 arguments, 2 provided
libinterp/corefcn/__magick_read__.cc:2094:33: error: no matching function for call to 'Magick::Image::chromaBluePrimary(double*, double*) const'
 2094 |         img.chromaBluePrimary   (&chroma_fvec[6], &chroma_fvec[7]);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/ImageMagick-7/Magick++.h:14,
                 from libinterp/corefcn/__magick_read__.cc:42:
/usr/include/ImageMagick-7/Magick++/Image.h:711:10: note: candidate: 'void Magick::Image::chromaBluePrimary(double, double, double)'
  711 |     void chromaBluePrimary(const double x_,const double y_,const double z_);
      |          ^~~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:711:10: note:   candidate expects 3 arguments, 2 provided
/usr/include/ImageMagick-7/Magick++/Image.h:712:10: note: candidate: 'void Magick::Image::chromaBluePrimary(double*, double*, double*) const'
  712 |     void chromaBluePrimary(double *x_,double *y_,double *z_) const;
      |          ^~~~~~~~~~~~~~~~~
/usr/include/ImageMagick-7/Magick++/Image.h:712:10: note:   candidate expects 3 arguments, 2 provided
...


When building against graphicsmagick there are no issues.


Fabio <efferre79>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by efferre79 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-11-07 mmuetzel CategoryConfiguration and Build System Libraries
        Item GroupNone Feature Request
        StatusNone Confirmed
        Releaseother dev
        Operating SystemGNU/Linux Any
    2022-11-07 mmuetzel Summaryoctave fails to build against imagemagick Octave fails to build against ImageMagick 7

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code