From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id mLDUClFnwWIJhgEAbAwnHQ (envelope-from ) for ; Sun, 03 Jul 2022 11:54:25 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id mDLvCVFnwWIyZgAAG6o9tA (envelope-from ) for ; Sun, 03 Jul 2022 11:54:25 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5070B39ED1 for ; Sun, 3 Jul 2022 11:54:24 +0200 (CEST) Received: from localhost ([::1]:39506 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o7wJ5-0005w5-H0 for larch@yhetil.org; Sun, 03 Jul 2022 05:54:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37606) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o7wB0-0007R6-79 for guix-patches@gnu.org; Sun, 03 Jul 2022 05:46:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:49398) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o7wAz-0005ct-Tb for guix-patches@gnu.org; Sun, 03 Jul 2022 05:46:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o7wAz-0008LA-S0 for guix-patches@gnu.org; Sun, 03 Jul 2022 05:46:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#56107] [PATCH]: Update z3 to 4.8.17 and use cmake to build the package. Resent-From: Zhu Zihao Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 03 Jul 2022 09:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56107 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 56107@debbugs.gnu.org, Maxime Devos Received: via spool by 56107-submit@debbugs.gnu.org id=B56107.165684150928756 (code B ref 56107); Sun, 03 Jul 2022 09:46:01 +0000 Received: (at 56107) by debbugs.gnu.org; 3 Jul 2022 09:45:09 +0000 Received: from localhost ([127.0.0.1]:43295 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o7w9z-0007MA-1H for submit@debbugs.gnu.org; Sun, 03 Jul 2022 05:45:09 -0400 Received: from mail-m975.mail.163.com ([123.126.97.5]:22006) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o7w9s-0007Lm-SE for 56107@debbugs.gnu.org; Sun, 03 Jul 2022 05:44:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=SVW9J UVtfSt61rqEftaSbZRVTsbURHzDcBhzdap1byc=; b=C3w8htuuCgKmduCZcPyEs fSsfTvCk80/b4THgU1CcRKUQ2/fdw6NdFDHUfdLWwRAWW2afdwjmX5gkOsSA23Ie HYbRvm12JC5XlTNXOpKPeAde5Ptyiz3yzD4dM0e0qqnDSgndqw2iIb0bhmOSLaT2 QNoAMoARnRy7SG8uFQYBUU= Received: from asus-laptop (unknown [27.38.172.243]) by smtp5 (Coremail) with SMTP id HdxpCgDnZf0JZcFiOK3WMA--.45477S2; Sun, 03 Jul 2022 17:44:42 +0800 (CST) References: <86mte7v7jf.fsf@163.com> <81f29e686f5727d02c9924782d4adb9895369046.camel@telenet.be> <86fsjyv3bc.fsf@163.com> <87k08v13tg.fsf_-_@gnu.org> User-agent: mu4e 1.6.11; emacs 28.1 From: Zhu Zihao Date: Sun, 03 Jul 2022 17:43:35 +0800 In-reply-to: <87k08v13tg.fsf_-_@gnu.org> Message-ID: <86fsji7con.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-CM-TRANSID: HdxpCgDnZf0JZcFiOK3WMA--.45477S2 X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvj4RM_M-DUUUU X-Originating-IP: [27.38.172.243] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/xtbBLw4zr2Hmne5pIAAAsA X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656842064; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=SVW9JUVtfSt61rqEftaSbZRVTsbURHzDcBhzdap1byc=; b=awfQppZa7A5gFZATaHFHqTghhcNDW8KE/0bgGaJ6g7X6uZO1zrZm/P7zmgx0SFlQQPqkAg IkW0/TY3evzvRtIt5j/q8kozVNQ/aJKXGI6E3O41PEkFsvolkfoUhpGo6Wywu0Q1efW60i tE/HBjhXW0HrhkfWdQ2Job8BUalEWMB6Ea00GYlkVcr51mHhDounEcVF1im0zSK7WFxmVx Mj+x5VYbcyvA1d9bL1sAXXcm/PfRc+0KA4XNsaXUunjtDisDWANxbCUYCSnVtrpdGzlVwt UL4FFK5uS24YByU/pl7Q32bwDC5MJNslF6ThUtwXx9XvKaaQNZ79ZuHBwIi6Ug== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656842064; a=rsa-sha256; cv=none; b=Eo25MHmRjtgxAp7ppXTlkh/cOFkOuXBslFTJdKUcs2G3hU4Nuy2q7U6AShwN5Ya34rF2yJ RLmt1JQrhHDq/ZF8Z0/lzBjA2eEcgSJzc3zUb3iepQYq+qAo+F3v8vkfcrP/qzjFPveJfJ zBMiY+4n4jfj1O5wutX5QDPw47PaIi0qxzjcPmcDyx6ZngYebCw7Cy2JsjVwViElIwusgg EzvP98SltqH6YRvXQuZwesTy+u02K5wn5Do3A+28g0JPljWDRBd//59kgUTI4DfvDRcGSE zaVofXHik5Dr4pN11BUkdr6XGrODK5psgcrMjMYliWXyN/pwiN4jobHV8GtNbg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=163.com header.s=s110527 header.b=C3w8htuu; dmarc=fail reason="SPF not aligned (relaxed)" header.from=163.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 3.95 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=163.com header.s=s110527 header.b=C3w8htuu; dmarc=fail reason="SPF not aligned (relaxed)" header.from=163.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 5070B39ED1 X-Spam-Score: 3.95 X-Migadu-Scanner: scn1.migadu.com X-TUID: 4Ecicl4pwglj --=-=-= Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" --==-=-= Content-Type: text/plain I update the solidity to 0.8.15 and now it can be built with z3 4.8. --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQRefA5qkqvnKdl/GTlmOX+E92aT+QUCYsFlCBUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQZjl/hPdmk/kjeQD/X57vlLBHHNZ01c5fi4UUjncfcKHx LFWR9yBqBgb1deIBAPh1deLujMXIlz1KM6l7BW3ddEdYqA9EeP+smn7wfWoP =2DmI -----END PGP SIGNATURE----- --==-=-=-- --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-z3-Use-G-expressions.patch Content-Transfer-Encoding: quoted-printable >From a8ccfba4a1c5ef02618d81f3873912b28411092e Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 20 Jun 2022 20:09:20 +0800 Subject: [PATCH 1/6] gnu: z3: Use G-expressions. * gnu/packages/maths.scm (z3)[arguments]: Use G-expressions. [native-inputs]: Use label-less style. --- gnu/packages/maths.scm | 89 +++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0ad14ba36e..b6d56e7467 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -50,6 +50,7 @@ ;;; Copyright =C2=A9 2021 Jean-Baptiste Volatier ;;; Copyright =C2=A9 2021 Guillaume Le Vaillant ;;; Copyright =C2=A9 2021 Pierre-Antoine Bouttier +;;; Copyright =C2=A9 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -5829,51 +5830,51 @@ (define-public z3 "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx")))) (build-system gnu-build-system) (arguments - `(#:imported-modules ((guix build python-build-system) - ,@%gnu-build-system-modules) - #:modules (((guix build python-build-system) #:select (site-package= s)) - (guix build gnu-build-system) - (guix build utils)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'enable-bytecode-determinism - (lambda _ - (setenv "PYTHONHASHSEED" "0") - #t)) - (add-after 'unpack 'fix-compatability - ;; Versions after 4.8.3 have immintrin.h IFDEFed for Windows on= ly. - (lambda _ - (substitute* "src/util/mpz.cpp" - (("#include ") "")) - #t)) - (add-before 'configure 'bootstrap - (lambda _ - (invoke "python" "scripts/mk_make.py"))) - ;; work around gnu-build-system's setting --enable-fast-install - ;; (z3's `configure' is a wrapper around the above python file, - ;; which fails when passed --enable-fast-install) - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (invoke "./configure" - "--python" - (string-append "--prefix=3D" (assoc-ref outputs "out"= )) - (string-append "--pypkgdir=3D" (site-packages inputs = outputs))))) - (add-after 'configure 'change-directory - (lambda _ - (chdir "build") - #t)) - (add-before 'check 'make-test-z3 - (lambda _ - ;; Build the test suite executable. - (invoke "make" "test-z3" "-j" - (number->string (parallel-job-count))))) - (replace 'check - (lambda _ - ;; Run all the tests that don't require arguments. - (invoke "./test-z3" "/a")))))) + (list + #:imported-modules `((guix build python-build-system) + ,@%cmake-build-system-modules) + #:modules '((guix build cmake-build-system) + (guix build utils) + ((guix build python-build-system) #:select (site-package= s))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'enable-bytecode-determinism + (lambda _ + (setenv "PYTHONHASHSEED" "0") + #t)) + (add-after 'unpack 'fix-compatability + ;; Versions after 4.8.3 have immintrin.h IFDEFed for Windows o= nly. + (lambda _ + (substitute* "src/util/mpz.cpp" + (("#include ") "")) + #t)) + (add-before 'configure 'bootstrap + (lambda _ + (invoke "python" "scripts/mk_make.py"))) + ;; work around gnu-build-system's setting --enable-fast-install + ;; (z3's `configure' is a wrapper around the above python file, + ;; which fails when passed --enable-fast-install) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (invoke "./configure" + "--python" + (string-append "--prefix=3D" (assoc-ref outputs "out= ")) + (string-append "--pypkgdir=3D" (site-packages inputs= outputs))))) + (add-after 'configure 'change-directory + (lambda _ + (chdir "build") + #t)) + (add-before 'check 'make-test-z3 + (lambda _ + ;; Build the test suite executable. + (invoke "make" "test-z3" "-j" + (number->string (parallel-job-count))))) + (replace 'check + (lambda _ + ;; Run all the tests that don't require arguments. + (invoke "./test-z3" "/a")))))) (native-inputs - `(("which" ,which) - ("python" ,python-wrapper))) + (list which python-wrapper)) (synopsis "Theorem prover") (description "Z3 is a theorem prover and @dfn{satisfiability modulo theories} (SMT) solver. It provides a C/C++ API, as well as Python bindin= gs.") --=20 2.36.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-gnu-z3-Update-to-4.8.17.patch >From 5ce1ec4c3c6d0a865645da9a6b0899f3596b5e3e Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 20 Jun 2022 20:14:37 +0800 Subject: [PATCH 2/6] gnu: z3: Update to 4.8.17. * gnu/packages/maths.scm (z3): Update to 4.8.17. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b6d56e7467..2f1f731890 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5818,7 +5818,7 @@ (define-public jacal (define-public z3 (package (name "z3") - (version "4.8.9") + (version "4.8.17") (home-page "https://github.com/Z3Prover/z3") (source (origin (method git-fetch) @@ -5827,8 +5827,8 @@ (define-public z3 (file-name (git-file-name name version)) (sha256 (base32 - "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx")))) (build-system gnu-build-system) + "1vvb09q7w7zd29qc4qjysrrhyylszm1wf6azkff004ixwn026b05")))) (arguments (list #:imported-modules `((guix build python-build-system) -- 2.36.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0003-gnu-z3-Prefer-CMake-to-build-the-package.patch >From e1df674d84fe5a26a343a2ea68ea961d045dffe8 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 20 Jun 2022 20:17:54 +0800 Subject: [PATCH 3/6] gnu: z3: Prefer CMake to build the package. Z3 developer recommends to use CMake to build Z3 except the OCaml bindings. Use CMake also enable us to cross compile z3. * gnu/packages/maths.scm (z3)[build-system]: Use cmake-build-system. [arguments]<#:configure-flags>: Add flags for CMake. <#:phases>: Remove stale phase 'fix-compatability'. In phase 'check', build the z3 test binary and don't test when cross compiling. Add phase 'compile-python-modules' phase to generate python bytecode cache for z3 python binding. Add phase 'fix-z3-library-path' to help z3 pythong binding to find the z3 shared library. (ocaml-z3)[build-system]: Override the inherited value with 'gnu-build-system'. --- gnu/packages/maths.scm | 64 ++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 2f1f731890..a73dfdb809 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5827,8 +5827,8 @@ (define-public z3 (file-name (git-file-name name version)) (sha256 (base32 - (build-system gnu-build-system) "1vvb09q7w7zd29qc4qjysrrhyylszm1wf6azkff004ixwn026b05")))) + (build-system cmake-build-system) (arguments (list #:imported-modules `((guix build python-build-system) @@ -5836,43 +5836,40 @@ (define-public z3 #:modules '((guix build cmake-build-system) (guix build utils) ((guix build python-build-system) #:select (site-packages))) + #:configure-flags + #~(list "-DZ3_BUILD_PYTHON_BINDINGS=ON" + "-DZ3_LINK_TIME_OPTIMIZATION=ON" + (string-append + "-DCMAKE_INSTALL_PYTHON_PKG_DIR=" + #$output "/lib/python" + #$(version-major+minor (package-version python-wrapper)) + "/site-packages")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'enable-bytecode-determinism + (replace 'check + (lambda* (#:key parallel-build? tests? #:allow-other-keys) + (when tests? + (invoke "make" "test-z3" + (format #f "-j~a" + (if parallel-build? + (parallel-job-count) + 1))) + (invoke "./test-z3" "/a")))) + (add-after 'install 'compile-python-modules (lambda _ (setenv "PYTHONHASHSEED" "0") - #t)) - (add-after 'unpack 'fix-compatability - ;; Versions after 4.8.3 have immintrin.h IFDEFed for Windows only. - (lambda _ - (substitute* "src/util/mpz.cpp" - (("#include ") "")) - #t)) - (add-before 'configure 'bootstrap - (lambda _ - (invoke "python" "scripts/mk_make.py"))) - ;; work around gnu-build-system's setting --enable-fast-install - ;; (z3's `configure' is a wrapper around the above python file, - ;; which fails when passed --enable-fast-install) - (replace 'configure + + (invoke "python" "-m" "compileall" + "--invalidation-mode=unchecked-hash" + #$output))) + ;; This step is missing in the CMake build system, do it here. + (add-after 'compile-python-modules 'fix-z3-library-path (lambda* (#:key inputs outputs #:allow-other-keys) - (invoke "./configure" - "--python" - (string-append "--prefix=" (assoc-ref outputs "out")) - (string-append "--pypkgdir=" (site-packages inputs outputs))))) - (add-after 'configure 'change-directory - (lambda _ - (chdir "build") - #t)) - (add-before 'check 'make-test-z3 - (lambda _ - ;; Build the test suite executable. - (invoke "make" "test-z3" "-j" - (number->string (parallel-job-count))))) - (replace 'check - (lambda _ - ;; Run all the tests that don't require arguments. - (invoke "./test-z3" "/a")))))) + (let* ((dest (string-append (site-packages inputs outputs) + "/z3/lib/libz3.so")) + (z3-lib (string-append #$output "/lib/libz3.so"))) + (mkdir-p (dirname dest)) + (symlink z3-lib dest))))))) (native-inputs (list which python-wrapper)) (synopsis "Theorem prover") @@ -5884,6 +5881,7 @@ (define-public ocaml-z3 (package (inherit z3) (name "ocaml-z3") + (build-system gnu-build-system) (arguments `(#:imported-modules ((guix build python-build-system) ,@%gnu-build-system-modules) -- 2.36.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0004-gnu-solidity-Use-G-expressions.patch Content-Transfer-Encoding: quoted-printable >From 7ec422d6f592a129f2e03fa57cfe3afb95febf29 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Sun, 3 Jul 2022 13:10:43 +0800 Subject: [PATCH 4/6] gnu: solidity: Use G-expressions. * gnu/packages/solidity.scm (solidity)[arguments]: Use G-expressions. [native-inputs]: Use label-less style inputs. --- gnu/packages/solidity.scm | 69 ++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/gnu/packages/solidity.scm b/gnu/packages/solidity.scm index a5b5002ce8..606e078e42 100644 --- a/gnu/packages/solidity.scm +++ b/gnu/packages/solidity.scm @@ -1,4 +1,5 @@ ;;; Copyright =C2=A9 2020 Martin Becze +;;; Copyright =C2=A9 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ (define-module (gnu packages solidity) #:use-module (gnu packages python) #:use-module (gnu packages ncurses) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:)) @@ -44,43 +46,42 @@ (define-public solidity (base32 "1mswhjymiwnd3n7h3sjvjx5x8223yih0yvfcr0zpqr4aizpfx5z8"))= )) (build-system cmake-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'create-commit_hash.txt - (lambda _ - (with-output-to-file "commit_hash.txt" - (lambda _ - (display - (substring ,commit 0 8)))))) - (delete 'configure) - (delete 'install) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - ;; Unbundle jsoncpp - (delete-file "./cmake/jsoncpp.cmake") - (substitute* "CMakeLists.txt" - (("include\\(jsoncpp\\)") "")) - ;; Bug list is always sorted since we only build releases - (substitute* "./test/cmdlineTests.sh" - (("\"\\$REPO_ROOT\"/scripts/update_bugs_by_version\\.py")= "")) - (substitute* "./scripts/build.sh" - (("sudo\\ make\\ install") "make install") - (("cmake\\ ..") - (string-append "cmake .. -DCMAKE_INSTALL_PREFIX=3D" - (assoc-ref outputs "out")))) - (setenv "CIRCLECI" "1") - (invoke "./scripts/build.sh") - #t)) - (replace 'check - (lambda _ - (invoke "./scripts/tests.sh") - #t))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'create-commit_hash.txt + (lambda _ + (with-output-to-file "commit_hash.txt" + (lambda _ + (display + (substring #$commit 0 8)))))) + (delete 'configure) + (delete 'install) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + ;; Unbundle jsoncpp + (delete-file "./cmake/jsoncpp.cmake") + (substitute* "CMakeLists.txt" + (("include\\(jsoncpp\\)") "")) + ;; Bug list is always sorted since we only build releases + (substitute* "./test/cmdlineTests.sh" + (("\"\\$REPO_ROOT\"/scripts/update_bugs_by_version\\.py"= ) "")) + (substitute* "./scripts/build.sh" + (("sudo\\ make\\ install") "make install") + (("cmake\\ ..") + (string-append "cmake .. -DCMAKE_INSTALL_PREFIX=3D" + (assoc-ref outputs "out")))) + (setenv "CIRCLECI" "1") + (invoke "./scripts/build.sh") + #t)) + (replace 'check + (lambda _ + (invoke "./scripts/tests.sh") + #t))))) (inputs (list boost-static jsoncpp z3)) (native-inputs - `(("python" ,python) - ("tput" ,ncurses) - ("xargs" ,findutils))) + (list python ncurses findutils)) (home-page "https://solidity.readthedocs.io") (synopsis "Contract-Oriented Programming Language") (description --=20 2.36.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0005-gnu-Add-fmt-for-solidity.patch Content-Transfer-Encoding: quoted-printable >From 5f7384a382124c46b77bd9537ae643caba4fea8f Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Sun, 3 Jul 2022 17:37:35 +0800 Subject: [PATCH 5/6] gnu: Add fmt-for-solidity. * gnu/packages/pretty-print.scm (fmt-for-solidity): New variable. --- gnu/packages/pretty-print.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 4ee46b4e89..9745a9ba10 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -8,6 +8,7 @@ ;;; Copyright =C2=A9 2020 Paul Garlick ;;; Copyright =C2=A9 2020 Vincent Legoll ;;; Copyright =C2=A9 2021 Greg Hogan +;;; Copyright =C2=A9 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -187,6 +188,19 @@ (define-public fmt ;; The library is bsd-2, but documentation and tests include other lic= enses. (license (list bsd-2 bsd-3 psfl)))) =20 +(define-public fmt-for-solidity + (package + (inherit fmt) + (name "fmt-for-solidity") + (version "8.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/fmtlib/fmt/releases/downloa= d/" + version "/fmt-" version ".zip")) + (sha256 + (base32 "1gqmsk4r93x65cqs8w7zhfiv70w5fv8279nrblggqm4mmdpaa9x6"))))= )) + (define-public fmt-7 (package (inherit fmt) (version "7.1.3") --=20 2.36.1 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0006-gnu-solidity-Update-to-0.8.15.patch >From dca38a7c446f38417ae914d2f71c0568fba2cb8a Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Sun, 3 Jul 2022 17:39:27 +0800 Subject: [PATCH 6/6] gnu: solidity: Update to 0.8.15. * gnu/packages/solidity.scm (solidity): Update to 0.8.15. [source]: Use Github release. [arguments]<#:phases>: Remove phase 'create-commit_hash.txt'. Restore phase 'configure' and phase 'install'. Remove modifications applied to the phase 'build' and phase 'check'. Add phase 'unbundle-3rd-party-dependencies'. [inputs]: Add fmt-for-solidity, range-v3. --- gnu/packages/solidity.scm | 94 +++++++++++++++------------------------ 1 file changed, 37 insertions(+), 57 deletions(-) diff --git a/gnu/packages/solidity.scm b/gnu/packages/solidity.scm index 606e078e42..8e0bd91205 100644 --- a/gnu/packages/solidity.scm +++ b/gnu/packages/solidity.scm @@ -19,73 +19,53 @@ (define-module (gnu packages solidity) #:use-module (gnu packages base) #:use-module (gnu packages boost) + #:use-module (gnu packages cpp) #:use-module (gnu packages maths) #:use-module (gnu packages serialization) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages ncurses) #:use-module (guix packages) #:use-module (guix gexp) + #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:)) (define-public solidity - (let ((commit "3f05b770bdbf60eca866382049ea191dd701409a")) - (package - (name "solidity") - (version "0.7.4") - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/ethereum/solidity") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1mswhjymiwnd3n7h3sjvjx5x8223yih0yvfcr0zpqr4aizpfx5z8")))) - (build-system cmake-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'create-commit_hash.txt - (lambda _ - (with-output-to-file "commit_hash.txt" - (lambda _ - (display - (substring #$commit 0 8)))))) - (delete 'configure) - (delete 'install) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - ;; Unbundle jsoncpp - (delete-file "./cmake/jsoncpp.cmake") - (substitute* "CMakeLists.txt" - (("include\\(jsoncpp\\)") "")) - ;; Bug list is always sorted since we only build releases - (substitute* "./test/cmdlineTests.sh" - (("\"\\$REPO_ROOT\"/scripts/update_bugs_by_version\\.py") "")) - (substitute* "./scripts/build.sh" - (("sudo\\ make\\ install") "make install") - (("cmake\\ ..") - (string-append "cmake .. -DCMAKE_INSTALL_PREFIX=" - (assoc-ref outputs "out")))) - (setenv "CIRCLECI" "1") - (invoke "./scripts/build.sh") - #t)) - (replace 'check - (lambda _ - (invoke "./scripts/tests.sh") - #t))))) - (inputs - (list boost-static jsoncpp z3)) - (native-inputs - (list python ncurses findutils)) - (home-page "https://solidity.readthedocs.io") - (synopsis "Contract-Oriented Programming Language") - (description - "Solidity is a statically-typed curly-braces programming language + (package + (name "solidity") + (version "0.8.15") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/ethereum/solidity/releases/download/v" + version "/solidity_" version ".tar.gz")) + (sha256 + (base32 "0j9a8y5fizarl9yhbnwvd0x1nm6qsbskqb7j1fwsyqx47w5sa82p")))) + (build-system cmake-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unbundle-3rd-party-dependencies + (lambda _ + (substitute* "CMakeLists.txt" + (("include\\(fmtlib\\)") + "find_package(fmt)") + (("include\\(range-v3\\)") + "find_package(range-v3)") + (("include\\(jsoncpp\\)") + "find_package(jsoncpp)"))))))) + (inputs + (list boost-static fmt-for-solidity jsoncpp range-v3 z3)) + (native-inputs + (list python ncurses findutils)) + (home-page "https://solidity.readthedocs.io") + (synopsis "Contract-Oriented Programming Language") + (description + "Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on the Ethereum Virtual Machine.") - (license license:gpl3+)))) + (license license:gpl3+))) -- 2.36.1 --=-=-= Content-Type: text/plain -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-=--