Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When running bin/setup on Mint 21.2 I get a load error re: charlock_holmes #854

Closed
afittro opened this issue Aug 14, 2023 · 9 comments
Closed

Comments

@afittro
Copy link

afittro commented Aug 14, 2023

Similar to #103. When I run bin/setup on my machine I get the following error:

LoadError: libicudata.so.73: cannot open shared object file: No such file or directory - /home/<me>/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/charlock_holmes-0.7.7/lib/charlock_holmes/charlock_holmes.so

Here is my system info from inxi:
System: Kernel: 5.15.0-76-generic x86_64 bits: 64 compiler: gcc v: 11.3.0 Desktop: Cinnamon 5.8.4 Distro: Linux Mint 21.2 Victoria base: Ubuntu 22.04 jammy

I have icu4c installed via brew: icu4c: stable 73.2

I have libicu-dev installed via apt.

What else could I try, since upgrading to the latest Ubuntu isn't really an option if I wish to stay on Mint?

@jagthedrummer
Copy link
Contributor

@afittro You might try this suggestion from a similar issues on the charlock_holmes repo: brianmario/charlock_holmes#156 (comment)

bundle pristine charlock_holmes

@afittro
Copy link
Author

afittro commented Aug 14, 2023

oh, good idea. I actually never thought of using pristine within bundler.

But alas, after doing that the error remains. Thank you for the suggestion and for helping me grow :)

So is it accurate to say this is a problem within charlock_holmes and not bullet_train? If so, should we close this issue with a note to refer to the relevant open issue on that charlock_holmes repo?

@jagthedrummer
Copy link
Contributor

@afittro I just noticed that you mentioned that you have icu4c isntalled via brew and libicu-dev installed via apt. I don't know that this is the case, but it could be that those two different installation methods end up putting things in two different spots and that something somewhere (maybe the charlock_holmes build process?) expects them all to be in the same spot. You might try installing both via one method or the other and then bundle pristine.

@jagthedrummer
Copy link
Contributor

@afittro, did you ever this this straightened out?

@afittro
Copy link
Author

afittro commented Aug 23, 2023

No. I had the problem initially without the apt-installed libicu-dev. I just had the brew install of icu4c. I only added the apt install as an attempt to resolve the issue.

@shaunakv1
Copy link

shaunakv1 commented Jul 5, 2024

having the same issue on mac m1 (Sonoma) and ruby 3.2.4

@jagthedrummer
Copy link
Contributor

@shaunakv1 You might try doing this:

BUNDLE_BUILD__CHARLOCK_HOLMES="--with-cxxflags=-std=c++17" bundle install

It was suggested in a thread on the charlock_holmes repo:

brianmario/charlock_holmes#172 (comment)

@mccollek
Copy link

mccollek commented Sep 6, 2024

