Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Feb 2020 10:55:27 +0400
From:      Gleb Popov <arrowd@freebsd.org>
To:        Yuri <yuri@rawbw.com>
Cc:        freebsd-haskell@freebsd.org
Subject:   Re: Why does the port with USES=cabal and USE_CABAL= fail with unknown dependencies?
Message-ID:  <CALH631k9gE6QT4izhT=UPB17QLLWDYZwD1NTdXXshLMMj%2B79Dg@mail.gmail.com>
In-Reply-To: <5fe819e2-6181-9903-1d53-8f76bd745b76@rawbw.com>
References:  <5fe819e2-6181-9903-1d53-8f76bd745b76@rawbw.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 24, 2020 at 10:30 AM Yuri <yuri@rawbw.com> wrote:

> I'm trying to port this project: https://github.com/GaloisInc/cryptol
>
> However, it still downloads dependencies during the local build, and
> fails in poudriere:
>
> Warning: No remote package servers have been specified. Usually you
> would have
> one specified in the config file.
> Resolving dependencies...
> cabal: Could not resolve dependencies:
> [__0] trying: FloatingHex-0.4 (user goal)
> [__1] trying: base-4.12.0.0/installed-4.1... (dependency of FloatingHex)
> [__2] next goal: cryptohash-sha1 (user goal)
> [__2] rejecting: cryptohash-sha1-0.11.100.1 (conflict:
> base==4.12.0.0/installed-4.1..., cryptohash-sha1 => base>=4.5 && <4.10)
> [__2] fail (backjumping, conflict set: base, cryptohash-sha1)
>

Here it says that  cryptohash-sha1-0.11.100.1 requires base>=4.5 && <4.10,
but our GHC ships 4.12, IIRC.

The proper way to fix it is to check whether the problem package has
additional revisions. Go to
https://hackage.haskell.org/package/cryptohash-sha1 and look at the right:

Revised Revision 4
<https://hackage.haskell.org/package/cryptohash-sha1-0.11.100.1/revisions/>;
made by HerbertValerioRiedel
<https://hackage.haskell.org/user/HerbertValerioRiedel>; at Sun Sep 1
09:25:44 UTC 2019
This means, USE_CABAL entry for this package should be
"cryptohash-sha1-0.11.100.1_4".

Are you making up USE_CABAL manually? There is actually an automated
procedure to do that:

1. Define PORTNAME, PORTVERSION and USES=cabal
2. Run `make cabal-extract`. This will fetch the package using
devel/hs-cabal-install
3. Run `make cabal-extract-deps`. This will fetch and build all package
dependencies, including transitive ones.
4. Run make `make-use-cabal`. This will generate intial USE_CABAL string.
Copy&paste it into the port.
5. Run make `make-use-cabal-revs`. This will check packages from current
USE_CABAL for available revisions and generate new string. Copy&paste it
into the port.
6. Run `make makesum && make clean` and try building the port the usual way.

This procedure misses some packages sometimes (hsc2hs, for instance), but
these can quickly be added manually.


After searching the rest of the dependency tree exhaustively, these were the
> goals I've had most trouble fulfilling: FloatingHex, base, cryptohash-sha1
>
>
> For example, FloatingHex-0.4 is in USE_CABAL but it still downloads it.
>
> How to correct this?
>
>
> Thank you,
>
> Yuri
>
>
> -------Makefile-------
>
> PORTNAME=    cryptol
> DISTVERSION=    2.8.0
> CATEGORIES=    security lang haskell
>
> MAINTAINER=    yuri@FreeBSD.org
> COMMENT=    Language of cryptography
>
> LICENSE=    BSD3CLAUSE
>
> USES=        cabal
>
> USE_CABAL=    \
>          FloatingHex-0.4 \
>          GraphSCC-1.0.4 \
>          QuickCheck-2.13.2 \
>          alex-3.2.5 \
>          ansi-terminal-0.10.3 \
>          async-2.2.2 \
>          base-compat-0.10.5 \
>          base-orphans-0.8.2 \
>          blaze-builder-0.4.1.0 \
>          blaze-html-0.9.1.2 \
>          blaze-markup-0.8.2.3 \
>          colour-2.3.5 \
>          crackNum-2.3 \
>          cryptohash-sha1-0.11.100.1 \
>          generic-deriving-1.13.1 \
>          gitrev-1.3.1 \
>          happy-1.19.12 \
>          hashable-1.3.0.0 \
>          heredoc-0.2.0.0 \
>          monad-control-1.0.2.3 \
>          monadLib-3.10 \
>          panic-0.4.0.1 \
>          primitive-0.7.0.0 \
>          random-1.1 \
>          sbv-8.6 \
>          simple-smt-0.9.4 \
>          splitmix-0.0.3 \
>          strict-0.3.2 \
>          syb-0.7.1 \
>          tf-random-0.5 \
>          th-abstraction-0.3.2.0 \
>          transformers-base-0.4.5.2 \
>          transformers-compat-0.6.5
>
> EXECUTABLES=    ${PORTNAME}
>
> PLIST_FILES=    bin/${PORTNAME}
>
> .include <bsd.port.mk>
>
> _______________________________________________
> freebsd-haskell@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-haskell
> To unsubscribe, send any mail to "freebsd-haskell-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALH631k9gE6QT4izhT=UPB17QLLWDYZwD1NTdXXshLMMj%2B79Dg>