Subject: Re: [bug#37434] [PATCH 1/2] gnu: ghc-megaparsec: Update to 7.0.5.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 24 Sep 2019 19:08:03 +0200

Hi Eric,

Eric Bavier <[email-masked]> skribis:

> From 832529b71c2c5c7e6aa6e88a206c0db65e8a0c2e Mon Sep 17 00:00:00 2001
> From: Eric Bavier <[email-masked]>
> Date: Mon, 16 Sep 2019 22:20:23 -0500
> Subject: [PATCH] gnu: idris: Update to 1.3.2.
>
> * gnu/packages/idris.scm (ghc-network-2.8, ghc-megaparsec-7): New variables.
> (idris): Update to 1.3.2.
> [source]: Remove patch.
> [inputs]: Use ghc-network-2.8 and ghc-megaparsec-7.
> * gnu/packages/patches/idris-test-no-node.patch: Delete.
> * gnu/local.mk (dist_patch_DATA): Remove it.

[...]

> +++ b/gnu/packages/idris.scm
> @@ -30,15 +30,50 @@
>    #:use-module (gnu packages perl)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system haskell)
> +  #:use-module (guix utils)
>    #:use-module (guix download)
>    #:use-module (guix git-download)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages))
>  
> +;;; Until we update our default GHC to >=8.6 we cannot update our ghc-network
> +;;; package, since the 'cabal-install' package that supports the current
> +;;; 'Cabal' module requires 'network==2.6.*'.  Providing a local ghc-network
> +;;; works in this case since we use it only for a standalone program.
> +(define ghc-network-2.8
> +  (package
> +    (inherit ghc-network)

You should only inherit from packages defined in the same module,
otherwise we risk hitting the dreaded circular dependency mess (actually
this particular case is fine because idris.scm is a “leaf”, but still,
let’s not take this risk.)

So I recommend moving these two ghc-* packages next to their friends.

With this change the patch LGTM.

Thanks,
Ludo’.