mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #10499 from ethereum/dropUbuntu18
Drop direct support for Ubuntu 18.04 and switch to static PPA releases for it.
This commit is contained in:
commit
b8ad7e0607
@ -7,10 +7,6 @@
|
||||
# - ems: Emscripten
|
||||
version: 2.1
|
||||
parameters:
|
||||
ubuntu-1804-docker-image:
|
||||
type: string
|
||||
# solbuildpackpusher/solidity-buildpack-deps:ubuntu1804-4
|
||||
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:79ccaf5a294a3c4f480b2cd69c6d845540c12435e64d732e8536f8f99ad35f03"
|
||||
ubuntu-2004-docker-image:
|
||||
type: string
|
||||
# solbuildpackpusher/solidity-buildpack-deps:ubuntu2004-4
|
||||
@ -478,19 +474,6 @@ jobs:
|
||||
command: strip build/solc/solc
|
||||
- store_artifacts: *artifacts_solc
|
||||
|
||||
b_ubu18: &build_ubuntu1804
|
||||
docker:
|
||||
- image: << pipeline.parameters.ubuntu-1804-docker-image >>
|
||||
environment:
|
||||
CMAKE_OPTIONS: -DCMAKE_CXX_FLAGS=-O2
|
||||
CMAKE_BUILD_TYPE: RelWithDebugInfo
|
||||
MAKEFLAGS: -j 3
|
||||
steps:
|
||||
- checkout
|
||||
- run: *run_build
|
||||
- store_artifacts: *artifacts_solc
|
||||
- persist_to_workspace: *artifacts_executables
|
||||
|
||||
b_ubu_codecov:
|
||||
<<: *build_ubuntu2004
|
||||
environment:
|
||||
@ -1164,7 +1147,6 @@ workflows:
|
||||
|
||||
# Ubuntu build and tests
|
||||
- b_ubu: *workflow_trigger_on_tags
|
||||
- b_ubu18: *workflow_trigger_on_tags
|
||||
- t_ubu_cli: *workflow_ubuntu2004
|
||||
- t_ubu_soltest: *workflow_ubuntu2004
|
||||
- t_ubu_soltest_enforce_yul: *workflow_ubuntu2004
|
||||
|
3
.github/workflows/buildpack-deps.yml
vendored
3
.github/workflows/buildpack-deps.yml
vendored
@ -6,7 +6,6 @@ on:
|
||||
paths:
|
||||
- 'scripts/docker/buildpack-deps/Dockerfile.emscripten'
|
||||
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu1604.clang.ossfuzz'
|
||||
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu1804'
|
||||
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2004.clang'
|
||||
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2004'
|
||||
|
||||
@ -23,7 +22,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
image_variant: [emscripten, ubuntu1604.clang.ossfuzz, ubuntu1804, ubuntu2004.clang, ubuntu2004]
|
||||
image_variant: [emscripten, ubuntu1604.clang.ossfuzz, ubuntu2004.clang, ubuntu2004]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.9.0)
|
||||
cmake_minimum_required(VERSION 3.13.0)
|
||||
|
||||
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE PATH "The the path to the cmake directory")
|
||||
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})
|
||||
|
@ -52,7 +52,7 @@
|
||||
### PPA
|
||||
- [ ] Change ``scripts/release_ppa.sh`` to match your key's email and key id.
|
||||
- [ ] Run ``scripts/release_ppa.sh v$VERSION`` to create the PPA release (you need the relevant openssl key).
|
||||
- [ ] Wait for the ``~ethereum/ubuntu/ethereum-static`` PPA build to be finished and published for *all platforms*. SERIOUSLY: DO NOT PROCEED EARLIER!!! *After* the static builds are *published*, copy the static package to the ``~ethereum/ubuntu/ethereum`` PPA for the destination series ``Trusty`` and ``Xenial`` while selecting ``Copy existing binaries``.
|
||||
- [ ] Wait for the ``~ethereum/ubuntu/ethereum-static`` PPA build to be finished and published for *all platforms*. SERIOUSLY: DO NOT PROCEED EARLIER!!! *After* the static builds are *published*, copy the static package to the ``~ethereum/ubuntu/ethereum`` PPA for the destination series ``Trusty``, ``Xenial`` and ``Bionic`` while selecting ``Copy existing binaries``.
|
||||
|
||||
### Documentation
|
||||
- [ ] Build the new version on https://readthedocs.org/projects/solidity/ (select `latest` at the bottom of the page and click `BUILD`)
|
||||
|
@ -52,12 +52,9 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
|
||||
add_compile_options(-Wimplicit-fallthrough)
|
||||
add_compile_options(-Wsign-conversion)
|
||||
|
||||
# While this should work on CMake 3.3+, it fails on Ubuntu 18
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16)
|
||||
eth_add_cxx_compiler_flag_if_supported(
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-Wextra-semi>
|
||||
)
|
||||
endif()
|
||||
eth_add_cxx_compiler_flag_if_supported(
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-Wextra-semi>
|
||||
)
|
||||
|
||||
# Configuration-specific compiler settings.
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -DETH_DEBUG")
|
||||
@ -68,11 +65,11 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
|
||||
# Additional GCC-specific compiler settings.
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||
|
||||
# Check that we've got GCC 5.0 or newer.
|
||||
# Check that we've got GCC 8.0 or newer.
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||
if (NOT (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0))
|
||||
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 5.0 or greater.")
|
||||
if (NOT (GCC_VERSION VERSION_GREATER 8.0 OR GCC_VERSION VERSION_EQUAL 8.0))
|
||||
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 8.0 or greater.")
|
||||
endif ()
|
||||
|
||||
# Use fancy colors in the compiler diagnostics
|
||||
|
@ -306,7 +306,7 @@ The following are dependencies for all builds of Solidity:
|
||||
+-----------------------------------+-------------------------------------------------------+
|
||||
| Software | Notes |
|
||||
+===================================+=======================================================+
|
||||
| `CMake`_ (version 3.9+) | Cross-platform build file generator. |
|
||||
| `CMake`_ (version 3.13+) | Cross-platform build file generator. |
|
||||
+-----------------------------------+-------------------------------------------------------+
|
||||
| `Boost`_ (version 1.65+) | C++ libraries. |
|
||||
+-----------------------------------+-------------------------------------------------------+
|
||||
@ -335,8 +335,8 @@ Minimum compiler versions
|
||||
|
||||
The following C++ compilers and their minimum versions can build the Solidity codebase:
|
||||
|
||||
- `GCC <https://gcc.gnu.org>`_, version 5+
|
||||
- `Clang <https://clang.llvm.org/>`_, version 3.4+
|
||||
- `GCC <https://gcc.gnu.org>`_, version 8+
|
||||
- `Clang <https://clang.llvm.org/>`_, version 7+
|
||||
- `MSVC <https://visualstudio.microsoft.com/vs/>`_, version 2019+
|
||||
|
||||
Prerequisites - macOS
|
||||
|
@ -27,7 +27,7 @@ email=builds@ethereum.org
|
||||
packagename=libz3-static-dev
|
||||
version=4.8.9
|
||||
|
||||
DISTRIBUTIONS="bionic focal groovy"
|
||||
DISTRIBUTIONS="focal groovy"
|
||||
|
||||
for distribution in $DISTRIBUTIONS
|
||||
do
|
||||
|
@ -1,108 +0,0 @@
|
||||
# vim:syntax=dockerfile
|
||||
#------------------------------------------------------------------------------
|
||||
# Dockerfile for building and testing Solidity Compiler on CI
|
||||
# Target: Ubuntu 18.04 (Bionic Beaver)
|
||||
# URL: https://hub.docker.com/r/ethereum/solidity-buildpack-deps
|
||||
#
|
||||
# This file is part of solidity.
|
||||
#
|
||||
# solidity is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# solidity is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with solidity. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
# (c) 2016-2019 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
FROM buildpack-deps:bionic AS base
|
||||
LABEL version="4"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN set -ex; \
|
||||
dist=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d= -f2); \
|
||||
echo "deb http://ppa.launchpad.net/ethereum/cpp-build-deps/ubuntu $dist main" >> /etc/apt/sources.list ; \
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1c52189c923f6ca9 ; \
|
||||
apt-get update; \
|
||||
apt-get install -qqy --no-install-recommends \
|
||||
build-essential \
|
||||
software-properties-common \
|
||||
cmake ninja-build clang++-8 \
|
||||
libboost-filesystem-dev libboost-test-dev libboost-system-dev \
|
||||
libboost-program-options-dev \
|
||||
libjsoncpp-dev \
|
||||
llvm-8-dev libz3-static-dev \
|
||||
; \
|
||||
apt-get install -qy python-pip python-sphinx; \
|
||||
update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-8 1; \
|
||||
pip install codecov; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
FROM base AS libraries
|
||||
|
||||
# OSSFUZZ: libprotobuf-mutator
|
||||
RUN set -ex; \
|
||||
git clone https://github.com/google/libprotobuf-mutator.git \
|
||||
/usr/src/libprotobuf-mutator; \
|
||||
cd /usr/src/libprotobuf-mutator; \
|
||||
git checkout d1fe8a7d8ae18f3d454f055eba5213c291986f21; \
|
||||
mkdir build; \
|
||||
cd build; \
|
||||
cmake .. -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON \
|
||||
-DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX="/usr"; \
|
||||
ninja; \
|
||||
cp -vpr external.protobuf/bin/* /usr/bin/; \
|
||||
cp -vpr external.protobuf/include/* /usr/include/; \
|
||||
cp -vpr external.protobuf/lib/* /usr/lib/; \
|
||||
ninja install/strip; \
|
||||
rm -rf /usr/src/libprotobuf-mutator
|
||||
|
||||
# OSSFUZZ: libfuzzer
|
||||
RUN set -ex; \
|
||||
cd /var/tmp; \
|
||||
svn co https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/fuzzer libfuzzer; \
|
||||
mkdir -p build-libfuzzer; \
|
||||
cd build-libfuzzer; \
|
||||
clang++-8 -O1 -stdlib=libstdc++ -std=c++11 -O2 -fPIC -c ../libfuzzer/*.cpp -I../libfuzzer; \
|
||||
ar r /usr/lib/libFuzzingEngine.a *.o; \
|
||||
rm -rf /var/lib/libfuzzer
|
||||
|
||||
# EVMONE
|
||||
ARG EVMONE_HASH="e9f8df89c52d9c60c9a38dd00687b1ec9e9ae9650b400a87c4c0cf7468e35307"
|
||||
ARG EVMONE_MAJOR="0"
|
||||
ARG EVMONE_MINOR="4"
|
||||
ARG EVMONE_MICRO="0"
|
||||
RUN set -ex; \
|
||||
EVMONE_VERSION="$EVMONE_MAJOR.$EVMONE_MINOR.$EVMONE_MICRO"; \
|
||||
TGZFILE="evmone-$EVMONE_VERSION-linux-x86_64.tar.gz"; \
|
||||
wget https://github.com/ethereum/evmone/releases/download/v$EVMONE_VERSION/$TGZFILE; \
|
||||
sha256sum $TGZFILE | grep ${EVMONE_HASH}; \
|
||||
tar xzpf $TGZFILE -C /usr; \
|
||||
rm -f $TGZFILE;
|
||||
|
||||
# HERA
|
||||
ARG HERA_HASH="1a0b3cf626910c969f0ac86b7a731969a2e5b8254bc4e626b8f3a60471481f03"
|
||||
ARG HERA_MAJOR="0"
|
||||
ARG HERA_MINOR="3"
|
||||
ARG HERA_MICRO="2"
|
||||
RUN set -ex; \
|
||||
HERA_VERSION="$HERA_MAJOR.$HERA_MINOR.$HERA_MICRO"; \
|
||||
TGZFILE="hera-$HERA_VERSION-linux-x86_64.tar.gz"; \
|
||||
wget https://github.com/ewasm/hera/releases/download/v$HERA_VERSION/$TGZFILE; \
|
||||
sha256sum $TGZFILE | grep ${HERA_HASH}; \
|
||||
tar xzpf $TGZFILE -C /usr; \
|
||||
rm -f $TGZFILE;
|
||||
|
||||
FROM base
|
||||
COPY --from=libraries /usr/lib /usr/lib
|
||||
COPY --from=libraries /usr/bin /usr/bin
|
||||
COPY --from=libraries /usr/include /usr/include
|
||||
|
@ -57,7 +57,7 @@ packagename=solc
|
||||
|
||||
static_build_distribution=focal
|
||||
|
||||
DISTRIBUTIONS="bionic focal groovy"
|
||||
DISTRIBUTIONS="focal groovy"
|
||||
|
||||
if is_release
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user