diff options
Diffstat (limited to 'protoc-artifacts')
-rw-r--r-- | protoc-artifacts/Dockerfile | 22 | ||||
-rw-r--r-- | protoc-artifacts/README.md | 8 | ||||
-rwxr-xr-x | protoc-artifacts/build-protoc.sh | 6 | ||||
-rwxr-xr-x | protoc-artifacts/build-zip.sh | 4 | ||||
-rw-r--r-- | protoc-artifacts/pom.xml | 4 | ||||
-rwxr-xr-x | protoc-artifacts/scl-enable-devtoolset.sh | 13 |
6 files changed, 43 insertions, 14 deletions
diff --git a/protoc-artifacts/Dockerfile b/protoc-artifacts/Dockerfile index 43e6863c..c346586b 100644 --- a/protoc-artifacts/Dockerfile +++ b/protoc-artifacts/Dockerfile @@ -11,7 +11,9 @@ RUN yum install -y git \ libtool \ glibc-static.i686 \ glibc-devel \ - glibc-devel.i686 + glibc-devel.i686 \ + && \ + yum clean all # Install Java 8 RUN wget -q --no-cookies --no-check-certificate \ @@ -27,15 +29,17 @@ RUN wget -q http://apache.cs.utah.edu/maven/maven-3/3.3.9/binaries/apache-maven- ENV PATH /var/local/apache-maven-3.3.9/bin:$PATH # Install GCC 4.7 to support -static-libstdc++ -RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d -RUN bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo' -RUN bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo" -RUN sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo -RUN rpm --rebuilddb && yum install -y devtoolset-1.1 \ +RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d && \ + bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo' && \ + bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo" && \ + sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo && \ + rpm --rebuilddb && \ + yum install -y devtoolset-1.1 \ devtoolset-1.1-libstdc++-devel \ - devtoolset-1.1-libstdc++-devel.i686 + devtoolset-1.1-libstdc++-devel.i686 && \ + yum clean all -RUN git clone --depth 1 https://github.com/google/protobuf.git +COPY scl-enable-devtoolset.sh /var/local/ # Start in devtoolset environment that uses GCC 4.7 -CMD ["scl", "enable", "devtoolset-1.1", "bash"] +ENTRYPOINT ["/var/local/scl-enable-devtoolset.sh"] diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md index ba3ca018..dcaec987 100644 --- a/protoc-artifacts/README.md +++ b/protoc-artifacts/README.md @@ -140,10 +140,14 @@ $ docker build -t protoc-artifacts . To run the image: ``` -$ docker run -it --rm=true protoc-artifacts +$ docker run -it --rm=true protoc-artifacts bash ``` -The Protobuf repository has been cloned into ``/protobuf``. +To checkout protobuf (run within the container): +``` +$ # Replace v3.5.1 with the version you want +$ wget -O - https://github.com/google/protobuf/archive/v3.5.1.tar.gz | tar xvzp +``` ### Tips for deploying on Windows Under Windows the following error may occur: ``gpg: cannot open tty `no tty': diff --git a/protoc-artifacts/build-protoc.sh b/protoc-artifacts/build-protoc.sh index fe1dec24..b78abbcf 100755 --- a/protoc-artifacts/build-protoc.sh +++ b/protoc-artifacts/build-protoc.sh @@ -81,6 +81,8 @@ checkArch () assertEq $format "elf64-x86-64" $LINENO elif [[ "$ARCH" == aarch_64 ]]; then assertEq $format "elf64-little" $LINENO + elif [[ "$ARCH" == ppcle_64 ]]; then + assertEq $format "elf64-powerpcle" $LINENO else fail "Unsupported arch: $ARCH" fi @@ -124,6 +126,8 @@ checkDependencies () white_list="linux-gate\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux\.so\.2" elif [[ "$ARCH" == x86_64 ]]; then white_list="linux-vdso\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux-x86-64\.so\.2" + elif [[ "$ARCH" == ppcle_64 ]]; then + white_list="linux-vdso64\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|libz\.so\.1\|ld64\.so\.2" elif [[ "$ARCH" == aarch_64 ]]; then dump_cmd='objdump -p '"$1"' | grep NEEDED' white_list="libpthread\.so\.0\|libc\.so\.6\|ld-linux-aarch64\.so\.1" @@ -193,6 +197,8 @@ elif [[ "$(uname)" == Linux* ]]; then CXXFLAGS="$CXXFLAGS -m32" elif [[ "$ARCH" == aarch_64 ]]; then CONFIGURE_ARGS="$CONFIGURE_ARGS --host=aarch64-linux-gnu" + elif [[ "$ARCH" == ppcle_64 ]]; then + CXXFLAGS="$CXXFLAGS -m64" else fail "Unsupported arch: $ARCH" fi diff --git a/protoc-artifacts/build-zip.sh b/protoc-artifacts/build-zip.sh index f08e2758..26b6cc93 100755 --- a/protoc-artifacts/build-zip.sh +++ b/protoc-artifacts/build-zip.sh @@ -13,13 +13,14 @@ Example: This script will download pre-built protoc or protoc plugin binaries from maven repository and create .zip packages suitable to be included in the github release page. If the target is protoc, well-known type .proto files will also be -included. Each invocation will create 6 zip packages: +included. Each invocation will create 7 zip packages: dist/<TARGET>-<VERSION_NUMBER>-win32.zip dist/<TARGET>-<VERSION_NUMBER>-osx-x86_32.zip dist/<TARGET>-<VERSION_NUMBER>-osx-x86_64.zip dist/<TARGET>-<VERSION_NUMBER>-linux-x86_32.zip dist/<TARGET>-<VERSION_NUMBER>-linux-x86_64.zip dist/<TARGET>-<VERSION_NUMBER>-linux-aarch_64.zip + dist/<TARGET>-<VERSION_NUMBER>-linux-ppcle_64.zip EOF exit 1 fi @@ -35,6 +36,7 @@ declare -a FILE_NAMES=( \ linux-x86_32.zip linux-x86_32.exe \ linux-x86_64.zip linux-x86_64.exe \ linux-aarch_64.zip linux-aarch_64.exe \ + linux-ppcle_64.zip linux-ppcle_64.exe \ ) # List of all well-known types to be included. diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index 0f9dd9f8..667a0215 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -10,7 +10,7 @@ </parent> <groupId>com.google.protobuf</groupId> <artifactId>protoc</artifactId> - <version>3.5.1</version> + <version>3.6.0</version> <packaging>pom</packaging> <name>Protobuf Compiler</name> <description> @@ -37,7 +37,7 @@ <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> - <version>1.2.3.Final</version> + <version>1.5.0.Final</version> </extension> </extensions> <plugins> diff --git a/protoc-artifacts/scl-enable-devtoolset.sh b/protoc-artifacts/scl-enable-devtoolset.sh new file mode 100755 index 00000000..8d9585ea --- /dev/null +++ b/protoc-artifacts/scl-enable-devtoolset.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -eu -o pipefail + +quote() { + local arg + for arg in "$@"; do + printf "'" + printf "%s" "$arg" | sed -e "s/'/'\\\\''/g" + printf "' " + done +} + +exec scl enable devtoolset-1.1 "$(quote "$@")" |