thoughtbot / gitsh

An interactive shell for git
https://thoughtbot.com
BSD 3-Clause "New" or "Revised" License
1.96k stars 106 forks source link

Homebrew install not finding readline #287

Closed bappelt closed 7 years ago

bappelt commented 7 years ago

I am trying to install via Homebrew on OSX v10.11.6, readline was automatically installed and I have tried force linking it, but I still get:

$ brew install gitsh
==> Installing gitsh from thoughtbot/formulae
==> Downloading http://thoughtbot.github.io/gitsh/gitsh-0.11.1.tar.gz
Already downloaded: /Users/bappelt/Library/Caches/Homebrew/gitsh-0.11.1.tar.gz
==> ./configure --disable-silent-rules --prefix=/usr/local/Cellar/gitsh/0.11.1
Last 15 lines from /Users/bappelt/Library/Logs/Homebrew/gitsh/01.configure:
    --without-termcap-include=${termcap-dir}/include
    --with-termcap-lib
    --without-termcap-lib=${termcap-dir}/
    --with-readline-dir
    --without-readline-dir
    --with-readline-include
    --without-readline-include=${readline-dir}/include
    --with-readline-lib
    --without-readline-lib=${readline-dir}/
    --with-ncurseslib
    --without-ncurseslib
    --with-readlinelib
    --without-readlinelib
extconf.rb:51:in `<main>': readline not found (RuntimeError)
configure: error: Failed to configure Ruby extension
tomlea commented 7 years ago

I've hit the same issue on macOS 10.12.2

Using system ruby (via rbenv):

ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

I then tried to build from source (3869651b2c9ad3defb39ca3b0c442d970cce1a7f) manually, with more success, but not enough of it.

Process

$ export CPPFLAGS=-I/usr/local/opt/readline/include CPPFLAGS=-I/usr/local/opt/readline/include
$ ./autogen.sh
configure.ac:12: installing './compile'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for ruby... /usr/bin/ruby
checking for ruby... (cached) /usr/bin/ruby
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for ruby version... ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... yes
checking for rl_set_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_append_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_suppress_quote in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_editing_mode in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_line_buffer in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_char_is_quoted_p in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_quote_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_getc() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_getc_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_username_completion_function() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_completion_matches() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_refresh_line() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_deprep_term_function in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_attempted_completion_over in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_library_version in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_point in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_event_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_sigwinch in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_signals in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_pre_input_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_special_prefixes in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_cleanup_after_signal() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_free_line_state() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_clear_signals() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_get_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_vi_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_emacs_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for replace_history_entry() in stdio.h,readline/readline.h,readline/history.h... yes
checking for remove_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for clear_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_redisplay() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_insert_text() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_delete_text() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_hook_func_t* in stdio.h,readline/readline.h,readline/history.h... yes
checking for rb_obj_reveal() in ruby.h... no
checking for rb_obj_hide() in ruby.h... no
creating Makefile
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating INSTALL
config.status: executing depfiles commands
$ make
depbase=`echo src/gitsh.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    gcc -DPACKAGE_NAME=\"gitsh\" -DPACKAGE_TARNAME=\"gitsh\" -DPACKAGE_VERSION=\"0.11.1\" -DPACKAGE_STRING=\"gitsh\ 0.11.1\" -DPACKAGE_BUGREPORT=\"hello@thoughtbot.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"gitsh\" -DVERSION=\"0.11.1\" -I.  -DGITSH_RB_PATH="\"/usr/local/share/gitsh/ruby/gitsh.rb\"" -I/usr/local/opt/readline/include  -g -O2 -MT src/gitsh.o -MD -MP -MF $depbase.Tpo -c -o src/gitsh.o src/gitsh.c &&\
    mv -f $depbase.Tpo $depbase.Po
