Skip to content

Commit 0b62741

Browse files
authored
Merge pull request #17 from eval-exec/exec/upgrade-openssl-3.1.3
Upgrade `openssl` version from `1.1.1` to `3.1.3`
2 parents 8ce6f4d + bc3bda0 commit 0b62741

File tree

8 files changed

+76
-33
lines changed

8 files changed

+76
-33
lines changed

Makefile

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
DOCKERHUB_REPO := nervos/ckb-docker-builder
22
GHCR_REPO := ghcr.io/nervosnetwork/ckb-docker-builder
3-
IMAGE_VERSION := rust-$(shell sed -n "s/RUST_VERSION = '\(.*\)'$$/\1/p" gen-dockerfiles)
3+
RUST_VERSION := rust-$(shell sed -n "s/RUST_VERSION\s*=\s*'\(.*\)'$$/\1/p" gen-dockerfiles)
4+
OPENSSL_VERSION := openssl-$(shell sed -n "s/OPENSSL_VERSION\s*=\s*'\(.*\)'$$/\1/p" gen-dockerfiles)
5+
IMAGE_VERSION := ${RUST_VERSION}-${OPENSSL_VERSION}
46

57
bionic/Dockerfile: gen-dockerfiles templates/bionic.Dockerfile
68
python3 gen-dockerfiles
@@ -34,9 +36,13 @@ sync-ckb:
3436
if [ -d ckb ]; then git -C ckb pull; else git clone --depth 1 https://github.com/nervosnetwork/ckb.git; fi
3537

3638
test-bionic: sync-ckb
37-
docker --rm -it -w /ckb -v "$$(pwd)/ckb:/ckb" ${DOCKERHUB_REPO}:bionic-${IMAGE_VERSION} make prod
39+
docker run --rm -it -w /ckb -v "$$(pwd)/ckb:/ckb" \
40+
-e OPENSSL_STATIC=1 -e OPENSSL_LIB_DIR=/usr/local/lib64 -e OPENSSL_INCLUDE_DIR=/usr/local/include \
41+
${DOCKERHUB_REPO}:bionic-${IMAGE_VERSION} make prod
3842

3943
test-centos-7: sync-ckb
40-
docker --rm -it -w /ckb -v "$$(pwd)/ckb:/ckb" ${DOCKERHUB_REPO}:centos-7-${IMAGE_VERSION} make prod
44+
docker run --rm -it -w /ckb -v "$$(pwd)/ckb:/ckb" \
45+
-e OPENSSL_STATIC=1 -e OPENSSL_LIB_DIR=/usr/local/lib64 -e OPENSSL_INCLUDE_DIR=/usr/local/include \
46+
${DOCKERHUB_REPO}:centos-7-${IMAGE_VERSION} make prod
4147

