xref: /aosp_15_r20/external/conscrypt/release/Dockerfile (revision cd0cc2e34ba52cdf454361820a14d744e4bd531d)
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