Menu

#665 1.3.38 has build error on macOS 12.3.1

v1.0_(example)
closed-works-for-me
None
5
2023-01-08
2022-05-06
Nathan Niu
No

On macOS (version is 12.3.1, Intel CPU), when I install Octave by brew (brew install octave),
the build error below shows:

==> Downloading https://ftp.gnu.org/gnu/octave/octave-7.1.0.tar.xz
Already downloaded: /Users/me/Library/Caches/Homebrew/downloads/513342404d0cc161bb823fae8ccdd8e302e2fc359eccb171e95f8c41ef84a239--octave-7.1.0.tar.xz
==> Installing dependencies for octave: graphicsmagick, libaec, hdf5, libogg, flac, libvorbis, opus, libsndfile, portaudio, libde265, docbook, docbook-xsl, gnu-getopt, xmlto, shared-mime-info, x265, libheif, liblqr, libomp, libraw, imagemagick, plotutils, pstoedit, qhull, qrupdate, pyqt@5, qscintilla2, metis, suite-sparse, sundials and texinfo
==> Installing octave dependency: graphicsmagick
==> ./configure --prefix=/Users/me/homebrew/Cellar/graphicsmagick/1.3.38 --disable-openmp --disable-static --enable-shared --with-modules --with-quantum-depth=16 --without-lzma -
==> make install
Last 15 lines from /Users/me/Library/Logs/Homebrew/graphicsmagick/02.make:
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./magick/studio.h:349:29: note: expanded from macro 'ArraySize'

define ArraySize(a) (sizeof(a)/sizeof(a[0]))

                        ^~~

