1*cd0cc2e3SAndroid Build Coastguard WorkerFROM centos:7 2*cd0cc2e3SAndroid Build Coastguard Worker 3*cd0cc2e3SAndroid Build Coastguard WorkerRUN yum install -y git \ 4*cd0cc2e3SAndroid Build Coastguard Worker tar \ 5*cd0cc2e3SAndroid Build Coastguard Worker wget \ 6*cd0cc2e3SAndroid Build Coastguard Worker which \ 7*cd0cc2e3SAndroid Build Coastguard Worker make \ 8*cd0cc2e3SAndroid Build Coastguard Worker emacs \ 9*cd0cc2e3SAndroid Build Coastguard Worker autoconf \ 10*cd0cc2e3SAndroid Build Coastguard Worker curl-devel \ 11*cd0cc2e3SAndroid Build Coastguard Worker unzip \ 12*cd0cc2e3SAndroid Build Coastguard Worker automake \ 13*cd0cc2e3SAndroid Build Coastguard Worker libtool \ 14*cd0cc2e3SAndroid Build Coastguard Worker glibc-static.i686 \ 15*cd0cc2e3SAndroid Build Coastguard Worker glibc-devel \ 16*cd0cc2e3SAndroid Build Coastguard Worker glibc-devel.i686 17*cd0cc2e3SAndroid Build Coastguard Worker 18*cd0cc2e3SAndroid Build Coastguard WorkerRUN yum update -y nss 19*cd0cc2e3SAndroid Build Coastguard Worker 20*cd0cc2e3SAndroid Build Coastguard Worker# Install Java 8 21*cd0cc2e3SAndroid Build Coastguard WorkerRUN wget -q --no-cookies --no-check-certificate \ 22*cd0cc2e3SAndroid Build Coastguard Worker --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" \ 23*cd0cc2e3SAndroid Build Coastguard Worker "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz" \ 24*cd0cc2e3SAndroid Build Coastguard Worker -O - | tar xz -C /var/local 25*cd0cc2e3SAndroid Build Coastguard WorkerENV JAVA_HOME /var/local/jdk1.8.0_131 26*cd0cc2e3SAndroid Build Coastguard WorkerENV PATH $JAVA_HOME/bin:$PATH 27*cd0cc2e3SAndroid Build Coastguard Worker 28*cd0cc2e3SAndroid Build Coastguard Worker# Install Clang 5 29*cd0cc2e3SAndroid Build Coastguard WorkerRUN yum install -y centos-release-scl 30*cd0cc2e3SAndroid Build Coastguard WorkerRUN yum install -y llvm-toolset-7 31*cd0cc2e3SAndroid Build Coastguard WorkerENV CC /opt/rh/llvm-toolset-7/root/usr/bin/clang 32*cd0cc2e3SAndroid Build Coastguard WorkerENV CXX /opt/rh/llvm-toolset-7/root/usr/bin/clang++ 33*cd0cc2e3SAndroid Build Coastguard Worker 34*cd0cc2e3SAndroid Build Coastguard Worker# Download and install Golang 35*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR / 36*cd0cc2e3SAndroid Build Coastguard WorkerENV GOLANG_VERSION 1.10.5 37*cd0cc2e3SAndroid Build Coastguard WorkerENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz 38*cd0cc2e3SAndroid Build Coastguard WorkerENV GOLANG_DOWNLOAD_SHA256 a035d9beda8341b645d3f45a1b620cf2d8fb0c5eb409be36b389c0fd384ecc3a 39*cd0cc2e3SAndroid Build Coastguard WorkerRUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \ 40*cd0cc2e3SAndroid Build Coastguard Worker && echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \ 41*cd0cc2e3SAndroid Build Coastguard Worker && tar -C /usr/local -xzf golang.tar.gz \ 42*cd0cc2e3SAndroid Build Coastguard Worker && rm golang.tar.gz 43*cd0cc2e3SAndroid Build Coastguard WorkerENV GOPATH /go 44*cd0cc2e3SAndroid Build Coastguard WorkerENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH 45*cd0cc2e3SAndroid Build Coastguard WorkerRUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH" 46*cd0cc2e3SAndroid Build Coastguard Worker 47*cd0cc2e3SAndroid Build Coastguard Worker# Build and install CMake from source. 48*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR /usr/src 49*cd0cc2e3SAndroid Build Coastguard WorkerRUN git clone https://gitlab.kitware.com/cmake/cmake.git CMake && \ 50*cd0cc2e3SAndroid Build Coastguard Worker cd CMake && \ 51*cd0cc2e3SAndroid Build Coastguard Worker git checkout tags/v3.5.2 && \ 52*cd0cc2e3SAndroid Build Coastguard Worker mkdir /usr/src/CMake-build && \ 53*cd0cc2e3SAndroid Build Coastguard Worker cd /usr/src/CMake-build && \ 54*cd0cc2e3SAndroid Build Coastguard Worker /usr/src/CMake/bootstrap \ 55*cd0cc2e3SAndroid Build Coastguard Worker --parallel=$(grep -c processor /proc/cpuinfo) \ 56*cd0cc2e3SAndroid Build Coastguard Worker --prefix=/usr && \ 57*cd0cc2e3SAndroid Build Coastguard Worker make -j$(grep -c processor /proc/cpuinfo) && \ 58*cd0cc2e3SAndroid Build Coastguard Worker ./bin/cmake \ 59*cd0cc2e3SAndroid Build Coastguard Worker -DCMAKE_BUILD_TYPE:STRING=Release \ 60*cd0cc2e3SAndroid Build Coastguard Worker -DCMAKE_USE_OPENSSL:BOOL=ON . && \ 61*cd0cc2e3SAndroid Build Coastguard Worker make install && \ 62*cd0cc2e3SAndroid Build Coastguard Worker cd .. && rm -rf CMake* 63*cd0cc2e3SAndroid Build Coastguard Worker 64*cd0cc2e3SAndroid Build Coastguard Worker# Build and install Python from source. 65*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR /usr/src 66*cd0cc2e3SAndroid Build Coastguard WorkerENV PYTHON_VERSION 2.7.14 67*cd0cc2e3SAndroid Build Coastguard WorkerRUN wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \ 68*cd0cc2e3SAndroid Build Coastguard Worker tar xvzf Python-${PYTHON_VERSION}.tgz && \ 69*cd0cc2e3SAndroid Build Coastguard Worker cd Python-${PYTHON_VERSION} && \ 70*cd0cc2e3SAndroid Build Coastguard Worker ./configure && \ 71*cd0cc2e3SAndroid Build Coastguard Worker make -j$(grep -c processor /proc/cpuinfo) && \ 72*cd0cc2e3SAndroid Build Coastguard Worker make install && \ 73*cd0cc2e3SAndroid Build Coastguard Worker cd .. && rm -rf Python-${PYTHON_VERSION}* 74*cd0cc2e3SAndroid Build Coastguard Worker 75*cd0cc2e3SAndroid Build Coastguard Worker# Build and install ninja from source. 76*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR /usr/src 77*cd0cc2e3SAndroid Build Coastguard WorkerENV NINJA_VERSION 1.8.2 78*cd0cc2e3SAndroid Build Coastguard WorkerRUN git clone https://github.com/martine/ninja.git && \ 79*cd0cc2e3SAndroid Build Coastguard Worker cd ninja && \ 80*cd0cc2e3SAndroid Build Coastguard Worker git checkout v$NINJA_VERSION && \ 81*cd0cc2e3SAndroid Build Coastguard Worker ./configure.py --bootstrap && \ 82*cd0cc2e3SAndroid Build Coastguard Worker mv ninja /usr/bin/ && \ 83*cd0cc2e3SAndroid Build Coastguard Worker cd .. && rm -rf ninja 84*cd0cc2e3SAndroid Build Coastguard Worker 85*cd0cc2e3SAndroid Build Coastguard Worker# Build and install BoringSSL from source. 86*cd0cc2e3SAndroid Build Coastguard WorkerENV BORINGSSL_HOME /usr/src/boringssl 87*cd0cc2e3SAndroid Build Coastguard WorkerENV BORINGSSL_BUILD_DIR $BORINGSSL_HOME/build64 88*cd0cc2e3SAndroid Build Coastguard WorkerRUN git clone --depth 1 https://boringssl.googlesource.com/boringssl $BORINGSSL_HOME 89*cd0cc2e3SAndroid Build Coastguard WorkerRUN mkdir $BORINGSSL_BUILD_DIR 90*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR $BORINGSSL_BUILD_DIR 91*cd0cc2e3SAndroid Build Coastguard WorkerRUN cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DCMAKE_BUILD_TYPE=Release -DCMAKE_ASM_FLAGS=-Wa,--noexecstack -GNinja .. 92*cd0cc2e3SAndroid Build Coastguard WorkerRUN ninja 93*cd0cc2e3SAndroid Build Coastguard Worker 94*cd0cc2e3SAndroid Build Coastguard Worker# Download conscrypt. 95*cd0cc2e3SAndroid Build Coastguard WorkerWORKDIR / 96*cd0cc2e3SAndroid Build Coastguard WorkerRUN git clone --depth 1 --no-single-branch https://github.com/google/conscrypt.git 97*cd0cc2e3SAndroid Build Coastguard Worker 98*cd0cc2e3SAndroid Build Coastguard Worker# Start in toolset environment that uses Clang 5 99*cd0cc2e3SAndroid Build Coastguard WorkerCMD ["scl", "enable", "llvm-toolset-7", "bash"] 100