From 2fffff8320a7afd0979300b2a9baadc72ca82f53 Mon Sep 17 00:00:00 2001 From: AN Long Date: Thu, 23 Sep 2021 06:09:39 +0800 Subject: [PATCH 1/6] Add python-requires in setup.py (#8989) * Add python-requires in setup.py * Update setup.py --- python/setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/setup.py b/python/setup.py index f639732baf71..50fd5be4a750 100755 --- a/python/setup.py +++ b/python/setup.py @@ -308,4 +308,5 @@ def get_option_from_sys_argv(option_str): }, install_requires=install_requires, ext_modules=ext_module_list, + python_requires='>=3.5', ) From 151e632bac75f6179043655ae54aa6f835508e72 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 23 Sep 2021 15:08:32 -0700 Subject: [PATCH 2/6] Fix dist install test by ensuring that we use Python 3 (#9011) * Fix dist install test by ensuring that we use Python 3 Now that we have dropped Python 2 support, we need to make sure this install test uses Python 3. * Update Docker image to install Python 3 version of setuptools * Run pip3 instead of pip --- kokoro/linux/dockerfile/test/java_stretch/Dockerfile | 4 ++-- tests.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kokoro/linux/dockerfile/test/java_stretch/Dockerfile b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile index 3e72046f477a..b9f562a2b498 100644 --- a/kokoro/linux/dockerfile/test/java_stretch/Dockerfile +++ b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile @@ -24,7 +24,7 @@ RUN apt-get update && apt-get install -y \ maven \ openjdk-8-jdk \ # Python dependencies - python-setuptools \ - python-pip \ + python3-setuptools \ + python3-pip \ virtualenv \ && apt-get clean diff --git a/tests.sh b/tests.sh index 1955b7bdf935..5dc2eb6ff809 100755 --- a/tests.sh +++ b/tests.sh @@ -112,8 +112,8 @@ build_dist_install() { virtualenv --no-site-packages venv source venv/bin/activate pushd python - python setup.py clean build sdist - pip install dist/protobuf-*.tar.gz + python3 setup.py clean build sdist + pip3 install dist/protobuf-*.tar.gz popd deactivate rm -rf python/venv From 0e7a35f24bb3eef02bd657aae867ed58ca5a74e3 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Wed, 29 Sep 2021 13:41:33 -0700 Subject: [PATCH 3/6] Update dist_install test to work around Python issue googletest uses a Python script in its build which is not compatible with Python 3. Unfortunately we can't easily upgrade googletest right now, so this commit works around the problem by putting a python symlink pointing to Python 2 in the $PATH. --- tests.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests.sh b/tests.sh index 5dc2eb6ff809..71635f9f7f4d 100755 --- a/tests.sh +++ b/tests.sh @@ -88,6 +88,18 @@ build_cpp_distcheck() { } build_dist_install() { + # Create a symlink pointing to python2 and put it at the beginning of $PATH. + # This is necessary because the googletest build system involves a Python + # script that is not compatible with Python 3. More recent googletest + # versions have fixed this, but they have also removed the autotools build + # system support that we rely on. This is a temporary workaround to keep the + # googletest build working when the default python binary is Python 3. + mkdir tmp || true + pushd tmp + ln -s /usr/bin/python2 ./python + popd + PATH=$PWD/tmp:$PATH + # Initialize any submodules. git submodule update --init --recursive ./autogen.sh From 0333cb77de63e255eb6f07bb496ad03c90ed7d5e Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Fri, 24 Sep 2021 14:43:58 -0700 Subject: [PATCH 4/6] Update ruby/travis-test.sh to print commands --- ruby/travis-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/travis-test.sh b/ruby/travis-test.sh index 8980395f78b0..965782a6158d 100755 --- a/ruby/travis-test.sh +++ b/ruby/travis-test.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Exit on any error. -set -e +set -ex test_version() { version=$1 From 55b0e11f528e41dc96ad5902fb5abc5b153486c9 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 30 Sep 2021 13:16:53 -0700 Subject: [PATCH 5/6] Fix Ruby tests on Mac It appears that this extra conditional in travis-test.sh is no longer necessary, and in fact we need to avoid using a custom version of OpenSSL since that is causing its own error. --- ruby/travis-test.sh | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/ruby/travis-test.sh b/ruby/travis-test.sh index 965782a6158d..b57d8b2db973 100755 --- a/ruby/travis-test.sh +++ b/ruby/travis-test.sh @@ -18,7 +18,7 @@ test_version() { rake gc_test && cd ../conformance && make test_jruby && cd ../ruby/compatibility_tests/v3.0.0 && ./test.sh" - elif [ "$version" == "ruby-2.6.0" -o "$version" == "ruby-2.7.0" -o "$version" == "ruby-3.0.2" ] ; then + else bash --login -c \ "rvm install $version && rvm use $version && \ which ruby && \ @@ -29,19 +29,6 @@ test_version() { cd ../conformance && make ${RUBY_CONFORMANCE} && cd ../ruby/compatibility_tests/v3.0.0 && cp -R ../../lib lib && ./test.sh" - else - # Recent versions of OSX have deprecated OpenSSL, so we have to explicitly - # provide a path to the OpenSSL directory installed via Homebrew. - bash --login -c \ - "rvm install $version --with-openssl-dir=`brew --prefix openssl` && \ - rvm use $version && \ - which ruby && \ - git clean -f && \ - gem install bundler -v 1.17.3 && bundle && \ - rake test && - rake gc_test && - cd ../conformance && make ${RUBY_CONFORMANCE} && - cd ../ruby/compatibility_tests/v3.0.0 && ./test.sh" fi } From 5378c9a7105d8d2a69b9e587797e1223bb0986d0 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 30 Sep 2021 14:39:12 -0700 Subject: [PATCH 6/6] Use the stable version of rvm I am hoping this will fix the error we are getting as described here: https://github.com/rvm/rvm/issues/5014 --- kokoro/macos/prepare_build_macos_rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/macos/prepare_build_macos_rc b/kokoro/macos/prepare_build_macos_rc index dcd17f330c12..2db706b12c47 100755 --- a/kokoro/macos/prepare_build_macos_rc +++ b/kokoro/macos/prepare_build_macos_rc @@ -85,5 +85,5 @@ if [[ "${KOKORO_INSTALL_RVM:-}" == "yes" ]] ; then curl -sSL https://rvm.io/mpapis.asc | gpg --import - curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - - curl -sSL https://get.rvm.io | bash -s master --ruby + curl -sSL https://get.rvm.io | bash -s stable --ruby fi