mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge remote-tracking branch 'origin/develop' into breaking
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Script used for cross-platform comparison as part of the travis automation.
|
||||
# Splits all test source code into multiple files, generates bytecode and
|
||||
# uploads the bytecode into github.com/ethereum/solidity-test-bytecode where
|
||||
# another travis job is triggered to do the actual comparison.
|
||||
# Script used for cross-platform comparison of the bytecode generated by the compiler.
|
||||
# Splits all test source code into multiple files, generates bytecode and metadata
|
||||
# for each file and combines it into a single report.txt file.
|
||||
#
|
||||
# The script is meant to be executed in CI on all supported platforms. All generated
|
||||
# reports must be identical for a given compiler version.
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# This file is part of solidity.
|
||||
|
||||
+1
-1
@@ -180,7 +180,7 @@ function diff_values
|
||||
shift
|
||||
shift
|
||||
|
||||
diff --color=auto --unified=0 <(echo "$value1") <(echo "$value2") "$@"
|
||||
diff --unified=0 <(echo "$value1") <(echo "$value2") "$@"
|
||||
}
|
||||
|
||||
function safe_kill
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# (c) 2016-2021 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
FROM gcr.io/oss-fuzz-base/base-clang:latest as base
|
||||
LABEL version="15"
|
||||
LABEL version="16"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@@ -32,7 +32,7 @@ RUN apt-get update; \
|
||||
software-properties-common \
|
||||
ninja-build git wget \
|
||||
libbz2-dev zlib1g-dev git curl uuid-dev \
|
||||
pkg-config openjdk-8-jdk liblzma-dev unzip mlton m4; \
|
||||
pkg-config openjdk-8-jdk liblzma-dev unzip mlton m4 jq; \
|
||||
apt-get install -qy python3-pip;
|
||||
|
||||
# Install cmake 3.21.2 (minimum requirement is cmake 3.10)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# (c) 2016-2019 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
FROM buildpack-deps:focal AS base
|
||||
LABEL version="10"
|
||||
LABEL version="11"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@@ -37,7 +37,7 @@ RUN set -ex; \
|
||||
cmake ninja-build \
|
||||
libboost-filesystem-dev libboost-test-dev libboost-system-dev \
|
||||
libboost-program-options-dev \
|
||||
libcvc4-dev libz3-static-dev z3-static \
|
||||
libcvc4-dev libz3-static-dev z3-static jq \
|
||||
; \
|
||||
apt-get install -qy python3-pip python3-sphinx; \
|
||||
pip3 install codecov; \
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# (c) 2016-2019 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
FROM buildpack-deps:focal AS base
|
||||
LABEL version="10"
|
||||
LABEL version="11"
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@@ -38,7 +38,7 @@ RUN set -ex; \
|
||||
libboost-filesystem-dev libboost-test-dev libboost-system-dev \
|
||||
libboost-program-options-dev \
|
||||
clang \
|
||||
libz3-static-dev \
|
||||
libz3-static-dev jq \
|
||||
; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# This Python script is used within the OS X release process, to ensure
|
||||
# that the standalone OS X ZIP files which we make are actually
|
||||
# standalone, and not implicitly dependent on Homebrew installs for
|
||||
# external libraries which we use.
|
||||
#
|
||||
# This implicit dependencies seem to show up only where we have
|
||||
# external dependencies which are dependent on each other, and the
|
||||
# path from one to another is an absolute path to "/usr/local/opt",
|
||||
# the Homebrew install location. External dependencies which only
|
||||
# depend on system libraries are fine. Our main applications seem
|
||||
# to be fine.
|
||||
#
|
||||
# An example of a dependency which requires this fix-up at the time
|
||||
# of writing is the following dependency edge:
|
||||
#
|
||||
# libjsonrpccpp-client.0.dylib
|
||||
# -> /usr/local/opt/jsoncpp/lib/libjsoncpp.0.dylib
|
||||
#
|
||||
# See https://blogs.oracle.com/dipol/entry/dynamic_libraries_rpath_and_mac
|
||||
# for a little overview of "install_name_tool" and "otool".
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# 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 solidity contributors.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def readDependencies(fname):
|
||||
with subprocess.Popen(['otool', '-L', fname], stdout=subprocess.PIPE) as o:
|
||||
for line in o.stdout:
|
||||
if line[0] == '\t':
|
||||
library = line.split(' ', 1)[0][1:]
|
||||
if (library.startswith("/usr/local/lib") or
|
||||
library.startswith("/usr/local/opt") or
|
||||
library.startswith("/Users/")
|
||||
):
|
||||
if os.path.basename(library) != os.path.basename(fname):
|
||||
command = "install_name_tool -change " + \
|
||||
library + " @executable_path/./" + \
|
||||
os.path.basename(library) + " " + fname
|
||||
print(command)
|
||||
os.system("chmod +w " + fname)
|
||||
os.system(command)
|
||||
|
||||
root = sys.argv[1]
|
||||
for (dirpath, dirnames, filenames) in os.walk(root):
|
||||
for filename in filenames:
|
||||
readDependencies(os.path.join(root, filename))
|
||||
@@ -1,38 +0,0 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM ---------------------------------------------------------------------------
|
||||
REM Batch file for implementing release flow for solidity for Windows.
|
||||
REM
|
||||
REM The documentation for solidity is hosted at:
|
||||
REM
|
||||
REM https://docs.soliditylang.org
|
||||
REM
|
||||
REM ---------------------------------------------------------------------------
|
||||
REM This file is part of solidity.
|
||||
REM
|
||||
REM solidity is free software: you can redistribute it and/or modify
|
||||
REM it under the terms of the GNU General Public License as published by
|
||||
REM the Free Software Foundation, either version 3 of the License, or
|
||||
REM (at your option) any later version.
|
||||
REM
|
||||
REM solidity is distributed in the hope that it will be useful,
|
||||
REM but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
REM GNU General Public License for more details.
|
||||
REM
|
||||
REM You should have received a copy of the GNU General Public License
|
||||
REM along with solidity. If not, see <http://www.gnu.org/licenses/>
|
||||
REM
|
||||
REM Copyright (c) 2016 solidity contributors.
|
||||
REM ---------------------------------------------------------------------------
|
||||
|
||||
set CONFIGURATION=%1
|
||||
set VERSION=%2
|
||||
|
||||
set "DLLS=MSVC_DLLS_NOT_FOUND"
|
||||
FOR /d %%d IN ("C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\*"
|
||||
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\*") DO set "DLLS=%%d\x86\Microsoft.VC141.CRT\msvc*.dll"
|
||||
|
||||
7z a solidity-windows.zip ^
|
||||
.\build\solc\%CONFIGURATION%\solc.exe .\build\test\%CONFIGURATION%\soltest.exe ^
|
||||
"%DLLS%"
|
||||
@@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Bash script implementing release flow for solidity for Linux and macOS.
|
||||
#
|
||||
# TODO - At the time of writing, we only have ZIPs working. Need to hook up
|
||||
# support for Homebrew and PPAs.
|
||||
#
|
||||
# The documentation for solidity is hosted at:
|
||||
#
|
||||
# https://docs.soliditylang.org
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# 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 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
ZIP_SUFFIX="$1"
|
||||
ZIP_TEMP_DIR="$(pwd)/build/zip/"
|
||||
|
||||
# There is an implicit assumption here that we HAVE to run from root directory.
|
||||
REPO_ROOT=$(pwd)
|
||||
|
||||
mkdir -p "$ZIP_TEMP_DIR"
|
||||
|
||||
# Copy all the solidity executables into a temporary directory prior to ZIP creation
|
||||
|
||||
cp "$REPO_ROOT/build/solc/solc" "$ZIP_TEMP_DIR"
|
||||
|
||||
# For macOS, we run a fix-up script which alters all of the symbolic links within
|
||||
# the executables and dynamic libraries such that the ZIP becomes self-contained, by
|
||||
# revectoring all the dylib references to be relative to the directory containing the
|
||||
# application, so that the ZIPs are self-contained, with the only external references
|
||||
# being for kernel-level dylibs.
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
python3 "$REPO_ROOT/scripts/fix_homebrew_paths_in_standalone_zip.py" "$ZIP_TEMP_DIR"
|
||||
fi
|
||||
|
||||
# And ZIP it all up, with a filename suffix passed in on the command-line.
|
||||
mkdir -p "$REPO_ROOT/upload"
|
||||
zip -j "$REPO_ROOT/upload/solidity-$ZIP_SUFFIX.zip" "$ZIP_TEMP_DIR/"*
|
||||
@@ -55,9 +55,9 @@ keyid=379F4801D622CDCF
|
||||
email=builds@ethereum.org
|
||||
packagename=solc
|
||||
|
||||
static_build_distribution=hirsute
|
||||
static_build_distribution=impish
|
||||
|
||||
DISTRIBUTIONS="focal hirsute impish jammy"
|
||||
DISTRIBUTIONS="focal impish jammy"
|
||||
|
||||
if is_release
|
||||
then
|
||||
|
||||
@@ -45,7 +45,7 @@ set +e
|
||||
if [ -e scripts/ci/build_emscripten.sh ]; then
|
||||
scripts/ci/build_emscripten.sh
|
||||
else
|
||||
# The script used to be in scripts/ci/ in earlier versions.
|
||||
# The script used to be in scripts/travis-emscripten/ in earlier versions.
|
||||
scripts/travis-emscripten/build_emscripten.sh
|
||||
fi
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ done
|
||||
SOLIDITY_REPO_URL="https://github.com/ethereum/solidity"
|
||||
SOLC_JS_REPO_URL="https://github.com/ethereum/solc-js"
|
||||
SOLC_JS_BRANCH=wasmRebuildTests
|
||||
RELEASE_URL="https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/bin"
|
||||
RELEASE_URL="https://binaries.soliditylang.org/bin"
|
||||
RELEASE_COMMIT_LIST_URL="$RELEASE_URL/list.txt"
|
||||
|
||||
SCRIPTDIR=$(dirname "$0")
|
||||
@@ -196,6 +196,7 @@ cp scripts/bytecodecompare/storebytecode.sh /tmp
|
||||
# shellcheck disable=SC2016
|
||||
sed -i -e 's/rm -rf "\$TMPDIR"/cp "\$TMPDIR"\/report.txt \/tmp\/report.txt ; rm -rf "\$TMPDIR"/' /tmp/storebytecode.sh
|
||||
sed -i -e 's/REPO_ROOT=.*/REPO_ROOT=\/src/' /tmp/storebytecode.sh
|
||||
sed -i -e 's/git clone/git clone --branch '"${SOLC_JS_BRANCH}"'/' /tmp/storebytecode.sh
|
||||
export SOLC_EMSCRIPTEN="On"
|
||||
|
||||
echo "Check out solc-js repository..."
|
||||
@@ -213,7 +214,9 @@ ln -sf /emsdk_portable/emscripten/bin/* /usr/local/bin
|
||||
rm -rf /src
|
||||
ln -sf /root/project /src
|
||||
|
||||
echo "Install dependencies and upgrade system packages."
|
||||
apt-get -qq update >/dev/null 2>&1
|
||||
apt-get -qq upgrade >/dev/null 2>&1
|
||||
apt-get -qq install cmake >/dev/null 2>&1
|
||||
|
||||
echo "Create output directories."
|
||||
@@ -228,7 +231,6 @@ mkdir -p "${OUTPUTDIR}"/bin
|
||||
echo "Prepare solc-js."
|
||||
cd /root/solc-js
|
||||
npm install >/dev/null 2>&1
|
||||
npm run build >/dev/null 2>&1
|
||||
|
||||
echo "Install semver helper."
|
||||
npm install -g semver >/dev/null 2>&1
|
||||
@@ -238,6 +240,7 @@ wget -q "${RELEASE_COMMIT_LIST_URL}" -O /tmp/release_commit_list.txt
|
||||
|
||||
cd /src
|
||||
TAGS=$(git tag --list "${TAG_FILTER}" | tac)
|
||||
echo "Matching tags: ${TAGS}"
|
||||
for TAG in ${TAGS}; do
|
||||
process_tag "${TAG}"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user