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'
^~~
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
On Fri, 6 May 2022, Nathan Niu wrote:
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
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
On Sat, 7 May 2022, Nathan Niu wrote:
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
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
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.