This is still failing for me:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /usr/share/rvm/gems/ruby-3.3.4/gems/charlock_holmes-0.7.9/ext/charlock_holmes
/usr/share/rvm/rubies/ruby-3.3.4/bin/ruby extconf.rb --with-cxxflags\=-std\=c++17
checking for pkg-config for icu-i18n... [" ", "", "-licui18n -licuuc -licudata"]
checking for pkg-config for icu-io... [" ", "", "-licuio -licui18n -licuuc -licudata"]
checking for pkg-config for icu-uc... [" ", "", "-licuuc -licudata"]
checking for -licui18n... yes
checking for unicode/ucnv.h... yes
checking for -lz... yes
checking for -licuuc... yes
checking for -licudata... yes
checking for icu that requires explicit C++ version flag... yes
checking for icu that compiles with c++20 standard... no
checking for icu that compiles with c++17 standard... no
checking for icu that compiles with c++11 standard... no
checking for icu that compiles with c++0x standard... no
Cannot compile icu with your compiler: recent versions require C++17 support.
*** 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
	--without-opt-dir
	--with-opt-include=${opt-dir}/include
	--without-opt-include
	--with-opt-lib=${opt-dir}/lib
	--without-opt-lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/share/rvm/rubies/ruby-3.3.4/bin/$(RUBY_BASE_NAME)
	--with-icu-dir
	--without-icu-dir
	--with-icu-include=${icu-dir}/include
	--without-icu-include
	--with-icu-lib=${icu-dir}/lib
	--without-icu-lib
	--with-icu-i18n-dir
	--without-icu-i18n-dir
	--with-icu-i18n-include=${icu-i18n-dir}/include
	--without-icu-i18n-include
	--with-icu-i18n-lib=${icu-i18n-dir}/lib
	--without-icu-i18n-lib
	--with-icu-i18n-config
	--without-icu-i18n-config
	--with-pkg-config
	--without-pkg-config
	--with-icu-io-dir
	--without-icu-io-dir
	--with-icu-io-include=${icu-io-dir}/include
	--without-icu-io-include
	--with-icu-io-lib=${icu-io-dir}/lib
	--without-icu-io-lib
	--with-icu-io-config
	--without-icu-io-config
	--with-icu-uc-dir
	--without-icu-uc-dir
	--with-icu-uc-include=${icu-uc-dir}/include
	--without-icu-uc-include
	--with-icu-uc-lib=${icu-uc-dir}/lib
	--without-icu-uc-lib
	--with-icu-uc-config
	--without-icu-uc-config
	--with-icui18n-dir
	--without-icui18n-dir
	--with-icui18n-include=${icui18n-dir}/include
	--without-icui18n-include
	--with-icui18n-lib=${icui18n-dir}/lib
	--without-icui18n-lib
	--with-icui18nlib
	--without-icui18nlib
	--with-unicode-dir
	--without-unicode-dir
	--with-unicode-include=${unicode-dir}/include
	--without-unicode-include
	--with-unicode-lib=${unicode-dir}/lib
	--without-unicode-lib
	--with-z-dir
	--without-z-dir
	--with-z-include=${z-dir}/include
	--without-z-include
	--with-z-lib=${z-dir}/lib
	--without-z-lib
	--with-zlib
	--without-zlib
	--with-icuuc-dir
	--without-icuuc-dir
	--with-icuuc-include=${icuuc-dir}/include
	--without-icuuc-include
	--with-icuuc-lib=${icuuc-dir}/lib
	--without-icuuc-lib
	--with-icuuclib
	--without-icuuclib
	--with-icudata-dir
	--without-icudata-dir
	--with-icudata-include=${icudata-dir}/include
	--without-icudata-include
	--with-icudata-lib=${icudata-dir}/lib
	--without-icudata-lib
	--with-icudatalib
	--without-icudatalib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /usr/share/rvm/gems/ruby-3.3.4/extensions/x86_64-linux/3.3.0/charlock_holmes-0.7.9/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /usr/share/rvm/gems/ruby-3.3.4/gems/charlock_holmes-0.7.9 for inspection.
Results logged to /usr/share/rvm/gems/ruby-3.3.4/extensions/x86_64-linux/3.3.0/charlock_holmes-0.7.9/gem_make.out

  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/builder.rb:125:in `run'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/ext_conf_builder.rb:28:in `build'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/builder.rb:193:in `build_extension'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/builder.rb:227:in `block in build_extensions'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/builder.rb:224:in `each'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/ext/builder.rb:224:in `build_extensions'
  /usr/share/rvm/rubies/ruby-3.3.4/lib/ruby/3.3.0/rubygems/installer.rb:852:in `build_extensions'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/rubygems_gem_installer.rb:72:in `build_extensions'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/rubygems_gem_installer.rb:28:in `install'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/source/rubygems.rb:200:in `install'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/installer/gem_installer.rb:54:in `install'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/installer/parallel_installer.rb:156:in `do_install'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/installer/parallel_installer.rb:147:in `block in worker_pool'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/worker.rb:62:in `apply_func'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/worker.rb:57:in `block in process_queue'
  <internal:kernel>:187:in `loop'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/worker.rb:54:in `process_queue'
  /usr/share/rvm/gems/ruby-3.3.4/gems/bundler-2.4.10/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'

An error occurred while installing charlock_holmes (0.7.9), and Bundler cannot continue.

In Gemfile:
  bullet_train-incoming_webhooks was resolved to 1.7.21, which depends on
    bullet_train-api was resolved to 1.7.21, which depends on
      bullet_train was resolved to 1.7.21, which depends on
        extended_email_reply_parser was resolved to 0.5.1, which depends on
          charlock_holmes

@jagthedrummer
Copy link
Contributor

I think this is ultimately an issue with charlock_holmes and I don't think there's really anything we can do about it. I'm going to close this issue.

If someone can come up with some consistent reproduction steps please post them here and feel free to reopen this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants