diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit index 86d11e456..d138eac78 100644 --- a/.buildkite/hooks/pre-exit +++ b/.buildkite/hooks/pre-exit @@ -5,5 +5,5 @@ if [[ "$BUILDKITE_STEP_KEY" == "test-systemd-services" ]]; then cd tests/systemd - nix shell ../..#legacyPackages.x86_64-linux.vagrant -c vagrant --packages-directory=../../out destroy --force + NIXPKGS_ALLOW_UNFREE=1 nix shell --impure ../..#legacyPackages.x86_64-linux.vagrant -c vagrant --packages-directory=../../out destroy --force fi diff --git a/.buildkite/pipeline-raw.yml b/.buildkite/pipeline-raw.yml index aa1da026a..98a9b22f2 100644 --- a/.buildkite/pipeline-raw.yml +++ b/.buildkite/pipeline-raw.yml @@ -24,7 +24,8 @@ steps: command: nix shell -f https://github.com/serokell/crossref-verifier/archive/68a1f9d25b6e7835fea8299b18a3e6c61dbb2a5c.tar.gz -c crossref-verify soft_fail: true - label: lint python code - command: nix shell .#python39Packages.black -c black --check --diff --color . + command: nix shell .#python311Packages.black -c black --check --diff --color . + soft_fail: true - label: lint bash scripts command: nix shell .#shellcheck -c shellcheck --shell=bash --exclude=SC1091 -x $(find . -name '*.sh') - label: pipeline-filtering @@ -185,7 +186,7 @@ steps: commands: - buildkite-agent artifact download "out/*~focal_amd64.deb" . --step build-static-deb - cd tests/systemd - - nix shell ../..#legacyPackages.x86_64-linux.vagrant ../..#legacyPackages.x86_64-linux.curl -c vagrant --packages-directory=../../out up --provider=libvirt + - NIXPKGS_ALLOW_UNFREE=1 nix shell --impure ../..#legacyPackages.x86_64-linux.vagrant ../..#legacyPackages.x86_64-linux.curl -c vagrant --packages-directory=../../out up --provider=libvirt retry: automatic: limit: 3 diff --git a/.github/workflows/build-bottles.yml b/.github/workflows/build-bottles.yml index bad100dd6..c8a836f19 100644 --- a/.github/workflows/build-bottles.yml +++ b/.github/workflows/build-bottles.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ { id: macos-13, name: "ventura" } ] # we don't bottle meta-formulas that contain only services - formula: [tezos-smart-rollup-wasm-debugger, tezos-smart-rollup-node, tezos-dac-client, tezos-dac-node, tezos-dal-node, tezos-signer, tezos-codec, tezos-client, tezos-admin-client, tezos-node, tezos-accuser-PsParisC, tezos-baker-PsParisC, tezos-accuser-PtParisB, tezos-baker-PtParisB, tezos-accuser-Proxford, tezos-baker-Proxford] + formula: [tezos-smart-rollup-wasm-debugger, tezos-smart-rollup-node, tezos-dac-client, tezos-dac-node, tezos-dal-node, tezos-signer, tezos-codec, tezos-client, tezos-admin-client, tezos-node, tezos-accuser-PsQuebec, tezos-baker-PsQuebec, tezos-accuser-PsParisC, tezos-baker-PsParisC] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/Formula/tezos-accuser-PsParisC.rb b/Formula/tezos-accuser-PsParisC.rb index 48ed8426f..cf63df984 100644 --- a/Formula/tezos-accuser-PsParisC.rb +++ b/Formula/tezos-accuser-PsParisC.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosAccuserPsparisc.version}/" - sha256 cellar: :any, ventura: "490aa62c6fa8b5502578f677ee4d0e8993212cc59f34546b50a6b787d15986bd" end def make_deps diff --git a/Formula/tezos-accuser-PtParisB.rb b/Formula/tezos-accuser-PsQuebec.rb similarity index 76% rename from Formula/tezos-accuser-PtParisB.rb rename to Formula/tezos-accuser-PsQuebec.rb index ef840fec8..bb8f0b6a3 100644 --- a/Formula/tezos-accuser-PtParisB.rb +++ b/Formula/tezos-accuser-PsQuebec.rb @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2024 Oxhead Alpha # SPDX-License-Identifier: LicenseRef-MIT-OA -class TezosAccuserPtparisb < Formula +class TezosAccuserPsquebec < Formula @all_bins = [] class << self @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -25,8 +25,7 @@ class << self desc "Daemon for accusing" bottle do - root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosAccuserPtparisb.version}/" - sha256 cellar: :any, ventura: "b8f6cb6a21cf2cf703cfdf61cf259414a5c6f7bfa950fc6470ff56c08ff9fe49" + root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosAccuserPsquebec.version}/" end def make_deps @@ -60,7 +59,7 @@ def install set -euo pipefail - accuser="#{bin}/octez-accuser-PtParisB" + accuser="#{bin}/octez-accuser-PsQuebec" accuser_config="$TEZOS_CLIENT_DIR/config" mkdir -p "$TEZOS_CLIENT_DIR" @@ -75,21 +74,21 @@ def install exec "$accuser" --endpoint "$NODE_RPC_SCHEME://$NODE_RPC_ADDR" run EOS - File.write("tezos-accuser-PtParisB-start", startup_contents) - bin.install "tezos-accuser-PtParisB-start" + File.write("tezos-accuser-PsQuebec-start", startup_contents) + bin.install "tezos-accuser-PsQuebec-start" make_deps - install_template "src/proto_019_PtParisB/bin_accuser/main_accuser_019_PtParisB.exe", - "_build/default/src/proto_019_PtParisB/bin_accuser/main_accuser_019_PtParisB.exe", - "octez-accuser-PtParisB" + install_template "src/proto_021_PsQuebec/bin_accuser/main_accuser_021_PsQuebec.exe", + "_build/default/src/proto_021_PsQuebec/bin_accuser/main_accuser_021_PsQuebec.exe", + "octez-accuser-PsQuebec" end service do - run opt_bin/"tezos-accuser-PtParisB-start" + run opt_bin/"tezos-accuser-PsQuebec-start" require_root true environment_variables TEZOS_CLIENT_DIR: var/"lib/tezos/client", NODE_RPC_SCHEME: "http", NODE_RPC_ADDR: "localhost:8732" keep_alive true - log_path var/"log/tezos-accuser-PtParisB.log" - error_log_path var/"log/tezos-accuser-PtParisB.log" + log_path var/"log/tezos-accuser-PsQuebec.log" + error_log_path var/"log/tezos-accuser-PsQuebec.log" end def post_install diff --git a/Formula/tezos-admin-client.rb b/Formula/tezos-admin-client.rb index 1a91068b5..6b8ba29d0 100644 --- a/Formula/tezos-admin-client.rb +++ b/Formula/tezos-admin-client.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosAdminClient.version}/" - sha256 cellar: :any, ventura: "5ba0c3cc55109cbafa9462d5371b6fbb62e57d5df14ef8315cfc584e65aa5c07" end def make_deps diff --git a/Formula/tezos-baker-PsParisC.rb b/Formula/tezos-baker-PsParisC.rb index 59e2b7a82..ff9b308a8 100644 --- a/Formula/tezos-baker-PsParisC.rb +++ b/Formula/tezos-baker-PsParisC.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosBakerPsparisc.version}/" - sha256 cellar: :any, ventura: "e8b61dc8a01d2de538c89bb6e020df81e6d64f2ede819a62fe5d0230efbc6b33" end def make_deps diff --git a/Formula/tezos-baker-PtParisB.rb b/Formula/tezos-baker-PsQuebec.rb similarity index 78% rename from Formula/tezos-baker-PtParisB.rb rename to Formula/tezos-baker-PsQuebec.rb index 02be3df83..df50f80d7 100644 --- a/Formula/tezos-baker-PtParisB.rb +++ b/Formula/tezos-baker-PsQuebec.rb @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2024 Oxhead Alpha # SPDX-License-Identifier: LicenseRef-MIT-OA -class TezosBakerPtparisb < Formula +class TezosBakerPsquebec < Formula @all_bins = [] class << self @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -25,8 +25,7 @@ class << self desc "Daemon for baking" bottle do - root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosBakerPtparisb.version}/" - sha256 cellar: :any, ventura: "8836c1c1d5f4d7e0c8777b953e1a7e0d028ce686a84e1acd402e09420ba09009" + root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosBakerPsquebec.version}/" end def make_deps @@ -60,7 +59,7 @@ def install set -euo pipefail - baker="#{bin}/octez-baker-PtParisB" + baker="#{bin}/octez-baker-PsQuebec" baker_config="$TEZOS_CLIENT_DIR/config" mkdir -p "$TEZOS_CLIENT_DIR" @@ -85,21 +84,21 @@ def install launch_baker "$BAKER_ACCOUNT" fi EOS - File.write("tezos-baker-PtParisB-start", startup_contents) - bin.install "tezos-baker-PtParisB-start" + File.write("tezos-baker-PsQuebec-start", startup_contents) + bin.install "tezos-baker-PsQuebec-start" make_deps - install_template "src/proto_019_PtParisB/bin_baker/main_baker_019_PtParisB.exe", - "_build/default/src/proto_019_PtParisB/bin_baker/main_baker_019_PtParisB.exe", - "octez-baker-PtParisB" + install_template "src/proto_021_PsQuebec/bin_baker/main_baker_021_PsQuebec.exe", + "_build/default/src/proto_021_PsQuebec/bin_baker/main_baker_021_PsQuebec.exe", + "octez-baker-PsQuebec" end service do - run opt_bin/"tezos-baker-PtParisB-start" + run opt_bin/"tezos-baker-PsQuebec-start" require_root true environment_variables TEZOS_CLIENT_DIR: var/"lib/tezos/client", TEZOS_NODE_DIR: "", NODE_RPC_SCHEME: "http", NODE_RPC_ADDR: "localhost:8732", BAKER_ACCOUNT: "" keep_alive true - log_path var/"log/tezos-baker-PtParisB.log" - error_log_path var/"log/tezos-baker-PtParisB.log" + log_path var/"log/tezos-baker-PsQuebec.log" + error_log_path var/"log/tezos-baker-PsQuebec.log" end def post_install diff --git a/Formula/tezos-client.rb b/Formula/tezos-client.rb index 3db8fd623..7bf2b5d53 100644 --- a/Formula/tezos-client.rb +++ b/Formula/tezos-client.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosClient.version}/" - sha256 cellar: :any, ventura: "4efb6f382cecbd3cb51a42f8ec32c94e030212a4339294fb61eff120817b855f" end def make_deps diff --git a/Formula/tezos-codec.rb b/Formula/tezos-codec.rb index 7eb11ea60..d0aa3050e 100644 --- a/Formula/tezos-codec.rb +++ b/Formula/tezos-codec.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosCodec.version}/" - sha256 cellar: :any, ventura: "7332ca78fd2aa4f91694629c278a9be92b381e16d89e49e8c5a2d75ea658446e" end def make_deps diff --git a/Formula/tezos-dac-client.rb b/Formula/tezos-dac-client.rb index 6d047ef19..e40d30169 100644 --- a/Formula/tezos-dac-client.rb +++ b/Formula/tezos-dac-client.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosDacClient.version}/" - sha256 cellar: :any, ventura: "5049f227af507b9e9c1daad5f712b7f557b0034d743952c9f3f0994c2e54541e" end def make_deps diff --git a/Formula/tezos-dac-node.rb b/Formula/tezos-dac-node.rb index 34240ec0e..cdb77739d 100644 --- a/Formula/tezos-dac-node.rb +++ b/Formula/tezos-dac-node.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosDacNode.version}/" - sha256 cellar: :any, ventura: "71efd560049626a0dbb7e0a47d46c8d379d75a0c0eee1d93bf6a0210af267266" end def make_deps diff --git a/Formula/tezos-dal-node.rb b/Formula/tezos-dal-node.rb index ac2e21544..b18c0d261 100644 --- a/Formula/tezos-dal-node.rb +++ b/Formula/tezos-dal-node.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosDalNode.version}/" - sha256 cellar: :any, ventura: "28e1064941f25d217c1f782aa814f9cfbde6c8ad0fc914dd7a15ee4ab4c08252" end def make_deps diff --git a/Formula/tezos-node-ghostnet.rb b/Formula/tezos-node-ghostnet.rb index 5ce2d7ed5..1a2f28add 100644 --- a/Formula/tezos-node-ghostnet.rb +++ b/Formula/tezos-node-ghostnet.rb @@ -3,7 +3,7 @@ class TezosNodeGhostnet < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-node" diff --git a/Formula/tezos-node-mainnet.rb b/Formula/tezos-node-mainnet.rb index 68381bc75..3ef12c626 100644 --- a/Formula/tezos-node-mainnet.rb +++ b/Formula/tezos-node-mainnet.rb @@ -3,7 +3,7 @@ class TezosNodeMainnet < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-node" diff --git a/Formula/tezos-node.rb b/Formula/tezos-node.rb index a835d7a26..0f698f2a7 100644 --- a/Formula/tezos-node.rb +++ b/Formula/tezos-node.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosNode.version}/" - sha256 cellar: :any, ventura: "fb0bac1a458ee6821591e180ec8cf9e54afea1927d43070ee1443cf8f5399304" end def make_deps diff --git a/Formula/tezos-signer-http.rb b/Formula/tezos-signer-http.rb index 436487dac..7edf0ea22 100644 --- a/Formula/tezos-signer-http.rb +++ b/Formula/tezos-signer-http.rb @@ -3,7 +3,7 @@ class TezosSignerHttp < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-signer" diff --git a/Formula/tezos-signer-https.rb b/Formula/tezos-signer-https.rb index bcbf50353..694cfa98c 100644 --- a/Formula/tezos-signer-https.rb +++ b/Formula/tezos-signer-https.rb @@ -3,7 +3,7 @@ class TezosSignerHttps < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-signer" diff --git a/Formula/tezos-signer-tcp.rb b/Formula/tezos-signer-tcp.rb index 360a48292..a2c7121dc 100644 --- a/Formula/tezos-signer-tcp.rb +++ b/Formula/tezos-signer-tcp.rb @@ -3,7 +3,7 @@ class TezosSignerTcp < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-signer" diff --git a/Formula/tezos-signer-unix.rb b/Formula/tezos-signer-unix.rb index 8147d935d..d2b5e5a8f 100644 --- a/Formula/tezos-signer-unix.rb +++ b/Formula/tezos-signer-unix.rb @@ -3,7 +3,7 @@ class TezosSignerUnix < Formula url "file:///dev/null" - version "v20.3-1" + version "v21.0-1" depends_on "tezos-signer" diff --git a/Formula/tezos-signer.rb b/Formula/tezos-signer.rb index e27faf36c..d47a7d8c2 100644 --- a/Formula/tezos-signer.rb +++ b/Formula/tezos-signer.rb @@ -9,9 +9,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -26,7 +26,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosSigner.version}/" - sha256 cellar: :any, ventura: "5cc06d5b860d4e8c2084f324d977e38cbee4a8671c5a8470ac41a8ebaafe5aa3" end def make_deps diff --git a/Formula/tezos-smart-rollup-node.rb b/Formula/tezos-smart-rollup-node.rb index c6d7da57b..791778faf 100644 --- a/Formula/tezos-smart-rollup-node.rb +++ b/Formula/tezos-smart-rollup-node.rb @@ -11,9 +11,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -28,7 +28,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosSmartRollupNode.version}/" - sha256 cellar: :any, ventura: "d063c53cf47ece2ebe64b2221340c05cbca1094e7beaa0dc4ed4d246ab7b0afd" end def make_deps diff --git a/Formula/tezos-smart-rollup-wasm-debugger.rb b/Formula/tezos-smart-rollup-wasm-debugger.rb index f1168286a..571affb69 100644 --- a/Formula/tezos-smart-rollup-wasm-debugger.rb +++ b/Formula/tezos-smart-rollup-wasm-debugger.rb @@ -10,9 +10,9 @@ class << self end homepage "https://gitlab.com/tezos/tezos" - url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v20.3", :shallow => false + url "https://gitlab.com/tezos/tezos.git", :tag => "octez-v21.0", :shallow => false - version "v20.3-1" + version "v21.0-1" build_dependencies = %w[pkg-config coreutils autoconf rsync wget rustup-init cmake opam] build_dependencies.each do |dependency| @@ -27,7 +27,6 @@ class << self bottle do root_url "https://github.com/serokell/tezos-packaging/releases/download/#{TezosSmartRollupWasmDebugger.version}/" - sha256 cellar: :any, ventura: "8afc3d417f115d99df4d9790da280b1f92c09864b9be56d07f1cb8533cf36b62" end def make_deps diff --git a/baking/pyproject.toml b/baking/pyproject.toml index 045f99255..fa0c90935 100644 --- a/baking/pyproject.toml +++ b/baking/pyproject.toml @@ -14,7 +14,7 @@ description = "Package that provides systemd services that orchestrate other ser license = { text = "LicenseRef-MIT-OA" } requires-python = ">=3.8" readme = "README.md" -version = "v20.3" +version = "v21.0" [tool.setuptools.packages.find] where= ["src"] diff --git a/baking/src/tezos_baking/steps.py b/baking/src/tezos_baking/steps.py index f2565dcfa..5510c3a5d 100644 --- a/baking/src/tezos_baking/steps.py +++ b/baking/src/tezos_baking/steps.py @@ -107,6 +107,7 @@ def pprint_options(self): "mainnet": "Main Tezos network", "ghostnet": "Long running test network, currently using the Paris Tezos protocol", "pariscnet": "Test network using the PsParisC Tezos protocol", + "quebecnet": "Test network using the PsQuebec Tezos protocol", } # Steps diff --git a/docker/active-protocols b/docker/active-protocols index 474c463c3..d60f30420 100644 --- a/docker/active-protocols +++ b/docker/active-protocols @@ -1,4 +1,3 @@ -Proxford -PtParisB PsParisC +PsQuebec alpha diff --git a/docker/build/Dockerfile b/docker/build/Dockerfile index 99c2492e1..b35cdce43 100644 --- a/docker/build/Dockerfile +++ b/docker/build/Dockerfile @@ -1,18 +1,17 @@ # SPDX-FileCopyrightText: 2020 TQ Tezos # # SPDX-License-Identifier: LicenseRef-MIT-TQ -FROM alpine:3.17 +FROM alpine:3.20 RUN apk update RUN apk --no-cache --virtual add rsync git m4 build-base patch unzip \ bubblewrap wget pkgconfig gmp-dev libev-dev \ hidapi-dev eudev-dev perl opam libusb-dev bash \ - autoconf automake libtool linux-headers cargo \ + autoconf automake libtool linux-headers \ libffi-dev zlib-dev zlib-static coreutils perl-utils cmake \ - protobuf protobuf-dev sqlite-dev + protobuf protobuf-dev sqlite-dev sqlite-libs cargo upx libc-dev \ + sqlite-static COPY ./build/build-rust.sh /build-rust.sh RUN /build-rust.sh -COPY ./build/build-upx.sh /build-upx.sh -RUN /build-upx.sh ARG OCTEZ_VERSION RUN git clone --single-branch --depth 1 --branch "$OCTEZ_VERSION" https://gitlab.com/tezos/tezos.git WORKDIR /tezos diff --git a/docker/build/build-rust.sh b/docker/build/build-rust.sh index b11224d4b..bf0c7feb9 100755 --- a/docker/build/build-rust.sh +++ b/docker/build/build-rust.sh @@ -7,4 +7,4 @@ set -euo pipefail wget https://sh.rustup.rs/rustup-init.sh chmod +x rustup-init.sh -./rustup-init.sh --profile minimal --default-toolchain 1.71.1 -y +./rustup-init.sh --profile minimal --default-toolchain 1.78.0 -y diff --git a/docker/build/build-tezos.sh b/docker/build/build-tezos.sh index e4429b64e..a10238cae 100755 --- a/docker/build/build-tezos.sh +++ b/docker/build/build-tezos.sh @@ -11,5 +11,6 @@ eval "$(opam env)" # Disable usage of instructions from the ADX extension to avoid incompatibility # with old CPUs, see https://gitlab.com/dannywillems/ocaml-bls12-381/-/merge_requests/135/ export BLST_PORTABLE="yes" + make static chmod +w octez-* diff --git a/docker/build/fedora/build.py b/docker/build/fedora/build.py index aa122c46c..2fb5e95d1 100755 --- a/docker/build/fedora/build.py +++ b/docker/build/fedora/build.py @@ -58,7 +58,7 @@ def build_fedora(args=None) -> List[str]: # copr build infrastructure uses latest stable fedora and `mock` for builds # so we should also keep that way - images = ["40"] + images = ["41"] packages_to_build = get_packages_to_build(args.packages) diff --git a/docker/build/util/build.py b/docker/build/util/build.py index 452b108ca..4b3c26667 100644 --- a/docker/build/util/build.py +++ b/docker/build/util/build.py @@ -88,7 +88,7 @@ def run_build(args: Arguments) -> List[str]: f""" {virtualisation_engine} build -t tezos-{target_os}-{image} - -f docker/package/Dockerfile-{target_os} --build-arg OCTEZ_VERSION={octez_version} --build-arg dist={image} . + -f docker/package/Dockerfile-{target_os} --build-arg dist={image} . """ ) diff --git a/docker/create_opam_repo.sh b/docker/create_opam_repo.sh new file mode 100755 index 000000000..6f9db68c9 --- /dev/null +++ b/docker/create_opam_repo.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: 2024 Oxhead Alpha +# SPDX-License-Identifier: LicenseRef-MIT-OA + +set -eu + +# will be set by version.sh +opam_repository_tag='' +ocaml_version='' +. tezos/scripts/version.sh + +echo "Shallow clone of opam repository (requires git protocol version 2)" +mkdir opam-repository +cd opam-repository +git init +git config --local protocol.version 2 +git remote add origin https://github.com/ocaml/opam-repository +git fetch --depth 1 origin "$opam_repository_tag" +git checkout "$opam_repository_tag" +# No need to store the whole Git history in the Docker images. +rm -rf .git .github .gitignore .gitattributes +cd .. + +# copying virtual opam file which depends on everything octez need +mkdir -p opam-repository/packages/octez-deps/octez-deps.dev +cp tezos/opam/virtual/octez-deps.opam.locked opam-repository/packages/octez-deps/octez-deps.dev/opam + +# This package adds some constraints to the solution found by the opam solver. +dummy_pkg=octez-dummy +dummy_opam_dir="opam-repository/packages/${dummy_pkg}/${dummy_pkg}.dev" +dummy_opam="${dummy_opam_dir}/opam" +mkdir -p "${dummy_opam_dir}" +echo 'opam-version: "2.0"' > "$dummy_opam" +echo "depends: [ \"ocaml\" { = \"$ocaml_version\" } ]" >> "$dummy_opam" +echo 'conflicts:[' >> "$dummy_opam" +grep -r "^flags: *\[ *avoid-version *\]" -l opam-repository/packages | + LC_COLLATE=C sort -u | + while read -r f; do + f=$(dirname "$f") + f=$(basename "$f") + p=$(echo "$f" | cut -d '.' -f '1') + v=$(echo "$f" | cut -d '.' -f '2-') + echo "\"$p\" {= \"$v\"}" >> $dummy_opam + done +# FIXME: https://gitlab.com/tezos/tezos/-/issues/5832 +# opam unintentionally picks up a windows dependency. We add a +# conflict here to work around it. +echo '"ocamlbuild" {= "0.14.2+win" }' >> $dummy_opam +echo ']' >> "$dummy_opam" + +# opam solver requires arch variable to be set, otherwise it fails to resolve anything +# but vendored opam deps have to be same for both architectures +# so we filter them separately and then merge with rsync +cp -r opam-repository x86_64 +mv opam-repository arm64 + +filter() { + pushd "$1" + OPAMSOLVERTIMEOUT=600 opam admin filter --yes --resolve \ + "octez-deps,ocaml,ocaml-base-compiler,odoc<2.3.0,ledgerwallet-tezos,caqti-driver-postgresql,$dummy_pkg" \ + --environment "os=linux,arch=$1,os-family=debian" + rm -rf packages/"$dummy_pkg" packages/octez-deps + popd +} + +filter x86_64 +filter arm64 + +rsync -av x86_64/ arm64/ +rm -rf x86_64 +mv arm64 opam-repository + +cd opam-repository +opam admin add-hashes sha256 sha512 +opam admin cache +cd .. diff --git a/docker/fetch_tezos_sources.py b/docker/fetch_tezos_sources.py index 043dce09c..864972c0c 100755 --- a/docker/fetch_tezos_sources.py +++ b/docker/fetch_tezos_sources.py @@ -6,11 +6,11 @@ import os import re import shutil +import json +import time -octez_version = os.getenv("OCTEZ_VERSION", None) - -if not octez_version: - raise Exception("Environment variable OCTEZ_VERSION is not set.") +with open("meta.json") as f: + octez_version = json.loads(f.read()).get("tezos_ref", "octez-v21.0") subprocess.run( [ @@ -25,33 +25,3 @@ ) # NOTE: it's important to keep the `tezos/.git` directory here, because the # git tag is used to set the version in the Octez binaries. - -subprocess.run( - [ - "git", - "clone", - "https://gitlab.com/tezos/opam-repository.git", - "opam-repository-tezos", - ] -) - -opam_repository_tag = ( - subprocess.run( - ". ./tezos/scripts/version.sh; echo $opam_repository_tag", - stdout=subprocess.PIPE, - shell=True, - ) - .stdout.decode() - .strip() -) - -os.chdir("opam-repository-tezos") -subprocess.run(["git", "checkout", opam_repository_tag]) -subprocess.run(["rm", "-rf", ".git"]) -subprocess.run(["rm", "-r", "zcash-params"]) -subprocess.run(["scripts/create_opam_repo.sh"]) -subprocess.run(["mv", "opam-repository", ".."]) -os.chdir("..") -subprocess.run(["rm", "-rf", "opam-repository-tezos"]) -os.chdir("opam-repository") -subprocess.run(["opam", "admin", "cache"]) diff --git a/docker/octez-executables b/docker/octez-executables index 8616215cc..3eec20aa3 100644 --- a/docker/octez-executables +++ b/docker/octez-executables @@ -4,14 +4,11 @@ octez-dac-client octez-dac-node octez-dal-node octez-signer -octez-proxy-server octez-codec octez-client octez-admin-client octez-node +octez-accuser-PsQuebec +octez-baker-PsQuebec octez-accuser-PsParisC octez-baker-PsParisC -octez-accuser-PtParisB -octez-baker-PtParisB -octez-accuser-Proxford -octez-baker-Proxford diff --git a/docker/package/Dockerfile-fedora b/docker/package/Dockerfile-fedora index cd5ebc5a1..972b15e43 100644 --- a/docker/package/Dockerfile-fedora +++ b/docker/package/Dockerfile-fedora @@ -18,10 +18,13 @@ RUN useradd dockerbuilder ENV HOME /tezos-packaging WORKDIR /tezos-packaging/docker/sources -ARG OCTEZ_VERSION +COPY meta.json meta.json COPY docker/fetch_tezos_sources.py . RUN python3 fetch_tezos_sources.py +COPY docker/create_opam_repo.sh . +RUN ./create_opam_repo.sh + WORKDIR /tezos-packaging/docker COPY meta.json /tezos-packaging/meta.json COPY protocols.json /tezos-packaging/protocols.json diff --git a/docker/package/Dockerfile-ubuntu b/docker/package/Dockerfile-ubuntu index 77ce4f488..57dd9db3e 100644 --- a/docker/package/Dockerfile-ubuntu +++ b/docker/package/Dockerfile-ubuntu @@ -1,12 +1,30 @@ # SPDX-FileCopyrightText: 2021 Oxhead Alpha # SPDX-License-Identifier: LicenseRef-MIT-OA +ARG dist +FROM ubuntu:focal AS srcs +RUN apt update -y +RUN apt install -y cargo-1.78 opam rsync python3 + +WORKDIR /sources + +COPY meta.json meta.json +COPY docker/fetch_tezos_sources.py . +RUN python3 fetch_tezos_sources.py + +COPY docker/vendor-rust-deps.py . +RUN python3 vendor-rust-deps.py + +COPY docker/create_opam_repo.sh . +RUN ./create_opam_repo.sh + ARG dist FROM ubuntu:${dist} ENV DEBIAN_FRONTEND="noninteractive" -RUN apt update -RUN apt install -y libev-dev libgmp-dev libhidapi-dev libffi-dev \ + +RUN apt-get update -y +RUN apt-get install -y libev-dev libgmp-dev libhidapi-dev libffi-dev \ zlib1g-dev libpq-dev m4 perl pkg-config \ debhelper dh-make dh-python devscripts autotools-dev \ python3-all python3-setuptools wget rsync cmake \ @@ -18,18 +36,17 @@ RUN if [ "$dist" = "focal" ]; then apt-get install -y dh-systemd; fi RUN install -m 0755 /usr/bin/python3 /usr/bin/builder -RUN if [ "$dist" != "noble"]; then add-apt-repository ppa:ubuntu-mozilla-security/rust-next -y && apt-get update -y; fi -RUN apt-get -y install cargo opam +RUN apt-get -y install opam cargo cargo-1.78 ENV USER dockerbuilder RUN useradd dockerbuilder ENV HOME /tezos-packaging -ARG OCTEZ_VERSION WORKDIR /tezos-packaging/docker/sources -COPY docker/fetch_tezos_sources.py . -RUN python3 fetch_tezos_sources.py + +COPY --from=srcs /sources/tezos tezos +COPY --from=srcs /sources/opam-repository opam-repository WORKDIR /tezos-packaging/docker COPY meta.json /tezos-packaging/meta.json diff --git a/docker/package/package_generator.py b/docker/package/package_generator.py index 5b658d213..a2cf9b2d8 100755 --- a/docker/package/package_generator.py +++ b/docker/package/package_generator.py @@ -95,7 +95,7 @@ def get_fedora_run_deps(binaries_dir): ] -def get_build_deps(binaries_dir): +def get_build_deps(binaries_dir, extra_deps=[]): """ List all the common build dependencies. Return an empty list when using prebuilt static binaries. """ @@ -111,13 +111,13 @@ def get_build_deps(binaries_dir): "wget", "unzip", "rsync", - "gcc", "cargo", + "gcc", "opam", "git", "autoconf", "coreutils", - ] + ] + extra_deps def build_fedora(args): @@ -181,7 +181,7 @@ def build_ubuntu(args): binaries_dir = args.binaries_dir - build_deps = get_build_deps(binaries_dir) + build_deps = get_build_deps(binaries_dir, ["cargo-1.78"]) home = os.environ["HOME"] diff --git a/docker/package/packages.py b/docker/package/packages.py index 3333ec060..1e9f62569 100644 --- a/docker/package/packages.py +++ b/docker/package/packages.py @@ -19,12 +19,14 @@ networks = { "mainnet": "mainnet", "ghostnet": "ghostnet", + "quebecnet": "https://teztnets.com/quebecnet", "pariscnet": "https://teztnets.com/pariscnet", } networks_protos = { "mainnet": ["PsParisC"], "ghostnet": ["PsParisC"], "pariscnet": ["PsParisC"], + "quebecnet": ["PsQuebec"], } protocol_numbers = { @@ -32,6 +34,7 @@ "Proxford": "018", "PtParisB": "019", "PsParisC": "020", + "PsQuebec": "021", } signer_units = [ diff --git a/docker/package/scripts/build-binary.sh b/docker/package/scripts/build-binary.sh index 2c5963b28..6984ed4fe 100755 --- a/docker/package/scripts/build-binary.sh +++ b/docker/package/scripts/build-binary.sh @@ -11,17 +11,26 @@ export OPAMROOT=$PWD/opamroot dune_filepath="$1" binary_name="$2" +opam init local ./opam-repository --bare --disable-sandboxing + cd tezos -opam init local ../opam-repository --bare --disable-sandboxing -opam switch create . --repositories=local --no-install + +ocaml_version='' + +source scripts/version.sh + +opam switch create . --repositories=local "ocaml-base-compiler.$ocaml_version" --no-install + +export OPAMSWITCH="$PWD" +opam repository remove default > /dev/null 2>&1 eval "$(opam env)" -OPAMASSUMEDEPEXTS=true opam install conf-rust conf-rust-2021 + +OPAMASSUMEDEPEXTS=true opam install conf-rust export CFLAGS="-fPIC ${CFLAGS:-}" -OPAMASSUMEDEPEXTS=true opam install opam/virtual/octez-deps.opam --deps-only --criteria="-notuptodate,-changed,-removed" +OPAMASSUMEDEPEXTS=true opam install opam/virtual/octez-deps.opam.locked --deps-only --criteria="-notuptodate,-changed,-removed" -eval "$(opam env)" dune build "$dune_filepath" cp "./_build/default/$dune_filepath" "../$binary_name" cd .. diff --git a/docker/supported_versions.json b/docker/supported_versions.json index e886bba9a..e9d5c8ad8 100644 --- a/docker/supported_versions.json +++ b/docker/supported_versions.json @@ -5,7 +5,7 @@ "noble" ], "fedora": [ - "39", - "40" + "40", + "41" ] } diff --git a/docker/tests/binaries.json b/docker/tests/binaries.json index a2920800d..8cdf5abd6 100644 --- a/docker/tests/binaries.json +++ b/docker/tests/binaries.json @@ -6,17 +6,14 @@ "tezos-dac-node", "tezos-dal-node", "tezos-signer", - "tezos-proxy-server", "tezos-codec", "tezos-client", "tezos-admin-client", "tezos-node", + "tezos-accuser-PsQuebec", + "tezos-baker-PsQuebec", "tezos-accuser-PsParisC", "tezos-baker-PsParisC", - "tezos-accuser-PtParisB", - "tezos-baker-PtParisB", - "tezos-accuser-Proxford", - "tezos-baker-Proxford", "tezos-sapling-params", "tezos-baking" ], diff --git a/docker/vendor-rust-deps.py b/docker/vendor-rust-deps.py new file mode 100644 index 000000000..84587486b --- /dev/null +++ b/docker/vendor-rust-deps.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2024 Oxhead Alpha +# SPDX-License-Identifier: LicenseRef-MIT-OA + +import subprocess +import os + +os.chdir("tezos/src/rust_deps") +subprocess.run(["cargo-1.78", "vendor"], check=True) + +with open(".cargo/config.toml", "a") as f: + f.write( + """ +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" + """ + ) + +# FIXME dirty hack to make dune copy vendor directory to the build directory and disignore internal files +with open("dune", "r") as f: + dune = f.read() + +with open("dune", "w") as f: + f.write( + dune.replace( + "(source_tree .cargo)", "(source_tree .cargo) (source_tree vendor)" + ) + + """ +(subdir vendor/futures-core/src/task (dirs :standard __internal)) +(subdir vendor/winnow/src (dirs :standard _tutorial _topic)) +(subdir vendor/clap/src (dirs :standard _cookbook _derive _tutorial)) +(subdir vendor/clap/src/_derive (dirs :standard _tutorial)) +(subdir vendor/clap-3.2.25/src (dirs :standard _cookbook _derive _tutorial)) +""" + ) + +with open("build.sh", "r") as f: + build_sh = f.read() + +with open("build.sh", "w") as f: + f.write(build_sh.replace("cargo", "cargo-1.78")) diff --git a/docs/support-policy.md b/docs/support-policy.md index 490a16b20..2a90a823e 100644 --- a/docs/support-policy.md +++ b/docs/support-policy.md @@ -38,8 +38,8 @@ There are packages for `arm64` and `amd64` architectures. We aim to provide packages for all [currently supported Fedora releases](https://docs.fedoraproject.org/en-US/releases/). Currently, these are versions: -* Fedora 39 * Fedora 40 +* Fedora 41 There are packages for `x86_64` and `aarch64` architectures. diff --git a/flake.lock b/flake.lock index 3ace05f82..5afa2be76 100644 --- a/flake.lock +++ b/flake.lock @@ -98,10 +98,25 @@ "type": "github" } }, + "crane": { + "locked": { + "lastModified": 1727316705, + "narHash": "sha256-/mumx8AQ5xFuCJqxCIOFCHTVlxHkMT21idpbgbm/TIE=", + "owner": "ipetkov", + "repo": "crane", + "rev": "5b03654ce046b5167e7b0bccbd8244cb56c16f0e", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "deploy-rs": { "inputs": { "flake-compat": "flake-compat_3", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "utils": "utils" }, "locked": { @@ -417,7 +432,7 @@ }, "gomod2nix": { "inputs": { - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "utils": "utils_2" }, "locked": { @@ -729,7 +744,7 @@ "nix2container": { "inputs": { "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1658567952, @@ -748,7 +763,7 @@ "nix_2": { "inputs": { "lowdown-src": "lowdown-src_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "nixpkgs-regression": "nixpkgs-regression_2" }, "locked": { @@ -769,7 +784,7 @@ "nix_3": { "inputs": { "lowdown-src": "lowdown-src_3", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1633098935, @@ -952,11 +967,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1657802959, - "narHash": "sha256-9+JWARSdlL8KiH3ymnKDXltE1vM+/WEJ78F5B1kjXys=", + "lastModified": 1726937504, + "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4a01ca36d6bfc133bc617e661916a81327c9bbc8", + "rev": "9357f4f23713673f310988025d9dc261c20e70c6", "type": "github" }, "original": { @@ -983,6 +998,21 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1632864508, + "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-21.05-small", + "type": "indirect" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1674736538, "narHash": "sha256-/DszFMkAgYyB9dTWKkoZa9i0zcrA6Z4hYrOr/u/FSxY=", @@ -1028,6 +1058,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1727335715, + "narHash": "sha256-1uw3y94dA4l22LkqHRIsb7qr3rV5XdxQFqctINfx8Cc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "28b5b8af91ffd2623e995e20aee56510db49001a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1648219316, "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", @@ -1043,7 +1089,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1657693803, "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", @@ -1059,7 +1105,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1653581809, "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", @@ -1075,7 +1121,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -1090,7 +1136,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1665087388, "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", @@ -1106,21 +1152,6 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, "nosys": { "locked": { "lastModified": 1667881534, @@ -1212,11 +1243,11 @@ "opam-repository_2": { "flake": false, "locked": { - "lastModified": 1711456989, - "narHash": "sha256-AekoreNjHvewT94l8iWBb/4cr4+FoCOS2GFpXA6HF3g=", + "lastModified": 1731448759, + "narHash": "sha256-HUqY3MuNLUf2etT9X/ZiHQtMQqU+LxwXzrm3AlOP634=", "owner": "ocaml", "repo": "opam-repository", - "rev": "518f55a1ee5da870035b9593f98db03f43ce7f5f", + "rev": "d4c6a480805e2a9eafb47afe89128b65244cbdac", "type": "github" }, "original": { @@ -1248,6 +1279,7 @@ }, "root": { "inputs": { + "crane": "crane", "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nix": "nix", @@ -1255,10 +1287,29 @@ "nixpkgs-unstable": "nixpkgs-unstable", "opam-nix": "opam-nix", "opam-repository": "opam-repository_2", + "rust-overlay": "rust-overlay", "serokell-nix": "serokell-nix", "tezos": "tezos" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1727317727, + "narHash": "sha256-yGYahXzCquyYEgf5GTtvtaN5hXbw20Ok2+o8uVxoaFs=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a3d832f389606d7dc61a45b244c72ea472d1fcd4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "serokell-nix": { "inputs": { "deploy-rs": "deploy-rs", @@ -1268,7 +1319,7 @@ "gitignore-nix": "gitignore-nix", "haskell-nix": "haskell-nix", "nix": "nix_3", - "nixpkgs": "nixpkgs_10" + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1691752608, @@ -1329,7 +1380,7 @@ ], "n2c": "n2c", "nixago": "nixago", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "nosys": "nosys", "yants": "yants" }, @@ -1365,11 +1416,11 @@ "tezos": { "flake": false, "locked": { - "lastModified": 1727873034, - "narHash": "sha256-ma9QinkY1QwgNTdnRvdnVvnbHB5sFm274oHEmlxZlEY=", + "lastModified": 1731578075, + "narHash": "sha256-mradjnOZbZYDX4obNB2YYeWr0ZY+NmvEIDS7f4XgkRI=", "owner": "tezos", "repo": "tezos", - "rev": "4ec590460057d781cde78b438da0d64d64f8227f", + "rev": "87e7ddd4966c796aae882543d322f40aff94f901", "type": "gitlab" }, "original": { diff --git a/flake.nix b/flake.nix index cd7329a70..6b599e39c 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,10 @@ opam-nix.url = "github:tweag/opam-nix"; + rust-overlay.url = "github:oxalica/rust-overlay"; + + crane.url = "github:ipetkov/crane"; + flake-compat.flake = false; opam-repository.url = "github:ocaml/opam-repository"; @@ -25,8 +29,10 @@ tezos.flake = false; }; - outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, flake-utils, serokell-nix, nix, ... }: + outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, flake-utils, serokell-nix, nix, rust-overlay, crane, ... }: let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + pkgs-unstable = import nixpkgs-unstable { system = "x86_64-linux"; overlays = [ rust-overlay.overlays.default ]; }; pkgs-darwin = nixpkgs-unstable.legacyPackages."aarch64-darwin"; protocols = nixpkgs.lib.importJSON ./protocols.json; meta = nixpkgs.lib.importJSON ./meta.json; @@ -37,9 +43,60 @@ # we exclude optional development packages filter = path: _: !(builtins.elem (baseNameOf path) [ "octez-dev-deps.opam" "tezos-time-measurement.opam" ]); }; - sources = { inherit tezos; inherit (inputs) opam-repository; }; - ocaml-overlay = import ./nix/build/ocaml-overlay.nix (inputs // { inherit sources protocols meta; }); + toolchain-version = pkgs-unstable.lib.strings.trim (builtins.readFile "${tezos}/rust-toolchain"); + + rust-toolchain = pkgs-unstable.rust-bin.stable.${toolchain-version}.default; + + craneLib = (crane.mkLib pkgs-unstable).overrideToolchain (p: p.rust-bin.stable.${toolchain-version}.default); + + opam-repository = pkgs.stdenv.mkDerivation { + name = "opam-repository"; + src = inputs.opam-repository; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + patchPhase = '' + mkdir -p packages/octez-deps/octez-deps.dev + cp ${tezos}/opam/virtual/octez-deps.opam.locked packages/octez-deps/octez-deps.dev/opam + + # This package adds some constraints to the solution found by the opam solver. + dummy_pkg=octez-dummy + dummy_opam_dir="packages/$dummy_pkg/$dummy_pkg.dev" + dummy_opam="$dummy_opam_dir/opam" + mkdir -p "$dummy_opam_dir" + echo 'opam-version: "2.0"' > "$dummy_opam" + echo "depends: [ \"ocaml\" { = \"$ocaml_version\" } ]" >> "$dummy_opam" + echo 'conflicts:[' >> "$dummy_opam" + grep -r "^flags: *\[ *avoid-version *\]" -l packages | + LC_COLLATE=C sort -u | + while read -r f; do + f=$(dirname "$f") + f=$(basename "$f") + p=$(echo "$f" | cut -d '.' -f '1') + v=$(echo "$f" | cut -d '.' -f '2-') + echo "\"$p\" {= \"$v\"}" >> $dummy_opam + done + # FIXME: https://gitlab.com/tezos/tezos/-/issues/5832 + # opam unintentionally picks up a windows dependency. We add a + # conflict here to work around it. + echo '"ocamlbuild" {= "0.14.2+win" }' >> $dummy_opam + echo ']' >> "$dummy_opam" + + OPAMSOLVERTIMEOUT=600 ${pkgs.opam}/bin/opam admin filter --yes --resolve \ + "octez-deps,ocaml,ocaml-base-compiler,odoc<2.3.0,ledgerwallet-tezos,caqti-driver-postgresql,$dummy_pkg" \ + --environment "os=linux,arch=x86_64,os-family=debian" + + rm -rf packages/"$dummy_pkg" packages/octez-deps + ''; + + installPhase = '' + mkdir -p $out + cp -Lpr * $out + ''; + }; + + sources = { inherit tezos opam-repository; }; + + ocaml-overlay = import ./nix/build/ocaml-overlay.nix (inputs // { inherit sources protocols meta craneLib rust-toolchain; }); in pkgs-darwin.lib.recursiveUpdate { nixosModules = { diff --git a/meta.json b/meta.json index ff7389f0a..b3ae84869 100644 --- a/meta.json +++ b/meta.json @@ -1,5 +1,5 @@ { "release": "1", "maintainer": "Serokell ", - "tezos_ref": "octez-v20.3" + "tezos_ref": "octez-v21.0" } diff --git a/nix/build/hacks.nix b/nix/build/hacks.nix index 1dba67e6e..1f1e878dd 100644 --- a/nix/build/hacks.nix +++ b/nix/build/hacks.nix @@ -3,22 +3,6 @@ # This file needs to become empty. self: super: rec { - # For some reason octez-protocol-compiler wants some docs to be present in octez libs - octez-libs = super.octez-libs.overrideAttrs (o: { - postFixup = '' - DUMMY_DOCS_DIR="$OCAMLFIND_DESTDIR/../doc/${o.pname}" - mkdir -p "$DUMMY_DOCS_DIR" - for doc in "README.md" "CHANGES.rst" "LICENSE"; do - touch "$DUMMY_DOCS_DIR/$doc" - done - - DUMMY_ODOC_PAGES_DIR="$DUMMY_DOCS_DIR/odoc-pages" - mkdir -p "$DUMMY_ODOC_PAGES_DIR" - for doc in "tezos_workers.mld" "tezos_lwt_result_stdlib.mld" "index.mld"; do - touch "$DUMMY_ODOC_PAGES_DIR/$doc" - done - ''; - }); octez-proto-libs = super.octez-proto-libs.overrideAttrs (o: { postFixup = '' DUMMY_DOCS_DIR="$OCAMLFIND_DESTDIR/../doc/${o.pname}" diff --git a/nix/build/ocaml-overlay.nix b/nix/build/ocaml-overlay.nix index 97c5a732c..ef65f4bbd 100644 --- a/nix/build/ocaml-overlay.nix +++ b/nix/build/ocaml-overlay.nix @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2021-2022 Oxhead Alpha # SPDX-License-Identifier: LicenseRef-MIT-OA -{ sources, protocols, opam-nix, ... }: +{ sources, protocols, opam-nix, craneLib, rust-toolchain, ... }: self: super: let @@ -10,15 +10,11 @@ in with opam-nix.lib.${self.system}; let zcash-overlay = import ./zcash-overlay.nix; hacks = import ./hacks.nix; - octezSourcesResolved = - self.runCommand "resolve-octez-sources" {} '' - cp --no-preserve=all -Lr ${sources.tezos} $out - ''; octezScope = buildOpamProject' { repos = with sources; [opam-repository]; recursive = true; - resolveArgs = { }; - } octezSourcesResolved { }; + resolveArgs = {}; + } sources.tezos {}; in { octezPackages = (octezScope.overrideScope' (pkgs.lib.composeManyExtensions [ (_: # Nullify all the ignored protocols so that we don't build them @@ -31,19 +27,40 @@ in { pkg)) hacks zcash-overlay - (final: prev: { - tezos-rust-libs = prev.tezos-rust-libs.overrideAttrs (drv: { - postInstall = - drv.postInstall + (let - rust-types-h = pkgs.fetchurl { - url = "https://gitlab.com/tezos/tezos-rust-libs/-/raw/v1.4/librustzcash/include/rust/types.h"; - sha256 = "sha256-Q2lEV7JfPpFwfS/fcV7HDbBUSIGovasr7/bcANRuMZA="; - }; - in '' - mkdir -p $out/include/rust - cp ${rust-types-h} $out/include/rust/types.h - ''); - }); + (final: prev: + let + vendored-deps = + let + src = sources.tezos; + commonArgs = { + inherit src; + buildInputs = [ pkgs.ocaml ]; + cargoToml = "${src}/src/rust_deps/Cargo.toml"; + cargoLock = "${src}/src/rust_deps/Cargo.lock"; + postUnpack = '' + cd $sourceRoot/src/rust_deps + sourceRoot="." + ''; + strictDeps = true; + OCAMLOPT = "${pkgs.ocaml}/bin/ocamlopt"; + OCAML_WHERE_PATH = "ocaml"; + OCTEZ_RUST_DEPS_NO_WASMER_HEADERS = true; + }; + in craneLib.vendorCargoDeps commonArgs; + + injectRustDeps = drv: { + buildInputs = drv.buildInputs ++ [ + vendored-deps + rust-toolchain + ]; + configurePhase = '' + export PATH="${rust-toolchain}/bin:$PATH" + cat ${vendored-deps}/config.toml >> ./src/rust_deps/.cargo/config.toml + '' + drv.configurePhase; + }; + in { + octez-rust-deps = prev.octez-rust-deps.overrideAttrs injectRustDeps; + octez-l2-libs = prev.octez-l2-libs.overrideAttrs injectRustDeps; }) ])); } diff --git a/nix/modules/common.nix b/nix/modules/common.nix index a2743503c..9877d2ba4 100644 --- a/nix/modules/common.nix +++ b/nix/modules/common.nix @@ -21,11 +21,11 @@ rec { daemonOptions = sharedOptions // { baseProtocols = mkOption { - type = types.listOf (types.enum [ "PtParisB" "PsParisC"]); + type = types.listOf (types.enum ["PsParisC" "PsquebeC"]); description = '' List of protocols for which daemons will be run. ''; - example = ["PtParisB"]; + example = ["PsParisC"]; }; rpcPort = mkOption { diff --git a/nix/modules/tezos-accuser.nix b/nix/modules/tezos-accuser.nix index bae2a513a..f153bc749 100644 --- a/nix/modules/tezos-accuser.nix +++ b/nix/modules/tezos-accuser.nix @@ -7,10 +7,10 @@ with lib; let octez-accuser-pkgs = { - "PtParisB" = - "${pkgs.octezPackages.octez-accuser-PtParisB}/bin/octez-accuser-PtParisB"; "PsParisC" = "${pkgs.octezPackages.octez-accuser-PsParisC}/bin/octez-accuser-PsParisC"; + "PsquebeC" = + "${pkgs.octezPackages.octez-accuser-PsquebeC}/bin/octez-baker-PsquebeC"; }; cfg = config.services.octez-accuser; common = import ./common.nix { inherit lib; inherit pkgs; }; diff --git a/nix/modules/tezos-baker.nix b/nix/modules/tezos-baker.nix index 4bfb24f1f..87b8ae4f2 100644 --- a/nix/modules/tezos-baker.nix +++ b/nix/modules/tezos-baker.nix @@ -7,10 +7,10 @@ with lib; let octez-baker-pkgs = { - "PtParisB" = - "${pkgs.octezPackages.octez-baker-PtParisB}/bin/octez-baker-PtParisB"; "PsParisC" = - "${pkgs.octezPackages.octez-baker-PtParisB}/bin/octez-baker-PsParisC"; + "${pkgs.octezPackages.octez-baker-PsParisC}/bin/octez-baker-PsParisC"; + "PsquebeC" = + "${pkgs.octezPackages.octez-baker-PsquebeC}/bin/octez-baker-PsParisC"; }; octez-client = "${pkgs.octezPackages.octez-client}/bin/octez-client"; cfg = config.services.octez-baker; diff --git a/protocols.json b/protocols.json index fd3eb3d1f..2e35f5bba 100644 --- a/protocols.json +++ b/protocols.json @@ -25,11 +25,12 @@ "PtKathma", "PtLimaPt", "PtMumbai", - "PtNairob" + "PtNairob", + "Proxford", + "PtParisB" ], "active": [ - "Proxford", - "PtParisB", - "PsParisC" + "PsParisC", + "PsQuebec" ] } diff --git a/scripts/build-all-bottles.sh b/scripts/build-all-bottles.sh index a173ab81d..3e67f7fe1 100755 --- a/scripts/build-all-bottles.sh +++ b/scripts/build-all-bottles.sh @@ -19,7 +19,7 @@ set -euo pipefail retval="0" # we don't bottle meta-formulas that contain only services -formulae=("tezos-smart-rollup-wasm-debugger" "tezos-smart-rollup-node" "tezos-dac-client" "tezos-dac-node" "tezos-dal-node" "tezos-signer" "tezos-codec" "tezos-client" "tezos-admin-client" "tezos-node" "tezos-accuser-PsParisC" "tezos-baker-PsParisC" "tezos-accuser-PtParisB" "tezos-baker-PtParisB" "tezos-accuser-Proxford" "tezos-baker-Proxford") +formulae=("tezos-smart-rollup-wasm-debugger" "tezos-smart-rollup-node" "tezos-dac-client" "tezos-dac-node" "tezos-dal-node" "tezos-signer" "tezos-codec" "tezos-client" "tezos-admin-client" "tezos-node" "tezos-accuser-PsQuebec" "tezos-baker-PsQuebec" "tezos-accuser-PsParisC" "tezos-baker-PsParisC") # tezos-sapling-params is used as a dependency for some of the formulas # so we handle it separately. diff --git a/scripts/update-tezos.sh b/scripts/update-tezos.sh index 63fab2397..d83fc88c8 100755 --- a/scripts/update-tezos.sh +++ b/scripts/update-tezos.sh @@ -17,7 +17,7 @@ git clone https://gitlab.com/tezos/tezos.git upstream-repo cd upstream-repo latest_upstream_tag_hash="$(git rev-list --tags --max-count=1)" latest_upstream_tag="$(git describe --tags "$latest_upstream_tag_hash")" -full_opam_repository_tag='' # will be set by version.sh +opam_repository_tag='' # will be set by version.sh git checkout "$latest_upstream_tag" source scripts/version.sh # copying metadata from octez repo @@ -43,7 +43,7 @@ if [[ "$latest_upstream_tag" != "$our_tezos_tag" ]]; then echo "Updating Tezos to $packaging_tag" ./scripts/update-input.py tezos "$latest_upstream_tag_hash" - ./scripts/update-input.py opam-repository "$full_opam_repository_tag" + ./scripts/update-input.py opam-repository "$opam_repository_tag" git commit -a -m "[Chore] Bump Tezos sources to $packaging_tag" --gpg-sign="tezos-packaging@serokell.io" ./scripts/update-brew-formulae.sh "$latest_upstream_tag" "$packaging_tag-1" diff --git a/tests/tezos-binaries.nix b/tests/tezos-binaries.nix index 1b5030231..2f395ed32 100644 --- a/tests/tezos-binaries.nix +++ b/tests/tezos-binaries.nix @@ -15,9 +15,9 @@ in import "${nixpkgs}/nixos/tests/make-test-python.nix" ({ ... }: { testScript = '' path_to_binaries = "${path-to-binaries}" - octez_accuser = f"{path_to_binaries}/octez-accuser-PtParisB" + octez_accuser = f"{path_to_binaries}/octez-accuser-PsParisC" octez_admin_client = f"{path_to_binaries}/octez-admin-client" - octez_baker = f"{path_to_binaries}/octez-baker-PtParisB" + octez_baker = f"{path_to_binaries}/octez-baker-PsParisC" octez_client = f"{path_to_binaries}/octez-client" octez_node = f"{path_to_binaries}/octez-node" octez_signer = f"{path_to_binaries}/octez-signer" diff --git a/tests/tezos-modules.nix b/tests/tezos-modules.nix index eef16e37f..440bcbb59 100644 --- a/tests/tezos-modules.nix +++ b/tests/tezos-modules.nix @@ -19,12 +19,12 @@ let octez-accuser = { enable = true; - baseProtocols = ["PtParisB"]; + baseProtocols = ["PsParisC"]; }; octez-baker = { enable = true; - baseProtocols = ["PtParisB"]; + baseProtocols = ["PsParisC"]; bakerAccountAlias = "baker"; bakerSecretKey = "unencrypted:edsk3KaTNj1d8Xd3kMBrZkJrfkqsz4XwwiBXatuuVgTdPye2KpE98o"; }; diff --git a/tests/tezos-nix-binaries.nix b/tests/tezos-nix-binaries.nix index bbc4366ae..d45f8d9a4 100644 --- a/tests/tezos-nix-binaries.nix +++ b/tests/tezos-nix-binaries.nix @@ -5,7 +5,7 @@ let inherit (pkgs) system; inherit (pkgs.octezPackages) octez-client octez-admin-client octez-node octez-signer octez-codec - octez-accuser-PtParisB octez-baker-PtParisB; + octez-accuser-PsParisC octez-baker-PsParisC; in import "${nixpkgs}/nixos/tests/make-test-python.nix" ({ ... }: { name = "tezos-nix-binaries-test"; nodes.machine = { ... }: { @@ -19,9 +19,9 @@ in import "${nixpkgs}/nixos/tests/make-test-python.nix" ({ ... }: { }; testScript = '' - octez_accuser = "${octez-accuser-PtParisB}/bin/octez-accuser-PtParisB" + octez_accuser = "${octez-accuser-PsParisC}/bin/octez-accuser-PsParisC" octez_admin_client = "${octez-admin-client}/bin/octez-admin-client" - octez_baker = "${octez-baker-PtParisB}/bin/octez-baker-PtParisB" + octez_baker = "${octez-baker-PsParisC}/bin/octez-baker-PsParisC" octez_client = ( "${octez-client}/bin/octez-client" )