Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installing PHP grpc with pecl fails on MacOS 12.6 #68

Open
schwern opened this issue Nov 17, 2022 · 1 comment
Open

Installing PHP grpc with pecl fails on MacOS 12.6 #68

schwern opened this issue Nov 17, 2022 · 1 comment
Labels
bug Something isn't working

Comments

@schwern
Copy link
Contributor

schwern commented Nov 17, 2022

Installing the PHP grpc extension how Google says to do it with pecl failed. OpenSSL, of course.

Maybe we can provide a work around? Or a suggestion to use homebrew?

$ pecl version
PEAR Version: 1.10.13
PHP Version: 8.1.11
Zend Engine Version: 4.1.11
Running on: Darwin Windhund.local 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:17:10 PDT 2022; root:xnu-8020.140.49~2/RELEASE_X86_64 x86_64

$ sudo pecl install grpc
...
E_CONFIG_H -std=c11 -g -O2 -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -DGRPC_XDS_USER_AGENT_NAME_SUFFIX=\"PHP\" -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX=\"1.50.0\" -DZEND_COMPILE_DL_EXT=1 -c /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c -MMD -MF third_party/boringssl-with-bazel/err_data.dep -MT third_party/boringssl-with-bazel/err_data.lo  -fno-common -DPIC -o third_party/boringssl-with-bazel/.libs/err_data.o
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:17:
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:187:9: warning: 'OPENSSL_VERSION_NUMBER' macro redefined [-Wmacro-redefined]
#define OPENSSL_VERSION_NUMBER 0x1010107f
        ^
/opt/local/include/openssl/opensslv.h:99:10: note: previous definition is here
# define OPENSSL_VERSION_NUMBER          \
         ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:21:
/opt/local/include/openssl/e_os2.h:183:11: warning: 'OPENSSL_EXPORT' macro redefined [-Wmacro-redefined]
#  define OPENSSL_EXPORT extern
          ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:222:9: note: previous definition is here
#define OPENSSL_EXPORT
        ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:28:
/opt/local/include/openssl/types.h:62:13: error: typedef redefinition with different types ('int' vs 'struct asn1_null_st')
typedef int ASN1_NULL;
            ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:333:29: note: previous definition is here
typedef struct asn1_null_st ASN1_NULL;
                            ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:28:
/opt/local/include/openssl/types.h:103:26: error: typedef redefinition with different types ('struct evp_md_st' vs 'struct env_md_st')
typedef struct evp_md_st EVP_MD;
                         ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:403:26: note: previous definition is here
typedef struct env_md_st EVP_MD;
                         ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:28:
/opt/local/include/openssl/types.h:104:30: error: typedef redefinition with different types ('struct evp_md_ctx_st' vs 'struct env_md_ctx_st')
typedef struct evp_md_ctx_st EVP_MD_CTX;
                             ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:402:30: note: previous definition is here
typedef struct env_md_ctx_st EVP_MD_CTX;
                             ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:28:
/opt/local/include/openssl/types.h:130:34: error: typedef redefinition with different types ('struct evp_Encode_Ctx_st' vs 'struct evp_encode_ctx_st')
typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX;
                                 ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:407:34: note: previous definition is here
typedef struct evp_encode_ctx_st EVP_ENCODE_CTX;
                                 ^
In file included from /private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:18:
In file included from /opt/local/include/openssl/err.h:29:
In file included from /opt/local/include/openssl/bio.h:30:
/opt/local/include/openssl/crypto.h:308:3: error: typedef redefinition with different types ('struct crypto_threadid_st' vs 'int')
} CRYPTO_THREADID;
  ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/base.h:329:13: note: previous definition is here
