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

An error occurred while installing puma (4.3.5), and Bundler cannot continue. Make sure that gem install puma -v '4.3.5' --source 'https://rubygems.org/' succeeds before bundling. #2342

Closed
chinomnsoawazie opened this issue Aug 19, 2020 · 6 comments

Comments

@chinomnsoawazie
Copy link

chinomnsoawazie commented Aug 19, 2020

Describe the bug
bundle install fails at Puma when it tries installing with 4.3.5.

Works: gem install puma -v '4.2.1'
Works: bundle config build.puma --with-cflags="-Wno-error=implicit-function-declaration"

Fails: gem install puma -v '4.3.5' or gem install puma' or bundle install

Error
I tried doing this in the three ways shown below without success

gem install puma
gem install puma -v '4.3.5'
gem install puma -v '4.3.0' -- --with-ldflags=-L/usr/local/opt/openssl@1.1/lib --with-cppflags=-I/usr/local/opt/openssl@1.1/include

`myname@myname-MacBook-Pro dogstagram_backend % gem install puma -v '4.3.5'
Building native extensions. This could take a while...
ERROR: Error installing puma:
ERROR: Failed to build gem native extension.

current directory: /Users/myname/.rvm/gems/ruby-2.7.0/gems/puma-4.3.5/ext/puma_http11

/Users/myname/.rvm/rubies/ruby-2.7.0/bin/ruby -I /Users/myname/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0 -r ./siteconf20200818-2698-1vppb86.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
checking for DTLS_method() in openssl/ssl.h... yes
checking for TLS_server_method() in openssl/ssl.h... yes
checking for SSL_CTX_set_min_proto_version in openssl/ssl.h... yes
creating Makefile

current directory: /Users/myname/.rvm/gems/ruby-2.7.0/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR=" clean

current directory: /Users/myname/.rvm/gems/ruby-2.7.0/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR="
compiling http11_parser.c
ext/puma_http11/http11_parser.c:44:18: warning: unused variable 'puma_parser_en_main' [-Wunused-const-variable]
static const int puma_parser_en_main = 1;
^
1 warning generated.
compiling io_buffer.c
compiling mini_ssl.c
mini_ssl.c:145:7: warning: unused variable 'min' [-Wunused-variable]
int min, ssl_options;
^
mini_ssl.c:299:40: warning: function 'raise_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
void raise_error(SSL* ssl, int result) {
^
2 warnings generated.
compiling puma_http11.c
puma_http11.c:203:22: error: implicitly declaring library function 'isspace' with type 'int (int)' [-Werror,-Wimplicit-function-declaration]
while (vlen > 0 && isspace(value[vlen - 1])) vlen--;
^
puma_http11.c:203:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isspace'
1 error generated.
make: *** [puma_http11.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/myname/.rvm/gems/ruby-2.7.0/gems/puma-4.3.5 for inspection.
Results logged to /Users/myname/.rvm/gems/ruby-2.7.0/extensions/x86_64-darwin-19/2.7.0/puma-4.3.5/gem_make.out`

Expected behavior
bundle install, gem install puma -v '4.3.5' or gem install puma should install puma

Desktop (please complete the following information):

  • OS: macOS Catalina version 10.15.6
  • Puma Version 4.3.5
@k0kubun
Copy link

k0kubun commented Aug 19, 2020

I reproduced the same issue. It seems that puma v4.2.1 doesn't have the issue but v4.3.0+ does. And indeed the isspace was added in v4.2.1...v4.3.0.

Though I think it's been fixed in befe00a.

@dentarg
Copy link
Member

dentarg commented Aug 20, 2020

Yeah, this has been reported previously in #2304

There is an pull request, #2314, to fix this for the 4.x series

@justindonnaruma
Copy link

A simple workaround is here.

$ bundle config build.puma --with-cflags="-Wno-error=implicit-function-declaration"

Pulled out from the PR mentioned above.

@nateberkopec
Copy link
Member

Thanks for the report, duplicate of #2304

@aljorhythm
Copy link

A simple workaround is here.

$ bundle config build.puma --with-cflags="-Wno-error=implicit-function-declaration"

Pulled out from the PR mentioned above.

The whole line here without config
gem install puma -v '4.3.0' -- --with-ldflags=-L/usr/local/opt/openssl@1.1/lib --with-cppflags=-I/usr/local/opt/openssl@1.1/include --with-cflags="-Wno-error=implicit-function-declaration"

@nateberkopec
Copy link
Member

This was fixed in 4.3.6.

@puma puma locked as resolved and limited conversation to collaborators Oct 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants