rubyrubygemsbundlergumbo

nokogumbo install fail on Gentoo by bundle and gems


ruby version: ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-linux]

I can install nokogumbo with portage, but cannot install it with gem or bundle.

I try to read the ebuild file to config bundle, but I have no idea how to configure.

I also try to add --with-ldflags=-Wl,--no-undefined, it fails as well.

$ gem install nokogumbo
Building native extensions. This could take a while...
ERROR:  Error installing nokogumbo:
        ERROR: Failed to build gem native extension.

    current directory: /home/git/.gem/ruby/2.4.0/gems/nokogumbo-1.5.0/ext/nokogumboc
/usr/bin/ruby24 -r ./siteconf20180628-12916-1nvqzxo.rb extconf.rb
checking for xmlNewDoc() in -lxml2... yes
checking for nokogiri.h in /usr/lib64/ruby/gems/2.4.0/gems/nokogiri-1.8.1/ext/nokogiri... yes
checking for nokogiri.h in /usr/lib64/ruby/gems/2.4.0/gems/nokogiri-1.8.1/ext/nokogiri... yes
checking for gumbo_parse() in -lgumbo... yes
checking for GumboErrorType with error.h... not found
checking for GumboInsertionMode with insertion_mode.h... not found
checking for GumboParser with parser.h... not found
checking for GumboStringBuffer with string_buffer.h... not found
checking for GumboTokenType with token_type.h... not found
creating Makefile

current directory: /home/git/.gem/ruby/2.4.0/gems/nokogumbo-1.5.0/ext/nokogumboc
make "DESTDIR=" clean

current directory: /home/git/.gem/ruby/2.4.0/gems/nokogumbo-1.5.0/ext/nokogumboc
make "DESTDIR="
compiling nokogumbo.c
nokogumbo.c:24:10: fatal error: parser.h: No such file or directory
 #include "parser.h"
          ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:242: nokogumbo.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/git/.gem/ruby/2.4.0/gems/nokogumbo-1.5.0 for inspection.
Results logged to /home/git/.gem/ruby/2.4.0/extensions/x86_64-linux/2.4.0/nokogumbo-1.5.0/gem_make.out

Solution

  • I try to run gem install nokogumbo -- --with-ldflags='-L. -Wl,-O1 -Wl,--as-needed -fstack-protector -rdynamic -Wl,-export-dynamic', which references from ebuild file, and then success! Now, I use it for bundle.