Giter Site home page Giter Site logo

homebrew-grpc's Introduction

gRPC โ€“ An RPC library and framework

gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.

Homepage: grpc.io
Mailing List: [email protected]

Join the chat at https://gitter.im/grpc/grpc

To start using gRPC

To maximize usability, gRPC supports the standard method for adding dependencies to a user's chosen language (if there is one). In most languages, the gRPC runtime comes as a package available in a user's language package manager.

For instructions on how to use the language-specific gRPC runtime for a project, please refer to these documents

  • C++: follow the instructions under the src/cpp directory
  • C#/.NET: NuGet packages Grpc.Net.Client, Grpc.AspNetCore.Server
  • Dart: pub package grpc
  • Go: go get google.golang.org/grpc
  • Java: Use JARs from Maven Central Repository
  • Kotlin: Use JARs from Maven Central Repository
  • Node: npm install @grpc/grpc-js
  • Objective-C: Add gRPC-ProtoRPC dependency to podspec
  • PHP: pecl install grpc
  • Python: pip install grpcio
  • Ruby: gem install grpc
  • WebJS: follow the grpc-web instructions

Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.

Precompiled bleeding-edge package builds of gRPC master branch's HEAD are uploaded daily to packages.grpc.io.

To start developing gRPC

Contributions are welcome!

Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to the gRPC codebase. The "How to contribute" document also contains info on how the contribution process works and contains best practices for creating contributions.

Troubleshooting

Sometimes things go wrong. Please check out the Troubleshooting guide if you are experiencing issues with gRPC.

Performance

See the Performance dashboard for performance numbers of master branch daily builds.

Concepts

See gRPC Concepts

About This Repository

This repository contains source code for gRPC libraries implemented in multiple languages written on top of a shared C++ core library src/core.

Libraries in different languages may be in various states of development. We are seeking contributions for all of these libraries:

Language Source
Shared C++ [core library] src/core
C++ src/cpp
Ruby src/ruby
Python src/python
PHP src/php
C# (core library based) src/csharp
Objective-C src/objective-c
Language Source repo
Java grpc-java
Kotlin grpc-kotlin
Go grpc-go
NodeJS grpc-node
WebJS grpc-web
Dart grpc-dart
.NET (pure C# impl.) grpc-dotnet
Swift grpc-swift

homebrew-grpc's People

Contributors

chenrui333 avatar dhermes avatar gxb5443 avatar hsaliak avatar jcanizales avatar jtattermusch avatar mehrdada avatar mjsteger avatar murgatroid99 avatar muxi avatar nathanielmanistaatgoogle avatar rickmak avatar sdamodharan avatar simonkuang avatar stanley-cheung avatar tbetbetbe avatar timotheecour avatar y-zeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebrew-grpc's Issues

Installing on mac fails around libssl?

(Running OS X 10.10.5)

$ brew install grpc
==> Installing grpc from grpc/homebrew-grpc
==> Installing dependencies for grpc/grpc/grpc: openssl, pkg-config, auto
==> Installing grpc/grpc/grpc dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2d_1.yosemite.b
Already downloaded: /Library/Caches/Homebrew/openssl-1.0.2d_1.yosemite.bottle.tar.gz
==> Pouring openssl-1.0.2d_1.yosemite.bottle.tar.gz
Error: Permission denied - /usr/local/etc/openssl
Warning: Bottle installation failed: building from source.
==> Installing dependencies for openssl: makedepend
==> Installing openssl dependency: makedepend
==> Downloading https://homebrew.bintray.com/bottles/makedepend-1.0.5.yosemite.b
######################################################################## 100.0%
==> Pouring makedepend-1.0.5.yosemite.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/makedepend
/usr/local/bin is not writable.

You can try again using:
  brew link makedepend
==> Summary
๐Ÿบ  /usr/local/Cellar/makedepend/1.0.5: 7 files, 92K
==> Downloading https://www.openssl.org/source/openssl-1.0.2d.tar.gz
######################################################################## 100.0%
==> perl ./Configure --prefix=/usr/local/Cellar/openssl/1.0.2d_1 --openssldir=/u
==> make depend
==> make
==> make test
==> make install MANDIR=/usr/local/Cellar/openssl/1.0.2d_1/share/man MANSUFFIX=ssl
Last 15 lines from /Users/jjg/Library/Logs/Homebrew/openssl/05.make:
SSL_want_read.3ssl => SSL_want.3ssl
SSL_want_write.3ssl => SSL_want.3ssl
SSL_want_x509_lookup.3ssl => SSL_want.3ssl
installing man3/SSL_write.3ssl
installing man3/d2i_SSL_SESSION.3ssl
i2d_SSL_SESSION.3ssl => d2i_SSL_SESSION.3ssl
installing man3/ssl.3ssl
Cannot create directory /usr/local/etc/openssl: Permission denied
created directory `/usr/local/Cellar/openssl/1.0.2d_1/bin'
created directory `/usr/local/Cellar/openssl/1.0.2d_1/lib'
created directory `/usr/local/Cellar/openssl/1.0.2d_1/lib/engines'
created directory `/usr/local/Cellar/openssl/1.0.2d_1/lib/pkgconfig'
created directory `/usr/local/Cellar/openssl/1.0.2d_1/include'
created directory `/usr/local/Cellar/openssl/1.0.2d_1/include/openssl'
make: *** [install_sw] Error 13

READ THIS: https://git.io/brew-troubleshooting

These open issues may also help:
openssl: add 'enable-ssl-trace' option https://github.com/Homebrew/homebrew/pull/45250
wine dependency openssl/1.0.2d https://github.com/Homebrew/homebrew/issues/43752
openssl failed to build on 10.6.8 https://github.com/Homebrew/homebrew/issues/44280

Figured maybe this is an issue with permissions... but...

$ sudo brew install grpc
Password:
Error: Cowardly refusing to `sudo brew install`
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.

Installer fails with "error: could not create '/usr/local/lib/python2.7/dist-packages/grpc': Permission denied"

Running

curl -fsSL https://goo.gl/getgrpc | bash -s python

(as non-privileged user) results in the following error:

running install_lib

creating /usr/local/lib/python2.7/dist-packages/grpc

error: could not create '/usr/local/lib/python2.7/dist-packages/grpc': Permission denied

I could not figure out how to pass the --user flag (or similar) to it. Everything else was properly installed in $HOME/.linuxbrew but the last step of copying the Python libraries failed.
Is there a workaround?

Linuxbrew install looks OK

I started a fresh new instance in GCE. I picked n1-standard-1, Ubuntu 14.04.

Commands:

sudo apt-get update
sudo apt-get install build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"
export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"
brew update
brew doctor

grpc python installed with virtualenv, code complains no google.protobuf found on Mac OS X

hmm. I installed my grpc with
$ brew tap grpc
$ brew install grpc/grpc

Then I tried to install grpc python with
$ sudo pip install virtualenv
$ virtualenv venv
$ source venv/bin/activate
$ curl -fsSL https://goo.gl/getgrpc | bash -s python

No error happened, but when I try to import google.protobuf in my python code, it complains google.protobuf cannot be found.

I'm able to
from grpc.beta import implementations
But the following line gives an error:
from google.protobuf import descriptor as _descriptor
ImportError: No module named google.protobuf

Error when running the Python Sample

After installing the package either on Linux or Mac I get the following error when I run a sample from the grpc-common repo.

*** Linux Version ****
File "greeter_server.py", line 34, in
import helloworld_pb2
File "/home/arthur_zeyda/grpc-common/python/helloworld/helloworld_pb2.py", line 111, in
from grpc.early_adopter import implementations
File "/usr/local/lib/python2.7/dist-packages/grpc/early_adopter/implementations.py", line 34, in
from grpc._adapter import fore as _fore
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/fore.py", line 38, in
from grpc._adapter import _intermediary_low as _low
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/_intermediary_low.py", line 57, in
from grpc._adapter import _low
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/_low.py", line 30, in
from grpc._adapter import _c
ImportError: /usr/local/lib/python2.7/dist-packages/grpc/_adapter/_c.so: undefined symbol: grpc_jwt_credentials_create

*** Mac Version *****
ImportError: dlopen(/Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so, 2): Symbol not found: _gpr_convert_clock_type
Referenced from: /Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so
Expected in: flat namespace
in /Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so

Mac python install looks OK

brew update
and
brew doctor
have been run before this

stanleycheung@stanleycheung-macbookpro:~$ which python
/usr/bin/python
stanleycheung@stanleycheung-macbookpro:~$ python --version
Python 2.7.6
stanleycheung@stanleycheung-macbookpro:~$ which pip
which pip
/usr/local/bin/pip
stanleycheung@stanleycheung-macbookpro:~$ curl -fsSL https://goo.gl/getgrpc | bash -s python
curl -fsSL https://goo.gl/getgrpc | bash -s python
openssl is already installed
==> Installing dependencies for protobuf: autoconf, automake, libtool
==> Installing protobuf dependency: autoconf
==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
######################################################################### 100.0%
==> ./configure --prefix=/Users/stanleycheung/homebrew/Cellar/autoconf/2.69
==> make install
๐Ÿบ  /Users/stanleycheung/homebrew/Cellar/autoconf/2.69: 70 files, 3.1M, built in 8 seconds
==> Installing protobuf dependency: automake
==> Downloading http://ftpmirror.gnu.org/automake/automake-1.15.tar.xz
######################################################################### 100.0%
==> ./configure --prefix=/Users/stanleycheung/homebrew/Cellar/automake/1.15
==> make install
๐Ÿบ  /Users/stanleycheung/homebrew/Cellar/automake/1.15: 130 files, 3.2M, built in 8 seconds
==> Installing protobuf dependency: libtool
==> Downloading https://homebrew.bintray.com/bottles/libtool-2.4.6.yosemite.bott
######################################################################### 100.0%
==> Pouring libtool-2.4.6.yosemite.bottle.tar.gz
==> Caveats
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.
==> Summary
๐Ÿบ  /Users/stanleycheung/homebrew/Cellar/libtool/2.4.6: 69 files, 3.8M
==> Installing protobuf
==> Downloading https://github.com/google/protobuf/archive/v3.0.0-alpha-2.tar.gz
######################################################################### 100.0%
==> ./autogen.sh
==> ./configure --prefix=/Users/stanleycheung/homebrew/Cellar/protobuf/3.0.0-alp
==> make
==> make install
==> Downloading https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
######################################################################### 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/private/tmp/p
==> Downloading https://pypi.python.org/packages/source/p/python-dateutil/python
######################################################################### 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/private/tmp/p
==> Downloading https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.
######################################################################### 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/private/tmp/p
==> Downloading https://pypi.python.org/packages/source/p/python-gflags/python-g
######################################################################### 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/private/tmp/p
==> Downloading https://pypi.python.org/packages/source/g/google-apputils/google
######################################################################### 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/private/tmp/p
==> python -c import setuptools... --no-user-cfg install --prefix=/Users/stanley
==> Caveats
Editor support and examples have been installed to:
  /Users/stanleycheung/homebrew/Cellar/protobuf/3.0.0-alpha-2/share/doc/protobuf

Python modules have been installed and Homebrew's site-packages is not
in your Python sys.path, so you will not be able to import the modules
this formula installed. If you plan to develop with these modules,
please run:
  mkdir -p /Users/stanleycheung/Library/Python/2.7/lib/python/site-packages
  echo 'import site; site.addsitedir("/Users/stanleycheung/homebrew/lib/python2.7/site-packages")' >> /Users/stanleycheung/Library/Python/2.7/lib/python/site-packages/homebrew.pth
==> Summary
๐Ÿบ  /Users/stanleycheung/homebrew/Cellar/protobuf/3.0.0-alpha-2: 169 files, 9.2M, built in 69 seconds
==> Tapping grpc/grpc
Cloning into '/Users/stanleycheung/homebrew/Library/Taps/grpc/homebrew-grpc'...
remote: Counting objects: 9, done.        
remote: Compressing objects: 100% (6/6), done.        
remote: Total 9 (delta 0), reused 8 (delta 0), pack-reused 0        
Unpacking objects: 100% (9/9), done.
Checking connectivity... done.
Tapped 1 formula (35 files, 148K)
==> Installing grpc from grpc/homebrew-grpc
==> Cloning https://github.com/grpc/grpc.git
Cloning into '/Library/Caches/Homebrew/grpc--git'...
remote: Counting objects: 1499, done.        
remote: Compressing objects: 100% (1228/1228), done.        
remote: Total 1499 (delta 680), reused 499 (delta 208), pack-reused 0        
Receiving objects: 100% (1499/1499), 1.67 MiB | 2.11 MiB/s, done.
Resolving deltas: 100% (680/680), done.
Checking connectivity... done.
remote: Counting objects: 1767, done.        
remote: Total 1767 (delta 0), reused 0 (delta 0), pack-reused 1767        
Receiving objects: 100% (1767/1767), 1.25 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1016/1016), done.
remote: Counting objects: 166546, done.        
remote: Compressing objects: 100% (294/294), done.        
remote: Total 166546 (delta 107), reused 0 (delta 0), pack-reused 166248        
Receiving objects: 100% (166546/166546), 63.17 MiB | 3.27 MiB/s, done.
Resolving deltas: 100% (132175/132175), done.
remote: Counting objects: 20271, done.        
remote: Total 20271 (delta 0), reused 0 (delta 0), pack-reused 20271        
Receiving objects: 100% (20271/20271), 26.02 MiB | 9.50 MiB/s, done.
Resolving deltas: 100% (13659/13659), done.
remote: Counting objects: 4194, done.        
remote: Total 4194 (delta 0), reused 0 (delta 0), pack-reused 4194        
Receiving objects: 100% (4194/4194), 3.49 MiB | 2.23 MiB/s, done.
Resolving deltas: 100% (2453/2453), done.
==> Checking out branch master
==> make install prefix=/Users/stanleycheung/homebrew/Cellar/grpc/HEAD
๐Ÿบ  /Users/stanleycheung/homebrew/Cellar/grpc/HEAD: 85 files, 5.1M, built in 47 seconds
installing grpc python
/Library/Python/2.7/site-packages/pip-6.1.1-py2.7.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Collecting grpcio
/Library/Python/2.7/site-packages/pip-6.1.1-py2.7.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading grpcio-0.5.0a2.tar.gz (88kB)
    100% |################################| 90kB 505kB/s 
๏ฟฝ[?25hCollecting enum34==1.0.4 (from grpcio)
  Downloading enum34-1.0.4.tar.gz
Collecting futures==2.2.0 (from grpcio)
  Downloading futures-2.2.0-py2.py3-none-any.whl
Collecting protobuf==3.0.0-alpha-1 (from grpcio)
  Downloading protobuf-3.0.0-alpha-1.tar.gz (193kB)
    100% |################################| 196kB 2.0MB/s 
๏ฟฝ[?25hRequirement already satisfied (use --upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from protobuf==3.0.0-alpha-1->grpcio)
Installing collected packages: enum34, futures, protobuf, grpcio
  Running setup.py install for enum34
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/16/js0vwqkj3zdc7s1h7jzr8tcm00985b/T/pip-build-jpYBIx/enum34/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/16/js0vwqkj3zdc7s1h7jzr8tcm00985b/T/pip-AjvJPV-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib
    creating build/lib/enum
    copying enum/__init__.py -> build/lib/enum
    copying enum/enum.py -> build/lib/enum
    copying enum/test_enum.py -> build/lib/enum
    copying enum/LICENSE -> build/lib/enum
    copying enum/README -> build/lib/enum
    creating build/lib/enum/doc
    copying enum/doc/enum.rst -> build/lib/enum/doc
    running install_lib
    creating /Library/Python/2.7/site-packages/enum
    error: could not create '/Library/Python/2.7/site-packages/enum': Permission denied

    ----------------------------------------
    Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/16/js0vwqkj3zdc7s1h7jzr8tcm00985b/T/pip-build-jpYBIx/enum34/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/16/js0vwqkj3zdc7s1h7jzr8tcm00985b/T/pip-AjvJPV-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/16/js0vwqkj3zdc7s1h7jzr8tcm00985b/T/pip-build-jpYBIx/enum34
stanleycheung@stanleycheung-macbookpro:~$ 

Warning: Calling fails_with :llvm is deprecated

I got the following warning message when running brew update

Warning: Calling fails_with :llvm is deprecated!
There is no replacement.
/usr/local/Homebrew/Library/Taps/grpc/homebrew-grpc/Formula/google-protobuf.rb:25:in `<class:GoogleProtobuf>'
Please report this to the grpc/grpc tap!

1.4.1 failed to be compiled under linuxbrew.

Here is the docker commands

FROM  ubuntu:16.04
...
RUN sudo -Hu david brew tap grpc/grpc
RUN sudo -Hu david sh -c 'export HOMEBREW_ARCH=x86-64; brew install python && sudo -Hu david rm -rf $(brew --cache)'
RUN sudo -Hu david sh -c 'export HOMEBREW_ARCH=x86-64; brew install grpc && sudo -Hu david rm -rf $(brew --cache)'

Here is error message.

Last 15 lines from /home/david/.cache/Homebrew/Logs/grpc/03.make:
[AR]      Creating /tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/libs/opt/libgrpc++_test_config.a
[AR]      Creating /tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/libs/opt/libgrpc_cli_libs.a
[AR]      Creating /tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/libs/opt/libgrpc++_proto_reflection_desc_db.a
[CXX]     Compiling test/cpp/util/grpc_cli.cc
[LD]      Linking /tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/bins/opt/grpc_cli
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/objs/opt/test/cpp/util/grpc_cli.o: In function `__static_initialization_and_destruction_0':
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/test/cpp/util/grpc_cli.cc:81: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/libs/opt/libgrpc_cli_libs.a(grpc_tool.o): In function `__static_initialization_and_destruction_0':
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/test/cpp/util/grpc_tool.cc:69: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/test/cpp/util/grpc_tool.cc:71: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/test/cpp/util/grpc_tool.cc:72: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/test/cpp/util/grpc_tool.cc:75: undefined reference to `google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
collect2: error: ld returned 1 exit status
Makefile:14661: recipe for target '/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/bins/opt/grpc_cli' failed
make: *** [/tmp/grpc-20170717-16797-akbqi0/grpc-1.4.1/bins/opt/grpc_cli] Error 1

Mac nodejs install looks OK

I have no nvm nor npm in my mac to start

To install nvm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash

Then I install npm

stanleycheung@stanleycheung-macbookpro:~$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.38 (npm v1.4.28)
stanleycheung@stanleycheung-macbookpro:~$ which npm
/Users/stanleycheung/.nvm/v0.10.38/bin/npm

Then I run the grpc install script

stanleycheung@stanleycheung-macbookpro:~$ curl -fsSL https://goo.gl/getgrpc | bash -s nodejs
openssl is already installed
protobuf is already installed
Warning: Already tapped!
grpc is already installed
installing grpc nodejs
|
> [email protected] install /Users/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc
> node-gyp rebuild

  CXX(target) Release/obj.target/grpc/ext/byte_buffer.o
  CXX(target) Release/obj.target/grpc/ext/call.o
  CXX(target) Release/obj.target/grpc/ext/channel.o
  CXX(target) Release/obj.target/grpc/ext/completion_queue_async_worker.o
  CXX(target) Release/obj.target/grpc/ext/credentials.o
  CXX(target) Release/obj.target/grpc/ext/node_grpc.o
  CXX(target) Release/obj.target/grpc/ext/server.o
  CXX(target) Release/obj.target/grpc/ext/server_credentials.o
  CXX(target) Release/obj.target/grpc/ext/timeval.o
  SOLINK_MODULE(target) Release/grpc.node
  SOLINK_MODULE(target) Release/grpc.node: Finished
[email protected] /Users/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ””โ”€โ”€ [email protected] ([email protected], [email protected])
stanleycheung@stanleycheung-macbookpro:~$ 

in china : Failed to connect to 2404:6800:4008:c04::52: No route to host

โžœ grpc brew install grpc
==> Installing grpc from grpc/homebrew-grpc
Error: Operation already in progress for xz
Another active Homebrew process is already using xz.
Please wait for it to finish or terminate it to continue.
โžœ grpc brew install grpc
==> Installing grpc from grpc/homebrew-grpc
==> Installing grpc dependency: google-protobuf
==> Downloading https://github.com/google/protobuf/archive/v3.0.0-alpha-3.tar.gz
Already downloaded: /Library/Caches/Homebrew/google-protobuf-3.0.0-alpha-3.tar.gz
==> ./autogen.sh

Google Test not present. Fetching gtest-1.7.0 from the web...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:01:16 --:--:-- 0curl: (7) Failed to connect to 2404:6800:4008:c04::52: No route to host

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
https://github.com/grpc/homebrew-grpc/issues

Node installation script fails because of an npm issue

Currently, the node installation script installs the Node grpc package globally, using compiler and linker flags to make it build successfully. This would allow a package to depend on grpc using npm link grpc or npm install --link, except that issue npm/npm#7198 makes it try and fail to rebuild the package without the proper compiler and linker flags.

Installation is failing with an error referring to zlib

This was first reported in grpc/grpc#3874. The user attempted to follow the Mac Node.js installation instructions by running

curl -fsSL https://goo.gl/getgrpc | bash -s nodejs

and they got the output

Error: undefined method `desc' for Formulary::Formulae::Zlib:Class
Please report this bug:
    https://git.io/brew-troubleshooting
/usr/local/Library/Taps/homebrew/homebrew-dupes/zlib.rb:2:in `<class:Zlib>'
/usr/local/Library/Taps/homebrew/homebrew-dupes/zlib.rb:1:in `load_file'
/usr/local/Library/Homebrew/formulary.rb:92:in `module_eval'
/usr/local/Library/Homebrew/formulary.rb:92:in `load_file'
/usr/local/Library/Homebrew/formulary.rb:82:in `klass'
/usr/local/Library/Homebrew/formulary.rb:71:in `get_formula'
/usr/local/Library/Homebrew/formulary.rb:200:in `factory'
/usr/local/Library/Homebrew/extend/ARGV.rb:16:in `block in formulae'
/usr/local/Library/Homebrew/extend/ARGV.rb:16:in `map'
/usr/local/Library/Homebrew/extend/ARGV.rb:16:in `formulae'
/usr/local/Library/Homebrew/cmd/install.rb:41:in `install'
/usr/local/Library/brew.rb:135:in `<main>'

Linux ruby install looks OK

Pre-requisite

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby
source /home/stanleycheung/.rvm/scripts/rvm

install

stanleycheung@stanleycheung-test:~$ which ruby
/home/stanleycheung/.rvm/rubies/ruby-2.2.1/bin/ruby
stanleycheung@stanleycheung-test:~$ curl -fsSL https://goo.gl/getgrpc | bash -s ruby
pkg-config is already installed
openssl is already installed
protobuf is already installed
Warning: Already tapped!
grpc is already installed
installing grpc ruby
Fetching: multi_json-1.11.0.gem (100%)
Successfully installed multi_json-1.11.0
Fetching: little-plugger-1.1.3.gem (100%)
Successfully installed little-plugger-1.1.3
Fetching: logging-2.0.0.gem (100%)
Successfully installed logging-2.0.0
Fetching: extlib-0.9.16.gem (100%)
Successfully installed extlib-0.9.16
Fetching: jwt-1.4.1.gem (100%)
Successfully installed jwt-1.4.1
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.9.1.gem (100%)
Successfully installed faraday-0.9.1
Fetching: addressable-2.3.8.gem (100%)
Successfully installed addressable-2.3.8
Fetching: signet-0.6.0.gem (100%)
Successfully installed signet-0.6.0
Fetching: memoist-0.12.0.gem (100%)
Successfully installed memoist-0.12.0
Fetching: googleauth-0.4.1.gem (100%)
Successfully installed googleauth-0.4.1
Fetching: google-protobuf-3.0.0.alpha.3.1.pre.gem (100%)
Building native extensions with: '--with-grpc-dir=/home/stanleycheung/.linuxbrew'
This could take a while...
Successfully installed google-protobuf-3.0.0.alpha.3.1.pre
Fetching: grpc-0.6.1.gem (100%)
Building native extensions with: '--with-grpc-dir=/home/stanleycheung/.linuxbrew'
This could take a while...
Successfully installed grpc-0.6.1
Parsing documentation for multi_json-1.11.0
Installing ri documentation for multi_json-1.11.0
Parsing documentation for little-plugger-1.1.3
Installing ri documentation for little-plugger-1.1.3
Parsing documentation for logging-2.0.0
Installing ri documentation for logging-2.0.0
Parsing documentation for extlib-0.9.16
Installing ri documentation for extlib-0.9.16
Parsing documentation for jwt-1.4.1
Installing ri documentation for jwt-1.4.1
invalid options: -SHN
(invalid options are ignored)
Parsing documentation for multipart-post-2.0.0
Installing ri documentation for multipart-post-2.0.0
Parsing documentation for faraday-0.9.1
Installing ri documentation for faraday-0.9.1
Parsing documentation for addressable-2.3.8
Installing ri documentation for addressable-2.3.8
Parsing documentation for signet-0.6.0
Installing ri documentation for signet-0.6.0
Parsing documentation for memoist-0.12.0
Installing ri documentation for memoist-0.12.0
Parsing documentation for googleauth-0.4.1
Installing ri documentation for googleauth-0.4.1
Parsing documentation for google-protobuf-3.0.0.alpha.3.1.pre
Installing ri documentation for google-protobuf-3.0.0.alpha.3.1.pre
Parsing documentation for grpc-0.6.1
Installing ri documentation for grpc-0.6.1
Done installing documentation for multi_json, little-plugger, logging, extlib, jwt, multipart-post, faraday, addressable, signet, memoist, googleauth, google-protobuf, grpc after 9 seconds
13 gems installed
stanleycheung@stanleycheung-test:~$ 

linuxbrew: `brew install grpc` fails: `failed to set dynamic section sizes: File truncated`

brew install grpc
==> Reinstalling grpc/grpc/grpc
==> Downloading https://github.com/grpc/grpc/archive/v1.0.1.tar.gz
Already downloaded: /home/timothee/.cache/Homebrew/grpc-1.0.1.tar.gz
==> [ "$(ls -A third_party/nanopb)" ] || git clone --branch=nanopb-0.3.5 https://github.com/nanopb/nanopb.git third_party/nanopb
==> make install prefix=/home/timothee/shared/temp1/.linuxbrew/Cellar/grpc/1.0.1
Last 15 lines from /home/timothee/.cache/Homebrew/Logs/grpc/02.make:
[LD]      Linking /tmp/grpc-20161111-9385-100u5xd/grpc-1.0.1/libs/opt/libgrpc.so.1.0.1
[LD]      Linking /tmp/grpc-20161111-9385-100u5xd/grpc-1.0.1/libs/opt/libgrpc_cronet.so.1.0.1
[LD]      Linking /tmp/grpc-20161111-9385-100u5xd/grpc-1.0.1/libs/opt/libgrpc_unsecure.so.1.0.1
[INSTALL] Installing C++ pkg-config files
[STRIP]   Stripping libgpr.a
[STRIP]   Stripping libgrpc.a
/usr/bin/ld: failed to set dynamic section sizes: File truncated
collect2: error: ld returned 1 exit status
make: *** [Makefile:2939: /tmp/grpc-20161111-9385-100u5xd/grpc-1.0.1/libs/opt/libgrpc_cronet.so.1.0.1] Error 1
make: *** Waiting for unfinished jobs....
/usr/bin/ld: failed to set dynamic section sizes: File truncated
collect2: error: ld returned 1 exit status
make: *** [Makefile:2690: /tmp/grpc-20161111-9385-100u5xd/grpc-1.0.1/libs/opt/libgrpc.so.1.0.1] Error 1
[STRIP]   Stripping libgrpc_cronet.a
[STRIP]   Stripping libgrpc_unsecure.a

READ THIS: https://github.com/Linuxbrew/brew/blob/master/docs/Troubleshooting.md#troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
  https://github.com/grpc/homebrew-grpc/issues

These open issues may also help:
grpc++.h is missing https://github.com/grpc/homebrew-grpc/issues/68
grpc python installed with virtualenv, code complains no google.protobuf found on Mac OS X https://github.com/grpc/homebrew-grpc/issues/71
Add a test to formula to verify that gRPC built correctly https://github.com/grpc/homebrew-grpc/issues/2
Installer fails with "error: could not create '/usr/local/lib/python2.7/dist-packages/grpc': Permission denied" https://github.com/grpc/homebrew-grpc/issues/75
exit_code: 1

brew gist-logs grpc
https://gist.github.com/5ceafa82a41179f10fba35695108baf6

rerunning sometimes gives:

*** Error in `/tmp/grpc-20161114-25812-1x1fxxg/grpc-1.0.1/bins/opt/grpc_cpp_plugin': free(): invalid pointer: 0x00007fff39e92c88 ***

Moving formulas into homebrew

The formulae will be maintained here rather than adding them to the homebrew or linuxbrew repos until gRPC and protobuf 3.0 are generally available, i.e, gRPC reaches 1.0 and protobuf 3.0 is released.

This statement is made on the main page of this repo. Is this being worked on at the moment ?

new grpc version with ChannelCredentials not updated in homebrew

On 16.12.2015, the grpc lib was updated with mandatory credentials usage. When I try to compile the php grpc extension from source, I'm getting these errors:

./channel_credentials.h:57:3: error: unknown type name 'grpc_channel_credentials'; did you mean 'grpc_server_credentials'?
  grpc_channel_credentials *wrapped;
  ^~~~~~~~~~~~~~~~~~~~~~~~
  grpc_server_credentials

I'm trying to compile the php extension from grpc source, using the libs from homebrew grpc, which aren't up to date

Mac ruby install looks OK

I don't have rvm to start

To install rvm:

stanleycheung@stanleycheung-macbookpro:~$ \curl -sSL https://get.rvm.io | bash -s stable
Downloading https://github.com/rvm/rvm/archive/1.26.11.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.26.11/1.26.11.tar.gz.asc
Found PGP signature at: 'https://github.com/rvm/rvm/releases/download/1.26.11/1.26.11.tar.gz.asc',
but no GPG software exists to validate it, skipping.

Installing RVM to /Users/stanleycheung/.rvm/
    Adding rvm PATH line to /Users/stanleycheung/.profile /Users/stanleycheung/.mkshrc /Users/stanleycheung/.bashrc /Users/stanleycheung/.zshrc.
    Adding rvm loading line to /Users/stanleycheung/.profile /Users/stanleycheung/.bash_profile /Users/stanleycheung/.zlogin.
Installation of RVM in /Users/stanleycheung/.rvm/ is almost complete:

  * To start using RVM you need to run `source /Users/stanleycheung/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# Stanley Cheung,
#
#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.

In case of problems: http://rvm.io/help and https://twitter.com/rvm_io

  * WARNING: You have '~/.profile' file, you might want to load it,
    to do that add the following line to '/Users/stanleycheung/.bash_profile':

      source ~/.profile

stanleycheung@stanleycheung-macbookpro:~$ which rvm
stanleycheung@stanleycheung-macbookpro:~$ source .profile
stanleycheung@stanleycheung-macbookpro:~$ which rvm
/Users/stanleycheung/.rvm/bin/rvm

Then I try to install grpc ruby:

stanleycheung@stanleycheung-macbookpro:~$ curl -fsSL https://goo.gl/getgrpc | bash -s ruby
openssl is already installed
protobuf is already installed
Warning: Already tapped!
grpc is already installed
installing grpc ruby
Fetching: google-protobuf-3.0.0.alpha.3.1.pre.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
stanleycheung@stanleycheung-macbookpro:~$ 

fatal error: 'google/protobuf/compiler/objectivec/objectivec_helpers.h' file not found

yunjingdeMacBook-Pro:grpc--git Neil$ curl -fsSL https://goo.gl/getgrpc | bash -
openssl is already installed
Warning: Already tapped!
google-protobuf is already installed
==> Installing grpc from grpc/homebrew-grpc
==> Cloning https://github.com/grpc/grpc.git
Updating /Library/Caches/Homebrew/grpc--git
==> Checking out branch master
==> make install install_grpc_csharp_ext prefix=/usr/local/Cellar/grpc/HEAD
src/compiler/objective_c_generator.cc:41:10: fatal error: 'google/protobuf/compiler/objectivec/objectivec_helpers.h' file not found

include <google/protobuf/compiler/objectivec/objectivec_helpers.h>

     ^

2 errors generated.
make: *** [objs/opt/src/compiler/objective_c_generator.o] Error 1
/usr/local/Library/Homebrew/build.rb:181:in dump': can't dump anonymous class #<Module:0x007fd558996238>::Grpc (TypeError) from /usr/local/Library/Homebrew/build.rb:181:inrescue in

'
from /usr/local/Library/Homebrew/build.rb:167:in `'
Error: Suspicious failure

Install from HEAD fails on MacOS Sierra

Jeroens-MacBook-Pro:~ jeroen$ brew install grpc --HEAD
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.

==> Installing grpc from grpc/grpc
==> Cloning https://github.com/grpc/grpc.git
Updating /Users/jeroen/Library/Caches/Homebrew/grpc--git
==> Checking out branch master
==> git clone --branch=nanopb-0.3.5 https://github.com/nanopb/nanopb.git third_party/nanopb
Last 15 lines from /Users/jeroen/Library/Logs/Homebrew/grpc/01.git:
2016-09-28 13:28:38 +0200

git
clone
--branch=nanopb-0.3.5
https://github.com/nanopb/nanopb.git
third_party/nanopb

fatal: destination path 'third_party/nanopb' already exists and is not an empty directory.

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
  https://github.com/grpc/homebrew-grpc/issues

Replace grpc-php.rb formula with homebrew-php tap

Now that PHP has reached Alpha and we have the PECL extension properly released, we should remove the grpc-php.rb formula.

We need 4 PRs:

  • homebrew-grpc: to update the install script for PHP to download the PECL extension and compile that instead
  • grpc-common: fix the scripts to change where to find the grpc.so extension
  • grpc master: same
  • grpc 0.10 branch: same

Failing check for library containing zlibVersion during install

Attempting to install on OS X El Capitan (10.11.5) via curl -fsSL https://goo.gl/getgrpc | bash -.
Getting the errors:
checking zlib version... ok (1.2.0.4 or later)
checking for library containing zlibVersion... no
configure: error: in/private/tmp/google-protobuf-20160630-91559-qosh8/protobuf-3.0.0-beta-3.1': configure: error: --with-zlib was given, but no working zlib library was found`

I have zlib installed through homebrew, but I suspect that google-protobuf is expecting devel of zlib and fails.

regression: `brew install grpc` fails: bad reloc symbol index

brew install grpc

collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
compilation terminated.
brew/bin/ld: /tmp/grpc-20170703-35063-1r0qmbs/grpc-1.4.1/libs/opt/libgpr.a(basic_timers.o): bad reloc symbol index (0x6d69745f >= 0x12) for offset 0x0 in section `.debug_info'

FYI @stanley-cheung this looks like a regression, grpc worked when #96 was closed

This also fails:

brew install grpc/grpc/grpc
undefined reference to `google::protobuf::MethodDescriptor::output_type() const

Error with downloading gmock

Google Mock not present.  Fetching gmock-1.7.0 from the web...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1582  100  1582    0     0   7007      0 --:--:-- --:--:-- --:--:--  7031
[gmock-1.7.0.zip]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of gmock-1.7.0.zip or
        gmock-1.7.0.zip.zip, and cannot find gmock-1.7.0.zip.ZIP, period.

Linux python install looks OK

stanleycheung@stanleycheung-test:~/python27$ virtualenv $HOME/python27
New python executable in /home/stanleycheung/python27/bin/python
Installing setuptools, pip...done.
stanleycheung@stanleycheung-test:~/python27$ source bin/activate
(python27)stanleycheung@stanleycheung-test:~/python27$ curl -fsSL https://goo.gl/getgrpc | bash -s python
==> Downloading http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/pkg-config/0.28 --disable-host-tool -
==> make
==> make check
==> make install
/home/stanleycheung/.linuxbrew/Cellar/pkg-config/0.28: 10 files, 644K, built in 40 seconds
==> Installing openssl dependency: makedepend
==> Downloading http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.5.tar.bz2
######################################################################## 100.0%
==> Downloading http://xorg.freedesktop.org/releases/individual/proto/xproto-7.0.25.tar.bz2
######################################################################## 100.0%
==> ./configure --disable-silent-rules --prefix=/tmp/makedepend20150508-25435-lz3vof/makedepend-1.0.
==> make install
==> Downloading http://xorg.freedesktop.org/releases/individual/util/util-macros-1.18.0.tar.bz2
######################################################################## 100.0%
==> ./configure --prefix=/tmp/makedepend20150508-25435-lz3vof/makedepend-1.0.5/xorg-macros
==> make install
==> ./configure --disable-silent-rules --prefix=/home/stanleycheung/.linuxbrew/Cellar/makedepend/1.0
==> make install
/home/stanleycheung/.linuxbrew/Cellar/makedepend/1.0.5: 7 files, 112K, built in 11 seconds
==> Installing openssl
==> Downloading https://www.openssl.org/source/openssl-1.0.2a.tar.gz
######################################################################## 100.0%
==> Downloading https://github.com/openssl/openssl/commit/6281abc796234.diff
######################################################################## 100.0%
==> Downloading https://github.com/openssl/openssl/commit/dfd3322d72a2.diff
######################################################################## 100.0%
==> Patching
patching file crypto/x509/x509_vfy.c
patching file crypto/x509/x509_vfy.c
patching file crypto/x509/x509_vfy.h
==> perl ./Configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/openssl/1.0.2a-1 --openssldir=/h
==> make depend
==> make
==> make test
==> make install MANDIR=/home/stanleycheung/.linuxbrew/Cellar/openssl/1.0.2a-1/share/man MANSUFFIX=s
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /home/stanleycheung/.linuxbrew/etc/openssl/certs

and run
  /home/stanleycheung/.linuxbrew/opt/openssl/bin/c_rehash

==> Downloading http://curl.haxx.se/ca/cacert.pem
######################################################################## 100.0%
==> Summary
/home/stanleycheung/.linuxbrew/Cellar/openssl/1.0.2a-1: 463 files, 16M, built in 3.4 minutes
==> Tapping Homebrew/dupes
Cloning into '/home/stanleycheung/.linuxbrew/Library/Taps/homebrew/homebrew-dupes'...
remote: Counting objects: 1673, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 1673 (delta 1), reused 0 (delta 0), pack-reused 1667
Receiving objects: 100% (1673/1673), 342.32 KiB | 0 bytes/s, done.
Resolving deltas: 100% (922/922), done.
Checking connectivity... done.
Warning: Could not create link for homebrew/dupes/bzip2, as it
conflicts with Homebrew/homebrew/bzip2. You will need to use the
fully-qualified name when referring this formula, e.g.
  brew install homebrew/dupes/bzip2
Tapped 38 formulae (61 files, 708K)
==> Installing unzip from homebrew/homebrew-dupes
==> Downloading https://downloads.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%2
######################################################################## 100.0%
==> make -f unix/Makefile macosx
==> make prefix=/home/stanleycheung/.linuxbrew/Cellar/unzip/6.0 MANDIR=/home/stanleycheung/.linuxbre
/home/stanleycheung/.linuxbrew/Cellar/unzip/6.0: 14 files, 436K, built in 13 seconds
==> Installing dependencies for protobuf: autoconf, xz, automake, libtool
==> Installing protobuf dependency: autoconf
==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/autoconf/2.69
==> make install
/home/stanleycheung/.linuxbrew/Cellar/autoconf/2.69: 66 files, 3.2M, built in 7 seconds
==> Installing protobuf dependency: xz
==> Downloading https://fossies.org/linux/misc/xz-5.2.1.tar.gz
######################################################################## 100.0%
==> ./configure --disable-silent-rules --prefix=/home/stanleycheung/.linuxbrew/Cellar/xz/5.2.1
==> make install
/home/stanleycheung/.linuxbrew/Cellar/xz/5.2.1: 65 files, 1.9M, built in 37 seconds
==> Installing protobuf dependency: automake
==> Downloading http://ftpmirror.gnu.org/automake/automake-1.15.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/automake/1.15
==> make install
/home/stanleycheung/.linuxbrew/Cellar/automake/1.15: 130 files, 3.3M, built in 6 seconds
==> Installing protobuf dependency: libtool
==> Downloading http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/libtool/2.4.6 --program-prefix=g --en
==> make install
==> Caveats
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.

==> Summary
/home/stanleycheung/.linuxbrew/Cellar/libtool/2.4.6: 69 files, 3.9M, built in 11 seconds
==> Installing protobuf
==> Downloading https://github.com/google/protobuf/archive/v3.0.0-alpha-2.tar.gz
######################################################################## 100.0%
==> ./autogen.sh
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/protobuf/3.0.0-alpha-2 --with-zlib
==> make
==> make install
==> Downloading https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-11861-gjae4i
==> Downloading https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.4.1.tar.
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-11861-gjae4i
==> Downloading https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.bz2
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-11861-gjae4i
==> Downloading https://pypi.python.org/packages/source/p/python-gflags/python-gflags-2.0.tar.gz
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-11861-gjae4i
==> Downloading https://pypi.python.org/packages/source/g/google-apputils/google-apputils-0.4.2.tar.
######################################################################## 100.0%
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-11861-gjae4i
==> python -c import setuptools... --no-user-cfg install --prefix=/home/stanleycheung/.linuxbrew/Cel
google/protobuf/pyext/descriptor.cc:33:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.
error: command '/usr/bin/gcc-4.8' failed with exit status 1

READ THIS: https://github.com/Homebrew/linuxbrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting

These open issues may also help:
New formula: protobuf-swift installation using homebrew (https://github.com/Homebrew/homebrew/pull/39101)
protobuf-c needs c++11 option (https://github.com/Homebrew/homebrew/issues/30320)
==> Tapping grpc/grpc
Cloning into '/home/stanleycheung/.linuxbrew/Library/Taps/grpc/homebrew-grpc'...
remote: Counting objects: 141, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 141 (delta 5), reused 0 (delta 0), pack-reused 124
Receiving objects: 100% (141/141), 20.55 KiB | 0 bytes/s, done.
Resolving deltas: 100% (44/44), done.
Checking connectivity... done.
Tapped 1 formula (27 files, 220K)
==> Installing grpc from grpc/homebrew-grpc
==> Installing grpc dependency: protobuf
==> Downloading https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.bz2
######################################################################## 100.0%
==> ./configure --prefix=/home/stanleycheung/.linuxbrew/Cellar/protobuf/2.6.1 --with-zlib
==> make
==> make install
==> Downloading https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
Already downloaded: /home/stanleycheung/.cache/Homebrew/protobuf--six-1.9.0.tar.gz
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-21457-1aw1le
==> Downloading https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.4.1.tar.
Already downloaded: /home/stanleycheung/.cache/Homebrew/protobuf--python-dateutil-2.4.1.tar.bz2
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-21457-1aw1le
==> Downloading https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.bz2
Already downloaded: /home/stanleycheung/.cache/Homebrew/protobuf--pytz-2014.10.tar.bz2
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-21457-1aw1le
==> Downloading https://pypi.python.org/packages/source/p/python-gflags/python-gflags-2.0.tar.gz
Already downloaded: /home/stanleycheung/.cache/Homebrew/protobuf--python-gflags-2.0.tar.gz
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-21457-1aw1le
==> Downloading https://pypi.python.org/packages/source/g/google-apputils/google-apputils-0.4.2.tar.
Already downloaded: /home/stanleycheung/.cache/Homebrew/protobuf--google-apputils-0.4.2.tar.gz
==> python -c import setuptools... --no-user-cfg install --prefix=/tmp/protobuf20150508-21457-1aw1le
==> python -c import setuptools... --no-user-cfg install --prefix=/home/stanleycheung/.linuxbrew/Cel
google/protobuf/pyext/descriptor.cc:33:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.
error: command '/usr/bin/gcc-4.8' failed with exit status 1

READ THIS: https://github.com/Homebrew/linuxbrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting

These open issues may also help:
New formula: protobuf-swift installation using homebrew (https://github.com/Homebrew/homebrew/pull/39101)
protobuf-c needs c++11 option (https://github.com/Homebrew/homebrew/issues/30320)
installing grpc python
/home/stanleycheung/python27/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Collecting grpcio
/home/stanleycheung/python27/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading grpcio-0.5.0a2.tar.gz (88kB)
    100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 90kB 1.7MB/s 
Collecting enum34==1.0.4 (from grpcio)
  Downloading enum34-1.0.4.tar.gz
Collecting futures==2.2.0 (from grpcio)
  Downloading futures-2.2.0-py2.py3-none-any.whl
Collecting protobuf==3.0.0-alpha-1 (from grpcio)
  Downloading protobuf-3.0.0-alpha-1.tar.gz (193kB)
    100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 196kB 2.3MB/s 
Requirement already satisfied (use --upgrade to upgrade): setuptools in ./lib/python2.7/site-packages (from protobuf==3.0.0-alpha-1->grpcio)
Installing collected packages: enum34, futures, protobuf, grpcio
  Running setup.py install for enum34
  Running setup.py install for protobuf
  Running setup.py install for grpcio
    Complete output from command /home/stanleycheung/python27/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-aXdxQQ/grpcio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0a5wc7-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/stanleycheung/python27/include/site/python2.7/grpcio:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/grpc
    copying grpc/__init__.py -> build/lib.linux-x86_64-2.7/grpc
    creating build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_face_test_case.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_links_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_datatypes.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_lonely_rear_link_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/fore.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_future_invocation_asynchronous_event_service_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_event_invocation_synchronous_event_service_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_blocking_invocation_inline_service_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_c_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/__init__.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/rear.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_low.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_proto_scenarios.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_common.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_low_test.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    copying grpc/_adapter/_test_links.py -> build/lib.linux-x86_64-2.7/grpc/_adapter
    creating build/lib.linux-x86_64-2.7/grpc/_junkdrawer
    copying grpc/_junkdrawer/math_pb2.py -> build/lib.linux-x86_64-2.7/grpc/_junkdrawer
    copying grpc/_junkdrawer/stock_pb2.py -> build/lib.linux-x86_64-2.7/grpc/_junkdrawer
    copying grpc/_junkdrawer/__init__.py -> build/lib.linux-x86_64-2.7/grpc/_junkdrawer
    creating build/lib.linux-x86_64-2.7/grpc/early_adopter
    copying grpc/early_adopter/implementations_test.py -> build/lib.linux-x86_64-2.7/grpc/early_adopter
    copying grpc/early_adopter/__init__.py -> build/lib.linux-x86_64-2.7/grpc/early_adopter
    copying grpc/early_adopter/implementations.py -> build/lib.linux-x86_64-2.7/grpc/early_adopter
    creating build/lib.linux-x86_64-2.7/grpc/framework
    copying grpc/framework/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework
    creating build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/interfaces.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/exceptions.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/_face_utilities.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/_reexport.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    copying grpc/framework/alpha/utilities.py -> build/lib.linux-x86_64-2.7/grpc/framework/alpha
    creating build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_interfaces.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/implementations_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/null.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/interfaces.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_ingestion.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_expiration.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_constants.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/exceptions.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_ends.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/interfaces_test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_emission.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_context.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_cancellation.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/in_memory.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_termination.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/implementations.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_transmission.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/util.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    copying grpc/framework/base/_reception.py -> build/lib.linux-x86_64-2.7/grpc/framework/base
    creating build/lib.linux-x86_64-2.7/grpc/framework/common
    copying grpc/framework/common/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/common
    copying grpc/framework/common/cardinality.py -> build/lib.linux-x86_64-2.7/grpc/framework/common
    copying grpc/framework/common/style.py -> build/lib.linux-x86_64-2.7/grpc/framework/common
    creating build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/_test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/future_invocation_asynchronous_event_service_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/_service.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/interfaces.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/_calls.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/exceptions.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/_control.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/event_invocation_synchronous_event_service_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/implementations.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/utilities.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/demonstration.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    copying grpc/framework/face/blocking_invocation_inline_service_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/face
    creating build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/event_invocation_synchronous_event_service_test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/stock_service.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/digest.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/interfaces.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/service.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/coverage.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/base_util.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/control.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/blocking_invocation_inline_service_test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/callback.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    copying grpc/framework/face/testing/serial.py -> build/lib.linux-x86_64-2.7/grpc/framework/face/testing
    creating build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/stream_testing.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/abandonment.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/stream_util.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/activated.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/callable_util.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/_later_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/stream.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/_timer_future.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/later.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/logging_pool.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/__init__.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/future.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    copying grpc/framework/foundation/_logging_pool_test.py -> build/lib.linux-x86_64-2.7/grpc/framework/foundation
    running build_ext
    building 'grpc._adapter._c' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/grpc
    creating build/temp.linux-x86_64-2.7/grpc/_adapter
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -I/home/stanleycheung/.linuxbrew/include -fPIC -I. -I/usr/include/python2.7 -c grpc/_adapter/_c.c -o build/temp.linux-x86_64-2.7/grpc/_adapter/_c.o
    grpc/_adapter/_c.c:34:20: fatal error: Python.h: No such file or directory
     #include <Python.h>
                        ^
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
    Command "/home/stanleycheung/python27/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-aXdxQQ/grpcio/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0a5wc7-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/stanleycheung/python27/include/site/python2.7/grpcio" failed with error code 1 in /tmp/pip-build-aXdxQQ/grpcio
(python27)stanleycheung@stanleycheung-test:~/python27$ 

ruby installation not working

@tbetbetbe for visibility

โœ— curl -fsSL https://goo.gl/getgrpc | bash -s ruby
Warning: Already tapped!
zlib is already installed
openssl is already installed
Warning: Already tapped!
google-protobuf is already installed
grpc is already installed
installing grpc ruby
Fetching: grpc-0.10.0.gem (100%)
Building native extensions with: '--with-grpc-dir=/usr/local'
This could take a while...
ERROR:  Error installing grpc:
    ERROR: Failed to build gem native extension.

    /Users/$user/.rbenv/versions/2.1.5/bin/ruby -r ./siteconf20150715-86487-wtwbpd.rb extconf.rb --with-grpc-dir=/usr/local
checking for dlopen() in -ldl... yes
checking for inflate() in -lz... yes
checking for gpr_now() in -lgpr... yes
checking for grpc_channel_destroy() in -lgrpc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling rb_byte_buffer.c
compiling rb_call.c
rb_call.c:134:66: error: missing field 'reserved' initializer [-Werror,-Wmissing-field-initializers]
    {GRPC_RB_GC_NOT_MARKED, GRPC_RB_GC_DONT_FREE, md_ary_datasize},
                                                                 ^
rb_call.c:142:78: error: missing field 'reserved' initializer [-Werror,-Wmissing-field-initializers]
    {GRPC_RB_GC_NOT_MARKED, grpc_rb_call_destroy, GRPC_RB_MEMSIZE_UNAVAILABLE},
                                                                             ^
rb_call.c:274:50: error: unused parameter 'key' [-Werror,-Wunused-parameter]
static int grpc_rb_md_ary_capacity_hash_cb(VALUE key, VALUE val,
                                                 ^
rb_call.c:349:64: error: unused parameter 'val' [-Werror,-Wunused-parameter]
static int grpc_rb_call_check_op_keys_hash_cb(VALUE key, VALUE val,
                                                               ^
4 errors generated.
make: *** [rb_call.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/$user/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/grpc-0.10.0 for inspection.
Results logged to /Users/$user/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/grpc-0.10.0/gem_make.out

homebrew nodejs install failure on jenkins

This is our regular Jenkins build on macos, installing gRPC nodejs via homebrew. Basically running this command: curl -fsSL https://goo.gl/getgrpc | bash -s nodejs, and it's giving this error.

I run the same command on my Mac machine and it runs fine. Could be an issue specific to the machine grpc-mac-node2?

https://grpc-testing.appspot.com/job/gRPC_distribution/dist_channel=homebrew,language=nodejs,platform=macos/lastBuild/console

installing grpc nodejs
npm ERR! tar.unpack untar error /Users/jenkinsnode2/.npm/grpc/0.11.1/package.tgz
npm ERR! Darwin 14.5.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "--global" "grpc"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! path /usr/local/lib/node_modules/grpc
npm ERR! code EACCES
npm ERR! errno -13

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/grpc'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/grpc']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/grpc',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/grpc',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:95:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /jenkins/workspace/gRPC_distribution/dist_channel/homebrew/language/nodejs/platform/macos/npm-debug.log
Build step 'Execute shell' marked build as failure
Finished: FAILURE

The homebrew installation script has already gone past the base grpc installation and is basically running this command

CXXFLAGS=-I${brew_root}/include LDFLAGS=-L${brew_root}/lib npm install --global grpc

This is supposed to be the 0.11.0 release.

How to properly re-install?

Tejass-MacBook-Pro:python-source tejas$ brew uninstall grpc --force
Tejass-MacBook-Pro:python-source tejas$ brew install grpc --with-plugins
==> Installing grpc from grpc/grpc
==> Downloading https://github.com/grpc/grpc/archive/release-0_15_0.tar.gz
Already downloaded: /Users/tejas/Library/Caches/Homebrew/grpc-0.15.0.tar.gz
==> git clone --branch=nanopb-0.3.5 https://github.com/nanopb/nanopb.git third_party/nanopb
==> make install prefix=/usr/local/Cellar/grpc/0.15.0
Last 15 lines from /Users/tejas/Library/Logs/Homebrew/grpc/02.make:
In file included from ./src/compiler/config.h:37:
include/grpc++/impl/codegen/config_protobuf.h:38:10: fatal error: 'google/protobuf/stubs/common.h' file not found
#include <google/protobuf/stubs/common.h>
         ^
1 error generated.
make: *** [/private/tmp/grpc-20160802-11099-13dihxq/grpc-release-0_15_0/objs/opt/src/compiler/objective_c_generator.o] Error 1
In file included from src/compiler/python_generator.cc:45:
In file included from ./src/compiler/config.h:37:
include/grpc++/impl/codegen/config_protobuf.h:38:10: fatal error: 'google/protobuf/stubs/common.h' file not found
#include <google/protobuf/stubs/common.h>
         ^
1 error generated.
make: *** [/private/tmp/grpc-20160802-11099-13dihxq/grpc-release-0_15_0/objs/opt/src/compiler/python_generator.o] Error 1
1 error generated.
make: *** [/private/tmp/grpc-20160802-11099-13dihxq/grpc-release-0_15_0/objs/opt/src/compiler/ruby_generator.o] Error 1

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
  https://github.com/grpc/homebrew-grpc/issues

These open issues may also help:
grpc++.h is missing https://github.com/grpc/homebrew-grpc/issues/68
grpc 0.14 not updated in homebrew https://github.com/grpc/homebrew-grpc/issues/76
new grpc version with ChannelCredentials not updated in homebrew https://github.com/grpc/homebrew-grpc/issues/72
grpc python installed with virtualenv, code complains no google.protobuf found on Mac OS X https://github.com/grpc/homebrew-grpc/issues/71
Add a test to formula to verify that gRPC built correctly https://github.com/grpc/homebrew-grpc/issues/2
Installer fails with "error: could not create '/usr/local/lib/python2.7/dist-packages/grpc': Permission denied" https://github.com/grpc/homebrew-grpc/issues/75

I was messing around with protobuf versions and tried to uninstall & reinstall, but I'm having trouble now. The installation previously worked, but I deleted /usr/local/include/google and /usr/local/bin/protoc`. Any idea how I can rid of everything and re-install w/ brew? Or how to fix this?

PHP unit tests breaks against linuxbrew installation of grpc core

So far, my PHP testing w/ homebrew had focused on the Hello World, and Route Guide application on the grpc-common side. And they work.

But if I run the PHP unit tests against the homebrew installation of grpc core, I got this error:

Starting test 'CallTest::testAddEmptyMetadata'.
.
Starting test 'CallTest::testAddSingleMetadata'.
.
Starting test 'CallTest::testAddMultiValueMetadata'.
.
Starting test 'CallTest::testAddSingleAndMultiValueMetadata'.
.
Starting test 'EndToEndTest::testSimpleRequestBody'.
.
Starting test 'EndToEndTest::testClientServerFullRequestResponse'.
.
Starting test 'SecureEndToEndTest::testSimpleRequestBody'.
php: symbol lookup error: /home/stanleycheung/.linuxbrew/lib/libgrpc.so.0: 
undefined symbol: SSL_CTX_set_alpn_select_cb

This does not seem to be release-related. The current grpc version being installed by homebrew is 0.9.0 but it does not seem to matter. I tried 0.9.0, 0.9.1 or upstream/master and they all fail the same way. I also made sure the PHP extension code is at the same level as core.

This error also does not happen if I compile grpc from source.

What I suspect is that there's a subtle difference on how openssl is compiled/installed. If I compile grpc from source, openssl is compiled from grpc/third_party/openssl (version 1.0.2a). If I install grpc via homebrew, openssl is installed via the dependency depends_on "openssl" (version 1.0.2c).

Doesn't install plugins on macOS sierra

I tried the below commands on macOS sierra 10.12.2 but the plugins didn't install as I had errors:

curl -fsSL https://goo.gl/getgrpc | bash -s -- --with-plugins
brew install --with-plugins grpc

sh-3.2# protoc --go_out=plugins=grpc:. *.proto
protoc-gen-go: program not found or is not executable
--go_out: protoc-gen-go: Plugin failed with status code 1.

I had to compile the protoc-gen-go manually to fix

Installing on brew package on Linux fails due to pkg-config problem?

Following the instructions to install on Wheezy without jessie backports fails:

$ brew tap grpc/grpc
==> Tapping grpc/grpc
Cloning into '/home/jjg/.linuxbrew/Library/Taps/grpc/homebrew-grpc'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 12 (delta 0), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (12/12), done.
Tapped 2 formulae (39 files, 296K)
$ brew install --without-libgrpc grpc
==> Installing grpc from grpc/homebrew-grpc
==> Tapping homebrew/dupes
Cloning into '/home/jjg/.linuxbrew/Library/Taps/homebrew/homebrew-dupes'...
remote: Counting objects: 42, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 42 (delta 0), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (42/42), done.
Tapped 0 formulae (102 files, 640K)
==> Installing dependencies for grpc/grpc/grpc: makedepend, zlib, openssl, pkg-config, xz, homebrew/dupes/m4, autoconf, automake, libtool, google-protobuf
==> Installing grpc/grpc/grpc dependency: makedepend
Error: /home/jjg/.linuxbrew/opt/pkg-config not present or broken
Please reinstall pkg-config. Sorry :(

Patching Error on Mac 10.10.5

==> Installing grpc from grpc/homebrew-grpc
==> Installing grpc/grpc/grpc dependency: google-protobuf
==> Downloading https://github.com/google/protobuf/archive/v3.0.0-beta-2.tar.gz
Already downloaded: /Library/Caches/Homebrew/google-protobuf-3.0.0-beta-2.tar.gz
==> Downloading https://raw.githubusercontent.com/grpc/homebrew-grpc/master/patches/google_protobuf_4472b4a_Fixed-assignment-syntax-error.patch
Already downloaded: /Library/Caches/Homebrew/google-protobuf--patch-47cbaaf7e782b09edb5dcf10ff6b7892af8f506df4d82f71877957de3552afa4.patch
==> Patching
patching file python/google/protobuf/pyext/message.cc
Hunk #1 FAILED at 340.
1 out of 1 hunk FAILED -- saving rejects to file python/google/protobuf/pyext/message.cc.rej
Error: Failure while executing: /usr/bin/patch -g 0 -f -p1 -i /private/tmp/google-protobuf--patch20160226-33331-e8ktnb/google_protobuf_4472b4a_Fixed-assignment-syntax-error.patch

homebrew installation on mac broke after upgrade to 0.10

Not sure if it's just my system, but after we upgrade the grpc formula to 0.10 #44, the mac homebrew installation failed

Warning: Already tapped!
zlib is already installed
openssl is already installed
Warning: Already tapped!
google-protobuf is already installed
==> Installing grpc from grpc/homebrew-grpc
==> Downloading https://github.com/grpc/grpc/archive/release-0_10_0.tar.gz
Already downloaded: /Library/Caches/Homebrew/grpc-0.10.0.tar.gz
==> make install install_grpc_csharp_ext prefix=/Users/stanleycheung/homebrew/Cellar/grpc/0.10.0

If you need information about why these tests failed, run:

  make run_dep_checks


READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/grpc/homebrew-grpc/issues

Compiling the release-0_10 branch from source works though. And the formula works on linuxbrew.

If I run make run_dep_checks on the release-0_10 branch on a mac I got this

stanleycheung@stanleycheung-macbookpro:~/grpc$ make run_dep_checks
pkg-config --atleast-version=1.0.2 openssl || true
pkg-config --atleast-version=1.0.1 openssl || true
pkg-config --exists zlib || true
cc -std=c89 -pedantic -D_THREAD_SAFE -I/Users/stanleycheung/homebrew/Cellar/google-protobuf/3.0.0-alpha-3/include  -I/Users/stanleycheung/homebrew/Cellar/openssl/1.0.2d/include  -O2 -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter -fPIC -I. -Iinclude -I./gens -I/usr/local/ssl/include -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\"   -o `mktemp /tmp/test-out-XXXXXX` test/build/perftools.c -lprofiler -L/Users/stanleycheung/homebrew/Cellar/openssl/1.0.2d/lib   -g -fPIC -Llibs/opt -L/usr/local/ssl/lib -L/usr/local/lib  -L/usr/lib  || true
test/build/perftools.c:34:10: fatal error: 'gperftools/profiler.h' file not found
#include <gperftools/profiler.h>
         ^
1 error generated.
pkg-config --atleast-version=3.0.0-alpha-3 protobuf || true
protoc --version | grep -q libprotoc.3 || true

The output looks slightly different from the release-0_9 branch but they have the same gperftools/profiler.h error and doesn't seem to affect the outcome

linuxbrew: conflicts with protobuf even if using `brew install grpc/grpc/grpc`

@stanley-cheung
I'm on linuxbrew in case that's relevant.
This formula conflicts with protobuf and anything that depends on it, eg mosh.

For example (taken from https://github.com/Linuxbrew/homebrew-core/pull/1577)

#after fixing mosh by adding `depends_on "openssl" unless OS.mac?` (cf pull above) 
$brew install mosh
#works

$which -a protoc
/home/timothee/.linuxbrew//bin/protoc

$protoc --version
libprotoc 3.1.0

$brew tap grpc/grpc
$brew install --with-plugins grpc
==> Installing grpc from grpc/grpc
==> Installing dependencies for grpc/grpc/grpc: google-protobuf
==> Installing grpc/grpc/grpc dependency: google-protobuf
Error: Cannot install grpc/grpc/google-protobuf because conflicting formulae are installed.

  protobuf: because this formula is a customized version of protobuf formula

Please `brew unlink protobuf` before continuing.

$brew unlink protobuf
$brew install --with-plugins grpc #ok

$brew reinstall mosh
Error: You must `brew link protobuf` before mobile-shell can be installed
$brew link protobuf
Linking /home/timothee/ubuntu1404/temp/brew/Cellar/protobuf/3.1.0...
Error: Could not symlink bin/protoc
Target /home/timothee/ubuntu1404/temp/brew/bin/protoc
is a symlink belonging to google-protobuf. You can unlink it:
  brew unlink google-protobuf

To force the link and overwrite all conflicting files:
  brew link --overwrite protobuf

To list all files that would be deleted:
  brew link --overwrite --dry-run protobuf

$brew unlink google-protobuf
$brew link protobuf
$brew reinstall mosh #works but we lost grpc and google-protobuf

Furthermore, https://github.com/grpc/homebrew-grpc/blob/master/README.md says:

If the formula here conflicts with one from Homebrew/homebrew or another tap, you can do brew install grpc/grpc/.

However this is also broken:

brew install --with-plugins grpc/grpc/grpc

==> Installing grpc from grpc/grpc
==> Installing dependencies for grpc/grpc/grpc: google-protobuf
==> Installing grpc/grpc/grpc dependency: google-protobuf
Error: Cannot install grpc/grpc/google-protobuf because conflicting formulae are installed.

  protobuf: because this formula is a customized version of protobuf formula

Please `brew unlink protobuf` before continuing.

Linux nodejs install looks OK

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash
nvm install 0.10
stanleycheung@stanleycheung-test:~$ curl -fsSL https://goo.gl/getgrpc | bash -s nodejs
pkg-config is already installed
openssl is already installed
protobuf is already installed
Warning: Already tapped!
grpc is already installed
installing grpc nodejs
|
> [email protected] install /home/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc
> node-gyp rebuild

make: Entering directory `/home/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc/build'
  CXX(target) Release/obj.target/grpc/ext/byte_buffer.o
  CXX(target) Release/obj.target/grpc/ext/call.o
  CXX(target) Release/obj.target/grpc/ext/channel.o
  CXX(target) Release/obj.target/grpc/ext/completion_queue_async_worker.o
  CXX(target) Release/obj.target/grpc/ext/credentials.o
  CXX(target) Release/obj.target/grpc/ext/node_grpc.o
  CXX(target) Release/obj.target/grpc/ext/server.o
  CXX(target) Release/obj.target/grpc/ext/server_credentials.o
  CXX(target) Release/obj.target/grpc/ext/timeval.o
  SOLINK_MODULE(target) Release/obj.target/grpc.node
  SOLINK_MODULE(target) Release/obj.target/grpc.node: Finished
  COPY Release/grpc.node
make: Leaving directory `/home/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc/build'
[email protected] /home/stanleycheung/.nvm/v0.10.38/lib/node_modules/grpc
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ””โ”€โ”€ [email protected] ([email protected], [email protected])
stanleycheung@stanleycheung-test:~$ 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.