8fc40b5502
The script now takes two prompt for user name and password. One single input redirection no longer works.
67 lines
1.6 KiB
Bash
Executable File
67 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# DO NOT use this script manually! Called by docker.
|
|
|
|
set -ex
|
|
|
|
# Print usage and fail.
|
|
function usage() {
|
|
echo "Usage: protobuf_optimized_pip.sh PROTOBUF_VERSION" >&2
|
|
exit 1 # Causes caller to exit because we use -e.
|
|
}
|
|
|
|
# Build wheel
|
|
function build_wheel() {
|
|
PYTHON_VERSION=$1
|
|
PYTHON_BIN=/opt/python/${PYTHON_VERSION}/bin/python
|
|
|
|
$PYTHON_BIN setup.py bdist_wheel --cpp_implementation --compile_static_extension
|
|
auditwheel repair dist/protobuf-${PROTOBUF_VERSION}-${PYTHON_VERSION}-linux_x86_64.whl
|
|
}
|
|
|
|
# Validate arguments.
|
|
if [ $0 != ./protobuf_optimized_pip.sh ]; then
|
|
echo "Please run this script from the directory in which it is located." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ $# -lt 1 ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
PROTOBUF_VERSION=$1
|
|
PYPI_USERNAME=$2
|
|
PYPI_PASSWORD=$3
|
|
|
|
DIR=${PWD}/'protobuf-python-build'
|
|
PYTHON_VERSIONS=('cp27-cp27mu' 'cp33-cp33m' 'cp34-cp34m' 'cp35-cp35m' 'cp36-cp36m')
|
|
|
|
mkdir -p ${DIR}
|
|
cd ${DIR}
|
|
curl -SsL -O https://github.com/google/protobuf/archive/v${PROTOBUF_VERSION}.tar.gz
|
|
tar xzf v${PROTOBUF_VERSION}.tar.gz
|
|
cd $DIR/protobuf-${PROTOBUF_VERSION}
|
|
|
|
# Autoconf on centos 5.11 cannot recognize AC_PROG_OBJC.
|
|
sed -i '/AC_PROG_OBJC/d' configure.ac
|
|
sed -i 's/conformance\/Makefile//g' configure.ac
|
|
|
|
# Use the /usr/bin/autoconf and related tools to pick the correct aclocal macros
|
|
export PATH="/usr/bin:$PATH"
|
|
|
|
# Build protoc
|
|
./autogen.sh
|
|
CXXFLAGS="-fPIC -g -O2" ./configure
|
|
make -j8
|
|
export PROTOC=$DIR/src/protoc
|
|
|
|
cd python
|
|
|
|
for PYTHON_VERSION in "${PYTHON_VERSIONS[@]}"
|
|
do
|
|
build_wheel $PYTHON_VERSION
|
|
done
|
|
|
|
/opt/python/cp27-cp27mu/bin/twine upload wheelhouse/*
|