-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Description
When I was trying to build the project for the first time in Arch Linux, I encountered the following error:
Click to expand
rejecting: plutus-ledger-api-1.23.0.0 (conflict: plutus-tx==1.29.0.0,
plutus-ledger-api => plutus-tx^>=1.23)
rejecting: plutus-ledger-api-1.23.0.0 (conflict: plutus-tx==1.29.0.0,
plutus-ledger-api => plutus-tx^>=1.23)
> cabal build
HEAD is now at fcdd22094 Merge pull request #677 from albertodvp/bump-plutus-1.23.0.0
HEAD is now at d5b0e7c Merge pull request #40 from mlabs-haskell/uhbif19/add-transformer-instance
Warning: Requested index-state 2024-06-12T10:15:00Z is newer than
'hackage.haskell.org'! Falling back to older state (2024-06-12T08:29:23Z).
Resolving dependencies...
Error: cabal: Could not resolve dependencies:
[__0] trying: cem-script-0.1.0 (user goal)
[__1] trying: plutus-tx-plugin-1.29.0.0 (dependency of cem-script)
[__2] trying: plutus-tx-1.29.0.0 (dependency of cem-script)
[__3] next goal: plutus-ledger-api (dependency of cem-script)
[__3] rejecting: plutus-ledger-api-1.29.0.0 (conflict: cem-script =>
plutus-ledger-api^>=1.23.0.0)
[__3] skipping: plutus-ledger-api-1.28.0.0, plutus-ledger-api-1.27.0.0,
plutus-ledger-api-1.26.0.0, plutus-ledger-api-1.25.0.0,
plutus-ledger-api-1.24.0.0 (has the same characteristics that caused the
previous version to fail: excluded by constraint '^>=1.23.0.0' from
'cem-script')
[__3] rejecting: plutus-ledger-api-1.23.0.0 (conflict: plutus-tx==1.29.0.0,
plutus-ledger-api => plutus-tx^>=1.23)
[__3] skipping: plutus-ledger-api-1.22.1.0, plutus-ledger-api-1.21.0.0,
plutus-ledger-api-1.20.0.0, plutus-ledger-api-1.19.0.0,
plutus-ledger-api-1.18.0.0, plutus-ledger-api-1.17.0.0,
plutus-ledger-api-1.16.0.0, plutus-ledger-api-1.15.0.1,
plutus-ledger-api-1.15.0.0, plutus-ledger-api-1.14.0.0,
plutus-ledger-api-1.13.0.0, plutus-ledger-api-1.12.0.0,
plutus-ledger-api-1.11.0.0, plutus-ledger-api-1.10.0.0,
plutus-ledger-api-1.9.1.0, plutus-ledger-api-1.9.0.0,
plutus-ledger-api-1.8.0.0, plutus-ledger-api-1.7.0.1,
plutus-ledger-api-1.7.0.0, plutus-ledger-api-1.6.0.0,
plutus-ledger-api-1.5.0.2, plutus-ledger-api-1.5.0.1,
plutus-ledger-api-1.5.0.0, plutus-ledger-api-1.4.0.0,
plutus-ledger-api-1.3.0.0, plutus-ledger-api-1.2.0.0,
plutus-ledger-api-1.1.1.0, plutus-ledger-api-1.1.0.0,
plutus-ledger-api-1.0.0.1, plutus-ledger-api-1.0.0.0,
plutus-ledger-api-1.22.0.0 (has the same characteristics that caused the
previous version to fail: excludes 'plutus-tx' version 1.29.0.0)
[__3] fail (backjumping, conflict set: cem-script, plutus-ledger-api,
plutus-tx)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: plutus-core, cem-script,
plutus-ledger-api, plutus-tx-plugin, plutus-tx, cardano-crypto-class
Try running with --minimize-conflict-set to improve the error message.
I was not able to figure out why cabal was resolving to the wrong version of plutus-tx.
So I pinned thie plutus-tx version in the cabal file and tried again. After pinning a few more dependencies as per the following snippet, I was able to obtain an error message that makes sense:
Fixes:
common common-onchain
import: common-lang
build-depends:
, plutarch
, plutarch-extra
, plutarch-ledger-api
, plutus-core ^>=1.23.0.0 -- updated
, plutus-ledger-api ^>=1.23.0.0
, plutus-tx ^>=1.23.0.0 -- updated
, plutus-tx-plugin ^>=1.23.0.0 -- updated
, template-haskell
, th-abstraction >=0.6.0.0
common common-offchain
import: common-lang
-- Cardano-api:internal required due to:
-- https://github.com/IntersectMBO/cardano-api/issues/502
build-depends:
, aeson
, bytestring
, cardano-api
, cardano-api:internal
, cardano-crypto-class ^>=2.1.2 -- updated
, cardano-ledger-alonzo
, cardano-ledger-babbage
, cardano-ledger-core
Error message:
Click to expand:
cardano-crypto-class-2.1.3.0, cardano-crypto-class-2.1.2.0 (conflict:
pkg-config package libblst-any, not found in the pkg-config database)
cardano-crypto-class-2.1.3.0, cardano-crypto-class-2.1.2.0 (conflict:
pkg-config package libblst-any, not found in the pkg-config database)
❯ cabal build
Warning: Requested index-state 2024-06-12T10:15:00Z is newer than
'hackage.haskell.org'! Falling back to older state (2024-06-12T08:29:23Z).
Resolving dependencies...
Error: cabal: Could not resolve dependencies:
[__0] trying: cem-script-0.1.0 (user goal)
[__1] next goal: cardano-crypto-class (dependency of cem-script)
[__1] rejecting: cardano-crypto-class-2.1.5.0, cardano-crypto-class-2.1.4.0,
cardano-crypto-class-2.1.3.0, cardano-crypto-class-2.1.2.0 (conflict:
pkg-config package libblst-any, not found in the pkg-config database)
[__1] rejecting: cardano-crypto-class-2.1.1.0 (conflict: cem-script =>
cardano-crypto-class^>=2.1.2)
[__1] skipping: cardano-crypto-class-2.1.0.2, cardano-crypto-class-2.1.0.1,
cardano-crypto-class-2.1.0.0, cardano-crypto-class-2.0.0.1,
cardano-crypto-class-2.0.0.0.1, cardano-crypto-class-2.0.0 (has the same
characteristics that caused the previous version to fail: excluded by
constraint '^>=2.1.2' from 'cem-script')
[__1] fail (backjumping, conflict set: cardano-crypto-class, cem-script)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: cem-script, cardano-crypto-class
Then I proceeded to install blst
from AUR and libsecp256k1
from pacman, post which the build succeeded.
Questions:
- Should we pin the other dependencies like this so that if the user forgets to install a system dependency, they'll get an error that makes sense?
- Should we add the following note to the README?
If you notice cryptic dependency related errors, double check if the system dependencies are installed
In addition to this:
- We should add the following to the list of system dependencies:
- libsecp256k1
uhbif19
Metadata
Metadata
Assignees
Labels
No labels