coders/jxl.c:1007:50: error: use of undeclared identifier 'frame_settings'
if (JxlEncoderFrameSettingsSetOption(frame_settings, int_frame_settings[index].fs_id, int_value) != JXL_ENC_SUCCESS)
^
coders/jxl.c:1039:31: error: use of undeclared identifier 'frame_settings'
if (JxlEncoderAddImageFrame(frame_settings,&pixel_format,in_buf,
^
12 errors generated.
make[1]: *** [coders/jxl_la-jxl.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
libtool: compile: clang -DHAVE_CONFIG_H -I. -I. -I/Users/me/homebrew/opt/freetype/include/freetype2 -g -O2 -Wall -D_THREAD_SAFE -c coders/label.c -fno-common -DPIC -o coders/.libs/label_la-label.o
make: *** [install] Error 2

Do not report this issue to Homebrew/brew or Homebrew/core!

me@Macbook ~/bin [1]> gcc --version
Apple clang version 13.1.6 (clang-1316.0.21.2.3)
Target: x86_64-apple-darwin21.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
me@Macbook ~/bin> make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

Discussion

  • Bob Friesenhahn

    Bob Friesenhahn - 2022-05-07

    On Fri, 6 May 2022, Nathan Niu wrote:

    On macOS (version is 12.3.1, Intel CPU), when I install Octave by brew (brew install octave),
    the build error below shows:

    ==> Downloading https://ftp.gnu.org/gnu/octave/octave-7.1.0.tar.xz
    Already downloaded: /Users/me/Library/Caches/Homebrew/downloads/513342404d0cc161bb823fae8ccdd8e302e2fc359eccb171e95f8c41ef84a239--octave-7.1.0.tar.xz
    ==> Installing dependencies for octave: graphicsmagick, libaec, hdf5, libogg, flac, libvorbis, opus, libsndfile, portaudio, libde265, docbook, docbook-xsl, gnu-getopt, xmlto, shared-mime-info, x265, libheif, liblqr, libomp, libraw, imagemagick, plotutils, pstoedit, qhull, qrupdate, pyqt@5, qscintilla2, metis, suite-sparse, sundials and texinfo
    ==> Installing octave dependency: graphicsmagick
    ==> ./configure --prefix=/Users/me/homebrew/Cellar/graphicsmagick/1.3.38 --disable-openmp --disable-static --enable-shared --with-modules --with-quantum-depth=16 --without-lzma -
    ==> make install
    Last 15 lines from /Users/me/Library/Logs/Homebrew/graphicsmagick/02.make:
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./magick/studio.h:349:29: note: expanded from macro 'ArraySize'

    define ArraySize(a) (sizeof(a)/sizeof(a[0]))

                           ^~~
    

    coders/jxl.c:1007:50: error: use of undeclared identifier 'frame_settings'
    if (JxlEncoderFrameSettingsSetOption(frame_settings, int_frame_settings[index].fs_id, int_value) != JXL_ENC_SUCCESS)

    If your JXL library is too old to support these API features (which I
    assume is the cause of the problem), then you can disable JXL support
    by adding --without-jxl to the configure arguments.

    What version of libjxl are you using?

    Bob

    Bob Friesenhahn
    bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
    GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
    Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

     
    • Nathan Niu

      Nathan Niu - 2022-05-07

      Hi, Thanks.
      I use brew search or list command, and did not saw libjxl, and found a jpeg-xl already installed. But it not helps. Maybe install an old version of Octave will be a solution.

      me@Macbook ~/bin> brew search libjxl
      ==> Formulae
      libxls libmxml libnxml libxp libxc libxo libxt libxi libxv libjwt libkml libucl libpsl libpcl liboil libnsl libmnl libidl
      me@Macbook ~/bin> brew info libjxl
      Error: No available formula with the name "libjxl". Did you mean libxls, libmxml, libnxml, libxp, libxc, libxo, libxt, libxi, libxv, libjwt, libkml, libucl, libpsl, libpcl, liboil, libnsl, libmnl or libidl?
      ==> Searching for a previously deleted formula (in the last month)...
      Error: No previously deleted formula found.

      me@Macbook ~/bin [1]> brew list --version | grep libjxl

      me@Macbook ~/bin [0|1]> brew install jpeg-xl

      Running brew update --preinstall...
      Warning: jpeg-xl 0.6.1 is already installed and up-to-date.
      To reinstall 0.6.1, run:
      brew reinstall jpeg-xl

       
      • Bob Friesenhahn

        Bob Friesenhahn - 2022-05-07

        On Sat, 7 May 2022, Nathan Niu wrote:

        me@Macbook ~/bin [0|1]> brew install jpeg-xl

        Running brew update --preinstall...
        Warning: jpeg-xl 0.6.1 is already installed and up-to-date.
        To reinstall 0.6.1, run:
        brew reinstall jpeg-xl

        I see that this is the "latest" release.

        For my development I installed libjxl from what was then current
        sources (couple of months ago) and did not use the 0.6.1 release tag.

        The library is very much under active development and has added APIs
        which are not in the "latest" release.

        What I should do is to install a release version on another system to
        test with.

        Bob

        Bob Friesenhahn
        bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
        GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
        Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

         
      • Bob Friesenhahn

        Bob Friesenhahn - 2022-05-07

        Libjxl made big changes to its APIs, and the new APIs to appear be the
        ones to use for the future. The contributed code did not use this API
        but I updated everything to use the newer JxlEncoderFrameSettings
        interface. The older interfaces are marked as "deprecated". I was
        not aware that the new APIs had not made it into a release yet.

        See
        https://github.com/libjxl/libjxl/blob/main/lib/include/jxl/encode.h

        There is then a quandary of if one should write lots of code for the
        now deprecated APIs, or if one should write code which is more likely
        to stand the test of time.

        The new vs deprecated interfaces dictate the basic structure of the
        code.

        Bob

        Bob Friesenhahn
        bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
        GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
        Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

         
  • Bob Friesenhahn

    Bob Friesenhahn - 2023-01-08
    • status: open --> closed-works-for-me
    • assigned_to: Bob Friesenhahn
     
  • Bob Friesenhahn

    Bob Friesenhahn - 2023-01-08

    GraphicsMagick currently requires libjxl 0.7.0 (or later). See https://github.com/libjxl/libjxl/releases for the current list of available releases. At this time, 0.7.0 is the latest release.

    Due to the continually evolving libjxl APIs, GraphicsMagick's policy is to use the APIs recommended by the latest libjxl release and stop using deprecated APIs or deprecated features. Large portions of the previous API have been deprecated or removed.

     

Log in to post a comment.

MongoDB Logo MongoDB