1- FROM ubuntu:20.04 as retesteth
1+ FROM ubuntu:20.04 AS retesteth
22
33ARG BESU_SRC="https://github.com/hyperledger/besu.git"
44ARG PYSPECS_SRC="https://github.com/ethereum/execution-spec-tests"
@@ -28,18 +28,20 @@ RUN apt-get update \
2828 && apt install software-properties-common -y \
2929 && add-apt-repository -y ppa:ubuntu-toolchain-r/test \
3030 && add-apt-repository -y ppa:deadsnakes/ppa \
31- && add-apt-repository ppa:linuxuprising/java \
32- && apt-get install --yes jq lsof git cmake make perl psmisc curl wget gcc-11 g++-11 python3.10 python3.10-venv python3-pip python3-dev \
31+ && apt-get install --yes jq lsof git make libssl-dev libgmp-dev perl psmisc curl wget gcc-11 g++-11 python3.10 python3.10-venv python3-pip python3-dev \
3332 && apt-get install --yes libboost-filesystem-dev libboost-system-dev libboost-program-options-dev libboost-test-dev \
34- && echo oracle-java17-installer shared/accepted-oracle-license-v1-3 select true | /usr/bin/debconf-set-selections \
35- && apt-get install --yes oracle-java17-installer oracle-java17-set-default \
3633 && apt-get install --yes uuid-runtime \
3734 && rm -rf /var/lib/apt/lists/*
3835RUN rm /usr/bin/python3 && ln -s /usr/bin/python3.10 /usr/bin/python3 \
3936 && rm /usr/bin/gcc && rm /usr/bin/g++ \
4037 && ln -s /usr/bin/gcc-11 /usr/bin/gcc \
4138 && ln -s /usr/bin/g++-11 /usr/bin/g++
4239
40+ # CMAKE LATEST
41+ RUN wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0.tar.gz \
42+ && tar -zxvf cmake-3.28.0.tar.gz && cd cmake-3.28.0 \
43+ && ./bootstrap && make && make install
44+
4345# Tests
4446# RUN git clone --depth 1 -b master https://github.com/ethereum/tests /tests
4547
@@ -60,9 +62,9 @@ RUN wget https://github.com/ethereum/solidity/releases/download/v0.8.21/solc-sta
6062# Pyspecs
6163RUN git clone $PYSPECS_SRC /execution-spec-tests
6264RUN cd /execution-spec-tests && git fetch && git checkout $PYSPECS \
63- && python3 -m venv ./venv/ \
64- && source ./venv/bin/activate \
65- && pip install -e . \
65+ && curl -LsSf https://astral.sh/uv/install.sh | sh && source $HOME/.local/bin/env \
66+ && uv sync --all-extras \
67+ && uv run solc-select use 0.8.24 --always-install \
6668 && wget https://raw.githubusercontent.com/ethereum/retesteth/develop/web/tfinit.sh \
6769 && cp tfinit.sh /usr/bin/tfinit.sh \
6870 && chmod +x /usr/bin/tfinit.sh
@@ -73,15 +75,15 @@ RUN test -n "$PYT8N" \
7375 && cd /pyt8n && git fetch && git checkout $PYT8N \
7476 && python3 -m venv ./venv/ \
7577 && source ./venv/bin/activate \
76- && pip install -e . \
78+ && pip install -e .[test] \
7779 || echo "Pyt8n is empty"
7880
7981# Geth
8082RUN test -n "$GETH" \
8183 && git clone $GETH_SRC /geth \
8284 && cd /geth && git fetch && git checkout $GETH \
83- && wget https://dl.google.com/go /go1.20 .linux-amd64.tar.gz \
84- && tar -xvf go1.20 .linux-amd64.tar.gz \
85+ && wget https://go.dev/dl /go1.21.8 .linux-amd64.tar.gz \
86+ && tar -xvf go1.21.8 .linux-amd64.tar.gz \
8587 && mv go /usr/local && ln -s /usr/local/go/bin/go /bin/go \
8688 && go build ./cmd/evm && cp evm /bin/evm \
8789 && rm -rf /geth && rm -rf /usr/local/go \
@@ -102,22 +104,24 @@ RUN test -n "$NIMBUS" \
102104RUN test -n "$ETHEREUMJS" \
103105 && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash \
104106 && . ~/.nvm/nvm.sh \
105- && nvm install 19 && nvm alias default 19 && nvm use default \
106- && cp -r ~/.nvm/versions/node/v19 */* /usr \
107+ && nvm install 20 && nvm alias default 20 && nvm use default \
108+ && cp -r ~/.nvm/versions/node/v20 */* /usr \
107109 && git clone $ETEREUMJS_SRC /ethereumjs \
108110 && cd /ethereumjs && git fetch && git checkout $ETHEREUMJS && npm i && npm run build --workspaces \
109111 || echo "Ethereumjs is empty"
110112
111113# Besu
114+ RUN test -n "$BESU" \
115+ && apt-get update \
116+ && apt-get install --yes openjdk-21-jdk \
117+ || echo "Besu is empty"
112118RUN test -n "$BESU" \
113119 && git clone $BESU_SRC /besu \
114120 && cd /besu && git fetch && git checkout $BESU \
115- && ./gradlew build \
116121 || echo "Besu is empty"
117-
118122RUN test -n "$BESU" \
119123 && cd /besu && ./gradlew ethereum:evmtool:installDist \
120- && ln -s /besu/ethereum/evmtool/build/install/evmtool/bin/evm /usr/bin/besuevm \
124+ && ln -s /besu/ethereum/evmtool/build/install/evmtool/bin/evmtool /usr/bin/besuevm \
121125 || echo "Besu is empty"
122126
123127# Evmone
@@ -126,14 +130,16 @@ RUN test -n "$EVMONE" \
126130 && cd /evmone && git fetch && git checkout $evmone \
127131 && cmake -S . -B build -DEVMONE_TESTING=ON \
128132 && cmake --build build \
129- && ln -s /evmone/build/bin/evmone-t8n /usr/bin/evmone \
133+ && ln -s /evmone/build/bin/evmone-t8n /usr/bin/evmone-t8n \
130134 && rm -rf /var/cache/* /root/.hunter/* \
131135 || echo "Evmone is empty"
132136
133137# Retesteth
134138RUN test -n "$RETESTETH" \
135139 && git clone $RETESTETH_SRC /retesteth \
136- && cd /retesteth && git fetch && git checkout $RETESTETH && mkdir /build && cd /build \
140+ && cd /retesteth \
141+ && git fetch && git checkout $RETESTETH && git submodule update --init --recursive \
142+ && mkdir /build && cd /build \
137143 && cmake /retesteth -DCMAKE_BUILD_TYPE=Release \
138144 && make -j2 \
139145 && cp /build/retesteth/retesteth /usr/bin/retesteth \
0 commit comments