4248
.PHONY: test-all test-bionic test-centos-7 sync-ckb

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ Environment for building [ckb](https://github.com/nervosnetwork/ckb#readme).
22

33
## How to Upgrade Rust
44

5-
- Update rustup version if needed in [`gen-dockerfiles`].
5+
- Update rustup and openssl version if needed in [`gen-dockerfiles`].
66
- Update rust version in [`gen-dockerfiles`].
77
- Run the script [`gen-dockerfiles`].
8-
- Commit, tag `rust-${RUST_VERSION}` such as `rust-1.51.0`.
8+
- Commit, tag `rust-${RUST_VERSION}` such as `rust-1.71.0-openssl-3.1.3`.
99

1010
[`gen-dockerfiles`]: gen-dockerfiles

bionic/Dockerfile

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ RUN set -eux; \
88
g++ \
99
libc6-dev \
1010
wget \
11-
libssl-dev \
1211
git \
1312
pkg-config \
1413
libclang-dev \
@@ -20,7 +19,22 @@ ENV RUSTUP_HOME=/usr/local/rustup \
2019
PATH=/usr/local/cargo/bin:$PATH \
2120
RUSTUP_VERSION=1.26.0 \
2221
RUSTUP_SHA256=0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db \
23-
RUST_ARCH=x86_64-unknown-linux-gnu
22+
RUST_ARCH=x86_64-unknown-linux-gnu \
23+
OPENSSL_VERSION=3.1.3 \
24+
OPENSSL_SHA256=f0316a2ebd89e7f2352976445458689f80302093788c466692fb2a188b2eacf6
25+
26+
RUN set -eux; \
27+
url="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"; \
28+
wget --no-check-certificate "$url"; \
29+
echo "${OPENSSL_SHA256} *openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c -; \
30+
tar -xzf "openssl-${OPENSSL_VERSION}.tar.gz"; \
31+
cd openssl-${OPENSSL_VERSION}; \
32+
./config no-shared no-zlib -fPIC -DOPENSSL_NO_SECURE_MEMORY; \
33+
make; \
34+
make install; \
35+
cd ..; \
36+
rm -rf openssl-${OPENSSL_VERSION} openssl-${OPENSSL_VERSION}.tar.gz
37+
2438

2539
RUN set -eux; \
2640
url="https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${RUST_ARCH}/rustup-init"; \

centos-7/Dockerfile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ ENV PATH=/root/.cargo/bin:$PATH
44

55
RUN set -eux; \
66
yum install -y centos-release-scl; \
7-
yum install -y git curl make devtoolset-7 llvm-toolset-7 perl-core pcre-devel wget zlib-devel; \
7+
yum install -y git curl make devtoolset-8 llvm-toolset-7 perl-core pcre-devel wget zlib-devel; \
88
yum clean all; \
99
rm -rf /var/cache/yum
1010

11-
ENV OPENSSL_VERSION=1.1.1q \
12-
OPENSSL_SHA256=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
11+
ENV RUSTUP_HOME=/usr/local/rustup \
12+
CARGO_HOME=/usr/local/cargo \
13+
PATH=/usr/local/cargo/bin:$PATH \
14+
RUSTUP_VERSION=1.26.0 \
15+
RUSTUP_SHA256=0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db \
16+
RUST_ARCH=x86_64-unknown-linux-gnu \
17+
OPENSSL_VERSION=3.1.3 \
18+
OPENSSL_SHA256=f0316a2ebd89e7f2352976445458689f80302093788c466692fb2a188b2eacf6
1319

1420
RUN set -eux; \
1521
url="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"; \
@@ -23,12 +29,6 @@ RUN set -eux; \
2329
cd ..; \
2430
rm -rf openssl-${OPENSSL_VERSION} openssl-${OPENSSL_VERSION}.tar.gz
2531

26-
ENV RUSTUP_HOME=/usr/local/rustup \
27-
CARGO_HOME=/usr/local/cargo \
28-
PATH=/usr/local/cargo/bin:$PATH \
29-
RUSTUP_VERSION=1.26.0 \
30-
RUSTUP_SHA256=0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db \
31-
RUST_ARCH=x86_64-unknown-linux-gnu
3232

3333
RUN set -eux; \
3434
url="https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${RUST_ARCH}/rustup-init"; \

centos-7/entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
export OPENSSL_LIB_DIR=/usr/local/lib64 OPENSSL_INCLUDE_DIR=/usr/local/include
44

5-
scl enable devtoolset-7 llvm-toolset-7 "$*"
5+
scl enable devtoolset-8 llvm-toolset-7 "$*"

gen-dockerfiles

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
import os
44
from urllib import request
55

6-
RUST_VERSION = '1.71.1'
7-
RUSTUP_VERSION = '1.26.0'
6+
RUST_VERSION = '1.71.1'
7+
RUSTUP_VERSION = '1.26.0'
8+
OPENSSL_VERSION = '3.1.3'
89

910
RUST_ARCH = 'x86_64-unknown-linux-gnu'
1011

@@ -21,6 +22,11 @@ def fetch_rustup_hash():
2122
with request.urlopen(url) as f:
2223
return f.read().decode('utf-8').split()[0]
2324

25+
def fetch_openssl_hash():
26+
url = f'https://www.openssl.org/source/openssl-{OPENSSL_VERSION}.tar.gz.sha256'
27+
with request.urlopen(url) as f:
28+
return f.read().decode('utf-8').split()[0]
29+
2430

2531
def load_template(dist):
2632
with open(f'templates/{dist}.Dockerfile', 'r') as f:
@@ -35,20 +41,23 @@ def save_dockerfile(dist, contents):
3541
f.write(contents)
3642

3743

38-
def generate_dockerfile(dist, rustup_sha256):
44+
def generate_dockerfile(dist, rustup_sha256, openssl_sha256):
3945
template = load_template(dist)
4046
rendered = template \
4147
.replace('%%RUST_VERSION%%', RUST_VERSION) \
4248
.replace('%%RUSTUP_VERSION%%', RUSTUP_VERSION) \
4349
.replace('%%RUSTUP_SHA256%%', rustup_sha256) \
44-
.replace('%%RUST_ARCH%%', RUST_ARCH)
50+
.replace('%%RUST_ARCH%%', RUST_ARCH) \
51+
.replace('%%OPENSSL_VERSION%%', OPENSSL_VERSION) \
52+
.replace('%%OPENSSL_SHA256%%', openssl_sha256)
4553
save_dockerfile(dist, rendered)
4654

4755

4856
def main():
4957
rustup_sha256 = fetch_rustup_hash()
58+
openssl_sha256 = fetch_openssl_hash()
5059
for dist in DISTRIBUTIONS:
51-
generate_dockerfile(dist, rustup_sha256)
60+
generate_dockerfile(dist, rustup_sha256, openssl_sha256)
5261

5362

5463
if __name__ == '__main__':

templates/bionic.Dockerfile

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ RUN set -eux; \
88
g++ \
99
libc6-dev \
1010
wget \
11-
libssl-dev \
1211
git \
1312
pkg-config \
1413
libclang-dev \
@@ -20,7 +19,22 @@ ENV RUSTUP_HOME=/usr/local/rustup \
2019
PATH=/usr/local/cargo/bin:$PATH \
2120
RUSTUP_VERSION=%%RUSTUP_VERSION%% \
2221
RUSTUP_SHA256=%%RUSTUP_SHA256%% \
23-
RUST_ARCH=%%RUST_ARCH%%
22+
RUST_ARCH=%%RUST_ARCH%% \
23+
OPENSSL_VERSION=%%OPENSSL_VERSION%% \
24+
OPENSSL_SHA256=%%OPENSSL_SHA256%%
25+
26+
RUN set -eux; \
27+
url="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"; \
28+
wget --no-check-certificate "$url"; \
29+
echo "${OPENSSL_SHA256} *openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c -; \
30+
tar -xzf "openssl-${OPENSSL_VERSION}.tar.gz"; \
31+
cd openssl-${OPENSSL_VERSION}; \
32+
./config no-shared no-zlib -fPIC -DOPENSSL_NO_SECURE_MEMORY; \
33+
make; \
34+
make install; \
35+
cd ..; \
36+
rm -rf openssl-${OPENSSL_VERSION} openssl-${OPENSSL_VERSION}.tar.gz
37+
2438

2539
RUN set -eux; \
2640
url="https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${RUST_ARCH}/rustup-init"; \

templates/centos-7.Dockerfile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ ENV PATH=/root/.cargo/bin:$PATH
44

55
RUN set -eux; \
66
yum install -y centos-release-scl; \
7-
yum install -y git curl make devtoolset-7 llvm-toolset-7 perl-core pcre-devel wget zlib-devel; \
7+
yum install -y git curl make devtoolset-8 llvm-toolset-7 perl-core pcre-devel wget zlib-devel; \
88
yum clean all; \
99
rm -rf /var/cache/yum
1010

11-
ENV OPENSSL_VERSION=1.1.1q \
12-
OPENSSL_SHA256=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
11+
ENV RUSTUP_HOME=/usr/local/rustup \
12+
CARGO_HOME=/usr/local/cargo \
13+
PATH=/usr/local/cargo/bin:$PATH \
14+
RUSTUP_VERSION=%%RUSTUP_VERSION%% \
15+
RUSTUP_SHA256=%%RUSTUP_SHA256%% \
16+
RUST_ARCH=%%RUST_ARCH%% \
17+
OPENSSL_VERSION=%%OPENSSL_VERSION%% \
18+
OPENSSL_SHA256=%%OPENSSL_SHA256%%
1319

1420
RUN set -eux; \
1521
url="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"; \
@@ -23,12 +29,6 @@ RUN set -eux; \
2329
cd ..; \
2430
rm -rf openssl-${OPENSSL_VERSION} openssl-${OPENSSL_VERSION}.tar.gz
2531

26-
ENV RUSTUP_HOME=/usr/local/rustup \
27-
CARGO_HOME=/usr/local/cargo \
28-
PATH=/usr/local/cargo/bin:$PATH \
29-
RUSTUP_VERSION=%%RUSTUP_VERSION%% \
30-
RUSTUP_SHA256=%%RUSTUP_SHA256%% \
31-
RUST_ARCH=%%RUST_ARCH%%
3232

3333
RUN set -eux; \
3434
url="https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${RUST_ARCH}/rustup-init"; \

0 commit comments

Comments
 (0)