bigcartel / dugway

Easily build and test Big Cartel themes.
https://developers.bigcartel.com/api/themes
MIT License
149 stars 22 forks source link

Unable to install Dugway on my Mac via terminal. #193

Closed Charlieeec closed 3 days ago

Charlieeec commented 2 years ago

I tried to install Dugway via the Terminal for my Mac using the instructions from Git. Keying in the command seems to not have installed Dugway but instead an error listed below appears:

`_current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal /usr/local/opt/ruby/bin/ruby -I /usr/local/Cellar/ruby/3.1.1/lib/ruby/3.1.0 -r ./siteconf20220331-1516-u5havp.rb extconf.rb checking RUBY_BIGDECIMAL_VERSION... 1.4.4 checking for labs() in stdlib.h... yes checking for llabs() in stdlib.h... yes checking for finite() in math.h... yes checking for isfinite() in math.h... no checking for struct RRational in ruby.h... no checking for rb_rational_num() in ruby.h... yes checking for rb_rational_den() in ruby.h... yes checking for rb_array_const_ptr() in ruby.h... yes checking for rb_sym2str() in ruby.h... yes creating Makefile

current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal make DESTDIR\= clean

current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal make DESTDIR\= compiling bigdecimal.c bigdecimal.c:348:28: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] INT2NUM(p->MaxPrec*VpBaseFig()));


bigdecimal.c:347:39: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
    obj = rb_assoc_new(INT2NUM(p->Prec*VpBaseFig()),
                       ~~~~~~~ ~~~~~~~^~~~~~~~~~~~
bigdecimal.c:421:5: error: implicit declaration of function 'rb_check_safe_obj' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    rb_check_safe_obj(str);
    ^
bigdecimal.c:421:5: note: did you mean 'rb_check_safe_str'?
/usr/local/Cellar/ruby/3.1.1/include/ruby-3.1.0/ruby/internal/core/rstring.h:383:6: note: 'rb_check_safe_str' declared here
void rb_check_safe_str(VALUE);
     ^
bigdecimal.c:2030:6: error: implicit declaration of function 'rb_check_safe_obj' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            rb_check_safe_obj(f);
            ^
bigdecimal.c:2135:30: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    rb_ary_push(obj, INT2NUM(e));
                     ~~~~~~~ ^
bigdecimal.c:2148:20: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    return INT2NUM(e);
           ~~~~~~~ ^
bigdecimal.c:2766:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    VALUE  nCur = INT2NUM(VpGetPrecLimit());
                  ~~~~~~~ ^~~~~~~~~~~~~~~~
5 warnings and 2 errors generated.
make: *** [bigdecimal.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/3.1.0/extensions/x86_64-darwin-20/3.1.0/bigdecimal-1.4.4/gem_make.out
charlie@Charlies-MacBook-Pro ~ % dugway create mytheme
zsh: command not found: dugway
charlie@Charlies-MacBook-Pro ~ % clear             

charlie@Charlies-MacBook-Pro ~ % gem install dugway
Building native extensions. This could take a while...
ERROR:  Error installing dugway:
    ERROR: Failed to build gem native extension.

    current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal
/usr/local/opt/ruby/bin/ruby -I /usr/local/Cellar/ruby/3.1.1/lib/ruby/3.1.0 -r ./siteconf20220331-1581-zu3b2d.rb extconf.rb
checking RUBY_BIGDECIMAL_VERSION... 1.4.4
checking for labs() in stdlib.h... yes
checking for llabs() in stdlib.h... yes
checking for finite() in math.h... yes
checking for isfinite() in math.h... no
checking for struct RRational in ruby.h... no
checking for rb_rational_num() in ruby.h... yes
checking for rb_rational_den() in ruby.h... yes
checking for rb_array_const_ptr() in ruby.h... yes
checking for rb_sym2str() in ruby.h... yes
creating Makefile

current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal
make DESTDIR\= clean

current directory: /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4/ext/bigdecimal
make DESTDIR\=
compiling bigdecimal.c
bigdecimal.c:348:28: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                       INT2NUM(p->MaxPrec*VpBaseFig()));
                       ~~~~~~~ ~~~~~~~~~~^~~~~~~~~~~~
bigdecimal.c:347:39: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
    obj = rb_assoc_new(INT2NUM(p->Prec*VpBaseFig()),
                       ~~~~~~~ ~~~~~~~^~~~~~~~~~~~
bigdecimal.c:421:5: error: implicit declaration of function 'rb_check_safe_obj' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    rb_check_safe_obj(str);
    ^
bigdecimal.c:421:5: note: did you mean 'rb_check_safe_str'?
/usr/local/Cellar/ruby/3.1.1/include/ruby-3.1.0/ruby/internal/core/rstring.h:383:6: note: 'rb_check_safe_str' declared here
void rb_check_safe_str(VALUE);
     ^
bigdecimal.c:2030:6: error: implicit declaration of function 'rb_check_safe_obj' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            rb_check_safe_obj(f);
            ^
bigdecimal.c:2135:30: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    rb_ary_push(obj, INT2NUM(e));
                     ~~~~~~~ ^
bigdecimal.c:2148:20: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    return INT2NUM(e);
           ~~~~~~~ ^
bigdecimal.c:2766:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    VALUE  nCur = INT2NUM(VpGetPrecLimit());
                  ~~~~~~~ ^~~~~~~~~~~~~~~~
5 warnings and 2 errors generated.
make: *** [bigdecimal.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/3.1.0/gems/bigdecimal-1.4.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/3.1.0/extensions/x86_64-darwin-20/3.1.0/bigdecimal-1.4.4/gem_make.out`_

any kind souls could lead me towards the right path to get it installed? Thanks in advance.
brettchalupa commented 2 years ago

@Charlieeec thanks for sharing the stacktrace! I think I see the issue. It looks like you might be using a newer Ruby version than Dugway supports. If you run ruby -v, you'll see which Ruby you're on. Right now, Dugway only support these Ruby versions: 2.3, 2.4, 2.5, 2.6, 2.7

If you need to install an older Ruby version than, let's say the system Ruby, you can use rvm, which works well.

It's on my radar that we want to support Ruby 3.0 and 3.1, so I hope that I can get to that soon. Let me know if you run into any issues or need additional support with this!

ssaruhan commented 2 weeks ago

Hi, I've been trying to install dugway as well with no luck.

I get this error when I try to run gem install dugway:

ERROR:  Error installing dugway:
        ERROR: Failed to build gem native extension.

I followed this guide and I've got chruby installed to manage my ruby version. I'm currently on 3.3.3, so I assume that's why I'm unable to install dugway (since you said it only supports 2.3 - 2.7). That being said I'm new to ruby and I don't know how to install one of the compatible versions (when I try to just type ruby-install 2.7.0 for example I get !!! Compiling ruby 2.7.0 failed! at the end.

Is this problem usual? I'm just looking to use dugway to build a custom BigCartel theme and didn't expect the setup to be so tricky.