diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index c7cd466280..344ebbc623 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -89,6 +89,10 @@ jobs: - uses: actions/checkout@v6 + - name: Configure Git to support long file paths on Windows + if: ${{ matrix.sys.os == 'windows-latest' }} + run: git config --system core.longpaths true + - name: Cache and install Cabal dependencies uses: input-output-hk/cardano-dev/actions/cabal-cache@cabal-cache-0.0.1.0 with: diff --git a/cabal.project b/cabal.project index f65f103823..092feecacb 100644 --- a/cabal.project +++ b/cabal.project @@ -13,8 +13,8 @@ repository cardano-haskell-packages -- See CONTRIBUTING for information about these, including some Nix commands -- you need to run if you change them index-state: - , hackage.haskell.org 2026-06-10T14:43:25Z - , cardano-haskell-packages 2026-06-29T12:05:19Z + , hackage.haskell.org 2026-07-15T21:58:35Z + , cardano-haskell-packages 2026-06-30T00:00:00Z packages: cardano-cli @@ -100,8 +100,8 @@ if impl(ghc >= 9.14) source-repository-package type: git location: https://github.com/IntersectMBO/cardano-api - tag: cc4dfe71536d59cb745e8ce1c09ee83dfcde6218 - --sha256: sha256-n6WJd5w3NSMICUBwefgix2/f+z5La4dkn59dDO4zlHo= + tag: 947645ea9c912da13feadc16bef44a7550c3c55b + --sha256: sha256-+fIsJuJV4YBSPdVe3wpIxq9lf6nAI5yB7qdzH0iKmrc= subdir: cardano-api cardano-api-gen @@ -133,8 +133,8 @@ source-repository-package source-repository-package type: git location: https://github.com/f-f/kes-agent.git - tag: 32c1ed675d22a30735d9f22f7afa436a3ef3e64a - --sha256: sha256-o7hFX1JnraS6Xq0WoXQwd9Z8GsPPv0Ls2DWvZ08o0ZU= + tag: c0d24ab8bf8f9f736aed3c7028534355fb89ecaa + --sha256: sha256-T3rDZ38iMuE7SZpttHX6yTJYqWqdyw6Qsh5irs1d2T8= subdir: kes-agent kes-agent-crypto @@ -146,6 +146,12 @@ source-repository-package tag: e790deca75b4f72e57a1e36c2775bf4111220450 --sha256: sha256-W64c1D44drtWNnUI6Nq5YP6X2LhRNEiJu1MM+d+Rp2s= +-- ouroboros-consensus uses deprecated cardano-ledger API (Validated, applyTx). +-- Suppress deprecation warnings to match the nix build behavior (which only +-- applies -Werror to cardano-api, not to external packages). +package ouroboros-consensus + ghc-options: -Wno-deprecations + -- Points to ouroboros-network/leios-prototype source-repository-package type: git @@ -156,3 +162,13 @@ source-repository-package ouroboros-network cardano-diffusion network-mux + +source-repository-package + type: git + location: https://github.com/IntersectMBO/plutus.git + tag: b1db04cc425fab303ac3b79d7140dc2a17f29e6d + --sha256: sha256-XtYzjNVx4+IGWpgm+p/YTf56DrJtK0I98umZCTE3U80= + subdir: + plutus-core + plutus-ledger-api + plutus-tx diff --git a/flake.lock b/flake.lock index 4d645ddad1..80910a281b 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1782769557, - "narHash": "sha256-tCYMTwH15mNajHybvC3KGVPBPMlLlqIOYE0ZgcqRkJU=", + "lastModified": 1784570152, + "narHash": "sha256-eOcU6GF5Skq/WkBdfCgKIyTzgAjWo1WjbVsR5xDzunI=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "3ee6b1ecce230d62f0083590f38c4ae3457da226", + "rev": "f77658bfbf42886478e7a34a1522949cdfc639a3", "type": "github" }, "original": { @@ -209,11 +209,11 @@ "hackageNix": { "flake": false, "locked": { - "lastModified": 1782835970, - "narHash": "sha256-lsdKNBUm/zXoWYcQyGfftI+342KsQMGV2sycjFE0KaY=", + "lastModified": 1785176039, + "narHash": "sha256-ipFrmX/6MUChWWoLLn68CW5LR8HCW3YO6TsUy+P2SUI=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "bf06a772a218913ff6ea903b7523d239960aec5d", + "rev": "523dd179d788a26844f2816d0a66597f531d937a", "type": "github" }, "original": { @@ -764,6 +764,25 @@ "type": "github" } }, + "ouroboros-consensus": { + "flake": false, + "locked": { + "lastModified": 1784650797, + "narHash": "sha256-NAokIKE0yOW5EIx6zFgvuwa95iD4vzIq13CJOUUe0mA=", + "ref": "refs/heads/main", + "rev": "3511ac5ad2ded55553d821e7305a2c10e1cfbeca", + "revCount": 11479, + "submodules": true, + "type": "git", + "url": "https://github.com/input-output-hk/ouroboros-consensus" + }, + "original": { + "rev": "3511ac5ad2ded55553d821e7305a2c10e1cfbeca", + "submodules": true, + "type": "git", + "url": "https://github.com/input-output-hk/ouroboros-consensus" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -796,6 +815,7 @@ "haskellNix", "nixpkgs-unstable" ], + "ouroboros-consensus": "ouroboros-consensus", "pre-commit-hooks": "pre-commit-hooks", "unstable": "unstable" } diff --git a/flake.nix b/flake.nix index 1e89bc16ae..40c620127f 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,13 @@ url = "github:intersectmbo/cardano-haskell-packages?ref=repo"; flake = false; }; + + # Fetched with submodules=1 so that cardano-blueprint is available during + # cabal project evaluation (haskell.nix's fetchgit does not fetch submodules). + ouroboros-consensus = { + url = "git+https://github.com/input-output-hk/ouroboros-consensus?rev=3511ac5ad2ded55553d821e7305a2c10e1cfbeca&submodules=1"; + flake = false; + }; }; outputs = inputs: let @@ -165,6 +172,9 @@ # inputMap = { "https://chap.intersectmbo.org/" = inputs.CHaP; + # Provide ouroboros-consensus with submodules so cardano-blueprint + # files are available during cabal project evaluation. + "https://github.com/input-output-hk/ouroboros-consensus" = inputs.ouroboros-consensus; }; shell = { packages = p: [p.cardano-cli p.cardano-ledger-core p.cardano-api p.ouroboros-consensus]; @@ -182,7 +192,7 @@ hlint = {version = "3.10";}; }; # and from nixpkgs or other inputs - nativeBuildInputs = with nixpkgs; [gh jq yq-go unstable.actionlint shellcheck] ++ (lib.optional isDarwin macOS-security); + nativeBuildInputs = with nixpkgs; [gh jq yq-go unstable.actionlint shellcheck pv] ++ (lib.optional isDarwin macOS-security); # disable Hoogle until someone request it withHoogle = false; # Skip cross compilers for the shell @@ -207,13 +217,18 @@ ... }: let cliExe = "${config.hsPkgs.cardano-cli.components.exes.cardano-cli}/bin/cardano-cli${pkgs.stdenv.hostPlatform.extensions.executable}"; - needsQemu = pkgs.stdenv.hostPlatform.isLinux + needsQemu = + pkgs.stdenv.hostPlatform.isLinux && pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform && pkgs.stdenv.hostPlatform.parsed.cpu.name != pkgs.stdenv.buildPlatform.parsed.cpu.name; qemuWrapped = pkgs.buildPackages.writeShellScript "cardano-cli-qemu" '' exec ${pkgs.buildPackages.qemu}/bin/qemu-${pkgs.stdenv.hostPlatform.qemuArch} ${cliExe} "$@" ''; - exportCliPath = "export CARDANO_CLI=${if needsQemu then qemuWrapped else cliExe}"; + exportCliPath = "export CARDANO_CLI=${ + if needsQemu + then qemuWrapped + else cliExe + }"; mainnetConfigFiles = [ "configuration/cardano/mainnet-config.yaml" "configuration/cardano/mainnet-config.json"