From 115144fce9d97143bcb77ee4bdab5b19e61f6f82 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 12 Feb 2020 18:12:28 -0800 Subject: [PATCH] python3-grpcio: Upgrade to 1.27.1 Merge inc file into bb, there are no other users of it Delete gettid patch, fixed differenty upstream Add code to use cross compiler in setup.py Define GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY so it does not use SYS_clock_gettime syscalls since it does not work when 64bit time_t is used on 32bit arches Signed-off-by: Khem Raj --- ...-Do-not-mix-C-and-C-compiler-options.patch | 40 ------------ .../python/python-grpcio/gettid.patch | 26 -------- ...-Do-not-mix-C-and-C-compiler-options.patch | 64 +++++++++++++++++++ .../ppc-boringssl-support.patch | 2 +- .../riscv64_support.patch | 2 +- .../python/python3-grpcio_1.19.0.bb | 2 - ...on-grpcio.inc => python3-grpcio_1.27.1.bb} | 16 ++--- 7 files changed, 73 insertions(+), 79 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch delete mode 100644 meta-python/recipes-devtools/python/python-grpcio/gettid.patch create mode 100644 meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch rename meta-python/recipes-devtools/python/{python-grpcio => python3-grpcio}/ppc-boringssl-support.patch (94%) rename meta-python/recipes-devtools/python/{python-grpcio => python3-grpcio}/riscv64_support.patch (93%) delete mode 100644 meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb rename meta-python/recipes-devtools/python/{python-grpcio.inc => python3-grpcio_1.27.1.bb} (67%) diff --git a/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch deleted file mode 100644 index f17f048de..000000000 --- a/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 4 Aug 2017 09:04:07 -0700 -Subject: [PATCH] setup.py: Do not mix C and C++ compiler options - -EXTRA_ENV_COMPILE_ARGS is used both with CC and CXX -so using -std=c++11 or -std=gnu99 together will cause -build time errors espcially with clang - -error: invalid argument '-std=gnu99' not allowed with 'C++' - -gcc7 ( defaults are -std=gnu11 and -std=gnu++14 ) - as well clang default to these standards mode or newer -anyway - -Signed-off-by: Khem Raj ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/setup.py -+++ b/setup.py -@@ -145,7 +145,7 @@ ENABLE_DOCUMENTATION_BUILD = os.environ. - EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None) - EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None) - if EXTRA_ENV_COMPILE_ARGS is None: -- EXTRA_ENV_COMPILE_ARGS = ' -std=c++11' -+ EXTRA_ENV_COMPILE_ARGS = "" - if 'win32' in sys.platform and sys.version_info < (3, 5): - EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot' - # We use define flags here and don't directly add to DEFINE_MACROS below to -@@ -157,7 +157,7 @@ if EXTRA_ENV_COMPILE_ARGS is None: - else: - EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64' - elif "linux" in sys.platform: -- EXTRA_ENV_COMPILE_ARGS += ' -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions' -+ EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' - elif "darwin" in sys.platform: - EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' - EXTRA_ENV_COMPILE_ARGS += ' -DPB_FIELD_32BIT' diff --git a/meta-python/recipes-devtools/python/python-grpcio/gettid.patch b/meta-python/recipes-devtools/python/python-grpcio/gettid.patch deleted file mode 100644 index fb15cf7f9..000000000 --- a/meta-python/recipes-devtools/python/python-grpcio/gettid.patch +++ /dev/null @@ -1,26 +0,0 @@ -use glibc provided gettid API for glibc 2.30+ - -glibc 2.30 introduced this function see [1] -so it's best to detect it -and provide fallback only if it's not present - -[1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- a/src/core/lib/gpr/log_linux.cc -+++ b/src/core/lib/gpr/log_linux.cc -@@ -40,7 +40,13 @@ - #include - #include - -+#if defined(__GLIBC__) -+#if !__GLIBC_PREREQ(2,29) - static long gettid(void) { return syscall(__NR_gettid); } -+#endif -+#else -+static long gettid(void) { return syscall(__NR_gettid); } -+#endif - - void gpr_log(const char* file, int line, gpr_log_severity severity, - const char* format, ...) { diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch new file mode 100644 index 000000000..131daace0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch @@ -0,0 +1,64 @@ +From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 4 Aug 2017 09:04:07 -0700 +Subject: [PATCH] setup.py: Do not mix C and C++ compiler options + +EXTRA_ENV_COMPILE_ARGS is used both with CC and CXX +so using -std=c++11 or -std=gnu99 together will cause +build time errors espcially with clang + +error: invalid argument '-std=gnu99' not allowed with 'C++' + +gcc7 ( defaults are -std=gnu11 and -std=gnu++14 ) + as well clang default to these standards mode or newer +anyway + +Signed-off-by: Khem Raj +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/setup.py ++++ b/setup.py +@@ -144,9 +144,10 @@ ENABLE_DOCUMENTATION_BUILD = os.environ. + + def check_linker_need_libatomic(): + """Test if linker on system needs libatomic.""" ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' + code_test = (b'#include \n' + + b'int main() { return std::atomic{}; }') +- cc_test = subprocess.Popen(['cc', '-x', 'c++', '-std=c++11', '-'], ++ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c++', '-std=c++11', '-'], + stdin=PIPE, + stdout=PIPE, + stderr=PIPE) +@@ -163,7 +164,7 @@ def check_linker_need_libatomic(): + EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None) + EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None) + if EXTRA_ENV_COMPILE_ARGS is None: +- EXTRA_ENV_COMPILE_ARGS = ' -std=c++11' ++ EXTRA_ENV_COMPILE_ARGS = ' ' + if 'win32' in sys.platform: + if sys.version_info < (3, 5): + EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot' +@@ -180,7 +181,7 @@ if EXTRA_ENV_COMPILE_ARGS is None: + # available dynamically + EXTRA_ENV_COMPILE_ARGS += ' /MT' + elif "linux" in sys.platform: +- EXTRA_ENV_COMPILE_ARGS += ' -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions' ++ EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' + elif "darwin" in sys.platform: + EXTRA_ENV_COMPILE_ARGS += ' -stdlib=libc++ -fvisibility=hidden -fno-wrapv -fno-exceptions' + +--- a/src/python/grpcio/commands.py ++++ b/src/python/grpcio/commands.py +@@ -216,7 +216,8 @@ class BuildExt(build_ext.build_ext): + when invoked in C mode. GCC is okay with this, while clang is not. + """ + # TODO(lidiz) Remove the generated a.out for success tests. +- cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++11', '-'], ++ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'cc' ++ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c', '-std=c++11', '-'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) diff --git a/meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch b/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch similarity index 94% rename from meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch rename to meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch index 6435abbe6..8ac2aef8c 100644 --- a/meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch +++ b/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch @@ -5,7 +5,7 @@ Signed-off-by: Khem Raj --- a/third_party/boringssl/include/openssl/base.h +++ b/third_party/boringssl/include/openssl/base.h -@@ -95,6 +95,9 @@ extern "C" { +@@ -99,6 +99,9 @@ extern "C" { #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN) #define OPENSSL_64_BIT #define OPENSSL_PPC64LE diff --git a/meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch b/meta-python/recipes-devtools/python/python3-grpcio/riscv64_support.patch similarity index 93% rename from meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch rename to meta-python/recipes-devtools/python/python3-grpcio/riscv64_support.patch index fef7d9e75..b55d50bde 100644 --- a/meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch +++ b/meta-python/recipes-devtools/python/python3-grpcio/riscv64_support.patch @@ -4,7 +4,7 @@ Upstream-Status: Pending Signed-off-by: Khem Raj --- a/third_party/boringssl/include/openssl/base.h +++ b/third_party/boringssl/include/openssl/base.h -@@ -104,6 +104,9 @@ extern "C" { +@@ -108,6 +108,9 @@ extern "C" { #elif defined(__mips__) && defined(__LP64__) #define OPENSSL_64_BIT #define OPENSSL_MIPS64 diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb deleted file mode 100644 index d4720b4b8..000000000 --- a/meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb +++ /dev/null @@ -1,2 +0,0 @@ -inherit setuptools3 -require python-grpcio.inc diff --git a/meta-python/recipes-devtools/python/python-grpcio.inc b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb similarity index 67% rename from meta-python/recipes-devtools/python/python-grpcio.inc rename to meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb index c5762b26b..bc2b70cf8 100644 --- a/meta-python/recipes-devtools/python/python-grpcio.inc +++ b/meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb @@ -1,29 +1,27 @@ DESCRIPTION = "Google gRPC" HOMEPAGE = "http://www.grpc.io/" SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -DEPENDS_append = "${PYTHON_PN}-protobuf" - -FILESEXTRAPATHS_prepend := "${THISDIR}/python-grpcio:" +DEPENDS += "${PYTHON_PN}-protobuf" SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ file://ppc-boringssl-support.patch \ file://riscv64_support.patch \ - file://gettid.patch \ " +SRC_URI[md5sum] = "ccaf4e7eb4f031d926fb80035d193b98" +SRC_URI[sha256sum] = "a899725d34769a498ecd3be154021c4368dd22bdc69473f6ec46779696f626c4" RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \ ${PYTHON_PN}-setuptools \ ${PYTHON_PN}-six \ " -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - +inherit setuptools3 inherit pypi -SRC_URI[md5sum] = "188565f150f34d1927b87e014f0f4b73" -SRC_URI[sha256sum] = "2ddbca16c2e7b3f2ffc6e34c7cfa6886fb01de9f156ad3f77b72ad652d632097" +export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1" CLEANBROKEN = "1"