typedef int CRYPTO_THREADID;
            ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:33:1: error: static_assert failed due to requirement '13 == 12' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_ASN1 == 12, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:34:1: error: static_assert failed due to requirement '14 == 13' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_CONF == 13, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:35:1: error: static_assert failed due to requirement '15 == 14' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_CRYPTO == 14, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:36:1: error: static_assert failed due to requirement '16 == 15' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_EC == 15, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:37:1: error: static_assert failed due to requirement '20 == 16' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_SSL == 16, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:38:1: error: static_assert failed due to requirement '32 == 17' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_BIO == 17, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:39:1: error: static_assert failed due to requirement '33 == 18' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_PKCS7 == 18, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:40:23: error: use of undeclared identifier 'ERR_LIB_PKCS8'
OPENSSL_STATIC_ASSERT(ERR_LIB_PKCS8 == 19, "library value changed");
                      ^
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:41:1: error: static_assert failed due to requirement '34 == 20' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_X509V3 == 20, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:42:1: error: static_assert failed due to requirement '36 == 21' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_RAND == 21, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:43:1: error: static_assert failed due to requirement '38 == 22' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_ENGINE == 22, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:44:1: error: static_assert failed due to requirement '39 == 23' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_OCSP == 23, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:45:1: error: static_assert failed due to requirement '40 == 24' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_UI == 24, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/err_data.c:46:1: error: static_assert failed due to requirement '41 == 25' "library value changed"
OPENSSL_STATIC_ASSERT(ERR_LIB_COMP == 25, "library value changed");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include/openssl/type_check.h:75:42: note: expanded from macro 'OPENSSL_STATIC_ASSERT'
#define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
                                         ^              ~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.
make: *** [third_party/boringssl-with-bazel/err_data.lo] Error 1
ERROR: `make' failed
@schwern schwern added the bug Something isn't working label Nov 17, 2022
@schwern schwern changed the title Installing PHP grpc fails on MacOS 12.6 Installing PHP grpc with pecl fails on MacOS 12.6 Nov 17, 2022
@schwern
Copy link
Contributor Author

schwern commented Nov 17, 2022

I installed the MacPorts grpc package at 1.48.0, and now I get a different error from pecl.

 g++ -I. -I/private/tmp/pear/install/grpc -I/private/tmp/pear/install/pear-build-rootw2dsld/grpc-1.50.0/include -I/private/tmp/pear/install/pear-build-rootw2dsld/grpc-1.50.0/main -I/private/tmp/pear/install/grpc -I/opt/local/include/php81/php -I/opt/local/include/php81/php/main -I/opt/local/include/php81/php/TSRM -I/opt/local/include/php81/php/Zend -I/opt/local/include/php81/php/ext -I/opt/local/include/php81/php/ext/date/lib -I/opt/local/include -I/private/tmp/pear/install/grpc/include -I/private/tmp/pear/install/grpc/src/core/ext/upb-generated -I/private/tmp/pear/install/grpc/src/core/ext/upbdefs-generated -I/private/tmp/pear/install/grpc/src/php/ext/grpc -I/private/tmp/pear/install/grpc/third_party/abseil-cpp -I/private/tmp/pear/install/grpc/third_party/address_sorting/include -I/private/tmp/pear/install/grpc/third_party/boringssl-with-bazel/src/include -I/private/tmp/pear/install/grpc/third_party/re2 -I/private/tmp/pear/install/grpc/third_party/upb -I/private/tmp/pear/install/grpc/third_party/xxhash -DHA
VE_CONFIG_H -std=c++14 -fno-exceptions -fno-rtti -g -O2 -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -DGRPC_XDS_USER_AGENT_NAME_SUFFIX=\"PHP\" -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX=\"1.50.0\" -DZEND_COMPILE_DL_EXT=1 -c /private/tmp/pear/install/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc -MMD -MF src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.dep -MT src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.lo  -fno-common -DPIC -o src/core/ext/filters/client_channel/lb_policy/grpclb/.libs/grpclb.o
/private/tmp/pear/install/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc:1399:11: error: use of undeclared identifier 'GRPC_ARG_EXPERIMENTAL_GRPCLB_CHANNEL_ARGS'
          GRPC_ARG_EXPERIMENTAL_GRPCLB_CHANNEL_ARGS);
          ^
1 error generated.
make: *** [src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.lo] Error 1
ERROR: `make' failed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant