Closed xu4wang closed 3 years ago
-- Package 'pango' requires 'fontconfig >= 2.11.91' but version of fontconfig is 2.10.1
Thanks @ProgramFan for your help.
I guess version 2.10.1 is the one came from the MacOS? brew has installed version 2.13.1 before.
WangXus-MacBook-Pro:~ wangxu$ brew install fontconfig
Updating Homebrew...
Warning: fontconfig 2.13.1 is already installed and up-to-date
To reinstall 2.13.1, run `brew reinstall fontconfig`
WangXus-MacBook-Pro:~ wangxu$
How shall I ask the installation script to use the fontconfig installed by brew ?
What's the status on MacOs compatiblity? We just had some conversation on the asciidoctor forum and it seems is not 100% reliable (no mean to ofense)? https://discuss.asciidoctor.org/asciidoctor-mathematical-fails-to-install-td8173.html#a8187
I found out that mathematical-1.6.13 and asciidoctor-mathematical-0.3.4 compile on macOS Catalina. Here is the output:
$ gem install asciidoctor-mathematical
Building native extensions. This could take a while...
Successfully installed mathematical-1.6.13
Successfully installed asciimath-2.0.1
Successfully installed asciidoctor-mathematical-0.3.4
Parsing documentation for mathematical-1.6.13
Installing ri documentation for mathematical-1.6.13
Parsing documentation for asciimath-2.0.1
Installing ri documentation for asciimath-2.0.1
Parsing documentation for asciidoctor-mathematical-0.3.4
Installing ri documentation for asciidoctor-mathematical-0.3.4
Done installing documentation for mathematical, asciimath, asciidoctor-mathematical after 11 seconds
3 gems installed
Ruby is 2.7.1.
I have gcc and clang installed by homebrew, though.
I'm trying to get the installation to work on GitHub Actions and it's failing. It seems that there's an error in the C code that the default C compiler on macOS doesn't like.
mathematical.c:104:5: error: implicit declaration of function
'mtex2MML_free_string' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
mtex2MML_free_string(mathml);
I'll try to install gcc
and clang
with brew and see if that helps.
Btw, I'm working on getting GitHub Actions set up so we can actually test this gem on Linux (Ubuntu), macOS, and maybe one day Windows. The first step is to just get it to install the gem. After that, we really need to get some tests in place because right now this gem is completely untested.
I'm sorry to say, but this gem just cannot be installed on macOS because of compile errors in mathematical. We need to stop recommending it to macOS users until this problem can be resolved because we are wasting peoples' time.
We cannot recommend this gem for macOS users until the macos-latest job in the CI workflow can be run successfully.
This works now (as of mathematical 1.6.14), so please close this issue :)
I'm not going to accept that this works until the CI job is passing. Otherwise, we have no way to verify it. I'm looking for someone who is willing to update the CI workflow to run on macOS. See https://github.com/asciidoctor/asciidoctor-mathematical/blob/master/.github/workflows/ci.yml
The CI job is passing! Thanks @tstumm!
Glad that the CI job is passing. I upgraded my Mac to Big Sur (11.4) and upgraded the command line tools. I also checked the listed dependencies. The gem still doesn't install.
It appears that there is some sort of problem with glib, and glib2.0 is mentioned. I found some discussion about glib2.0 on stack overflow, and a few days ago, before I upgraded to Big Sur, I fiddled with file locations to try to get asciidoctor-mathematical to work.
Here are the error messages:
storycraft$ gem install asciidoctor-mathematical Building native extensions. This could take a while... ERROR: Error installing asciidoctor-mathematical: ERROR: Failed to build gem native extension.
current directory: /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical
/Users/storycraft/.rvm/rubies/ruby-2.7.2/bin/ruby -I /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0 -r ./siteconf20210614-6732-u6bpa4.rb extconf.rb checking for cmake... yes checking for -lxml2... yes checking for -lpangocairo-1.0... yes checking for libxml/tree.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/parser.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpath.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpathInternals.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes -- The C compiler identification is AppleClang 12.0.5.12050022 -- The CXX compiler identification is AppleClang 12.0.5.12050022 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at CMakeLists.txt:19 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.
Update the VERSION argument
-- Found BISON: /usr/bin/bison (found version "2.3")
-- Found FLEX: /usr/local/opt/flex/bin/flex (found version "2.6.4")
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found PythonInterp: /usr/bin/python (found version "2.7.16")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build
[ 10%] [BISON][MTEX2MMLPARSER] Building parser with bison 2.3
conflicts: 5280 shift/reduce, 613 reduce/reduce
[ 20%] [FLEX][MTEX2MMLSCANNER] Building scanner with flex 2.6.4
[ 30%] Building C object CMakeFiles/libmtex2MML_static.dir/src/colors.c.o
[ 40%] Building C object CMakeFiles/libmtex2MML_static.dir/src/em.c.o
[ 50%] Building C object CMakeFiles/libmtex2MML_static.dir/src/environment.c.o
[ 60%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_dup.c.o
[ 70%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_extras.c.o
[ 80%] Building C object CMakeFiles/libmtex2MML_static.dir/parser.c.o
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:56:30: warning: unused parameter 'ret_str' [-Wunused-parameter]
static void yyerror (char *ret_str, const char s)
^
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:3507:12: warning: cast to smaller integer type 'encaseType' from 'encaseType ' [-Wpointer-to-enum-cast]
encase = (encaseType) encase_pointer;
^~~~~~~
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:68:14: warning: unused function 'mtex2MML_default_write' [-Wunused-function]
static void mtex2MML_default_write (const char buffer, unsigned long length)
^
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:79:14: warning: unused function 'mtex2MML_default_write_mathml' [-Wunused-function]
static void mtex2MML_default_write_mathml (const char * mathml)
^
4 warnings generated.
[ 90%] Building C object CMakeFiles/libmtex2MML_static.dir/lexer.c.o
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build/lexer.c:8455:16: warning: function 'input' is not needed and will not be emitted [-Wunneeded-internal-declaration]
static int input (void)
^
1 warning generated.
[100%] Linking C static library libmtex2MML.a
[100%] Built target libmtex2MML_static
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:8 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument
-- Found PkgConfig: /opt/local/bin/pkg-config (found version "0.29.1") -- Checking for module 'glib-2.0' -- No package 'glib-2.0' found CMake Error at /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:556 (message): A required package was not found Call Stack (most recent call first): /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:778 (_pkg_check_modules_internal) CMakeLists.txt:41 (pkg_check_modules)
-- Configuring incomplete, errors occurred! See also "/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeOutput.log". See also "/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeError.log". make: No targets specified and no makefile found. Stop. extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/storycraft/.rvm/rubies/ruby-2.7.2/bin/$(RUBY_BASE_NAME)
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-xml2lib
--without-xml2lib
--with-pangocairo-1.0-dir
--without-pangocairo-1.0-dir
--with-pangocairo-1.0-include
--without-pangocairo-1.0-include=${pangocairo-1.0-dir}/include
--with-pangocairo-1.0-lib
--without-pangocairo-1.0-lib=${pangocairo-1.0-dir}/lib
--with-pangocairo-1.0lib
--without-pangocairo-1.0lib
--use-system-mtex2MML
--use-system-lasem
/Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:491:in realpath': No such file or directory @ rb_check_realpath_internal - /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib (Errno::ENOENT) from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:491:in
copy_entry'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:468:in block in cp_r' from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1589:in
block in fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1603:in fu_each_src_dest0' from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1587:in
fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:467:in cp_r' from extconf.rb:99:in
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/storycraft/.rvm/gems/ruby-2.7.2/extensions/x86_64-darwin-18/2.7.0/mathematical-1.6.14/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14 for inspection. Results logged to /Users/storycraft/.rvm/gems/ruby-2.7.2/extensions/x86_64-darwin-18/2.7.0/mathematical-1.6.14/gem_make.out
Seems to me some dependencies are missing. Did you install them like described in the CI script first with homebrew brew install cairo gdk-pixbuf pango
?
Here's the problem you're running into:
No package 'glib-2.0' found
It looks like you are missing the development libraries. This is typically installed on CI serves, but may not be on a fresh macOS installation. This should do it:
brew install glib
Re-installing all of the required dependencies is the first thing that I tried (a few times in a few different ways) before posting here. Although glib
is already installed, I also tried explicitly brew install glib-2.0
and got the following:
==> Searching for similarly named formulae... Error: No similarly named formulae found. Error: No available formula or cask with the name "glib-2.0". ==> Searching for a previously deleted formula (in the last month)... Error: No previously deleted formula found. ==> Searching taps on GitHub... Error: No formulae found in taps.
I also ran softwareupdate -ai
and brew cleanup
in case either of those would help.
Questions:
xcode-select --version
is xcode-select version 2384
.glib 2.68.3
.Please provide details...it looks like we are almost there. Meanwhile I am reinstalling the developer tools in case it gives me a more recent version.
This is what happens (the error from the attempted install of asciidoctor-mathematical is as above):
storycraft$ brew install glib Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (homebrew/core and homebrew/cask). ==> Updated Formulae Updated 28 formulae. ==> Updated Casks Updated 13 casks. ==> Deleted Casks mapillary-uploader
Warning: glib 2.68.3 is already installed and up-to-date. To reinstall 2.68.3, run: brew reinstall glib
Elisas-MacBook-Pro:~ storycraft$ brew reinstall glib ==> Downloading https://ghcr.io/v2/homebrew/core/glib/manifests/2.68.3 Already downloaded: /Users/storycraft/Library/Caches/Homebrew/downloads/ffc6ef2585b8ffd283739e262fefe4893bb3c9f4ca48394eba5f08077d05d536--glib-2.68.3.bottle_manifest.json ==> Downloading https://ghcr.io/v2/homebrew/core/glib/blobs/sha256:ebfa4f4aa16221f88df0259b2468c23a43d86a0 Already downloaded: /Users/storycraft/Library/Caches/Homebrew/downloads/1ce073ccb1f53a48411adfc9831d136ebd564381f2f9fda46b43661c98d810a6--glib--2.68.3.big_sur.bottle.tar.gz ==> Reinstalling glib ==> Pouring glib--2.68.3.big_sur.bottle.tar.gz 🍺 /usr/local/Cellar/glib/2.68.3: 442 files, 21MB
I run the installation in a BigSur machine with the brew dependencies and it worked fine, so there's a light at the end.
About the error, I think you posted the wrong log, what do you get now when installing asciidoctor-mathematical
Here's the output asciidoctor-mathematical attempted install:
storycraft$ gem install asciidoctor-mathematical Building native extensions. This could take a while... ERROR: Error installing asciidoctor-mathematical: ERROR: Failed to build gem native extension.
current directory: /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical
/Users/storycraft/.rvm/rubies/ruby-2.7.2/bin/ruby -I /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0 -r ./siteconf20210615-21353-mnrpsb.rb extconf.rb checking for cmake... yes checking for -lxml2... yes checking for -lpangocairo-1.0... yes checking for libxml/tree.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/parser.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpath.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpathInternals.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes -- The C compiler identification is AppleClang 12.0.5.12050022 -- The CXX compiler identification is AppleClang 12.0.5.12050022 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/clang - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/clang++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at CMakeLists.txt:19 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.
Update the VERSION argument
-- Found BISON: /usr/bin/bison (found version "2.3")
-- Found FLEX: /usr/local/opt/flex/bin/flex (found version "2.6.4")
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found PythonInterp: /usr/bin/python (found version "2.7.16")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build
[ 10%] [BISON][MTEX2MMLPARSER] Building parser with bison 2.3
conflicts: 5280 shift/reduce, 613 reduce/reduce
[ 20%] [FLEX][MTEX2MMLSCANNER] Building scanner with flex 2.6.4
[ 30%] Building C object CMakeFiles/libmtex2MML_static.dir/src/colors.c.o
[ 40%] Building C object CMakeFiles/libmtex2MML_static.dir/src/em.c.o
[ 50%] Building C object CMakeFiles/libmtex2MML_static.dir/src/environment.c.o
[ 60%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_dup.c.o
[ 70%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_extras.c.o
[ 80%] Building C object CMakeFiles/libmtex2MML_static.dir/parser.c.o
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:56:30: warning: unused parameter 'ret_str' [-Wunused-parameter]
static void yyerror (char *ret_str, const char s)
^
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:3507:12: warning: cast to smaller integer type 'encaseType' from 'encaseType ' [-Wpointer-to-enum-cast]
encase = (encaseType) encase_pointer;
^~~~~~~
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:68:14: warning: unused function 'mtex2MML_default_write' [-Wunused-function]
static void mtex2MML_default_write (const char buffer, unsigned long length)
^
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:79:14: warning: unused function 'mtex2MML_default_write_mathml' [-Wunused-function]
static void mtex2MML_default_write_mathml (const char * mathml)
^
4 warnings generated.
[ 90%] Building C object CMakeFiles/libmtex2MML_static.dir/lexer.c.o
/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build/lexer.c:8455:16: warning: function 'input' is not needed and will not be emitted [-Wunneeded-internal-declaration]
static int input (void)
^
1 warning generated.
[100%] Linking C static library libmtex2MML.a
[100%] Built target libmtex2MML_static
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:8 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument
-- Found PkgConfig: /opt/local/bin/pkg-config (found version "0.29.1") -- Checking for module 'glib-2.0' -- No package 'glib-2.0' found CMake Error at /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:556 (message): A required package was not found Call Stack (most recent call first): /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:778 (_pkg_check_modules_internal) CMakeLists.txt:41 (pkg_check_modules)
-- Configuring incomplete, errors occurred! See also "/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeOutput.log". See also "/Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeError.log". make: No targets specified and no makefile found. Stop. extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/storycraft/.rvm/rubies/ruby-2.7.2/bin/$(RUBY_BASE_NAME)
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-xml2lib
--without-xml2lib
--with-pangocairo-1.0-dir
--without-pangocairo-1.0-dir
--with-pangocairo-1.0-include
--without-pangocairo-1.0-include=${pangocairo-1.0-dir}/include
--with-pangocairo-1.0-lib
--without-pangocairo-1.0-lib=${pangocairo-1.0-dir}/lib
--with-pangocairo-1.0lib
--without-pangocairo-1.0lib
--use-system-mtex2MML
--use-system-lasem
/Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:491:in realpath': No such file or directory @ rb_check_realpath_internal - /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib (Errno::ENOENT) from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:491:in
copy_entry'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:468:in block in cp_r' from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1589:in
block in fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1603:in fu_each_src_dest0' from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:1587:in
fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0/fileutils.rb:467:in cp_r' from extconf.rb:99:in
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/storycraft/.rvm/gems/ruby-2.7.2/extensions/x86_64-darwin-18/2.7.0/mathematical-1.6.14/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/storycraft/.rvm/gems/ruby-2.7.2/gems/mathematical-1.6.14 for inspection. Results logged to /Users/storycraft/.rvm/gems/ruby-2.7.2/extensions/x86_64-darwin-18/2.7.0/mathematical-1.6.14/gem_make.out
I could reproduce the same issue a couple of time when I was missing gdk-pixbuf
package.
I was using rvm remove|install ryby-2.7
which should provide a clean envionment and then, using brew install|unistall gdk-pixbuf && brew autoremove
to test.
After making sure cairo gdk-pixbuf pango
are installed it works fine to me, in Ruby 2.7.2 & 2.5.2.
Only thing I see is that I am using cmake 3.20.4, and yours is 3.17.2. If you installed with brew run brew upgrade cmake
.
I have cmake 3.20 installed now. I reinstalled ruby-2.7.2 and also tried 2.5.2. I have gdk-pixbuf 2.42.6 and glib version 2.68.3.
Still getting errors (this is ruby-2.5.2 for comparison):
storycraft$ rvm use 2.5.2 Using /Users/storycraft/.rvm/gems/ruby-2.5.2 Elisas-MacBook-Pro:~ storycraft$ gem install asciidoctor-mathematical Fetching mathematical-1.6.14.gem Fetching asciimath-2.0.2.gem Fetching ruby-enum-0.9.0.gem Fetching concurrent-ruby-1.1.9.gem Fetching asciidoctor-mathematical-0.3.5.gem Fetching asciidoctor-2.0.15.gem Fetching i18n-1.8.10.gem Successfully installed concurrent-ruby-1.1.9 Successfully installed i18n-1.8.10 Successfully installed ruby-enum-0.9.0 Building native extensions. This could take a while... ERROR: Error installing asciidoctor-mathematical: ERROR: Failed to build gem native extension.
current directory: /Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical
/Users/storycraft/.rvm/rubies/ruby-2.5.2/bin/ruby -I /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/site_ruby/2.5.0 -r ./siteconf20210615-3816-nhl5a5.rb extconf.rb checking for cmake... yes checking for -lxml2... yes checking for -lpangocairo-1.0... yes checking for libxml/tree.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/parser.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpath.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes checking for libxml/xpathInternals.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... yes -- The C compiler identification is AppleClang 12.0.5.12050022 -- The CXX compiler identification is AppleClang 12.0.5.12050022 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/clang - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/clang++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at CMakeLists.txt:19 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.
Update the VERSION argument
-- Found BISON: /usr/bin/bison (found version "2.3")
-- Found FLEX: /usr/local/opt/flex/bin/flex (found version "2.6.4")
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found PythonInterp: /usr/bin/python (found version "2.7.16")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build
[ 10%] [BISON][MTEX2MMLPARSER] Building parser with bison 2.3
conflicts: 5280 shift/reduce, 613 reduce/reduce
[ 20%] [FLEX][MTEX2MMLSCANNER] Building scanner with flex 2.6.4
[ 30%] Building C object CMakeFiles/libmtex2MML_static.dir/src/colors.c.o
[ 40%] Building C object CMakeFiles/libmtex2MML_static.dir/src/em.c.o
[ 50%] Building C object CMakeFiles/libmtex2MML_static.dir/src/environment.c.o
[ 60%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_dup.c.o
[ 70%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_extras.c.o
[ 80%] Building C object CMakeFiles/libmtex2MML_static.dir/parser.c.o
/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:56:30: warning: unused parameter 'ret_str' [-Wunused-parameter]
static void yyerror (char *ret_str, const char s)
^
/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:3507:12: warning: cast to smaller integer type 'encaseType' from 'encaseType ' [-Wpointer-to-enum-cast]
encase = (encaseType) encase_pointer;
^~~~~~~
/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:68:14: warning: unused function 'mtex2MML_default_write' [-Wunused-function]
static void mtex2MML_default_write (const char buffer, unsigned long length)
^
/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/src/parser.y:79:14: warning: unused function 'mtex2MML_default_write_mathml' [-Wunused-function]
static void mtex2MML_default_write_mathml (const char * mathml)
^
4 warnings generated.
[ 90%] Building C object CMakeFiles/libmtex2MML_static.dir/lexer.c.o
/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/mtex2MML/build/lexer.c:8455:16: warning: function 'input' is not needed and will not be emitted [-Wunneeded-internal-declaration]
static int input (void)
^
1 warning generated.
[100%] Linking C static library libmtex2MML.a
[100%] Built target libmtex2MML_static
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:8 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument
-- Found PkgConfig: /opt/local/bin/pkg-config (found version "0.29.1") -- Checking for module 'glib-2.0' -- No package 'glib-2.0' found CMake Error at /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:556 (message): A required package was not found Call Stack (most recent call first): /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:778 (_pkg_check_modules_internal) CMakeLists.txt:41 (pkg_check_modules)
-- Configuring incomplete, errors occurred! See also "/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeOutput.log". See also "/Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/CMakeFiles/CMakeError.log". make: No targets specified and no makefile found. Stop. extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/storycraft/.rvm/rubies/ruby-2.5.2/bin/$(RUBY_BASE_NAME)
--with-xml2lib
--without-xml2lib
--with-pangocairo-1.0lib
--without-pangocairo-1.0lib
--use-system-mtex2MML
--use-system-lasem
/Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1227:in stat': No such file or directory @ rb_file_s_stat - /Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib (Errno::ENOENT) from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1227:in
lstat'
from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1256:in copy' from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:418:in
block in copy_entry'
from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1390:in wrap_traverse' from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:415:in
copy_entry'
from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:393:in block in cp_r' from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1463:in
block in fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1477:in fu_each_src_dest0' from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1461:in
fu_each_src_dest'
from /Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:392:in cp_r' from extconf.rb:99:in
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/storycraft/.rvm/gems/ruby-2.5.2/extensions/x86_64-darwin-20/2.5.0/mathematical-1.6.14/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/storycraft/.rvm/gems/ruby-2.5.2/gems/mathematical-1.6.14 for inspection. Results logged to /Users/storycraft/.rvm/gems/ruby-2.5.2/extensions/x86_64-darwin-20/2.5.0/mathematical-1.6.14/gem_make.out
Here is the contents of mkmf.log for ruby-2.7.2:
find_executable: checking for cmake... -------------------- yes
have_library: checking for -lxml2... -------------------- yes
"clang -o conftest -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -L. -L/Users/storycraft/.rvm/rubies/ruby-2.7.2/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -L. -L/usr/local/opt/icu4c/lib -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -lruby.2.7 " checked program was: / begin / 1: #include "ruby.h" 2: 3: int main(int argc, char *argv) 4: { 5: return !!argv[argc]; 6: } / end */
"clang -o conftest -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -L. -L/Users/storycraft/.rvm/rubies/ruby-2.7.2/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -L. -L/usr/local/opt/icu4c/lib -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -lruby.2.7 -lxml2 " checked program was: / begin / 1: #include "ruby.h" 2: 3: /top/ 4: extern int t(void); 5: int main(int argc, char *argv) 6: { 7: if (argc > 1000000) { 8: int ( volatile tp)(void)=(int ()(void))&t; 9: printf("%d", (tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: 15: int t(void) { ; return 0; } / end /
have_library: checking for -lpangocairo-1.0... -------------------- yes
"clang -o conftest -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -L. -L/Users/storycraft/.rvm/rubies/ruby-2.7.2/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -L. -L/usr/local/opt/icu4c/lib -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib -lxml2 -lruby.2.7 -lpangocairo-1.0 -lxml2 " checked program was: / begin / 1: #include "ruby.h" 2: 3: /top/ 4: extern int t(void); 5: int main(int argc, char *argv) 6: { 7: if (argc > 1000000) { 8: int ( volatile tp)(void)=(int ()(void))&t; 9: printf("%d", (tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: 15: int t(void) { ; return 0; } / end /
find_header: checking for libxml/tree.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... -------------------- yes
"clang -E -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -o conftest.i" checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <libxml/tree.h> / end /
find_header: checking for libxml/parser.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... -------------------- yes
"clang -E -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -o conftest.i" checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <libxml/parser.h> / end /
find_header: checking for libxml/xpath.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... -------------------- yes
"clang -E -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -o conftest.i" checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <libxml/xpath.h> / end /
find_header: checking for libxml/xpathInternals.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2... -------------------- yes
"clang -E -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/x86_64-darwin20 -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0/ruby/backward -I/Users/storycraft/.rvm/rubies/ruby-2.7.2/include/ruby-2.7.0 -I. -I/usr/local/opt/icu4c/include -I/usr/local/opt/libyaml/include -I/usr/local/opt/libksba/include -I/usr/local/opt/readline/include -I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -fno-common -pipe conftest.c -o conftest.i" checked program was: / begin / 1: #include "ruby.h" 2: 3: #include <libxml/xpathInternals.h> / end /
I am out of ideas, maybe some PATH issue.
This is interesting. I'd forgotten to try brew autoremove
and so I just tried it. Take a look, this probably has a clue, but I'm not a programmer and so don't know what that clue might be. I'll try re-installing some rereqs again:
storycraft$ brew autoremove ==> Uninstalling 6 unneeded formulae: gmp isl libmpc makedepend mpfr zstd Uninstalling /usr/local/Cellar/zstd/1.5.0... (31 files, 3.4MB) Uninstalling /usr/local/Cellar/isl/0.24... (73 files, 7MB) Uninstalling /usr/local/Cellar/makedepend/1.0.6... (8 files, 80.6KB) Uninstalling /usr/local/Cellar/libmpc/1.2.1... (13 files, 382.3KB) Uninstalling /usr/local/Cellar/mpfr/4.1.0... (29 files, 5.1MB) Uninstalling /usr/local/Cellar/gmp/6.2.1... (21 files, 3.2MB) Elisas-MacBook-Pro:~ storycraft$ gem install asciidoctor-mathematical dyld: Library not loaded: /usr/local/opt/gmp/lib/libgmp.10.dylib Referenced from: /Users/storycraft/.rvm/rubies/ruby-2.7.2/bin/ruby Reason: image not found
I tried fiddling with PATH variables. I am still getting the same error messages when I try to install asciidoctor-mathematical. As a tech writer I have seen other times when undocumented prerequisites have caused problems. There must be some difference between the dev tools on the CI and the command line tools that Apple provides for OSX, and I suspect that some developers install or configure whatever it is so routinely that it's hard to capture.
I know that you are out of ideas. I also have looked through various discussions on StackOverflow. I'm hoping that someone else will look at this and have a solution. We seem so close!
I found a useful command and perhaps with the location of the glib-2.0 from brew ls --verbose
it might be possible to point properly to it, or place files in a location where asciidoctor-mathematical can find them. I suspect that some C developers use something other than brew to install clib.
Here is an example of output (there are many more files, this is just to show the pattern):
/usr/local/Cellar/glib/2.68.3/include/glib-2.0/glib-object.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gparam.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gparamspecs.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gsignal.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/genums.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gclosure.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gvaluearray.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gbinding.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gtypeplugin.h /usr/local/Cellar/glib/2.68.3/include/glib-2.0/gobject/gobjectnotifyqueue.c ...
While is true the output shows No package 'glib-2.0' found
I am not sure the problem is glib, I did some extra testing installing packages 1 by 1 (including indirect dependencies) to end up in the same File.realpath
or File.stat
errors. I could reproduce your case, in my machine, the issue was missing gdk-pixbuf
.
/Users/storycraft/.rvm/rubies/ruby-2.5.2/lib/ruby/2.5.0/fileutils.rb:1227:in stat': No such file or directory
It seems there's some extra build step run from a Ruby script that misses a file, so I reproduced it with this spets.
brew uninstall gdk-pixbuf
and brew autoremove
~ >>> brew uninstall gdk-pixbuf
Uninstalling /usr/local/Cellar/gdk-pixbuf/2.42.6... (147 files, 3.7MB)
~ >>> brew install gdk-pixbuf
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 4 taps (pivotal-cf/om, homebrew/cask-versions, homebrew/core and homebrew/cask).
==> New Formulae
rpg-cli
==> Updated Formulae
Updated 49 formulae.
==> Updated Casks
Updated 28 casks.
==> Downloading https://ghcr.io/v2/homebrew/core/gdk-pixbuf/manifests/2.42.6 Already downloaded: /Users/romeroab/Library/Caches/Homebrew/downloads/16a3551ac2a755ba07dc02954bf51bab7db8b7c1873955897e534c23bffcb4bb--gdk-pixbuf-2.42.6.bottle_manifest.json ==> Downloading https://ghcr.io/v2/homebrew/core/gdk-pixbuf/blobs/sha256:f4cf795b20c84fb5074ceeeeaf7b1d22e164b7af13adb6d0b95e3655d867fd41 Already downloaded: /Users/romeroab/Library/Caches/Homebrew/downloads/35a29b6880a48f85b1c764d8791c4d06d3d6a0cddb9cb4225d7ae6d4ccc6bf45--gdk-pixbuf--2.42.6.big_sur.bottle.tar.gz ==> Pouring gdk-pixbuf--2.42.6.big_sur.bottle.tar.gz ==> /usr/local/Cellar/gdk-pixbuf/2.42.6/bin/gdk-pixbuf-query-loaders --update-cache 🍺 /usr/local/Cellar/gdk-pixbuf/2.42.6: 147 files, 3.7MB ~ >>> brew uninstall gdk-pixbuf Uninstalling /usr/local/Cellar/gdk-pixbuf/2.42.6... (147 files, 3.7MB) ~ >>> brew autoremove ==> Uninstalling 2 unneeded formulae: jpeg libtiff Uninstalling /usr/local/Cellar/libtiff/4.3.0... (249 files, 4.4MB) Uninstalling /usr/local/Cellar/jpeg/9d... (21 files, 954.0KB)
2. Installed brew indirect missing dependencies for `gdk-pixbuf` dependencies: `jpeg` `libtiff`. Already had cairo and pango. To be sure you can run `brew install gdk-pixbuf && brew uninstall gdk-pixbuf`, this will install the package and dependencies and then remove only the package leaving dependencies.
3. Clear Ruby 2.5 installation with `rvm remove 2.5` and `rvm install 2.5`
4. Modified `$HOME/.rvm/rubies/ruby-2.5.8/lib/ruby/2.5.0/fileutils.rb:1247` and added this from the line 1225. I know it's exagerated, but just to be sure to spot it. The first 2 lines (def ...) should be already there.
```ruby
def lstat
if dereference?
puts "=========================="
puts "=========================="
puts "=========================="
puts path()
puts path()
puts path()
gem install asciidoctor-mathematica
and then check the output. In my case, I say my trace several times, the latest
==========================
==========================
==========================
/Users/---/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib
/Users/---/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib
/Users/---/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib
With that, at least in my case, the issue (I assume, take with caution 😅 ) is that the build requires "lib lasem" which is not available as binary and thus it compiles it. The compilation does not complete successfully because gdk-pixbuf
is missing, but the process does not stop, it does continue and fails in the next step which is the Ruby part with expects to find liblasem.dylib
in that specific path.
Could you try the same approach and see if you confirm if the error comes from missin liblasem.dylib?
Finally cleared some time to get back to this, and, yes, I got the same error:
==========================
==========================
==========================
/Users/storycraft/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build /liblasem.dylib
/Users/storycraft/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib
/Users/storycraft/.rvm/gems/ruby-2.5.8/gems/mathematical-1.6.14/ext/mathematical/lasem/build/liblasem.dylib
I reinstalled gdk-pixbuf and still get that same error.
It would seem that liblasem then needs to be added at the expected location. I am unfamiliar with how to install it.
I hunted a bit for related information and found this: "The problem appears to have started with an include directory reorg in some version of MacOS 10.14.x and/or Xcode 10. There is a discussion in the Xcode 10 release notes. It's a weird problem because it only seems to affect users who installed Xcode and Mojave, including their upgrades, in a particular sequence." on https://ask.csdn.net/questions/4501830
Can't say I fully understand the issues described in the link, but at this point, the only thing I can offer is life support. If you want, reach me by DM in twitter and we can discuss a hangout/zoom, whatever is more confortable for you.
Thanks for the offer, I can see you on Twitter but it appears that you have turned off "direct messages from anyone." I am @elisawyer on Twitter and have seldom used Twitter at all. :-)
For the record, we could fix the issues and validate the CI process to install the gem on macOS in Elisa's machine doing some cleanup 🥳 Can't really confirm, but apparently after several OS updates some files had permissions messed up and we just needed to manually "sudo delete" some old ruby installations and reinstall with rvm.
Hearfelt thanks for the help!
please find below the steps I followed:
I installed the dependencies first, and then gem install, it failed, I tried
brew link gettext --force
, still same error.Please find below the error message for gem install.