Installing liquid-c using Bundler fails and causes an error on Ubuntu 21.10 with Ruby 3.1.3. On the same system with Ruby 3.1.2, installing liquid-c using Bundler was completed successfully.
The error is shown below:
user@ubuntu21:~/myblog$ ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
user@ubuntu21:~/myblog$ bundle add liquid-c
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Fetching gem metadata from https://rubygems. org/...........
Resolving dependencies...
Using bundler 2.4.2
Using public_suffix 5.0.1
Using colorator 1.1.0
Using eventmachine 1.2.7
Using http_parser.rb 0.8.0
Using ffi 1.15.5
Using forwardable-extended 2.6.0
Using google-protobuf 3.21.12 (x86_64-linux)
Using rb-fsevent 0. 11.2
Using rexml 3.2.5
Using liquid 4.0.3
Using mercenary 0.4.0
Using rouge 4.0.1
Using safe_yaml 1.0.5
Using unicode-display_width 2.3.0
Using webrick 1.7.0
Using concurrent- ruby 1.1.10
Using addressable 2.8.1
Using em-websocket 0.5.3
Using sass-embedded 1.57.1 (x86_64-linux-gnu)
Using rb-inotify 0.10.1
Using kramdown 2.4.0
Using pathutil 0.16.2
Fetching liquid-c 4.0.0
Using terminal -table 3.0.2
Using 118n 1.12.0
Using jekyll-sass-converter 3.0.0
Using listen 3.7.1
Using kramdown-parser-gfm 1.1.0
Using jekyll-watch 2.2.1
Using jekyll 4.3.1
Using jekyll-feed 0.17.0
Using jekyll-seo-tag 2.8.0
Using minima 2.5.1
Installing liquid-c 4.0.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/user/gems/gems/liquid-c-4.0.0/ext/liquid_c
/home/user/.rbenv/versions/3.1.3/bin/ruby -I /home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0 extconf.rb
creating Makefile
current directory: /home/user/gems/gems/liquid-c-4.0.0/ext/liquid_c
make DESTDIR\= sitearchdir\=./.gem.20230102-2556-yd5wkw sitelibdir\=./.gem.20230102-2556-yd5wkw clean
current directory: /home/user/gems/gems/liquid-c-4.0.0/ext/liquid_c
make DESTDIR\= sitearchdir\=./.gem.20230102-2556-yd5wkw sitelibdir\=./.gem.20230102-2556-yd5wkw
compiling block.c
block.c: In function ‘init_liquid_block’:
block.c:126:6: error: old-style function definition [-Werror=old-style-definition]
126 | void init_liquid_block()
| ^~~~~~~~~~~~~~~~~
At top level:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make: *** [Makefile:247: block.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/user/gems/gems/liquid-c-4.0.0 for inspection.
Results logged to /home/user/gems/extensions/x86_64-linux/3.1.0/liquid-c-4.0.0/gem_make.out
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:102:in `run'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:51:in `block in make'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `each'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `make'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:42:in `build'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in build_extensions'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `each'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions'
/home/user/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/rubygems_gem_installer.rb:72:in `build_extensions'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/rubygems_gem_installer.rb:28:in `install'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/source/rubygems.rb:200:in `install'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/installer/gem_installer.rb:54:in `install'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/installer/parallel_installer.rb:155:in `do_install'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/installer/parallel_installer.rb:146:in `block in worker_pool'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/worker.rb:62:in `apply_func'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/worker.rb:57:in `block in process_queue'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/worker.rb:54:in `loop'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/worker.rb:54:in `process_queue'
/home/user/gems/gems/bundler-2.4.2/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'
An error occurred while installing liquid -c (4.0.0), and Bundler cannot continue.
In Gemfile:
liquid-c
Steps to Reproduce
Have a system running Ubuntu.
Install ruby 3.1.3.
# If you have rbenv, you can run the following to install ruby 3.1.3:
rbenv install 3.1.3
rbenv global 3.1.3
Install Jekyll and Bundler.
gem install jekyll bundler
Create a new Jekyll site.
jekyll new mysite
Change the working directory to your new site.
cd mysite
Install liquid-c using Bundler.
bundle add liquid-c
Issue
Installing liquid-c using Bundler fails and causes an error on Ubuntu 21.10 with Ruby 3.1.3. On the same system with Ruby 3.1.2, installing liquid-c using Bundler was completed successfully.
The error is shown below:
Steps to Reproduce
gem install jekyll bundler
jekyll new mysite
cd mysite
bundle add liquid-c
Environment
Ubuntu 21.10 Ruby 3.1.3 Bundler 2.4.2 Jekyll 4.3.1