gcc  -g -O2   -o gitsh src/gitsh.o
sed -e 's|@RUBY[@]|/usr/bin/ruby|g' -e 's|@rubylibdir[@]|/usr/local/share/gitsh/ruby/lib|g' -e 's|@gemsetuppath[@]|/usr/local/share/gitsh/vendor/gems/setup.rb|g' -e 's|@PACKAGE_VERSION[@]|0.11.1|g' ./src/gitsh.rb.in > src/gitsh.rb
chmod +x src/gitsh.rb
sed -e 's|@RUBY[@]|/usr/bin/ruby|g' -e 's|@rubylibdir[@]|/usr/local/share/gitsh/ruby/lib|g' -e 's|@gemsetuppath[@]|/usr/local/share/gitsh/vendor/gems/setup.rb|g' -e 's|@PACKAGE_VERSION[@]|0.11.1|g' ./lib/gitsh/version.rb.in > lib/gitsh/version.rb
cd ext/gitsh && /Library/Developer/CommandLineTools/usr/bin/make
compiling src/line_editor.c
linking shared-object gitsh/line_editor_native.bundle
$ make install
cd ext/gitsh && /Library/Developer/CommandLineTools/usr/bin/make
make[1]: Nothing to be done for `all'.
 ./install-sh -c -d '/usr/local/bin'
  /usr/bin/install -c gitsh '/usr/local/bin'
mkdir -p "/usr/local/share/gitsh/ruby/lib/gitsh"
cp ext/gitsh/line_editor_native.* "/usr/local/share/gitsh/ruby/lib/gitsh"
 ./install-sh -c -d '/usr/local/share/man/man1'
 /usr/bin/install -c -m 644 man/man1/gitsh.1 '/usr/local/share/man/man1'
 ./install-sh -c -d '/usr/local/share/gitsh'
 ./install-sh -c -d '/usr/local/share/gitsh/vendor/gems'
 /usr/bin/install -c -m 644  ./vendor/gems/setup.rb '/usr/local/share/gitsh/vendor/gems'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh/git_repository'
 /usr/bin/install -c -m 644  lib/gitsh/git_repository/status.rb '/usr/local/share/gitsh/ruby/lib/gitsh/git_repository'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh/arguments'
 /usr/bin/install -c -m 644  lib/gitsh/arguments/composite_argument.rb lib/gitsh/arguments/string_argument.rb lib/gitsh/arguments/subshell.rb lib/gitsh/arguments/variable_argument.rb '/usr/local/share/gitsh/ruby/lib/gitsh/arguments'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh/input_strategies'
 /usr/bin/install -c -m 644  lib/gitsh/input_strategies/file.rb lib/gitsh/input_strategies/interactive.rb lib/gitsh/input_strategies/string.rb '/usr/local/share/gitsh/ruby/lib/gitsh/input_strategies'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh/commands'
 /usr/bin/install -c -m 644  lib/gitsh/commands/error_handler.rb lib/gitsh/commands/factory.rb lib/gitsh/commands/git_command.rb lib/gitsh/commands/internal_command.rb lib/gitsh/commands/noop.rb lib/gitsh/commands/shell_command.rb lib/gitsh/commands/tree.rb '/usr/local/share/gitsh/ruby/lib/gitsh/commands'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh/parser'
 /usr/bin/install -c -m 644  lib/gitsh/parser/character_class.rb '/usr/local/share/gitsh/ruby/lib/gitsh/parser'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh'
 /usr/bin/install -c -m 644  lib/gitsh/argument_builder.rb lib/gitsh/argument_list.rb lib/gitsh/capturing_environment.rb lib/gitsh/cli.rb lib/gitsh/colors.rb lib/gitsh/completer.rb lib/gitsh/completion_escaper.rb lib/gitsh/environment.rb lib/gitsh/error.rb lib/gitsh/exit_statuses.rb lib/gitsh/file_runner.rb lib/gitsh/git_repository.rb lib/gitsh/history.rb lib/gitsh/interpreter.rb lib/gitsh/line_editor.rb lib/gitsh/line_editor_history_filter.rb lib/gitsh/magic_variables.rb lib/gitsh/module_delegator.rb lib/gitsh/parser.rb lib/gitsh/program_name.rb lib/gitsh/prompt_color.rb lib/gitsh/prompter.rb lib/gitsh/quote_detector.rb lib/gitsh/shell_command_runner.rb lib/gitsh/string_runner.rb lib/gitsh/terminal.rb lib/gitsh/transformer.rb '/usr/local/share/gitsh/ruby/lib/gitsh'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby/lib/gitsh'
 /usr/bin/install -c -m 644 lib/gitsh/version.rb '/usr/local/share/gitsh/ruby/lib/gitsh'
 ./install-sh -c -d '/usr/local/share/gitsh/ruby'
 /usr/bin/install -c src/gitsh.rb '/usr/local/share/gitsh/ruby'
$ gitsh
/usr/local/share/gitsh/ruby/lib/gitsh/line_editor.rb:1:in `require': dlopen(/usr/local/share/gitsh/ruby/lib/gitsh/line_editor_native.bundle, 9): Symbol not found: _rl_char_is_quoted_p (LoadError)
  Referenced from: /usr/local/share/gitsh/ruby/lib/gitsh/line_editor_native.bundle
  Expected in: flat namespace
 in /usr/local/share/gitsh/ruby/lib/gitsh/line_editor_native.bundle - /usr/local/share/gitsh/ruby/lib/gitsh/line_editor_native.bundle
    from /usr/local/share/gitsh/ruby/lib/gitsh/line_editor.rb:1:in `<top (required)>'
    from /usr/local/share/gitsh/ruby/lib/gitsh/environment.rb:3:in `require'
    from /usr/local/share/gitsh/ruby/lib/gitsh/environment.rb:3:in `<top (required)>'
    from /usr/local/share/gitsh/ruby/lib/gitsh/cli.rb:2:in `require'
    from /usr/local/share/gitsh/ruby/lib/gitsh/cli.rb:2:in `<top (required)>'
    from /usr/local/share/gitsh/ruby/gitsh.rb:6:in `require'
    from /usr/local/share/gitsh/ruby/gitsh.rb:6:in `<main>'

In addition, I made this change to prevent the compile error below:

diff --git a/ext/gitsh/src/line_editor.c b/ext/gitsh/src/line_editor.c
index 059ca79..5cff4dd 100644
--- a/ext/gitsh/src/line_editor.c
+++ b/ext/gitsh/src/line_editor.c
@@ -72,9 +72,6 @@ static ID id_special_prefixes;
 #ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION
 # define rl_filename_completion_function filename_completion_function
 #endif
-#ifndef HAVE_RL_USERNAME_COMPLETION_FUNCTION
-# define rl_username_completion_function username_completion_function
-#endif
 #ifndef HAVE_RL_COMPLETION_MATCHES
 # define rl_completion_matches completion_matches
 #endif
$ make
cd ext/gitsh && /Library/Developer/CommandLineTools/usr/bin/make
compiling src/line_editor.c
src/line_editor.c:1524:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
                                    rl_username_completion_function);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                    rl_username_completion_function
src/line_editor.c:76:42: note: expanded from macro 'rl_username_completion_function'
# define rl_username_completion_function username_completion_function
                                         ^
/usr/local/opt/readline/include/readline/readline.h:465:14: note: 'rl_username_completion_function' declared here
extern char *rl_username_completion_function PARAMS((const char *, int));
             ^
1 error generated.
make[1]: *** [line_editor.o] Error 1
make: *** [all-local] Error 2

Any help much appreciated, every time I have to use git without gitsh I feel like I'm lost in the distant past, where life was hard, and we had to walk up hill both ways.

georgebrock commented 7 years ago

Thanks for the reports. I couldn't reproduce this on my machine, but I've confirmed it can be reproduced on a macOS system that doesn't already have gitsh installed.

@tomlea I think your problems building from source might result from not setting LDFLAGS (see the INSTALL file for an example). That could explain the Readline functions that weren't found by configure, the linking error when you ran make, and maybe even the edit you needed to make to the C.

tomlea commented 7 years ago

Oops, copy pasta error on the first line of my build. Oops.

So it seems with correct env vars, I'm back to the same place as we were with homebrew. Explains the whole 'not linking right' ball game.

Continuing to investigate.

$ CPPFLAGS=-I/usr/local/opt/readline/include LDFLAGS=-L/usr/local/opt/readline/lib ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for ruby... /usr/bin/ruby
checking for ruby... (cached) /usr/bin/ruby
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for ruby version... ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... no
extconf.rb:51:in `<main>': readline not found (RuntimeError)
configure: error: Failed to configure Ruby extension

$ CPPFLAGS=-I/usr/local/opt/readline/include  ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for ruby... /usr/bin/ruby
checking for ruby... (cached) /usr/bin/ruby
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for ruby version... ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... yes
checking for rl_set_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_append_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_suppress_quote in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_editing_mode in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_line_buffer in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_char_is_quoted_p in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_quote_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_getc() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_getc_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_username_completion_function() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_completion_matches() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_refresh_line() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_deprep_term_function in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_attempted_completion_over in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_library_version in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_point in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_event_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_sigwinch in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_signals in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_pre_input_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_special_prefixes in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_cleanup_after_signal() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_free_line_state() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_clear_signals() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_get_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_vi_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_emacs_editing_mode() in stdio.h,readline/readline.h,readline/history.h... no
checking for replace_history_entry() in stdio.h,readline/readline.h,readline/history.h... yes
checking for remove_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for clear_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_redisplay() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_insert_text() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_delete_text() in stdio.h,readline/readline.h,readline/history.h... no
checking for rl_hook_func_t* in stdio.h,readline/readline.h,readline/history.h... yes
checking for rb_obj_reveal() in ruby.h... no
checking for rb_obj_hide() in ruby.h... no
creating Makefile
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating INSTALL
config.status: executing depfiles commands
georgebrock commented 7 years ago

I think I've found the root of this issue, in the mkmf.log generated by extconf.rb:

ld: symbol(s) not found for architecture i386

Confirmed with:

nm -jg -arch x86_64 /usr/local/opt/readline/lib/libreadline.a
nm -jg -arch i386 /usr/local/opt/readline/lib/libreadline.a

I think what's going on here is that we need a universal Readline binary in order to build the C extension for the universal Ruby binary that ships with macOS.

There are two work arounds:

  1. Install Ruby via Homebrew before installing gitsh, i.e. brew install ruby && brew install gitsh
  2. Build Readline from source as a universal binary, there are detailed instructions in this comment: https://github.com/thoughtbot/gitsh/issues/281#issuecomment-291033098

I'll see if I can improve the Homebrew formula to build correctly against system Ruby and Homebrew Readline. If that fails, I'll make Homebrew Ruby a specific dependency.

tomlea commented 7 years ago

Confirmed brew install ruby && brew install gitsh works for me!

❤️ ❤️ You made me so happy ❤️ ❤️

Thanks @georgebrock!

bappelt commented 7 years ago

brew install ruby && brew install gitsh worked for me as well

Thank You!

georgebrock commented 7 years ago

In looking at whether or not Homebrew Readline can be installed as a universal binary, I discovered that until very recently it was installed that way be default: https://github.com/Homebrew/homebrew-core/pull/10907

There's a whole series of recent PRs dropping calls to ENV.universal_binary from formulae, one of which contains some limited discussion of why it's happening: https://github.com/Homebrew/homebrew-core/pull/9641#issuecomment-280746019

georgebrock commented 7 years ago

PR opened against Homebrew to change the readline formula's architecture back to universal. If they accept it, I'll close this issue without making further changes to gitsh.

georgebrock commented 7 years ago

Thanks to some feedback on the Homebrew PR, I've learnt that it's always possible to link non-universal and universal things with the right flags. In this case, I was missing the extconf.rb argument --with-arch-flag.

georgebrock commented 7 years ago

Fixed in #291.

georgebrock commented 7 years ago

Released in 0.11.2. No need to brew install ruby anymore!