%global git_hash 8a97fa7a1db1ec509221ead6fea6802c684ee887 Summary: Object-oriented, high-level language for implementing smart contracts Name: solidity Version: 0.8.26 Release: %autorelease ExcludeArch: %{ix86} URL: https://docs.soliditylang.org/ Source0: https://github.com/ethereum/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz License: GPL-3.0-only # Fedora-specific Patch1: solidity-0001-Use-system-wide-libs.patch Patch2: solidity-0002-Continue-on-big-endians.patch Patch3: solidity-0003-Use-static-linking-for-internal-libs.patch Patch4: solidity-0004-We-don-t-have-nlohmann-json-library-only-header.patch # Taken from https://github.com/ethereum/solidity/pull/15305 Patch5: solidity-0005-Update-fmtlib-to-v11.0.2.patch BuildRequires: boost-devel BuildRequires: cmake >= 3.0 BuildRequires: cmake(fmt) BuildRequires: cmake(nlohmann_json) BuildRequires: cmake(range-v3) BuildRequires: cmake(z3) BuildRequires: gcc-c++ # for /usr/bin/cvc5 Requires: cvc5 %description Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behaviour of accounts within the Ethereum state. %prep %autosetup -p1 echo %{git_hash} > commit_hash.txt %build %{cmake} \ -DUSE_SYSTEM_LIBRARIES:BOOL=ON \ -DBoost_USE_STATIC_LIBS:BOOL=OFF \ -DSTRICT_Z3_VERSION:BOOL=OFF \ -DSTRICT_NLOHMANN_JSON_VERSION:BOOL=OFF \ -DTESTS:BOOL=OFF %cmake_build %install %cmake_install %check # TODO %files %{_bindir}/solc %{_bindir}/yul-phaser %doc README.md %doc SECURITY.md %license LICENSE.txt %changelog %autochangelog